6 const uint8_t constBufLen = 64;
7 uint8_t buf[constBufLen];
20 uint8_t
HID::SetReport(uint8_t ep, uint8_t iface, uint8_t report_type, uint8_t report_id, uint16_t nbytes, uint8_t* dataptr) {
21 return (
pUsb->
ctrlReq(
bAddress, ep,
bmREQ_HIDOUT,
HID_REQUEST_SET_REPORT, report_id, report_type, iface, nbytes, nbytes, dataptr, NULL));
24 uint8_t
HID::GetReport(uint8_t ep, uint8_t iface, uint8_t report_type, uint8_t report_id, uint16_t nbytes, uint8_t* dataptr) {
25 return (
pUsb->
ctrlReq(
bAddress, ep,
bmREQ_HIDIN,
HID_REQUEST_GET_REPORT, report_id, report_type, iface, nbytes, nbytes, dataptr, NULL));
28 uint8_t
HID::GetIdle(uint8_t iface, uint8_t reportID, uint8_t* dataptr) {
29 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HIDIN,
HID_REQUEST_GET_IDLE, reportID, 0, iface, 0x0001, 0x0001, dataptr, NULL));
32 uint8_t
HID::SetIdle(uint8_t iface, uint8_t reportID, uint8_t duration) {
33 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HIDOUT,
HID_REQUEST_SET_IDLE, reportID, duration, iface, 0x0000, 0x0000, NULL, NULL));
37 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HIDOUT,
HID_REQUEST_SET_PROTOCOL, protocol, 0x00, iface, 0x0000, 0x0000, NULL, NULL));
41 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HIDIN,
HID_REQUEST_GET_PROTOCOL, 0x00, 0x00, iface, 0x0001, 0x0001, dataptr, NULL));
45 Notify(PSTR(
"Endpoint descriptor:"), 0x80);
46 Notify(PSTR(
"\r\nLength:\t\t"), 0x80);
47 D_PrintHex<uint8_t > (ep_ptr->
bLength, 0x80);
48 Notify(PSTR(
"\r\nType:\t\t"), 0x80);
50 Notify(PSTR(
"\r\nAddress:\t"), 0x80);
52 Notify(PSTR(
"\r\nAttributes:\t"), 0x80);
54 Notify(PSTR(
"\r\nMaxPktSize:\t"), 0x80);
56 Notify(PSTR(
"\r\nPoll Intrv:\t"), 0x80);
57 D_PrintHex<uint8_t > (ep_ptr->
bInterval, 0x80);
61 Notify(PSTR(
"\r\n\r\nHID Descriptor:\r\n"), 0x80);
62 Notify(PSTR(
"bDescLength:\t\t"), 0x80);
63 D_PrintHex<uint8_t > (pDesc->
bLength, 0x80);
65 Notify(PSTR(
"\r\nbDescriptorType:\t"), 0x80);
68 Notify(PSTR(
"\r\nbcdHID:\t\t\t"), 0x80);
69 D_PrintHex<uint16_t > (pDesc->
bcdHID, 0x80);
71 Notify(PSTR(
"\r\nbCountryCode:\t\t"), 0x80);
74 Notify(PSTR(
"\r\nbNumDescriptors:\t"), 0x80);
77 Notify(PSTR(
"\r\nbDescrType:\t\t"), 0x80);
78 D_PrintHex<uint8_t > (pDesc->
bDescrType, 0x80);
80 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)
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 GetReportDescr(uint8_t ep, USBReadParser *parser=NULL)
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)
uint16_t wDescriptorLength
#define HID_REQUEST_SET_PROTOCOL
#define HID_REQUEST_SET_REPORT
#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