Exemple #1
0
        public void StructureSendAndReceive()
        {
            TestSt toSendSt;

            toSendSt.intval    = 99;
            toSendSt.floatval  = 98.7f;
            toSendSt.mojiretsu = "mogemoge!";
            toSendSt.intarray  = new int[4] {
                1, 2, 3, 4
            };


            using RTCLib.Comm.UdpBinarySender <TestSt> sender     = new UdpBinarySender <TestSt>("127.0.0.1", 30001);
            using RTCLib.Comm.UdpBinaryReceiver <TestSt> receiver = new UdpBinaryReceiver <TestSt>();
            receiver.Open(30001);

            TestSt receivedData = default;
            bool   received     = false;

            receiver.OnDataReceived += dataReceived =>
            {
                receivedData = dataReceived;
                received     = true;
            };

            // send

            sender.Send(toSendSt);

            // 1 sec wait
            for (int i = 0; i < 100; i++)
            {
                Thread.Sleep(10);
                if (received)
                {
                    break;
                }
            }

            if (received)
            {
                // check contents
                toSendSt.IsStructuralEqual(receivedData);
            }
            else
            {
                Assert.True(false);
            }
            sender.Close();
            receiver.Close();
        }
        public void Interop_St2Bytes()
        {
            TestSt origin = new TestSt();

            origin.floatval  = 1.0f;
            origin.intval    = 1;
            origin.intarray  = new[] { 1, 2, 3, 4 };
            origin.mojiretsu = "hoge!";

            byte[] data = Interop.StructureToBytes(origin);
            TestSt copy = Interop.BytesToStructure <TestSt>(data);

            origin.IsStructuralEqual(copy);
        }