diff --git a/right/usb_interface_generic_hid.c b/right/usb_interface_generic_hid.c index 84bedd7..046fdc5 100644 --- a/right/usb_interface_generic_hid.c +++ b/right/usb_interface_generic_hid.c @@ -56,7 +56,7 @@ static usb_status_t UsbReceiveData() usb_status_t UsbGenericHidCallback(class_handle_t handle, uint32_t event, void *param) { usb_status_t error = kStatus_USB_Error; - uint8_t command; + uint8_t command, arg; switch (event) { case kUSB_DeviceHidEventSendResponse: @@ -64,13 +64,23 @@ usb_status_t UsbGenericHidCallback(class_handle_t handle, uint32_t event, void * case kUSB_DeviceHidEventRecvResponse: command = GenericHidBuffer[GenericHidBufferIndex][0]; + arg = GenericHidBuffer[GenericHidBufferIndex][1]; switch (command) { - case 0: - TEST_RED_ON(); - break; - case 1: - TEST_RED_OFF(); + case USB_COMMAND_JUMP_TO_BOOTLOADER: + break; + case USB_COMMAND_TEST_LED: + switch (arg) { + case 0: + TEST_RED_ON(); + break; + case 1: + TEST_RED_OFF(); + break; + default: + break; + } + case USB_COMMAND_LED_DRIVER: break; default: break; diff --git a/right/usb_interface_generic_hid.h b/right/usb_interface_generic_hid.h index daf10e4..003ef31 100644 --- a/right/usb_interface_generic_hid.h +++ b/right/usb_interface_generic_hid.h @@ -22,6 +22,10 @@ #define USB_GENERIC_HID_IN_BUFFER_LENGTH 64 #define USB_GENERIC_HID_OUT_BUFFER_LENGTH 64 + #define USB_COMMAND_JUMP_TO_BOOTLOADER 0 + #define USB_COMMAND_TEST_LED 1 + #define USB_COMMAND_LED_DRIVER 2 + // Variables: extern usb_device_class_struct_t UsbGenericHidClass;