static void Main(string[] args) { DDSEntityManager mgr = new DDSEntityManager("WaitSet"); String partitionName = "WaitSet example"; // create Domain Participant mgr.createParticipant(partitionName); // create Type MsgTypeSupport msgTS = new MsgTypeSupport(); mgr.registerType(msgTS); // create Topic mgr.createTopic("WaitSetData_Msg"); // create Publisher mgr.createPublisher(); // create DataWriter mgr.createWriter(); // Publish Events IDataWriter dwriter = mgr.getWriter(); MsgDataWriter WaitSetWriter = dwriter as MsgDataWriter; // Write the first message Msg msgInstance = new Msg(); msgInstance.userID = 1; msgInstance.message = "First hello"; Console.WriteLine("=== [Publisher] writing a message containing :"); Console.WriteLine(" userID : {0}", msgInstance.userID); Console.WriteLine(" Message : \" {0} ", msgInstance.message); ReturnCode status = WaitSetWriter.Write(msgInstance, InstanceHandle.Nil); ErrorHandler.checkStatus(status, "MsgDataWriter.Write"); Thread.Sleep(500); // Write another message msgInstance.message = "Hello again"; status = WaitSetWriter.Write(msgInstance, InstanceHandle.Nil); ErrorHandler.checkStatus(status, "MsgDataWriter.Write"); Console.WriteLine("=== [Publisher] writing a message containing :"); Console.WriteLine(" userID : {0}", msgInstance.userID); Console.WriteLine(" Message : {0}", msgInstance.message); Thread.Sleep(500); // Clean up mgr.getPublisher().DeleteDataWriter(WaitSetWriter); mgr.deletePublisher(); mgr.deleteTopic(); mgr.deleteParticipant(); }
static void Main(string[] args) { DDSEntityManager mgr = new DDSEntityManager("Listener"); String partitionName = "Listener Example"; // create Domain Participant mgr.createParticipant(partitionName); // create Type MsgTypeSupport msgTS = new MsgTypeSupport(); mgr.registerType(msgTS); // create Topic mgr.createTopic("ListenerData_Msg"); // create Publisher mgr.createPublisher(); // create DataWriter mgr.createWriter(); // Publish Events IDataWriter dwriter = mgr.getWriter(); MsgDataWriter listenerWriter = dwriter as MsgDataWriter; ReturnCode status = ReturnCode.Error; Msg msgInstance = new Msg(); msgInstance.userID = 1; msgInstance.message = "Hello World"; Console.WriteLine("=== [ListenerDataPublisher] writing a message containing :"); Console.WriteLine(" userID : {0}", msgInstance.userID); Console.WriteLine(" Message : \"" + msgInstance.message + "\""); InstanceHandle msgHandle = listenerWriter.RegisterInstance(msgInstance); ErrorHandler.checkHandle(msgHandle, "DataWriter.RegisterInstance"); status = listenerWriter.Write(msgInstance, InstanceHandle.Nil); ErrorHandler.checkStatus(status, "DataWriter.Write"); Thread.Sleep(2); // clean up status = listenerWriter.Dispose(msgInstance, msgHandle); ErrorHandler.checkStatus(status, "DataWriter.Dispose"); status = listenerWriter.UnregisterInstance(msgInstance, msgHandle); ErrorHandler.checkStatus(status, "DataWriter.UnregisterInstance"); mgr.getPublisher().DeleteDataWriter(listenerWriter); mgr.deletePublisher(); mgr.deleteTopic(); mgr.deleteParticipant(); }
static void Main(string[] args) { DDSEntityManager mgr = new DDSEntityManager("HelloWorld"); String partitionName = "HelloWorld example"; // create Domain Participant mgr.createParticipant(partitionName); mgr.setAutoDispose(false); // create Type MsgTypeSupport msgTS = new MsgTypeSupport(); mgr.registerType(msgTS); // create Topic mgr.createTopic("HelloWorldData_Msg"); // create Publisher mgr.createPublisher(); // create DataWriter mgr.createWriter(); // Publish Events IDataWriter dwriter = mgr.getWriter(); MsgDataWriter helloWorldWriter = dwriter as MsgDataWriter; Msg msgInstance = new Msg(); msgInstance.userID = 1; msgInstance.message = "Hello World"; InstanceHandle handle = helloWorldWriter.RegisterInstance(msgInstance); ErrorHandler.checkHandle(handle, "MsgDataWriter.RegisterInstance"); Console.WriteLine("=== [Publisher] writing a message containing :"); Console.WriteLine(" userID : {0}", msgInstance.userID); Console.WriteLine(" Message : \" {0} \"", msgInstance.message); ReturnCode status = helloWorldWriter.Write(msgInstance, handle); ErrorHandler.checkStatus(status, "MsgDataWriter.Write"); try { Thread.Sleep(2); } catch (ArgumentOutOfRangeException ex) { Console.WriteLine(ex.ToString()); Console.WriteLine(ex.StackTrace); } status = helloWorldWriter.UnregisterInstance(msgInstance, handle); // Clean up mgr.getPublisher().DeleteDataWriter(helloWorldWriter); mgr.deletePublisher(); mgr.deleteTopic(); mgr.deleteParticipant(); }
static void Main(string[] args) { if (args.Length != 3) { Console.WriteLine("Insufficient number of arguments."); usage(); Environment.Exit(-1); } else { String durabilityKind = args[0]; Boolean autodisposeFlag = Boolean.Parse(args[1].ToString()); Boolean automaticFlag = Boolean.Parse(args[2].ToString()); DDSEntityManager mgr = new DDSEntityManager("Durability"); String partitionName = "Durability example"; // Set the Durability Kind mgr.setDurabilityKind(durabilityKind); // Set the auto dispose flag mgr.setAutoDispose(autodisposeFlag); Thread.Sleep(1000); // create Domain Participant mgr.createParticipant(partitionName); // create Type MsgTypeSupport stkTS = new MsgTypeSupport(); mgr.registerType(stkTS); // create Topic mgr.createTopic("DurabilityData_Msg"); // create Publisher mgr.createPublisher(); // create DataWriter mgr.createWriter(); // Publish Events IDataWriter dwriter = mgr.getWriter(); MsgDataWriter msgWriter = dwriter as MsgDataWriter; Msg [] DurabilityDataMsg = new Msg[10]; InstanceHandle [] handle = new InstanceHandle [10]; ReturnCode status = ReturnCode.Error; for (int x = 0; x < 10; x++) { DurabilityDataMsg[x] = new Msg(); DurabilityDataMsg[x].id = x; DurabilityDataMsg[x].content = x.ToString(); Console.WriteLine("Storing {0}", DurabilityDataMsg[x].content); handle[x] = msgWriter.RegisterInstance(DurabilityDataMsg[x]); ErrorHandler.checkHandle(handle[x], "DataWriter.RegisterInstance"); status = msgWriter.Write(DurabilityDataMsg[x], handle[x]); ErrorHandler.checkStatus(status, "DataWriter.Write"); } if (!automaticFlag) { char c = (char)0; Console.WriteLine("Enter E to exit"); while (c != 'E') { c = (char)Console.Read(); } } else { Console.WriteLine("=== sleeping 10s..."); Thread.Sleep(10000); } // Clean up status = mgr.getPublisher().DeleteDataWriter(msgWriter); ErrorHandler.checkStatus(status, "Publisher.DeleteDatWriter"); mgr.deletePublisher(); mgr.deleteTopic(); mgr.deleteParticipant(); } }
// Create the DDS worker thread here. public static void OpenSpliceWorker(Form mainForm) {// Initialize the DDS Code first bool done = false; DDSEntityManager mgr = new DDSEntityManager("HelloWorld"); // String partitionName = ""; // if (GlobalData.DDSPartitionName.Length > 0) // {// Use the glbal name // partitionName = GlobalData.DDSPartitionName; // } else // { // partitionName = "ADLINK"; // } // // create default Hello World Topic // // create Domain Participant // set QOS for entity manager... mgr.setDurabilityKind("transient"); mgr.createParticipant(GlobalData.DDSPartitionName); mgr.setAutoDispose(false); // create Type MsgTypeSupport msgTS = new MsgTypeSupport(); mgr.registerType(msgTS); // create Topic mgr.createTopic("HelloWorldData_Msg"); // create Publisher mgr.createPublisher(); // create DataWriter mgr.createWriter(); // // NOW CREATE NEW DDS DATA RECEIVER // // NOW Create another HelloWorld.Msg with a different topic name. // DDSEntityManager ADSBDatamgr = new DDSEntityManager("ADSBLinesData"); // create Domain Participant ADSBDatamgr.createParticipant(GlobalData.DDSPartitionName); // create Type DM::Aircraft_Config Aircraft_ConfigTypeSupport AircraftConfigMsg = new DM.Aircraft_ConfigTypeSupport(); //MsgTypeSupport msgTS2 = new MsgTypeSupport(); ADSBDatamgr.registerType(AircraftConfigMsg); //ADSBDatamgr.registerType(msgTS2); // create Topic ADSBDatamgr.createTopic("ADSBLinesData"); // create Subscriber ADSBDatamgr.createSubscriber(); // ADSBDatamgr.createPublisher(); // create DataReader ADSBDatamgr.createReader(false); IDataReader ADSBLinesReader = ADSBDatamgr.getReader(); Aircraft_ConfigDataReader ADSBLinesDataReader = ADSBLinesReader as Aircraft_ConfigDataReader; Aircraft_Config ADSBLinesmsg = null; Aircraft_Config[] ADSBLinesmsgSeq = null; DDS.SampleInfo[] ADSBLinesinfoSeq = null; // Publish Events IDataWriter dwriter = mgr.getWriter(); MsgDataWriter helloWorldWriter = dwriter as MsgDataWriter; Msg msgInstance = new Msg(); msgInstance.userID = 1; msgInstance.message = "Update Locations"; // "Hello World"; InstanceHandle handle = helloWorldWriter.RegisterInstance(msgInstance); ErrorHandler.checkHandle(handle, "MsgDataWriter.RegisterInstance"); Console.WriteLine("=== [Publisher] writing a message containing :"); Console.WriteLine(" userID : {0}", msgInstance.userID); Console.WriteLine(" Message : \" {0} \"", msgInstance.message); ReturnCode status = helloWorldWriter.Write(msgInstance, handle); ErrorHandler.checkStatus(status, "MsgDataWriter.Write"); // main write loop here... //try //{ // Thread.Sleep(2); //} //catch (ArgumentOutOfRangeException ex) //{ // Console.WriteLine(ex.ToString()); // Console.WriteLine(ex.StackTrace); //} while (!done) {// sleep and write samples from the main screen. Thread.Sleep(500); if (GlobalData.ischanged == true) {// main thread has written data values, so update data Console.WriteLine("GLOBAL DATA HAS CHANGED!!!"); msgInstance.lattitued_ul = GlobalData.upleft_lat; msgInstance.longitude_ul = GlobalData.upleft_lng; msgInstance.lattitude_lr = GlobalData.btmright_lat; msgInstance.longitude_lr = GlobalData.btmright_lng; Console.WriteLine("Upper left Lat" + msgInstance.lattitued_ul.ToString()); Console.WriteLine("Upper left Lng" + msgInstance.longitude_ul.ToString()); Console.WriteLine("Lower Right Lat" + msgInstance.lattitude_lr.ToString()); Console.WriteLine("Lower Right Lng" + msgInstance.longitude_lr.ToString()); ReturnCode dds_status = helloWorldWriter.Write(msgInstance, handle); Console.WriteLine("HELLO WORLD DDS WRITE ERROR = " + dds_status.ToString()); ErrorHandler.checkStatus(dds_status, "MsgDataWriter.Write"); GlobalData.ischanged = false; } // globaldata.ischange = true // now read DDS Data lines topic. // // get new DDS Values here... status = ADSBLinesDataReader.Take(ref ADSBLinesmsgSeq, ref ADSBLinesinfoSeq, Length.Unlimited, SampleStateKind.Any, ViewStateKind.Any, InstanceStateKind.Any); ErrorHandler.checkStatus(status, "DataReader.Take"); if (ADSBLinesmsgSeq.Length > 0) { for (int x = 0; x < ADSBLinesmsgSeq.Length; x++) { if (ADSBLinesinfoSeq[x].ValidData) {// read the data! ADSBLinesmsg = ADSBLinesmsgSeq[x]; GlobalData.DDS_Lines = ADSBLinesmsg.tailNumber; GlobalData.DDS_Data_Received = true; /* Console.WriteLine("=== [Subscriber] message received : " + x.ToString()); * Console.WriteLine(" lattitued_ul : " + msgSeq[x].lattitued_ul.ToString()); * Console.WriteLine(" longitude_ul : " + msgSeq[x].longitude_ul.ToString()); * Console.WriteLine(" lattitued_lr : " + msgSeq[x].lattitude_lr.ToString()); * Console.WriteLine(" longitude_lr : " + msgSeq[x].longitude_lr.ToString()); * Console.WriteLine(" Message : \"" + msgSeq[x].message + "\""); */ // status = HelloWorldDataReader.ReturnLoan(ref msgSeq, ref infoSeq); //ErrorHandler.checkStatus(status, "DataReader.ReturnLoan"); // System.Threading.Thread.Sleep(2000); /* lamin = msgSeq[x].lattitude_lr; //32.3382F; * lomin = msgSeq[x].longitude_ul; //- 121.8863F; * lamax = msgSeq[x].lattitued_ul; //35.3382F; * lomax = msgSeq[x].longitude_lr; // - 116.8863F; */} } } if (GlobalData.WorkerThreadIsRunning == false) {// signal thread to shut down... done = true; } } // end of main write loop // Clean up status = helloWorldWriter.UnregisterInstance(msgInstance, handle); mgr.getPublisher().DeleteDataWriter(helloWorldWriter); mgr.deletePublisher(); mgr.deleteTopic(); mgr.deleteParticipant(); return; }
static void Main(string[] args) { bool autodispose_flag = false; String writer_action; ReturnCode status = ReturnCode.Error; if (args.Length < 2) { usage(); } else if ((!args[0].Equals("true")) && (!args[0].Equals("false")) && (!args[1].Equals("dispose")) && (!args[1].Equals("unregister")) && (!args[1].Equals("stoppub"))) { usage(); } else { autodispose_flag = Boolean.Parse(args[0]); writer_action = args[1]; // DDS Helper class instance for Msg Topic DDSEntityManager mgr = new DDSEntityManager("Lifecycle"); // Create domain participant String partitionName = "Lifecycle example"; mgr.createParticipant(partitionName); // Set AutoDispose Flag mgr.setAutoDispose(autodispose_flag); // Create type MsgTypeSupport mt = new MsgTypeSupport(); mgr.registerType(mt); // Create Topic String topicName = "Lifecycle_Msg"; mgr.createTopic(topicName); // Create Publisher mgr.createPublisher(); // Create DataWriter(s) mgr.createWriter(); // Publish Samples IDataWriter dwriter = mgr.getWriter(); MsgDataWriter LifecycleWriter = dwriter as MsgDataWriter; IDataWriter dwriter_stopper = mgr.getWriterStopper(); MsgDataWriter LifecycleWriter_stopper = dwriter_stopper as MsgDataWriter; if (writer_action.Equals("dispose")) { // Send Msg (topic to monitor) Msg msgInstance = new Msg(); msgInstance.userID = 1; msgInstance.message = "Lifecycle_1"; msgInstance.writerStates = "SAMPLE_SENT -> INSTANCE_DISPOSED -> DATAWRITER_DELETED"; Console.WriteLine("=== [Publisher] :"); Console.WriteLine(" userID : {0}", msgInstance.userID); Console.WriteLine(" Message : \"{0}\"", msgInstance.message); Console.WriteLine(" writerStates : \"{0}\"", msgInstance.writerStates); status = LifecycleWriter.Write(msgInstance, InstanceHandle.Nil); ErrorHandler.checkStatus(status, "MsDataWriter.Write"); Thread.Sleep(500); Console.WriteLine("=== [Publisher] : SAMPLE_SENT"); // Dispose instance status = LifecycleWriter.Dispose(msgInstance, InstanceHandle.Nil); ErrorHandler.checkStatus(status, "MsDataWriter.Dispose"); Console.WriteLine("=== [Publisher] : INSTANCE_DISPOSED"); } else if (writer_action.Equals("unregister")) { // Send Msg (topic to monitor) Msg msgInstance = new Msg(); msgInstance.userID = 2; msgInstance.message = "Lifecycle_2"; msgInstance.writerStates = "SAMPLE_SENT -> INSTANCE_UNREGISTERED -> DATAWRITER_DELETED"; Console.WriteLine("=== [Publisher] :"); Console.WriteLine(" userID : {0}", msgInstance.userID); Console.WriteLine(" Message : \"{0}\"", msgInstance.message); Console.WriteLine(" writerStates : \"{0}\"", msgInstance.writerStates); status = LifecycleWriter.Write(msgInstance, InstanceHandle.Nil); ErrorHandler.checkStatus(status, "MsDataWriter.Write"); Thread.Sleep(500); Console.WriteLine("=== [Publisher] : SAMPLE_SENT"); // Unregister instance : the auto_dispose_unregistered_instances flag // is currently ignored and the instance is never disposed automatically status = LifecycleWriter.UnregisterInstance(msgInstance, InstanceHandle.Nil); ErrorHandler.checkStatus(status, "MsDataWriter.UnregisterInstance"); Console.WriteLine("=== [Publisher] : INSTANCE_UNREGISTERED"); } else if (writer_action.Equals("stoppub")) { Msg msgInstance = new Msg(); msgInstance.userID = 3; msgInstance.message = "Lifecycle_3"; msgInstance.writerStates = "SAMPLE_SENT -> DATAWRITER_DELETED"; Console.WriteLine("=== [Publisher] :"); Console.WriteLine(" userID : {0}", msgInstance.userID); Console.WriteLine(" Message : \"{0}\"", msgInstance.message); Console.WriteLine(" writerStates : \"{0}\"", msgInstance.writerStates); status = LifecycleWriter.Write(msgInstance, InstanceHandle.Nil); ErrorHandler.checkStatus(status, "MsDataWriter.Write"); Thread.Sleep(500); Console.WriteLine("=== [Publisher] : SAMPLE_SENT"); } // Let the subscriber treat the previous writer state !!! Console.WriteLine("=== [Publisher] waiting 500ms to let the subscriber treat the previous write state ..."); Thread.Sleep(500); // Remove the DataWriter mgr.deleteWriter(LifecycleWriter); Thread.Sleep(500); Console.WriteLine("=== [Publisher] : DATAWRITER_DELETED"); // Stop the subscriber Msg stopMsg = new Msg(); stopMsg.userID = 4; stopMsg.message = "Lifecycle_4"; stopMsg.writerStates = "STOPPING_SUBSCRIBER"; Console.WriteLine("=== [Publisher] :"); Console.WriteLine(" userID : {0}", stopMsg.userID); Console.WriteLine(" Message : \"{0}\"", stopMsg.message); Console.WriteLine(" writerStates : \"{0}\"", stopMsg.writerStates); status = LifecycleWriter_stopper.Write(stopMsg, InstanceHandle.Nil); ErrorHandler.checkStatus(status, "MsDataWriter.Write"); Thread.Sleep(500); // Remove the DataWriter stopper mgr.deleteWriter(LifecycleWriter_stopper); // Remove the Publisher mgr.deletePublisher(); // Remove the Topic mgr.deleteTopic(); // Remove the participant mgr.deleteParticipant(); } }