public ZDO_END_DEVICE_ANNCE_IND(byte[] framedata) { SrcAddr = new ZToolAddress16(framedata[1], framedata[0]); NwkAddr = new ZToolAddress16(framedata[3], framedata[2]); IEEEAddr = new ZToolAddress64(BitConverter.ToInt64(framedata, 4)); Capabilities = framedata[12]; BuildPacket((ushort)ZToolCMD.ZDO_END_DEVICE_ANNCE_IND, framedata); }
public NeighborLqiListItemClass(long extendedPanID, ZToolAddress64 extendedAddress, ZToolAddress16 networkAddress, int flags, int joining, int depth, int rxLqi) { this.extendedPanID = extendedPanID; this.extendedAddress = extendedAddress; this.networkAddress = networkAddress; this.Reserved_Relationship_RxOnWhenIdle_DeviceType = flags; this.Reserved_PermitJoining = joining; this.depth = depth; this.rxLQI = rxLqi; }
public ZDO_TC_DEVICE_IND(byte[] framedata) { SrcAddr = new ZToolAddress16(framedata[1], framedata[0]); byte[] bytes = new byte[8]; for (int i = 0; i < 8; i++) { bytes[i] = framedata[9 - i]; } IeeeAddr = new ZToolAddress64(bytes); NwkAddr = new ZToolAddress16(framedata[11], framedata[10]); BuildPacket((ushort)ZToolCMD.ZDO_TC_DEVICE_IND, framedata); }
public ZDO_END_DEVICE_ANNCE(ZToolAddress16 num1, ZToolAddress64 num2, int capability_info1) { this.nwkAddr = num1; this.IEEEAddress = num2; this.Capabilities = capability_info1; byte[] framedata = new byte[11]; framedata[0] = this.nwkAddr.Lsb; framedata[1] = this.nwkAddr.Msb; byte[] bytes = this.IEEEAddress.Address; for (int i = 0; i < 8; i++) { framedata[i + 2] = bytes[7 - i]; } BuildPacket((ushort)ZToolCMD.ZDO_END_DEVICE_ANNCE, framedata); }
public ZDO_IEEE_ADDR_RSP(byte[] data) { Status = (PacketStatus)data[0]; IeeeAddr = new ZToolAddress64(BitConverter.ToInt64(data, 1)); NwkAddr = new ZToolAddress16(data[10], data[9]); StartIndex = data[11]; NumAssocDev = data[12]; AssocDevList = new List <ZToolAddress16>(); for (int i = 0; i < AssocDevList.Count; i++) { this.AssocDevList[i] = new ZToolAddress16(data[14 + (i * 2)], data[13 + (i * 2)]); } BuildPacket((ushort)ZToolCMD.ZDO_IEEE_ADDR_RSP, data); }
public ZDO_MGMT_LEAVE_REQ(ZToolAddress16 num1, ZToolAddress64 num2, byte flag1) { this.DstAddr = num1; this.DeviceAddress = num2; this.RemoveChildren_Rejoin = flag1; byte[] framedata = new byte[11]; framedata[0] = this.DstAddr.Lsb; framedata[1] = this.DstAddr.Msb; for (int i = 0; i < 8; i++) { framedata[2 + i] = this.DeviceAddress.Address[7 - i]; } framedata[10] = this.RemoveChildren_Rejoin; BuildPacket(new DoubleByte((ushort)ZToolCMD.ZDO_MGMT_LEAVE_REQ), framedata); }
public ZB_BIND_DEVICE(bool create, ushort commandId, ZToolAddress64 destination) { Create = create; CommandId = commandId; Destination = destination; byte[] framedata = new byte[11]; framedata[0] = create ? (byte)0x01 : (byte)0x00; framedata[1] = commandId.GetLSB(); framedata[2] = commandId.GetMSB(); byte[] dst = destination.Address; for (int i = 3; i < 8; i++) { framedata[i] = dst[i - 3]; } BuildPacket((ushort)ZToolCMD.ZB_BIND_DEVICE, framedata); }
public ZB_BIND_DEVICE(bool create, DoubleByte commandId, ZToolAddress64 destination) { Create = create; CommandId = commandId; Destination = destination; byte[] framedata = new byte[11]; framedata[0] = create ? (byte)0x01 : (byte)0x00; framedata[1] = commandId.Lsb; framedata[2] = commandId.Msb; byte[] dst = destination.Address; for (int i = 3; i < 8; i++) { framedata[i] = dst[i - 3]; } BuildPacket(new DoubleByte(ZToolCMD.ZB_BIND_DEVICE), framedata); }
public ZDO_BIND_REQ(ZToolAddress16 nwkDst, ZToolAddress64 ieeeSrc, byte epSrc, DoubleByte cluster, Address_Mode addressingMode, ZToolAddress64 ieeeDst, byte epDst) { byte[] framedata; if (addressingMode == Address_Mode.ADDRESS_64_BIT) { framedata = new byte[23]; } else { framedata = new byte[16]; } framedata[0] = nwkDst.Lsb; framedata[1] = nwkDst.Msb; byte[] bytes = ieeeSrc.Address; for (int i = 0; i < 8; i++) { framedata[i + 2] = (byte)(bytes[7 - i] & 0xFF); } framedata[10] = epSrc; framedata[11] = cluster.Lsb; framedata[12] = cluster.Msb; framedata[13] = (byte)addressingMode; bytes = ieeeDst.Address; if (addressingMode == Address_Mode.ADDRESS_64_BIT) { for (int i = 0; i < 8; i++) { framedata[i + 14] = (byte)(bytes[7 - i] & 0xFF); } framedata[22] = epDst; } else { framedata[14] = bytes[7]; framedata[15] = bytes[6]; } BuildPacket(new DoubleByte((ushort)ZToolCMD.ZDO_BIND_REQ), framedata); }
public ZDO_MGMT_LQI_RSP(byte[] framedata) { SrcAddress = new ZToolAddress16(framedata[1], framedata[0]); Status = framedata[2]; if (framedata.Length > 3) { NeighborLQIEntries = framedata[3]; StartIndex = framedata[4]; NeighborLQICount = framedata[5]; NeighborLqiList = new NeighborLqiListItemClass[framedata[5]]; int NOpt1; int NOpt2; int k = 0; byte[] bytes = new byte[8]; for (int z = 0; z < this.NeighborLqiList.Length; z++) { for (int j = 0; j < 8; j++) { bytes[7 - j] = (byte)framedata[6 + k + j];/// MSB><LSB? } long panId = ByteUtils.ConvertMultiByteToLong(bytes); for (int j = 0; j < 8; j++) { bytes[7 - j] = (byte)framedata[14 + k + j];/// MSB><LSB? } ZToolAddress64 ieeeAddr = new ZToolAddress64(bytes); ZToolAddress16 nwkAddr = new ZToolAddress16(framedata[23 + k], framedata[22 + k]);/// MSB><LSB? NOpt1 = framedata[24 + k]; NOpt2 = framedata[25 + k]; byte lqi = framedata[26 + k]; byte depth = framedata[27 + k]; NeighborLqiList[z] = new NeighborLqiListItemClass(panId, ieeeAddr, nwkAddr, NOpt1, NOpt2, lqi, depth); k += 22; } } BuildPacket((ushort)ZToolCMD.ZDO_MGMT_LQI_RSP, framedata); }
public ZDO_UNBIND_REQ(ZToolAddress16 nwkDst, ZToolAddress64 ieeeSrc, byte epSrc, ushort cluster, byte addressingMode, ZToolAddress64 ieeeDst, byte epDst) { byte[] framedata; if (addressingMode == 3) { framedata = new byte[23]; } else { framedata = new byte[16]; } framedata[0] = nwkDst.Lsb; framedata[1] = nwkDst.Msb; byte[] bytes = ieeeSrc.Address; for (int i = 0; i < 8; i++) { framedata[i + 2] = (byte)(bytes[7 - i] & 0xFF); } framedata[10] = epSrc; framedata[11] = cluster.GetLSB(); framedata[12] = cluster.GetMSB(); framedata[13] = addressingMode; bytes = ieeeDst.Address; if (addressingMode == 3) { for (int i = 0; i < 8; i++) { framedata[i + 14] = (byte)(bytes[7 - i] & 0xFF); } framedata[22] = epDst; } else { framedata[14] = bytes[7]; framedata[15] = bytes[6]; } BuildPacket((ushort)ZToolCMD.ZDO_UNBIND_REQ, framedata); }