Remove usb_device_generic_hid_struct_t in favor of a local buffer and buffer index variable.

This commit is contained in:
László Monda
2016-03-02 20:26:06 +01:00
parent d6d15ec884
commit b3867fe6de
2 changed files with 6 additions and 12 deletions
+6 -5
View File
@@ -11,12 +11,13 @@
#include "usb_descriptor_configuration.h" #include "usb_descriptor_configuration.h"
#include "composite.h" #include "composite.h"
static usb_device_generic_hid_struct_t UsbGenericHidDevice; static uint8_t GenericHidBuffer[2][USB_GENERIC_HID_IN_BUFFER_LENGTH];
static uint8_t GenericHidBufferIndex;
static usb_status_t UsbReceiveData() static usb_status_t UsbReceiveData()
{ {
return USB_DeviceHidRecv(UsbCompositeDevice.genericHidHandle, USB_GENERIC_HID_ENDPOINT_OUT_ID, return USB_DeviceHidRecv(UsbCompositeDevice.genericHidHandle, USB_GENERIC_HID_ENDPOINT_OUT_ID,
(uint8_t *)&UsbGenericHidDevice.buffer[UsbGenericHidDevice.bufferIndex][0], &GenericHidBuffer[GenericHidBufferIndex][0],
USB_GENERIC_HID_OUT_BUFFER_LENGTH); USB_GENERIC_HID_OUT_BUFFER_LENGTH);
} }
@@ -32,7 +33,7 @@ usb_status_t UsbGenericHidCallback(class_handle_t handle, uint32_t event, void *
GPIO_SetPinsOutput(BOARD_LED_GREEN_GPIO, 1U << BOARD_LED_GREEN_GPIO_PIN); GPIO_SetPinsOutput(BOARD_LED_GREEN_GPIO, 1U << BOARD_LED_GREEN_GPIO_PIN);
GPIO_SetPinsOutput(BOARD_LED_BLUE_GPIO, 1U << BOARD_LED_BLUE_GPIO_PIN); GPIO_SetPinsOutput(BOARD_LED_BLUE_GPIO, 1U << BOARD_LED_BLUE_GPIO_PIN);
uint8_t command = (uint8_t)UsbGenericHidDevice.buffer[UsbGenericHidDevice.bufferIndex][0]; uint8_t command = GenericHidBuffer[GenericHidBufferIndex][0];
switch (command) { switch (command) {
case 'r': case 'r':
@@ -47,9 +48,9 @@ usb_status_t UsbGenericHidCallback(class_handle_t handle, uint32_t event, void *
} }
USB_DeviceHidSend(UsbCompositeDevice.genericHidHandle, USB_GENERIC_HID_ENDPOINT_IN_ID, USB_DeviceHidSend(UsbCompositeDevice.genericHidHandle, USB_GENERIC_HID_ENDPOINT_IN_ID,
(uint8_t *)&UsbGenericHidDevice.buffer[UsbGenericHidDevice.bufferIndex][0], &GenericHidBuffer[GenericHidBufferIndex][0],
USB_GENERIC_HID_OUT_BUFFER_LENGTH); USB_GENERIC_HID_OUT_BUFFER_LENGTH);
UsbGenericHidDevice.bufferIndex ^= 1U; GenericHidBufferIndex ^= 1U;
return UsbReceiveData(); return UsbReceiveData();
break; break;
case kUSB_DeviceHidEventGetReport: case kUSB_DeviceHidEventGetReport:
-7
View File
@@ -6,13 +6,6 @@
#define USB_GENERIC_HID_IN_BUFFER_LENGTH (64U) #define USB_GENERIC_HID_IN_BUFFER_LENGTH (64U)
#define USB_GENERIC_HID_OUT_BUFFER_LENGTH (64U) #define USB_GENERIC_HID_OUT_BUFFER_LENGTH (64U)
// Typedefs:
typedef struct _usb_device_generic_hid_struct {
uint32_t buffer[2][USB_GENERIC_HID_IN_BUFFER_LENGTH >> 2];
uint8_t bufferIndex;
} usb_device_generic_hid_struct_t;
// Functions: // Functions:
extern usb_status_t UsbGenericHidCallback(class_handle_t handle, uint32_t event, void *param); extern usb_status_t UsbGenericHidCallback(class_handle_t handle, uint32_t event, void *param);