static void Main(string[] args) { var config = new TCPConfiguration(); config.publications = new System.Collections.Generic.Dictionary <string, TCPConfiguration.TCPPublicationInstruction>(); config.subscriptions = new System.Collections.Generic.Dictionary <string, TCPConfiguration.TCPSubscriptionInstruction>(); config.publications.Add("instr1", new TCPConfiguration.TCPPublicationInstruction() { EventId = "testEvent", Ip = "127.0.0.1", Port = 1884 }); var fPtr = msb.separate.Interfaces.BaseInterfaceUtils.CreateFunctionPointer(typeof(funktionen).GetMethod("funktion"), null); var intFlow = new System.Collections.Generic.Dictionary <string, string>() { { "a", "hallo" }, { "b", "hallo2" } }; config.subscriptions.Add("instr1", new TCPConfiguration.TCPSubscriptionInstruction() { EventId = "testEvent", Ip = "127.0.0.1", Port = 1884, FunctionPointer = fPtr, IntegrationFlow = intFlow }); var tcp = new TCPInterface(config); tcp.Start(); System.Threading.Thread.Sleep(1000); tcp.PublishEvent(new msb.separate.EventData() { Id = "testEvent", Data = new System.Collections.Generic.Dictionary <string, object> { { "hallo", "123" }, { "hallo2", "321" } } }); System.Threading.Thread.Sleep(1000); tcp.Stop(); Console.ReadLine(); }
public static void Main(string[] args) { // Setup logging Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.Console(outputTemplate: "[{Timestamp:yyyy-MM-dd - HH:mm:ss}] [{SourceContext:s}] [{Level:u3}] {Message:lj}{NewLine}{Exception}") .CreateLogger(); Log.Information("Sample application started"); /* Seite A */ const string MyMsbSmartObjectUuid = "1a17b5e3-3a6a-4e62-97b0-82cfdd1cc818"; const string MyMsbSmartObjectName = "C# Sample SmartObject"; const string MyMsbSmartObjectDescription = "{" + "\"Separate\":[{" + "\"Type\":\"TCP\"," + "\"Patterns\":{" + "\"Events\":{" + "\"EventId\":\"String\"," + "\"Ip\":\"String\"," + "\"Port\":\"Int\"" + "}," + "\"Functions\":{" + "\"EventId\":\"String\"," + "\"Ip\":\"String\"," + "\"Port\":\"Int\"" + "}" + "}" + "}]" + "}"; const string MyMsbSmartObjectToken = "30e47482-c140-49a9-a79f-6f2396d8e0ab"; SmartObject myMsbSmartObject = new SmartObject(MyMsbSmartObjectUuid, MyMsbSmartObjectName, MyMsbSmartObjectDescription, MyMsbSmartObjectToken); var tcp_pub1 = new TCPConfiguration.TCPPublicationInstruction() { EventId = "SimpleEventId", Ip = "127.0.0.1", Port = 1884 }; var tcp_pub2 = new TCPConfiguration.TCPPublicationInstruction() { EventId = "FlatEventId", Ip = "127.0.0.1", Port = 1884 }; var tcp_pub3 = new TCPConfiguration.TCPPublicationInstruction() { EventId = "ComplexEventId", Ip = "127.0.0.1", Port = 1884 }; myMsbSmartObject.AddConfigurationParameter("msb.separate.direct.tcp.publications", new ConfigurationParameterValue(new List <Object>() { tcp_pub1, tcp_pub2, tcp_pub3 })); Event simpleEvent = new Event("SimpleEventId", "Name of simple event", "Event with simple data format", typeof(string)); Event flatEvent = new Event("FlatEventId", "Name of flat event", "Event with flat data format", typeof(SimpleEvent)); Event complexEvent = new Event("ComplexEventId", "Name of complex event", "Event with nested data format", typeof(ComplexEvent)); myMsbSmartObject.AddEvent(simpleEvent); myMsbSmartObject.AddEvent(flatEvent); myMsbSmartObject.AddEvent(complexEvent); var config_myMsbSmartObject = new TCPConfiguration(); config_myMsbSmartObject.publications = new System.Collections.Generic.Dictionary <string, TCPConfiguration.TCPPublicationInstruction>(); var list_pub = (List <TCPConfiguration.TCPPublicationInstruction>)myMsbSmartObject.Configuration.Parameters["msb.separate.direct.tcp.publications"].Value; foreach (var cp in list_pub) { config_myMsbSmartObject.publications.Add(cp.EventId, cp); } var tcp_myMsbSmartObject = new TCPInterface(config_myMsbSmartObject); tcp_myMsbSmartObject.Start(); /* Seite B */ const string MyMsbApplicationUuid = "46441dc8-c3ab-4c93-9632-d1f356afb8ca"; const string MyMsbApplicationName = "C# Sample Application"; const string MyMsbApplicationDescription = "{" + "\"Separate\":[{" + "\"Type\":\"TCP\"," + "\"Patterns\":{" + "\"Events\":{" + "\"EventId\":\"String\"," + "\"Ip\":\"String\"," + "\"Port\":\"Int\"" + "}," + "\"Functions\":{" + "\"EventId\":\"String\"," + "\"Ip\":\"String\"," + "\"Port\":\"Int\"" + "}" + "}" + "}]" + "}"; const string MyMsbApplicationToken = "5b6b273b-18ff-420b-bbff-5f40288c18f9"; Application myMsbApplication = new Application(MyMsbApplicationUuid, MyMsbApplicationName, MyMsbApplicationDescription, MyMsbApplicationToken); SampleFunctionHandler simpleFunctions = new SampleFunctionHandler(); myMsbSmartObject.AddFunctionHandler(simpleFunctions); var tcp_sub1 = new TCPConfiguration.TCPSubscriptionInstruction() { EventId = "SimpleEventId", Ip = "127.0.0.1", Port = 1884, FunctionPointer = null, IntegrationFlow = new System.Collections.Generic.Dictionary <string, string>() { { "SampleFunctionWithParameters", "TestString" } } }; myMsbApplication.AddConfigurationParameter("msb.separate.direct.tcp.subscriptions", new ConfigurationParameterValue(tcp_sub1)); var config_myMsbApplication = new TCPConfiguration(); config_myMsbApplication.subscriptions = new System.Collections.Generic.Dictionary <string, TCPConfiguration.TCPSubscriptionInstruction>(); var fPtr = msb.separate.Interfaces.BaseInterfaceUtils.CreateFunctionPointer(typeof(SampleFunctionHandler).GetMethod("EmptySampleFunction"), null); var list_sub = (List <TCPConfiguration.TCPSubscriptionInstruction>)myMsbSmartObject.Configuration.Parameters["msb.separate.direct.tcp.subscriptions"].Value; foreach (var cp in list_sub) { cp.FunctionPointer = fPtr; config_myMsbApplication.subscriptions.Add(cp.EventId, cp); } var tcp_myMsbApplication = new TCPInterface(config_myMsbApplication); tcp_myMsbApplication.Start(); //starten const string MsbWebsocketInterfaceUrl = "ws://localhost:8085"; var myMsbClient = new Fraunhofer.IPA.MSB.Client.Websocket.MsbClient(MsbWebsocketInterfaceUrl); myMsbClient.ConnectAsync().Wait(); myMsbClient.RegisterAsync(myMsbSmartObject).Wait(); myMsbClient.RegisterAsync(myMsbApplication).Wait(); // Publish events while (true) { EventData eventData_SimpleEvent = new EventDataBuilder(simpleEvent).SetValue("TestString").Build(); myMsbClient.PublishAsync(myMsbSmartObject, eventData_SimpleEvent).Wait(); tcp_myMsbSmartObject.PublishEvent(new msb.separate.EventData() { Id = "SimpleEventId", Data = new System.Collections.Generic.Dictionary <string, object> { { "TestString", "123" } } }); EventData eventData_FlatEvent = new EventDataBuilder(flatEvent).SetValue(new SimpleEvent()).Build(); myMsbClient.PublishAsync(myMsbSmartObject, eventData_FlatEvent).Wait(); EventData eventData_ComplexEvent = new EventDataBuilder(complexEvent).SetValue(new ComplexEvent()).Build(); myMsbClient.PublishAsync(myMsbSmartObject, eventData_ComplexEvent).Wait(); Thread.Sleep(3000); } }