Replace usb_device_hid_keyboard_struct_t with usb_keyboard_report_t

This commit is contained in:
László Monda
2016-03-02 19:48:01 +01:00
parent d3741b13dc
commit 93ff0f24e5
2 changed files with 18 additions and 7 deletions

View File

@@ -12,16 +12,21 @@
#include "usb_class_keyboard.h"
#include "usb_descriptor_configuration.h"
static usb_device_hid_keyboard_struct_t UsbKeyboardDevice;
static usb_keyboard_report_t UsbKeyboardReport;
static usb_status_t UsbKeyboardAction(void)
{
UsbKeyboardDevice.buffer[2] = 0x00U;
UsbKeyboardReport.modifiers = 0;
UsbKeyboardReport.reserved = 0;
for (uint8_t scancode_idx=0; scancode_idx<USB_KEYBOARD_MAX_KEYS; scancode_idx++) {
UsbKeyboardReport.scancodes[scancode_idx] = 0;
}
if (!GPIO_ReadPinInput(BOARD_SW3_GPIO, BOARD_SW3_GPIO_PIN)) {
UsbKeyboardDevice.buffer[2] = KEY_A;
UsbKeyboardReport.scancodes[0] = KEY_A;
}
return USB_DeviceHidSend(UsbCompositeDevice.keyboardHandle, USB_KEYBOARD_ENDPOINT_ID,
UsbKeyboardDevice.buffer, USB_KEYBOARD_REPORT_LENGTH);
(uint8_t*)&UsbKeyboardReport, USB_KEYBOARD_REPORT_LENGTH);
}
usb_status_t UsbKeyboardCallback(class_handle_t handle, uint32_t event, void *param)

View File

@@ -1,15 +1,21 @@
#ifndef __USB_DEVICE_HID_KEYBOARD_H__
#define __USB_DEVICE_HID_KEYBOARD_H__
// Includes:
#include "usb_descriptor_keyboard_report.h"
// Macros:
#define USB_KEYBOARD_REPORT_LENGTH (0x08U)
// Typedefs:
typedef struct _usb_device_hid_keyboard_struct {
uint8_t buffer[USB_KEYBOARD_REPORT_LENGTH];
} usb_device_hid_keyboard_struct_t;
typedef struct usb_keyboard_report {
uint8_t modifiers;
uint8_t reserved; // Always must be 0
uint8_t scancodes[USB_KEYBOARD_MAX_KEYS];
} __attribute__ ((packed)) usb_keyboard_report_t;
// Functions: