public void SendData() { string text = ""; int expected_byte_count = CONSTANTS.MAX_FRAME_DATA; for (int i = 0; i < expected_byte_count; i++) { text += "x"; } byte[] data_bytes = Encoding.UTF8.GetBytes(text); IEmissionProcessor receiver = new ApiFrameEmissionProcessor(); IRelay relay = new SerialRelay("COM4", receiver); using (RelayController ctrl_send = new RelayController(relay, receiver, transmissionFactory)) { ulong long_address = 0x0013A20041B764AD; ushort short_address = ctrl_send.Discover(long_address); for (int i = 0; i < 1000; i++) { // send ACTUAL data try { ctrl_send.SendRawBytes(short_address, data_bytes); } catch (Exception e) { Console.WriteLine($"Failed at iteration {i} after {CONSTANTS.MAX_FRAME_DATA * i} bytes"); break; } } } }
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); } } }
public void SetName() { byte[] bytes = factory.CreateSetNameFrame("XBee A"); using (SerialRelay relay = new SerialRelay("COM4", this.byteReceiver)) { relay.SendBytes(bytes); } }
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); } }
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); } }
public void OpenAndClose() { using (SerialRelay relay = new SerialRelay("COM4", this.byteReceiver)) { } }