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(); }
public void dispose() { // clean up OwnershipDataWriter.Dispose(msft, msftHandle); OwnershipDataWriter.UnregisterInstance(msft, msftHandle); ReturnCode status = mgr.getPublisher().DeleteDataWriter(OwnershipDataWriter); ErrorHandler.checkStatus(status, "Publisher.DeleteDataWriter"); mgr.deletePublisher(); mgr.deleteTopic(); mgr.deleteParticipant(); }
static void Main(string[] args) { DDSEntityManager mgr = new DDSEntityManager("ContentFilteredTopic"); String partitionName = "ContentFilteredTopic example"; // create Domain Participant mgr.createParticipant(partitionName); mgr.setAutoDispose(true); // create Type StockTypeSupport msgTS = new StockTypeSupport(); mgr.registerType(msgTS); // create Topic mgr.createTopic("StockTrackerExclusive"); // create Publisher mgr.createPublisher(); // create DataWriter mgr.createWriter(); // Publish Events IDataWriter dwriter = mgr.getWriter(); StockDataWriter ContentFilteredTopicDataWriter = dwriter as StockDataWriter; Stock geStock = new Stock(); Stock msftStock = new Stock(); ReturnCode writeStatus; geStock.ticker = "GE"; geStock.price = 12.00f; msftStock.ticker = "MSFT"; msftStock.price = 25.00f; InstanceHandle geHandle = ContentFilteredTopicDataWriter.RegisterInstance(geStock); InstanceHandle msHandle = ContentFilteredTopicDataWriter.RegisterInstance(msftStock); for (int i = 0; i < 20; i++) { geStock.price += 0.5f; msftStock.price += 1.5f; Console.WriteLine("=== [ContentFilteredTopicDataPublisher] sends 2 stockQuotes : (GE, {0}) (MSFT, {1})", geStock.price, msftStock.price); writeStatus = ContentFilteredTopicDataWriter.Write(geStock, geHandle); ErrorHandler.checkStatus(writeStatus, "StockDataWriter.Write"); writeStatus = ContentFilteredTopicDataWriter.Write(msftStock, msHandle); ErrorHandler.checkStatus(writeStatus, "StockDataWriter.Write"); Thread.Sleep(100); } geStock.price = -1.0f; msftStock.price = -1.0f; writeStatus = ContentFilteredTopicDataWriter.Write(geStock, geHandle); ErrorHandler.checkStatus(writeStatus, "StockDataWriter.Write GE"); writeStatus = ContentFilteredTopicDataWriter.Write(msftStock, msHandle); ErrorHandler.checkStatus(writeStatus, "StockDataWriter.Write MSFT"); Console.WriteLine("Market Closed"); ContentFilteredTopicDataWriter.UnregisterInstance(geStock, geHandle); ContentFilteredTopicDataWriter.UnregisterInstance(msftStock, msHandle); mgr.getPublisher().DeleteDataWriter(ContentFilteredTopicDataWriter); 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(); } }
static void Main(string[] args) { DDSEntityManager mgr = new DDSEntityManager("QueryCondition"); String partitionName = "QueryCondition example"; // create Domain Participant mgr.createParticipant(partitionName); // create Type StockTypeSupport msgTS = new StockTypeSupport(); mgr.registerType(msgTS); // create Topic mgr.createTopic("StockTrackerExclusive"); // create Publisher mgr.createPublisher(); // create DataWriter mgr.createWriter(); // Publish Events IDataWriter dwriter = mgr.getWriter(); StockDataWriter QueryConditionDataWriter = dwriter as StockDataWriter; Stock geStock = new Stock(); Stock msftStock = new Stock(); ReturnCode writeStatus; geStock.ticker = "GE"; geStock.price = 12.00f; msftStock.ticker = "MSFT"; msftStock.price = 25.00f; // Register Instances InstanceHandle geHandle = QueryConditionDataWriter.RegisterInstance(geStock); ErrorHandler.checkHandle(geHandle, "DataWriter.RegisterInstance (GE)"); InstanceHandle msHandle = QueryConditionDataWriter.RegisterInstance(msftStock); ErrorHandler.checkHandle(msHandle, "DataWriter.RegisterInstance (MSFT)"); for (int i = 0; i < 20; i++) { geStock.price += 0.5f; msftStock.price += 1.5f; writeStatus = QueryConditionDataWriter.Write(geStock, InstanceHandle.Nil); ErrorHandler.checkStatus(writeStatus, "StockDataWriter.Write"); writeStatus = QueryConditionDataWriter.Write(msftStock, InstanceHandle.Nil); ErrorHandler.checkStatus(writeStatus, "StockDataWriter.Write"); Thread.Sleep(100); Console.WriteLine("GE : {0} MSFT {1}", String.Format("{0:0.#}", geStock.price), String.Format("{0:0.#}", msftStock.price)); } geStock.price = -1.0f; msftStock.price = -1.0f; // Write samples writeStatus = QueryConditionDataWriter.Write(geStock, InstanceHandle.Nil); ErrorHandler.checkStatus(writeStatus, "StockDataWriter.Write (GE)"); writeStatus = QueryConditionDataWriter.Write(msftStock, InstanceHandle.Nil); ErrorHandler.checkStatus(writeStatus, "StockDataWriter.Write (MS)"); // Dispose Instances writeStatus = QueryConditionDataWriter.Dispose(geStock, geHandle); ErrorHandler.checkStatus(writeStatus, "StockDataWriter.Dispose (GE)"); writeStatus = QueryConditionDataWriter.Dispose(msftStock, msHandle); ErrorHandler.checkStatus(writeStatus, "StockDataWriter.Dispose (MS)"); // Unregister Instances writeStatus = QueryConditionDataWriter.UnregisterInstance(geStock, geHandle); ErrorHandler.checkStatus(writeStatus, "StockDataWriter.UnregisterInstance (GE)"); writeStatus = QueryConditionDataWriter.UnregisterInstance(msftStock, msHandle); ErrorHandler.checkStatus(writeStatus, "StockDataWriter.UnregisterInstance(MS)"); // Clean up mgr.getPublisher().DeleteDataWriter(QueryConditionDataWriter); 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; }