public static void AddToArray(this XCMPOpCode opcode, byte[] array, int startOffset) { UInt16 intval = (UInt16)opcode; byte[] bytes = BitConverter.GetBytes(intval); if (BitConverter.IsLittleEndian) { Array.Reverse(bytes); } Array.Copy(bytes, 0, array, startOffset, 2); }
public static XCMPPacket Decode(byte[] data) { XCMPOpCode opcode = (XCMPOpCode)(data[0] << 8 | data[1]); switch (opcode) { case XCMPOpCode.DeviceinitStatusBroadcast: return(new DeviceInitStatusBroadcast(data)); case XCMPOpCode.RadioStatusReply: return(new RadioStatusReply(data)); case XCMPOpCode.VersionInfoReply: return(new VersionInfoReply(data)); case XCMPOpCode.AlarmStatusReply: return(new AlarmStatusReply(data)); default: return(new XCMPPacket(data)); } }
public XCMPPacket(byte[] data) { this.opcode = (XCMPOpCode)(data[0] << 8 | data[1]); this.data = data.Skip(2).ToArray(); }
public XCMPPacket(XCMPOpCode opCode) { this.opcode = opCode; this.data = new byte[0]; }