예제 #1
0
        public void SendSimpleDataStream()
        {
            ulong  broadcast    = 0x000000000000FFFF;
            ulong  long_address = 0x0013A20041B764AD;
            string text         = "";

            for (int i = 0; i < CONSTANTS.MAX_FRAME_DATA; i++)
            {
                text += "x";
            } // looks like 84 is the magic number so that the packets dont fragment; should probably start making a transmission/packet/etc class that can hold arrays of these 84 byte transmissions
            byte[] data_bytes = Encoding.UTF8.GetBytes(text);
            byte[] bytes      = factory.CreateSendDataFrame(long_address, data_bytes, 1);
            using (SerialRelay relay = new SerialRelay("COM4", this.byteReceiver))
            {
                relay.SendBytes(bytes);
                EmissionDescriptor             em       = this.byteReceiver.WaitForEmission(EmissionTypes.ExtendedTransmitStatus, 1000);
                ExtendedTransmitStatusEmission response = new ExtendedTransmitStatusEmission();
                response.Unpack(em.Data);
                Console.WriteLine("ID: {0}; Address: 0x{1:X4}; Result: 0x{2:X2}",
                                  response.FrameID, response.Address, response.DeliveryStatus);
                bytes = factory.CreateSendDataFrame(response.Address, data_bytes, 1);
                for (int i = 0; i < 10; i++)
                {
                    relay.SendBytes(bytes);
                    em = this.byteReceiver.WaitForEmission(EmissionTypes.ExtendedTransmitStatus, 1000);
                    response.Unpack(em.Data);
                    Console.WriteLine("ID: {0}; Address: 0x{1:X4}; Result: 0x{2:X2}",
                                      response.FrameID, response.Address, response.DeliveryStatus);
                    Assert.AreEqual(0, response.DeliveryStatus);
                    //System.Threading.Thread.Sleep(10);
                }
            }
        }
예제 #2
0
 public void SetName()
 {
     byte[] bytes = factory.CreateSetNameFrame("XBee A");
     using (SerialRelay relay = new SerialRelay("COM4", this.byteReceiver))
     {
         relay.SendBytes(bytes);
     }
 }
예제 #3
0
        public void SetNetworkSettings()
        {
            string          port     = "COM4";
            NetworkSettings settings = new NetworkSettings();

            settings.Role = DeviceRoles.Create;
            byte[] bytes = factory.CreateSetNetworkSettingsFrame(settings);
            using (SerialRelay relay = new SerialRelay(port, this.byteReceiver))
            {
                relay.SendBytes(bytes);
            }
        }
예제 #4
0
        public void SendSimpleData()
        {
            ulong  broadcast = 0x000000000000FFFF;
            ulong  address   = 0x0013A20041B764AD;
            string text      = "xxxxx";

            byte[] data_bytes = Encoding.UTF8.GetBytes(text);
            byte[] bytes      = factory.CreateSendDataFrame(address, data_bytes, 1);
            using (SerialRelay relay = new SerialRelay("COM4", this.byteReceiver))
            {
                relay.SendBytes(bytes);
                EmissionDescriptor             em       = this.byteReceiver.WaitForEmission(EmissionTypes.ExtendedTransmitStatus, 1000);
                ExtendedTransmitStatusEmission response = new ExtendedTransmitStatusEmission();
                response.Unpack(em.Data);
                Console.WriteLine("Frame ID: {0}; Result: {1}",
                                  response.FrameID, response.DeliveryStatus);
                Assert.AreEqual(0, response.DeliveryStatus);
            }
        }