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_HIDOUT,
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_HIDIN,
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_HIDIN,
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_HIDOUT,
HID_REQUEST_SET_IDLE, reportID, duration, iface, 0x0000, 0x0000, NULL, NULL));
67 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HIDOUT,
HID_REQUEST_SET_PROTOCOL, protocol, 0x00, iface, 0x0000, 0x0000, NULL, NULL));
71 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_HIDIN,
HID_REQUEST_GET_PROTOCOL, 0x00, 0x00, iface, 0x0001, 0x0001, dataptr, NULL));
75 Notify(PSTR(
"Endpoint descriptor:"), 0x80);
76 Notify(PSTR(
"\r\nLength:\t\t"), 0x80);
77 D_PrintHex<uint8_t > (ep_ptr->
bLength, 0x80);
78 Notify(PSTR(
"\r\nType:\t\t"), 0x80);
80 Notify(PSTR(
"\r\nAddress:\t"), 0x80);
82 Notify(PSTR(
"\r\nAttributes:\t"), 0x80);
84 Notify(PSTR(
"\r\nMaxPktSize:\t"), 0x80);
86 Notify(PSTR(
"\r\nPoll Intrv:\t"), 0x80);
87 D_PrintHex<uint8_t > (ep_ptr->
bInterval, 0x80);
91 Notify(PSTR(
"\r\n\r\nHID Descriptor:\r\n"), 0x80);
92 Notify(PSTR(
"bDescLength:\t\t"), 0x80);
93 D_PrintHex<uint8_t > (pDesc->
bLength, 0x80);
95 Notify(PSTR(
"\r\nbDescriptorType:\t"), 0x80);
98 Notify(PSTR(
"\r\nbcdHID:\t\t\t"), 0x80);
99 D_PrintHex<uint16_t > (pDesc->
bcdHID, 0x80);
101 Notify(PSTR(
"\r\nbCountryCode:\t\t"), 0x80);
104 Notify(PSTR(
"\r\nbNumDescriptors:\t"), 0x80);
107 Notify(PSTR(
"\r\nbDescrType:\t\t"), 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)
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