public static byte[] ConstructRawCommand(this Enums.RAW_COMMAND_ID CommandID, byte[] payload = null) { byte[] rt = null; switch (CommandID) { case Enums.RAW_COMMAND_ID.RAW_COMMAND_GET_PROTOCOL_VERSION: rt = new byte[3] { 0x00, Enums.RAW_COMMAND_ID.RAW_COMMAND_GET_PROTOCOL_VERSION.ToByte(), 0x00 }; break; case Enums.RAW_COMMAND_ID.RAW_COMMAND_ENABLE_KEY_EVENT_REPORT: rt = new byte[3] { 0x00, Enums.RAW_COMMAND_ID.RAW_COMMAND_ENABLE_KEY_EVENT_REPORT.ToByte(), 0x00 }; break; case Enums.RAW_COMMAND_ID.RAW_COMMAND_DISABLE_KEY_EVENT_REPORT: rt = new byte[3] { 0x00, Enums.RAW_COMMAND_ID.RAW_COMMAND_DISABLE_KEY_EVENT_REPORT.ToByte(), 0x00 }; break; case Enums.RAW_COMMAND_ID.RAW_COMMAND_CHANGE_COLOR: if (payload.Length < 3) { rt = null; } else { rt = new byte[6] { 0x00, Enums.RAW_COMMAND_ID.RAW_COMMAND_CHANGE_COLOR.ToByte(), 0x03, payload[0], payload[1], payload[2] }; } break; case Enums.RAW_COMMAND_ID.RAW_COMMAND_HEARTBEAT_PING: rt = new byte[4] { 0x00, Enums.RAW_COMMAND_ID.RAW_COMMAND_HEARTBEAT_PING.ToByte(), 0x01, Program.HeartBeatCount }; break; default: break; } return(rt); }
public static byte ToByte(this Enums.RAW_COMMAND_ID id) { return((byte)id); }