USBLib API Guide  1.00.00.01
usbdhid.h
Go to the documentation of this file.
1 //*****************************************************************************
2 //
3 // usbdhid.h - Definitions used by HID class devices.
4 //
5 // Copyright (c) 2008-2017 Texas Instruments Incorporated. All rights reserved.
6 // Software License Agreement
7 //
8 // Texas Instruments (TI) is supplying this software for use solely and
9 // exclusively on TI's microcontroller products. The software is owned by
10 // TI and/or its suppliers, and is protected under applicable copyright
11 // laws. You may not combine this software with "viral" open-source
12 // software in order to form a larger program.
13 //
14 // THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
15 // NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
16 // NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
17 // A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
18 // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
19 // DAMAGES, FOR ANY REASON WHATSOEVER.
20 //
21 //*****************************************************************************
22 
23 #ifndef __USBDHID_H__
24 #define __USBDHID_H__
25 
26 //*****************************************************************************
27 //
28 // If building with a C++ compiler, make all of the definitions in this header
29 // have a C binding.
30 //
31 //*****************************************************************************
32 #ifdef __cplusplus
33 extern "C"
34 {
35 #endif
36 
37 //*****************************************************************************
38 //
41 //
42 //*****************************************************************************
43 
44 //*****************************************************************************
45 //
46 // This is the size of the g_pui8HIDInterface array in bytes.
47 //
48 //*****************************************************************************
49 #define HIDINTERFACE_SIZE (9)
50 
51 //*****************************************************************************
52 //
53 // This is the size of the g_pui8HIDInEndpoint array in bytes.
54 //
55 //*****************************************************************************
56 #define HIDINENDPOINT_SIZE (7)
57 
58 //*****************************************************************************
59 //
60 // This is the size of the g_pui8HIDOutEndpoint array in bytes.
61 //
62 //*****************************************************************************
63 #define HIDOUTENDPOINT_SIZE (7)
64 
65 //*****************************************************************************
66 //
67 // This is the size of the tHIDDescriptor in bytes.
68 //
69 //*****************************************************************************
70 #define HIDDESCRIPTOR_SIZE (9)
71 
72 //*****************************************************************************
73 //
78 //
79 //*****************************************************************************
80 #define COMPOSITE_DHID_SIZE (HIDINTERFACE_SIZE + HIDINENDPOINT_SIZE + \
81  HIDOUTENDPOINT_SIZE + HIDDESCRIPTOR_SIZE)
82 
83 //*****************************************************************************
84 //
85 // Macros used to create the static Report Descriptors.
86 //
87 //*****************************************************************************
88 
89 //*****************************************************************************
90 //
101 //
102 //*****************************************************************************
103 #define UsagePage(ui8Value) 0x05, ((ui8Value) & 0xff)
104 
105 //*****************************************************************************
106 //
118 //
119 //*****************************************************************************
120 #define UsagePageVendor(ui16Value) 0x06, ((ui16Value) & 0xFF), \
121  (((ui16Value) >> 8) & 0xFF)
122 
123 //*****************************************************************************
124 //
133 //
134 //*****************************************************************************
135 #define Usage(ui8Value) 0x09, ((ui8Value) & 0xff)
136 
137 //*****************************************************************************
138 //
149 //
150 //*****************************************************************************
151 #define UsageVendor(ui16Value) 0x0A, ((ui16Value) & 0xFF), \
152  (((ui16Value) >> 8) & 0xFF)
153 
154 //*****************************************************************************
155 //
166 //
167 //*****************************************************************************
168 #define UsageMinimum(ui8Value) 0x19, ((ui8Value) & 0xff)
169 
170 //*****************************************************************************
171 //
182 //
183 //*****************************************************************************
184 #define UsageMaximum(ui8Value) 0x29, ((ui8Value) & 0xff)
185 
186 //*****************************************************************************
187 //
198 //
199 //*****************************************************************************
200 #define LogicalMinimum(i8Value) 0x15, ((i8Value) & 0xff)
201 
202 //*****************************************************************************
203 //
214 //
215 //*****************************************************************************
216 #define LogicalMaximum(i8Value) 0x25, ((i8Value) & 0xff)
217 
218 #define LogicalMinimum16(i8Value, i8Value1) 0x16, i8Value, i8Value1
219 #define LogicalMaximum16(i8Value, i8Value1) 0x26, i8Value, i8Value1
220 
221 #define LogicalMaximum32(i8Value, i8Value1, i8Value2, i8Value3) 0x17, \
222  i8Value, i8Value1, i8Value2, i8Value3
223 //*****************************************************************************
224 //
237 //
238 //*****************************************************************************
239 #define PhysicalMinimum(i16Value) \
240  0x36, ((i16Value) & 0xFF), \
241  (((i16Value) >> 8) & 0xFF)
242 
243 //*****************************************************************************
244 //
257 //
258 //*****************************************************************************
259 #define PhysicalMaximum(i16Value) \
260  0x46, ((i16Value) & 0xFF), \
261  (((i16Value) >> 8) & 0xFF)
262 
263 //*****************************************************************************
264 //
276 //
277 //*****************************************************************************
278 #define Collection(ui8Value) 0xa1, ((ui8Value) & 0xff)
279 
280 //*****************************************************************************
281 //
291 //
292 //*****************************************************************************
293 #define EndCollection 0xc0
294 
295 //*****************************************************************************
296 //
307 //
308 //*****************************************************************************
309 #define ReportCount(ui8Value) 0x95, ((ui8Value) & 0xff)
310 
311 //*****************************************************************************
312 //
323 //
324 //*****************************************************************************
325 #define ReportID(ui8Value) 0x85, ((ui8Value) & 0xff)
326 
327 //*****************************************************************************
328 //
340 //
341 //*****************************************************************************
342 #define ReportSize(ui8Value) 0x75, ((ui8Value) & 0xff)
343 
344 //*****************************************************************************
345 //
359 //
360 //*****************************************************************************
361 #define Input(ui8Value) 0x81, ((ui8Value) & 0xff)
362 
363 //*****************************************************************************
364 //
379 //
380 //*****************************************************************************
381 #define Input2(ui16Value) 0x82, ((ui16Value) & 0xff), \
382  (((ui16Value) >> 8) & 0xFF)
383 
384 //*****************************************************************************
385 //
399 //
400 //*****************************************************************************
401 #define Feature(ui8Value) 0xB1, ((ui8Value) & 0xff)
402 
403 //*****************************************************************************
404 //
419 //
420 //*****************************************************************************
421 #define Feature2(ui16Value) 0xB2, ((ui16Value) & 0xff), \
422  (((ui16Value) >> 8) & 0xFF)
423 
424 //*****************************************************************************
425 //
439 //
440 //*****************************************************************************
441 #define Output(ui8Value) 0x91, ((ui8Value) & 0xff)
442 
443 //*****************************************************************************
444 //
459 //
460 //*****************************************************************************
461 #define Output2(ui16Value) 0x92, ((ui16Value) & 0xff), \
462  (((ui16Value) >> 8) & 0xFF)
463 
464 //*****************************************************************************
465 //
477 //
478 //*****************************************************************************
479 #define UnitExponent(i8Value) 0x55, ((i8Value) & 0x0f)
480 
481 //*****************************************************************************
482 //
496 //
497 //*****************************************************************************
498 #define Unit(ui32Value) 0x67, (ui32Value & 0xFF), \
499  (((ui32Value) >> 8) & 0xFF), \
500  (((ui32Value) >> 16) & 0xFF), \
501  (((ui32Value) >> 24) & 0xFF)
502 
503 //*****************************************************************************
504 //
507 //*****************************************************************************
508 #define UnitDistance_cm 0x66, 0x11, 0x00
509 
510 //*****************************************************************************
511 //
514 //*****************************************************************************
515 #define UnitDistance_i 0x66, 0x13, 0x00
516 
517 //*****************************************************************************
518 //
521 //*****************************************************************************
522 #define UnitRotation_deg 0x66, 0x14, 0x00
523 
524 //*****************************************************************************
525 //
528 //*****************************************************************************
529 #define UnitRotation_rad 0x66, 0x12, 0x00
530 
531 //*****************************************************************************
532 //
535 //*****************************************************************************
536 #define UnitMass_g 0x66, 0x01, 0x01
537 
538 //*****************************************************************************
539 //
542 //*****************************************************************************
543 #define UnitTime_s 0x66, 0x01, 0x10
544 
545 //*****************************************************************************
546 //
550 //*****************************************************************************
551 #define UnitTemp_K 0x67, 0x01, 0x00, 0x01, 0x00
552 
553 //*****************************************************************************
554 //
558 //*****************************************************************************
559 #define UnitTemp_F 0x67, 0x03, 0x00, 0x01, 0x00
560 
561 //*****************************************************************************
562 //
566 //*****************************************************************************
567 #define UnitVelocitySI 0x66, 0x11, 0xF0
568 
569 //*****************************************************************************
570 //
574 //*****************************************************************************
575 #define UnitMomentumSI 0x66, 0x11, 0xF1
576 
577 //*****************************************************************************
578 //
582 //*****************************************************************************
583 #define UnitAccelerationSI 0x66, 0x11, 0xE0
584 
585 //*****************************************************************************
586 //
590 //*****************************************************************************
591 #define UnitForceSI 0x66, 0x11, 0xE1
592 
593 //*****************************************************************************
594 //
598 //*****************************************************************************
599 #define UnitEnergySI 0x66, 0x21, 0xE1
600 
601 //*****************************************************************************
602 //
606 //*****************************************************************************
607 #define UnitAngAccelerationSI 0x66, 0x12, 0xE0
608 
609 //*****************************************************************************
610 //
613 //*****************************************************************************
614 #define UnitVoltage 0x67, 0x21, 0xD1, 0xF0, 0x00
615 
616 //*****************************************************************************
617 //
620 //*****************************************************************************
621 #define UnitCurrent_A 0x67, 0x01, 0x00, 0x10, 0x00
622 
623 #define HidUsageSensorPropertyReportingState 0x0A, 0x16, 0x03
624 #define HidUsageSensorPropertySensorStatus 0x0A, 0x03, 0x03
625 #define HidUsageSensorPropertyReportInterval 0x0A, 0x0E, 0x03
626 #define HidUsageSensorData(a, b, c, d) a, b, (c|d)
627 #define HidUsageSensorEvent 0x0A, 0x02, 0x02
628 #define HidUsageSensorDataEnvironmentalTemperature 0x0A, 0x34, 0x04
629 #define HidUsageSesnorDataModMax 0x20
630 #define HidUsageSensorDataModMin 0x30
631 #define HidUsageSensorState 0x0A, 0x01, 0x02
632 #define HidUsageSensorStateUnknown 0x0A, 0x00, 0x08
633 #define HidUsageSensorStateReady 0x0A, 0x01, 0x08
634 #define HidUsageSensorStateNotAvailable 0x0A, 0x02, 0x08
635 #define HidUsageSensorStateNoData 0x0A, 0x03, 0x08
636 #define HidUsageSensorStateInitializing 0x0A, 0x04, 0x08
637 #define HidUsageSensorStateAccessDenied 0x0A, 0x05, 0x08
638 #define HidUsageSensorStateError 0x0A, 0x06, 0x08
639 #define HidUsageSensorEventUnknown 0x0A, 0x10, 0x08
640 #define HidUsageSensorEventStateChanged 0x0A, 0x11, 0x08
641 #define HidUsageSensorEventProperyChanged 0x0A, 0x12, 0x08
642 #define HidUsageSensorEventDataUpdated 0x0A, 0x13, 0x08
643 #define HidUsageSensorEventPollResponse 0x0A, 0x14, 0x08
644 #define HidUsageSensorEventChangeSensitivity 0x0A, 0x15, 0x08
645 #define HidUsageSensorEventMaxReached 0x0A, 0x16, 0x08
646 #define HidUsageSensorEventMinReached 0x0A, 0x17, 0x08
647 #define HidUsageSensorEventHighThresholdCrossUpward 0x0A, 0x18, 0x08
648 #define HidUsageSensorEventHighThresholdCrossDownward 0x0A, 0x19, 0x08
649 #define HidUsageSensorEventLowThresholdCrossUpward 0x0A, 0x1A, 0x08
650 #define HidUsageSensorEventLowThresholdCrossDownward 0x0A, 0x1B, 0x08
651 #define HidUsageSensorEventZeroThresholdCrossUpward 0x0A, 0x1C, 0x08
652 #define HidUsageSensorEventZeroThresholdCrossDownward 0x0A, 0x1D, 0x08
653 #define HidUsageSensorEventPeriodExceeded 0x0A, 0x1E, 0x08
654 #define HidUsageSensorEventFrequencyExceeded 0x0A, 0x1F, 0x08
655 #define HidUsageSensorEventComplexTrigger 0x0A, 0x20, 0x08
656 
657 //*****************************************************************************
658 //
659 // PRIVATE
660 //
661 // The first few sections of this header are private defines that are used by
662 // the USB HID code and are here only to help with the application
663 // allocating the correct amount of memory for the HID device code.
664 //
665 //*****************************************************************************
666 #define USBDHID_MAX_PACKET 64
667 
668 //*****************************************************************************
669 //
670 // PRIVATE
671 //
672 // This enumeration holds the various states that the device can be in during
673 // normal operation.
674 //
675 //*****************************************************************************
676 typedef enum
677 {
678  //
679  // Unconfigured.
680  //
682 
683  //
684  // No outstanding transaction remains to be completed.
685  //
687 
688  //
689  // Waiting on completion of a send or receive transaction.
690  //
692 }
693 tHIDState;
694 
695 //*****************************************************************************
696 //
697 // PRIVATE
698 //
699 // This structure defines the private instance data and state variables for
700 // HID devices. The memory for this structure is included in the
701 // sPrivateData field in the tUSBDHIDDevice structure passed in the
702 // USBDHIDInit() function.
703 //
704 //*****************************************************************************
705 typedef struct
706 {
707  //
708  // Base address for the USB controller.
709  //
710  uint32_t ui32USBBase;
711 
712  //
713  // The device info to interact with the lower level DCD code.
714  //
716 
717  //
718  // The state of the HID receive channel.
719  //
720  volatile tHIDState iHIDRxState;
721 
722  //
723  // The state of the HID transmit channel.
724  //
725  volatile tHIDState iHIDTxState;
726 
727  //
728  // State of any pending operations that could not be handled immediately
729  // upon receipt.
730  //
731  volatile uint16_t ui16DeferredOpFlags;
732 
733  //
734  // Size of the HID IN report.
735  //
737 
738  //
739  // .
740  //
742 
743  //
744  // Size of the HID OUT report.
745  //
747 
748  //
749  // Pointer to the current HID IN report data.
750  //
752 
753  //
754  // Pointer to the current HID OUT report data.
755  //
757 
758  //
759  // The connection status of the device.
760  //
761  volatile bool bConnected;
762 
763  //
764  // Whether an IN transaction is in process.
765  //
766  volatile bool bSendInProgress;
767 
768  //
769  // An HID request transaction is in process(Endpoint 0).
770  //
772 
773  //
774  // The IN endpoint number, this is modified in composite devices.
775  //
776  uint8_t ui8INEndpoint;
777 
778  //
779  // The OUT endpoint number, this is modified in composite devices.
780  //
781  uint8_t ui8OUTEndpoint;
782 
783  //
784  // The bulk class interface number, this is modified in composite devices.
785  //
786  uint8_t ui8Interface;
787 }
789 
790 //*****************************************************************************
791 //
796 //
797 //*****************************************************************************
798 typedef struct
799 {
800  //
804  //
805  uint8_t ui8Duration4mS;
806 
807  //
813  //
814  uint8_t ui8ReportID;
815 
816  //
820  //
822 
823  //
828  //
830 }
832 
833 //*****************************************************************************
834 //
837 //
838 //*****************************************************************************
839 typedef struct
840 {
841  //
843  //
844  uint16_t ui16VID;
845 
846  //
848  //
849  uint16_t ui16PID;
850 
851  //
853  //
854  uint16_t ui16MaxPowermA;
855 
856  //
861  //
863 
864  //
866  //
867  uint8_t ui8Subclass;
868 
869  //
871  //
872  uint8_t ui8Protocol;
873 
874  //
879  //
881 
882  //
891  //
893 
898  //
900 
901  //
905  //
906  void *pvRxCBData;
907 
908  //
912  //
914 
915  //
919  //
920  void *pvTxCBData;
921 
922  //
929  //
931 
932  //
936  //
937  const tHIDDescriptor *psHIDDescriptor;
938 
939  //
945  //
946  const uint8_t * const *ppui8ClassDescriptors;
947 
948  //
965  //
966  const uint8_t * const *ppui8StringDescriptors;
967 
968  //
971  //
973 
974  //
975  // ! The configuration descriptor for this HID device.
976  //
978 
979  //
983  //
985 }
987 
988 //*****************************************************************************
989 //
990 // HID-specific device class driver events
991 //
992 //*****************************************************************************
993 
994 //*****************************************************************************
995 //
1005 //
1006 //*****************************************************************************
1007 #define USBD_HID_EVENT_GET_REPORT \
1008  (USBD_HID_EVENT_BASE + 0)
1009 
1010 //*****************************************************************************
1011 //
1020 //
1021 //*****************************************************************************
1022 #define USBD_HID_EVENT_REPORT_SENT \
1023  (USBD_HID_EVENT_BASE + 1)
1024 
1025 //*****************************************************************************
1026 //
1036 //
1037 //*****************************************************************************
1038 #define USBD_HID_EVENT_GET_REPORT_BUFFER \
1039  (USBD_HID_EVENT_BASE + 2)
1040 
1041 //*****************************************************************************
1042 //
1051 //
1052 //*****************************************************************************
1053 #define USBD_HID_EVENT_SET_REPORT \
1054  (USBD_HID_EVENT_BASE + 3)
1055 
1056 //*****************************************************************************
1057 //
1061 //
1062 //*****************************************************************************
1063 #define USBD_HID_EVENT_GET_PROTOCOL \
1064  (USBD_HID_EVENT_BASE + 4)
1065 
1066 //*****************************************************************************
1067 //
1071 //
1072 //*****************************************************************************
1073 #define USBD_HID_EVENT_SET_PROTOCOL \
1074  (USBD_HID_EVENT_BASE + 5)
1075 
1076 //*****************************************************************************
1077 //
1084 //
1085 //*****************************************************************************
1086 #define USBD_HID_EVENT_IDLE_TIMEOUT \
1087  (USBD_HID_EVENT_BASE + 6)
1088 
1089 //*****************************************************************************
1090 //
1091 // API Function Prototypes
1092 //
1093 //*****************************************************************************
1094 extern void *USBDHIDInit(uint32_t ui32Index, tUSBDHIDDevice *psHIDDevice);
1095 extern void *USBDHIDCompositeInit(uint32_t ui32Index,
1096  tUSBDHIDDevice *psDevice,
1097  tCompositeEntry *psCompEntry);
1098 extern void USBDHIDTerm(void *pvHIDInstance);
1099 extern void *USBDHIDSetRxCBData(void *pvHIDInstance, void *pvCBData);
1100 extern void *USBDHIDSetTxCBData(void *pvHIDInstance, void *pvCBData);
1101 extern uint32_t USBDHIDReportWrite(void *pvHIDInstance, uint8_t *pi8Data,
1102  uint32_t ui32Length, bool bLast);
1103 extern uint32_t USBDHIDPacketRead(void *pvHIDInstance, uint8_t *pi8Data,
1104  uint32_t ui32Length, bool bLast);
1105 extern uint32_t USBDHIDTxPacketAvailable(void *pvHIDInstance);
1106 extern uint32_t USBDHIDRxPacketAvailable(void *pvHIDInstance);
1107 extern bool USBDHIDRemoteWakeupRequest(void *pvHIDInstance);
1108 
1109 //*****************************************************************************
1110 //
1111 // Close the Doxygen group.
1113 //
1114 //*****************************************************************************
1115 
1116 //*****************************************************************************
1117 //
1118 // The following APIs are deprecated.
1119 //
1120 //*****************************************************************************
1121 #ifndef DEPRECATED
1122 
1123 //
1124 // Use USBDCDFeatureSet() or USBHCDFeatureSet() with \b USBLIB_FEATURE_POWER
1125 // configuration option.
1126 //
1127 extern void USBDHIDPowerStatusSet(void *pvHIDInstance, uint8_t ui8Power);
1128 #endif
1129 
1130 //*****************************************************************************
1131 //
1132 // Mark the end of the C bindings section for C++ compilers.
1133 //
1134 //*****************************************************************************
1135 #ifdef __cplusplus
1136 }
1137 #endif
1138 
1139 #endif // __USBDHID_H__
Definition: usblib.h:1077
uint8_t ui8NumInputReports
Definition: usbdhid.h:880
tHIDInstance sPrivateData
Definition: usbdhid.h:984
Definition: usbdhid.h:798
bool bUseOutEndpoint
Definition: usbdhid.h:930
uint16_t ui16MaxPowermA
The maximum power consumption of the device, expressed in milliamps.
Definition: usbdhid.h:854
tUSBCallback pfnTxCallback
Definition: usbdhid.h:913
void USBDHIDTerm(void *pvHIDInstance)
Definition: usbdhid.c:2007
const uint8_t *const * ppui8ClassDescriptors
Definition: usbdhid.h:946
Definition: usbdhid.h:705
uint8_t ui8INEndpoint
Definition: usbdhid.h:776
uint32_t ui32NumStringDescriptors
Definition: usbdhid.h:972
bool bGetRequestPending
Definition: usbdhid.h:771
Definition: usbdhid.h:691
tHIDReportIdle * psReportIdle
Definition: usbdhid.h:892
uint8_t ui8ReportID
Definition: usbdhid.h:814
uint16_t ui16VID
The vendor ID that this device is to present in the device descriptor.
Definition: usbdhid.h:844
uint8_t * pui8OutReportData
Definition: usbdhid.h:756
tDeviceInfo sDevInfo
Definition: usbdhid.h:715
uint16_t ui16OutReportSize
Definition: usbdhid.h:746
uint32_t ui32USBBase
Definition: usbdhid.h:710
Definition: usbdevice.h:135
tHIDState
Definition: usbdhid.h:676
Definition: usbdhid.h:839
void USBDHIDPowerStatusSet(void *pvHIDInstance, uint8_t ui8Power)
Definition: usbdhid.c:2450
const tHIDDescriptor * psHIDDescriptor
Definition: usbdhid.h:937
void * USBDHIDInit(uint32_t ui32Index, tUSBDHIDDevice *psHIDDevice)
Definition: usbdhid.c:1789
uint32_t ui32TimeSinceReportmS
Definition: usbdhid.h:829
const tConfigHeader *const * ppsConfigDescriptor
Definition: usbdhid.h:977
void * pvTxCBData
Definition: usbdhid.h:920
volatile uint16_t ui16DeferredOpFlags
Definition: usbdhid.h:731
uint16_t ui16InReportSize
Definition: usbdhid.h:736
bool USBDHIDRemoteWakeupRequest(void *pvHIDInstance)
Definition: usbdhid.c:2481
uint8_t ui8PwrAttributes
Definition: usbdhid.h:862
uint8_t ui8Subclass
The interface subclass to publish to the server for this HID device.
Definition: usbdhid.h:867
uint32_t USBDHIDTxPacketAvailable(void *pvHIDInstance)
Definition: usbdhid.c:2347
uint32_t USBDHIDReportWrite(void *pvHIDInstance, uint8_t *pi8Data, uint32_t ui32Length, bool bLast)
Definition: usbdhid.c:2141
void * pvRxCBData
Definition: usbdhid.h:906
volatile bool bSendInProgress
Definition: usbdhid.h:766
uint8_t ui8OUTEndpoint
Definition: usbdhid.h:781
uint8_t * pui8InReportData
Definition: usbdhid.h:751
tUSBCallback pfnRxCallback
Definition: usbdhid.h:899
volatile tHIDState iHIDRxState
Definition: usbdhid.h:720
uint16_t ui16InReportIndex
Definition: usbdhid.h:741
Definition: usbdevice.h:66
uint32_t(* tUSBCallback)(void *pvCBData, uint32_t ui32Event, uint32_t ui32MsgParam, void *pvMsgData)
Definition: usblib.h:1220
volatile bool bConnected
Definition: usbdhid.h:761
uint32_t USBDHIDPacketRead(void *pvHIDInstance, uint8_t *pi8Data, uint32_t ui32Length, bool bLast)
Definition: usbdhid.c:2246
uint16_t ui16PID
The product ID that this device is to present in the device descriptor.
Definition: usbdhid.h:849
Definition: usbdhid.h:681
uint32_t USBDHIDRxPacketAvailable(void *pvHIDInstance)
Definition: usbdhid.c:2395
uint8_t ui8Duration4mS
Definition: usbdhid.h:805
void * USBDHIDCompositeInit(uint32_t ui32Index, tUSBDHIDDevice *psHIDDevice, tCompositeEntry *psCompEntry)
Definition: usbdhid.c:1849
struct tHIDInstance tHIDInstance
Definition: usbhhid.h:44
uint16_t ui16TimeTillNextmS
Definition: usbdhid.h:821
void * USBDHIDSetRxCBData(void *pvHIDInstance, void *pvCBData)
Definition: usbdhid.c:2050
uint8_t ui8Protocol
The interface protocol to publish to the server for this HID device.
Definition: usbdhid.h:872
uint8_t ui8Interface
Definition: usbdhid.h:786
void * USBDHIDSetTxCBData(void *pvHIDInstance, void *pvCBData)
Definition: usbdhid.c:2092
const uint8_t *const * ppui8StringDescriptors
Definition: usbdhid.h:966
volatile tHIDState iHIDTxState
Definition: usbdhid.h:725
Definition: usbdhid.h:686
© Copyright 1995-2019, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale