Exemple #1
0
        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();
            }
        }