示例#1
0
        /// <summary>
        /// Notify any transaction listeners when we receive a response.
        /// </summary>
        /// <param name="response">The <see cref="IXBeeEvent"/> data received</param>
        /// <returns>true if the response was processed</returns>
        private bool NotifyResponseReceived(IXBeeResponse response)
        {
            bool processed = false;

            Log.Debug($"RX XBEE: {response.ToString()}");
            lock (_transactionListeners)
            {
                foreach (IXBeeListener listener in _transactionListeners)
                {
                    try
                    {
                        if (listener.TransactionEvent(response))
                        {
                            processed = true;
                        }
                    }
                    catch (Exception e)
                    {
                        Log.Debug("Exception processing XBee frame: {}: ", response, e);
                    }
                }
            }

            return(processed);
        }
        public void TestGetResponse2()
        {
            int[]         data  = GetPacketData("00 05 88 10 4F 49 02 CD");
            IXBeeResponse frame = XBeeResponseFactory.GetXBeeFrame(data);

            Assert.True(frame is XBeePanIdResponse);
            _output.WriteLine(frame.ToString());

            XBeePanIdResponse responseEvent = (XBeePanIdResponse)frame;

            Assert.Equal(CommandStatus.INVALID_COMMAND, responseEvent.GetCommandStatus());
        }
        public void TestGetResponse1()
        {
            int[]         data  = GetPacketData("00 07 8B 8F F7 7B 00 00 40 33");
            IXBeeResponse frame = XBeeResponseFactory.GetXBeeFrame(data);

            Assert.True(frame is XBeeTransmitStatusResponse);
            _output.WriteLine(frame.ToString());

            XBeeTransmitStatusResponse responseEvent = (XBeeTransmitStatusResponse)frame;

            Assert.Equal(143, responseEvent.GetFrameId());
            Assert.Equal(0, responseEvent.GetTransmitRetryCount());
            Assert.Equal(DeliveryStatus.SUCCESS, responseEvent.GetDeliveryStatus());
            Assert.Equal(DiscoveryStatus.EXTENDED_TIMEOUT_DISCOVERY, responseEvent.GetDiscoveryStatus());
        }