35 const uint8_t constBufLen = 64;
36 uint8_t buf[constBufLen];
50 uint8_t
HID::SetReport(uint8_t ep, uint8_t iface, uint8_t report_type, uint8_t report_id, uint16_t nbytes, uint8_t* dataptr) {
51 return (
pUsb->
ctrlReq(
bAddress, ep,
bmREQ_HID_OUT,
HID_REQUEST_SET_REPORT, report_id, report_type, iface, nbytes, nbytes, dataptr, NULL));
54 uint8_t
HID::GetReport(uint8_t ep, uint8_t iface, uint8_t report_type, uint8_t report_id, uint16_t nbytes, uint8_t* dataptr) {
55 return (
pUsb->
ctrlReq(
bAddress, ep,
bmREQ_HID_IN,
HID_REQUEST_GET_REPORT, report_id, report_type, iface, nbytes, nbytes, dataptr, NULL));
58 uint8_t
HID::GetIdle(uint8_t iface, uint8_t reportID, uint8_t* dataptr) {
59 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HID_IN,
HID_REQUEST_GET_IDLE, reportID, 0, iface, 0x0001, 0x0001, dataptr, NULL));
62 uint8_t
HID::SetIdle(uint8_t iface, uint8_t reportID, uint8_t duration) {
63 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HID_OUT,
HID_REQUEST_SET_IDLE, reportID, duration, iface, 0x0000, 0x0000, NULL, NULL));
67 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HID_OUT,
HID_REQUEST_SET_PROTOCOL, protocol, 0x00, iface, 0x0000, 0x0000, NULL, NULL));
71 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HID_IN,
HID_REQUEST_GET_PROTOCOL, 0x00, 0x00, iface, 0x0001, 0x0001, dataptr, NULL));
77 D_PrintHex<uint8_t > (ep_ptr->
bLength, 0x80);
87 D_PrintHex<uint8_t > (ep_ptr->
bInterval, 0x80);
91 Notify(
PSTR(
"\r\n\r\nHID Descriptor:\r\n"), 0x80);
93 D_PrintHex<uint8_t > (pDesc->
bLength, 0x80);
99 D_PrintHex<uint16_t > (pDesc->
bcdHID, 0x80);
108 D_PrintHex<uint8_t > (pDesc->
bDescrType, 0x80);
110 Notify(
PSTR(
"\r\nwDescriptorLength:\t"), 0x80);
#define HID_DESCRIPTOR_REPORT
#define HID_REQUEST_GET_IDLE
uint8_t GetIdle(uint8_t iface, uint8_t reportID, uint8_t *dataptr)
uint8_t SetReport(uint8_t ep, uint8_t iface, uint8_t report_type, uint8_t report_id, uint16_t nbytes, uint8_t *dataptr)
#define HID_REQUEST_SET_REPORT
uint8_t GetReport(uint8_t ep, uint8_t iface, uint8_t report_type, uint8_t report_id, uint16_t nbytes, uint8_t *dataptr)
#define USB_REQUEST_GET_DESCRIPTOR
#define HID_REQUEST_SET_IDLE
uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)
uint8_t GetProtocol(uint8_t iface, uint8_t *dataptr)
uint8_t SetProtocol(uint8_t iface, uint8_t protocol)
uint8_t GetReportDescr(uint16_t wIndex, USBReadParser *parser=NULL)
uint16_t wDescriptorLength
#define HID_REQUEST_SET_PROTOCOL
#define HID_REQUEST_GET_REPORT
void PrintHidDescriptor(const USB_HID_DESCRIPTOR *pDesc)
uint8_t SetIdle(uint8_t iface, uint8_t reportID, uint8_t duration)
void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)
#define HID_REQUEST_GET_PROTOCOL