public void TestReceive() { ZToolPacket data = GetPacket( "FE 32 45 B1 00 00 00 02 00 02 14 D4 F1 02 00 4B 12 00 0B 88 DC 00 01 88 17 00 8F 22 15 02 01 3B 14 D4 F1 02 00 4B 12 00 EC A1 A5 01 00 8D 15 00 35 38 15 02 01 58 B5"); ZigBeeApsFrame apsFrame = ZdoManagementLqi.Create(data); Assert.Equal(0x0000, apsFrame.SourceAddress); Assert.Equal(0, apsFrame.Profile); Assert.Equal(0, apsFrame.DestinationEndpoint); Assert.Equal(GetPacketData( "00 00 02 00 02 14 D4 F1 02 00 4B 12 00 0B 88 DC 00 01 88 17 00 8F 22 15 02 01 3B 14 D4 F1 02 00 4B 12 00 EC A1 A5 01 00 8D 15 00 35 38 15 02 01 58"), apsFrame.Payload); }
public void ReceivedAsynchronousCommand(ZToolPacket packet) { switch (packet.Subsystem) { case ZToolPacket.CommandSubsystem.AF: return; case ZToolPacket.CommandSubsystem.ZDO: break; default: break; } ZigBeeApsFrame apsFrame = null; switch ((ZToolCMD)packet.CMD.Value) { case ZToolCMD.ZDO_MSG_CB_INCOMING: apsFrame = ZdoCallbackIncoming.Create(packet); break; case ZToolCMD.ZDO_IEEE_ADDR_RSP: apsFrame = ZdoIeeeAddress.Create(packet); break; case ZToolCMD.ZDO_END_DEVICE_ANNCE_IND: apsFrame = ZdoEndDeviceAnnounce.Create(packet); break; case ZToolCMD.ZDO_NODE_DESC_RSP: apsFrame = ZdoNodeDescriptor.Create(packet); break; case ZToolCMD.ZDO_POWER_DESC_RSP: apsFrame = ZdoPowerDescriptor.Create(packet); break; case ZToolCMD.ZDO_ACTIVE_EP_RSP: apsFrame = ZdoActiveEndpoint.Create(packet); break; case ZToolCMD.ZDO_SIMPLE_DESC_RSP: apsFrame = ZdoSimpleDescriptor.Create(packet); break; case ZToolCMD.ZDO_MGMT_LQI_RSP: apsFrame = ZdoManagementLqi.Create(packet); break; case ZToolCMD.ZDO_MGMT_RTG_RSP: apsFrame = ZdoManagementRouting.Create(packet); break; case ZToolCMD.ZDO_MGMT_LEAVE_RSP: apsFrame = ZdoManagementLeave.Create(packet); break; default: _logger.Debug($"Unhandled SerialPacket type {packet.CMD}"); break; } if (apsFrame != null) { _ZigBeeNetworkReceive.ReceiveCommand(apsFrame); return; } }