Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 6
0
        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();
        }
Exemplo n.º 8
0
        // 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;
        }