USB Host Shield 2.0
Loading...
Searching...
No Matches
usbhid.cpp
Go to the documentation of this file.
1/* Copyright (C) 2011 Circuits At Home, LTD. All rights reserved.
2
3This software may be distributed and modified under the terms of the GNU
4General Public License version 2 (GPL2) as published by the Free Software
5Foundation and appearing in the file GPL2.TXT included in the packaging of
6this file. Please note that GPL2 Section 2[b] requires that all works based
7on this software must also be made publicly available under the terms of
8the GPL2 ("Copyleft").
9
10Contact information
11-------------------
12
13Circuits At Home, LTD
14Web : http://www.circuitsathome.com
15e-mail : support@circuitsathome.com
16 */
17
18#include "usbhid.h"
19
20//get HID report descriptor
21
22/* WRONG! Endpoint is _ALWAYS_ ZERO for HID! We want the _INTERFACE_ value here!
23uint8_t USBHID::GetReportDescr(uint8_t ep, USBReadParser *parser) {
24 const uint8_t constBufLen = 64;
25 uint8_t buf[constBufLen];
26
27 uint8_t rcode = pUsb->ctrlReq(bAddress, ep, bmREQ_HID_REPORT, USB_REQUEST_GET_DESCRIPTOR, 0x00,
28 HID_DESCRIPTOR_REPORT, 0x0000, 128, constBufLen, buf, (USBReadParser*)parser);
29
30 //return ((rcode != hrSTALL) ? rcode : 0);
31 return rcode;
32}
33 */
35 const uint8_t constBufLen = 64;
37
40
41 //return ((rcode != hrSTALL) ? rcode : 0);
42 return rcode;
43}
44
45//uint8_t USBHID::getHidDescr( uint8_t ep, uint16_t nbytes, uint8_t* dataptr )
46//{
47// return( pUsb->ctrlReq( bAddress, ep, bmREQ_GET_DESCR, USB_REQUEST_GET_DESCRIPTOR, 0x00, HID_DESCRIPTOR_HID, 0x0000, nbytes, dataptr ));
48//}
49
53
57
61
65
69
73
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);
79 D_PrintHex<uint8_t > (ep_ptr->bDescriptorType, 0x80);
80 Notify(PSTR("\r\nAddress:\t"), 0x80);
81 D_PrintHex<uint8_t > (ep_ptr->bEndpointAddress, 0x80);
82 Notify(PSTR("\r\nAttributes:\t"), 0x80);
83 D_PrintHex<uint8_t > (ep_ptr->bmAttributes, 0x80);
84 Notify(PSTR("\r\nMaxPktSize:\t"), 0x80);
85 D_PrintHex<uint16_t > (ep_ptr->wMaxPacketSize, 0x80);
86 Notify(PSTR("\r\nPoll Intrv:\t"), 0x80);
87 D_PrintHex<uint8_t > (ep_ptr->bInterval, 0x80);
88}
89
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);
94
95 Notify(PSTR("\r\nbDescriptorType:\t"), 0x80);
96 D_PrintHex<uint8_t > (pDesc->bDescriptorType, 0x80);
97
98 Notify(PSTR("\r\nbcdHID:\t\t\t"), 0x80);
99 D_PrintHex<uint16_t > (pDesc->bcdHID, 0x80);
100
101 Notify(PSTR("\r\nbCountryCode:\t\t"), 0x80);
102 D_PrintHex<uint8_t > (pDesc->bCountryCode, 0x80);
103
104 Notify(PSTR("\r\nbNumDescriptors:\t"), 0x80);
105 D_PrintHex<uint8_t > (pDesc->bNumDescriptors, 0x80);
106
107 Notify(PSTR("\r\nbDescrType:\t\t"), 0x80);
108 D_PrintHex<uint8_t > (pDesc->bDescrType, 0x80);
109
110 Notify(PSTR("\r\nwDescriptorLength:\t"), 0x80);
111 D_PrintHex<uint16_t > (pDesc->wDescriptorLength, 0x80);
112}
void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)
Definition usbhid.cpp:74
uint8_t SetProtocol(uint8_t iface, uint8_t protocol)
Definition usbhid.cpp:66
uint8_t GetReport(uint8_t ep, uint8_t iface, uint8_t report_type, uint8_t report_id, uint16_t nbytes, uint8_t *dataptr)
Definition usbhid.cpp:54
uint8_t bAddress
Definition usbhid.h:146
uint8_t GetIdle(uint8_t iface, uint8_t reportID, uint8_t *dataptr)
Definition usbhid.cpp:58
uint8_t SetReport(uint8_t ep, uint8_t iface, uint8_t report_type, uint8_t report_id, uint16_t nbytes, uint8_t *dataptr)
Definition usbhid.cpp:50
uint8_t GetReportDescr(uint16_t wIndex, USBReadParser *parser=NULL)
Definition usbhid.cpp:34
uint8_t GetProtocol(uint8_t iface, uint8_t *dataptr)
Definition usbhid.cpp:70
void PrintHidDescriptor(const USB_HID_DESCRIPTOR *pDesc)
Definition usbhid.cpp:90
USB * pUsb
Definition usbhid.h:145
uint8_t SetIdle(uint8_t iface, uint8_t reportID, uint8_t duration)
Definition usbhid.cpp:62
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)
Definition Usb.cpp:126
#define Notify(...)
Definition message.h:51
#define USB_REQUEST_GET_DESCRIPTOR
Definition usb_ch9.h:44
#define HID_DESCRIPTOR_REPORT
Definition usbhid.h:78
#define bmREQ_HID_IN
Definition usbhid.h:64
#define HID_REQUEST_GET_PROTOCOL
Definition usbhid.h:71
#define bmREQ_HID_OUT
Definition usbhid.h:63
#define HID_REQUEST_GET_REPORT
Definition usbhid.h:69
#define HID_REQUEST_GET_IDLE
Definition usbhid.h:70
#define HID_REQUEST_SET_PROTOCOL
Definition usbhid.h:74
#define bmREQ_HID_REPORT
Definition usbhid.h:65
#define HID_REQUEST_SET_IDLE
Definition usbhid.h:73
#define HID_REQUEST_SET_REPORT
Definition usbhid.h:72
#define PSTR(str)