diff --git a/right/src/usb_protocol_handler.c b/right/src/usb_protocol_handler.c index 8099224..c0a1a92 100644 --- a/right/src/usb_protocol_handler.c +++ b/right/src/usb_protocol_handler.c @@ -1,26 +1,60 @@ #include "usb_protocol_handler.h" #include "test_led.h" +void GetProtocolVersion(); +void JumpToBootloader(); +void GetSetTestLed(); +void WriteLedDriver(); +void ReadLedDriver(); + void UsbProtocolHandler() { uint8_t command = GenericHidInBuffer[0]; - uint8_t arg = GenericHidInBuffer[1]; - switch (command) { + case USB_COMMAND_GET_PROTOCOL_VERSION: + GetProtocolVersion(); + break; case USB_COMMAND_JUMP_TO_BOOTLOADER: + JumpToBootloader(); break; case USB_COMMAND_TEST_LED: - switch (arg) { - case 0: - TEST_RED_ON(); - break; - case 1: - TEST_RED_OFF(); - break; - } - case USB_COMMAND_LED_DRIVER: + GetSetTestLed(); + break; + case USB_COMMAND_WRITE_LED_DRIVER: + WriteLedDriver(); + break; + case USB_COMMAND_READ_LED_DRIVER: + ReadLedDriver(); break; default: break; } } + +void GetProtocolVersion() { + GenericHidOutBuffer[1] = 1; +} + +void JumpToBootloader() { +} + +void GetSetTestLed() +{ + uint8_t arg = GenericHidInBuffer[1]; + switch (arg) { + case 0: + TEST_RED_ON(); + break; + case 1: + TEST_RED_OFF(); + break; + } +} + +void WriteLedDriver() +{ +} + +void ReadLedDriver() +{ +} diff --git a/right/src/usb_protocol_handler.h b/right/src/usb_protocol_handler.h index 4aa292e..7876ac1 100644 --- a/right/src/usb_protocol_handler.h +++ b/right/src/usb_protocol_handler.h @@ -7,9 +7,11 @@ // Macros: - #define USB_COMMAND_JUMP_TO_BOOTLOADER 0 - #define USB_COMMAND_TEST_LED 1 - #define USB_COMMAND_LED_DRIVER 2 + #define USB_COMMAND_GET_PROTOCOL_VERSION 0 + #define USB_COMMAND_JUMP_TO_BOOTLOADER 1 + #define USB_COMMAND_TEST_LED 2 + #define USB_COMMAND_WRITE_LED_DRIVER 3 + #define USB_COMMAND_READ_LED_DRIVER 4 // Functions: