18 const uint8_t constBufLen = 64;
19 uint8_t buf[constBufLen];
33 uint8_t
HID::SetReport(uint8_t ep, uint8_t iface, uint8_t report_type, uint8_t report_id, uint16_t nbytes, uint8_t* dataptr) {
34 return (
pUsb->
ctrlReq(
bAddress, ep,
bmREQ_HIDOUT,
HID_REQUEST_SET_REPORT, report_id, report_type, iface, nbytes, nbytes, dataptr, NULL));
37 uint8_t
HID::GetReport(uint8_t ep, uint8_t iface, uint8_t report_type, uint8_t report_id, uint16_t nbytes, uint8_t* dataptr) {
38 return (
pUsb->
ctrlReq(
bAddress, ep,
bmREQ_HIDIN,
HID_REQUEST_GET_REPORT, report_id, report_type, iface, nbytes, nbytes, dataptr, NULL));
41 uint8_t
HID::GetIdle(uint8_t iface, uint8_t reportID, uint8_t* dataptr) {
42 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HIDIN,
HID_REQUEST_GET_IDLE, reportID, 0, iface, 0x0001, 0x0001, dataptr, NULL));
45 uint8_t
HID::SetIdle(uint8_t iface, uint8_t reportID, uint8_t duration) {
46 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HIDOUT,
HID_REQUEST_SET_IDLE, reportID, duration, iface, 0x0000, 0x0000, NULL, NULL));
50 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HIDOUT,
HID_REQUEST_SET_PROTOCOL, protocol, 0x00, iface, 0x0000, 0x0000, NULL, NULL));
54 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HIDIN,
HID_REQUEST_GET_PROTOCOL, 0x00, 0x00, iface, 0x0001, 0x0001, dataptr, NULL));
58 Notify(PSTR(
"Endpoint descriptor:"), 0x80);
59 Notify(PSTR(
"\r\nLength:\t\t"), 0x80);
60 D_PrintHex<uint8_t > (ep_ptr->
bLength, 0x80);
61 Notify(PSTR(
"\r\nType:\t\t"), 0x80);
63 Notify(PSTR(
"\r\nAddress:\t"), 0x80);
65 Notify(PSTR(
"\r\nAttributes:\t"), 0x80);
67 Notify(PSTR(
"\r\nMaxPktSize:\t"), 0x80);
69 Notify(PSTR(
"\r\nPoll Intrv:\t"), 0x80);
70 D_PrintHex<uint8_t > (ep_ptr->
bInterval, 0x80);
74 Notify(PSTR(
"\r\n\r\nHID Descriptor:\r\n"), 0x80);
75 Notify(PSTR(
"bDescLength:\t\t"), 0x80);
76 D_PrintHex<uint8_t > (pDesc->
bLength, 0x80);
78 Notify(PSTR(
"\r\nbDescriptorType:\t"), 0x80);
81 Notify(PSTR(
"\r\nbcdHID:\t\t\t"), 0x80);
82 D_PrintHex<uint16_t > (pDesc->
bcdHID, 0x80);
84 Notify(PSTR(
"\r\nbCountryCode:\t\t"), 0x80);
87 Notify(PSTR(
"\r\nbNumDescriptors:\t"), 0x80);
90 Notify(PSTR(
"\r\nbDescrType:\t\t"), 0x80);
91 D_PrintHex<uint8_t > (pDesc->
bDescrType, 0x80);
93 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 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_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