public bool SendX10Packet(byte house, byte unit, byte command) { int count = 0; lock (_syncRoot) { byte[] packet = { (byte)wrPacketTypes.X10StandardRequest, house, unit, command }; byte[] reverseBytes = packet.ReverseBytes(); while (!_sendReceiveRole.Send(reverseBytes)) { count++; Task.Delay(250).Wait(); if (count > 20) { break; } } _logger.Debug("SendX10Packet " + (count <= 20 ? "succeeded!" : "failed!") + "Count: " + count + " { " + reverseBytes[0] + ", " + reverseBytes[1] + ", " + reverseBytes[2] + " }"); } return(count <= 20); }
public void SenderReceiverTest() { SenderReceiverRole senderReceiver = new SenderReceiverRole(); senderReceiver.AttachRadio(_radio); senderReceiver.DataArrived += DataArrived;; senderReceiver.SendAddress = _sendAddress; senderReceiver.ReceiveAddress = _receiveAddress; senderReceiver.Start(); int count = 0; while (true) { string content = "Payload, Count=" + (count++); lock (_syncRoot) { Debug.WriteLine(senderReceiver.Send(Encoding.UTF8.GetBytes(content).ReverseBytes(), 5000) ? "Data sent success." : "Failed to send data. " + (senderReceiver.MaxRetries ? "MaxRetries" : "Timeout")); } Task.Delay(1000).Wait(); } }