Commit 4dcf881007757711016db70a54aa4a7d289cb54f
1 parent
58268c72
Descripteurs au propre
Showing
2 changed files
with
43 additions
and
153 deletions
Show diff stats
lufa-master/PolytechLille/PAD/Descriptors.c
... | ... | @@ -29,7 +29,6 @@ |
29 | 29 | this software. |
30 | 30 | */ |
31 | 31 | |
32 | - | |
33 | 32 | /** \file |
34 | 33 | * |
35 | 34 | * USB Device Descriptors, for library use when in USB device mode. Descriptors are special |
... | ... | @@ -39,13 +38,10 @@ |
39 | 38 | |
40 | 39 | #include "Descriptors.h" |
41 | 40 | |
42 | -////////////////////////////////////////////////////////////////////////// | |
43 | - | |
44 | - | |
45 | -/** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage | |
46 | - * of the device in one of its supported configurations, including information about any device interfaces | |
47 | - * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting | |
48 | - * a configuration so that the host may correctly communicate with the USB device. | |
41 | +/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall | |
42 | + * device characteristics, including the supported USB version, control endpoint size and the | |
43 | + * number of device configurations. The descriptor is read out by the USB host when the enumeration | |
44 | + * process begins. | |
49 | 45 | */ |
50 | 46 | const USB_Descriptor_Device_t PROGMEM RelayBoard_DeviceDescriptor = |
51 | 47 | { |
... | ... | @@ -58,8 +54,8 @@ const USB_Descriptor_Device_t PROGMEM RelayBoard_DeviceDescriptor = |
58 | 54 | |
59 | 55 | .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, |
60 | 56 | |
61 | - .VendorID = 0x04B4, | |
62 | - .ProductID = 0xFD11, | |
57 | + .VendorID = 0x04B4, //A MODIFIER avec VendorID Carte | |
58 | + .ProductID = 0xFD11, //A MODIFIER | |
63 | 59 | .ReleaseNumber = VERSION_BCD(2,0,0), |
64 | 60 | |
65 | 61 | .ManufacturerStrIndex = STRING_ID_Manufacturer, |
... | ... | @@ -67,50 +63,58 @@ const USB_Descriptor_Device_t PROGMEM RelayBoard_DeviceDescriptor = |
67 | 63 | .SerialNumStrIndex = STRING_ID_Serial, |
68 | 64 | |
69 | 65 | .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS |
70 | - | |
71 | - | |
72 | -//////////////////////////////////////////////////////////////////////////// | |
73 | - | |
74 | - | |
66 | +}; | |
75 | 67 | |
76 | 68 | /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage |
77 | 69 | * of the device in one of its supported configurations, including information about any device interfaces |
78 | 70 | * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting |
79 | 71 | * a configuration so that the host may correctly communicate with the USB device. |
80 | 72 | */ |
81 | -const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | |
73 | +const USB_Descriptor_Configuration_t PROGMEM RelayBoard_ConfigurationDescriptor = | |
82 | 74 | { |
83 | 75 | .Config = |
84 | 76 | { |
85 | 77 | .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration}, |
86 | 78 | |
87 | 79 | .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t), |
88 | - .TotalInterfaces = 2,// MODIF ICI (1 au dรฉbut) | |
80 | + .TotalInterfaces = 2, | |
89 | 81 | |
90 | 82 | .ConfigurationNumber = 1, |
91 | 83 | .ConfigurationStrIndex = NO_DESCRIPTOR, |
92 | 84 | |
93 | - .ConfigAttributes = (USB_CONFIG_ATTR_RESERVED | USB_CONFIG_ATTR_SELFPOWERED), | |
85 | + .ConfigAttributes = USB_CONFIG_ATTR_RESERVED, | |
94 | 86 | |
95 | - .MaxPowerConsumption = USB_CONFIG_POWER_MA(100) | |
87 | + .MaxPowerConsumption = USB_CONFIG_POWER_MA(500) | |
96 | 88 | }, |
97 | -////////////////////////////////////////////////////////////////////////////// AJOUT | |
98 | - .InterfaceOUT = | |
89 | + | |
90 | + /* Description Interface SORTIE (LED)*/ | |
91 | + .InferfaceOUT = | |
99 | 92 | { |
100 | 93 | .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, |
101 | 94 | |
102 | - .InterfaceNumber = INTERFACE_ID_InterfaceOUT, //pas sur mais presque | |
103 | - .AlternateSetting = 0x00, | |
95 | + .InterfaceNumber = INTERFACE_ID_InterfaceOUT, | |
96 | + .AlternateSetting = 0, | |
104 | 97 | |
105 | 98 | .TotalEndpoints = 1, |
106 | 99 | |
107 | - .Class = HID_CSCP_HIDClass, | |
108 | - .SubClass = HID_CSCP_BootSubclass, | |
109 | - .Protocol = HID_CSCP_KeyboardBootProtocol, | |
100 | + .Class = USB_CSCP_VendorSpecificClass, | |
101 | + .SubClass = 0x00, | |
102 | + .Protocol = 0x00, | |
110 | 103 | |
111 | 104 | .InterfaceStrIndex = NO_DESCRIPTOR |
112 | 105 | }, |
106 | + | |
107 | + .HID_KeyboardHID = | |
108 | + { | |
109 | + .Header = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID}, | |
113 | 110 | |
111 | + .HIDSpec = VERSION_BCD(1,1,1), | |
112 | + .CountryCode = 0x00, | |
113 | + .TotalReportDescriptors = 1, | |
114 | + .HIDReportType = HID_DTYPE_Report, | |
115 | + .HIDReportLength = sizeof(KeyboardReport) | |
116 | + }, | |
117 | + | |
114 | 118 | .ReportOUTEndpoint = |
115 | 119 | { |
116 | 120 | .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, |
... | ... | @@ -120,7 +124,9 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = |
120 | 124 | .EndpointSize = KEYBOARD_EPSIZE, |
121 | 125 | .PollingIntervalMS = 0x05 |
122 | 126 | }, |
123 | -////////////////////////////////////////////////////////////////////////////// FIN AJOUT | |
127 | + | |
128 | + | |
129 | + /* Description interface IN (Boutons)*/ | |
124 | 130 | .InterfaceIN = |
125 | 131 | { |
126 | 132 | .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, |
... | ... | @@ -137,7 +143,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = |
137 | 143 | .InterfaceStrIndex = NO_DESCRIPTOR |
138 | 144 | }, |
139 | 145 | |
140 | - .ReportINEndpoint1 = | |
146 | + .ReportINEndpointBoutons = | |
141 | 147 | { |
142 | 148 | .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, |
143 | 149 | |
... | ... | @@ -147,7 +153,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = |
147 | 153 | .PollingIntervalMS = 0x05 |
148 | 154 | }, |
149 | 155 | |
150 | - .ReportINEndpoint2 = | |
156 | + .ReportINEndpointJoysticks = | |
151 | 157 | { |
152 | 158 | .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, |
153 | 159 | |
... | ... | @@ -158,36 +164,6 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = |
158 | 164 | } |
159 | 165 | }; |
160 | 166 | |
161 | -//////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
162 | -//////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
163 | - | |
164 | -/** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests | |
165 | - * the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate | |
166 | - * via the language ID table available at USB.org what languages the device supports for its string descriptors. | |
167 | - */ | |
168 | -const USB_Descriptor_String_t PROGMEM LanguageString = USB_STRING_DESCRIPTOR_ARRAY(LANGUAGE_ID_ENG); | |
169 | - | |
170 | -/** Manufacturer descriptor string. This is a Unicode string containing the manufacturer's details in human readable | |
171 | - * form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device | |
172 | - * Descriptor. | |
173 | - */ | |
174 | -const USB_Descriptor_String_t PROGMEM ManufacturerString = USB_STRING_DESCRIPTOR(L"LUFA Library"); | |
175 | - | |
176 | -/** Product descriptor string. This is a Unicode string containing the product's details in human readable form, | |
177 | - * and is read out upon request by the host when the appropriate string ID is requested, listed in the Device | |
178 | - * Descriptor. | |
179 | - */ | |
180 | -const USB_Descriptor_String_t PROGMEM ProductString = USB_STRING_DESCRIPTOR(L"LUFA Keyboard Demo"); | |
181 | - | |
182 | -/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors" | |
183 | - * documentation) by the application code so that the address and size of a requested descriptor can be given | |
184 | - * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function | |
185 | - * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the | |
186 | - * USB host. | |
187 | - */ | |
188 | - | |
189 | -/////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
190 | - | |
191 | 167 | /** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests |
192 | 168 | * the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate |
193 | 169 | * via the language ID table available at USB.org what languages the device supports for its string descriptors. |
... | ... | @@ -222,12 +198,6 @@ const USB_Descriptor_String_t PROGMEM RelayBoard_SerialString = USB_STRING_DESCR |
222 | 198 | * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the |
223 | 199 | * USB host. |
224 | 200 | */ |
225 | - | |
226 | - | |
227 | - | |
228 | - | |
229 | -//////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
230 | -/////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
231 | 201 | uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, |
232 | 202 | const uint16_t wIndex, |
233 | 203 | const void** const DescriptorAddress) |
... | ... | @@ -241,67 +211,6 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, |
241 | 211 | switch (DescriptorType) |
242 | 212 | { |
243 | 213 | case DTYPE_Device: |
244 | - Address = &DeviceDescriptor; | |
245 | - Size = sizeof(USB_Descriptor_Device_t); | |
246 | - break; | |
247 | - case DTYPE_Configuration: | |
248 | - Address = &ConfigurationDescriptor; | |
249 | - Size = sizeof(USB_Descriptor_Configuration_t); | |
250 | - break; | |
251 | - case DTYPE_String: | |
252 | - switch (DescriptorNumber) | |
253 | - { | |
254 | - case STRING_ID_Language: | |
255 | - Address = &LanguageString; | |
256 | - Size = pgm_read_byte(&LanguageString.Header.Size); | |
257 | - break; | |
258 | - case STRING_ID_Manufacturer: | |
259 | - Address = &ManufacturerString; | |
260 | - Size = pgm_read_byte(&ManufacturerString.Header.Size); | |
261 | - break; | |
262 | - case STRING_ID_Product: | |
263 | - Address = &ProductString; | |
264 | - Size = pgm_read_byte(&ProductString.Header.Size); | |
265 | - break; | |
266 | - } | |
267 | - | |
268 | - break; | |
269 | - case HID_DTYPE_HID: | |
270 | - Address = &ConfigurationDescriptor.HID_KeyboardHID; | |
271 | - Size = sizeof(USB_HID_Descriptor_HID_t); | |
272 | - break; | |
273 | - case HID_DTYPE_Report: | |
274 | - Address = &KeyboardReport; | |
275 | - Size = sizeof(KeyboardReport); | |
276 | - break; | |
277 | - } | |
278 | - | |
279 | - *DescriptorAddress = Address; | |
280 | - return Size; | |
281 | -} | |
282 | - | |
283 | - | |
284 | -///////////////////////////////////////////////////////////////////////////////// | |
285 | - | |
286 | - | |
287 | -uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, | |
288 | - const uint16_t wIndex, | |
289 | - const void** const DescriptorAddress) | |
290 | -{ | |
291 | - cons | |
292 | -/** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage | |
293 | - * of the device in one of its supported configurations, including information about any device interfaces | |
294 | - * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting | |
295 | - * a configuration so that the host may correctly communicate with the USB device. | |
296 | - */t uint8_t DescriptorType = (wValue >> 8); | |
297 | - const uint8_t DescriptorNumber = (wValue & 0xFF); | |
298 | - | |
299 | - const void* Address = NULL; | |
300 | - uint16_t Size = NO_DESCRIPTOR; | |
301 | - | |
302 | - switch (DescriptorType) | |
303 | - { | |
304 | - case DTYPE_Device: | |
305 | 214 | Address = &RelayBoard_DeviceDescriptor; |
306 | 215 | Size = sizeof(USB_Descriptor_Device_t); |
307 | 216 | break; |
... | ... | @@ -337,27 +246,3 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, |
337 | 246 | return Size; |
338 | 247 | } |
339 | 248 | |
340 | - | |
341 | - | |
342 | - | |
343 | - | |
344 | - | |
345 | - | |
346 | - | |
347 | - | |
348 | - | |
349 | - | |
350 | - | |
351 | - | |
352 | - | |
353 | - | |
354 | - | |
355 | - | |
356 | - | |
357 | - | |
358 | - | |
359 | - | |
360 | - | |
361 | - | |
362 | - | |
363 | - | ... | ... |
lufa-master/PolytechLille/PAD/Descriptors.h
... | ... | @@ -51,7 +51,13 @@ |
51 | 51 | USB_Descriptor_Configuration_Header_t Config; |
52 | 52 | |
53 | 53 | // Relay Board Interface |
54 | - USB_Descriptor_Interface_t RelayBoardInterface; | |
54 | + USB_Descriptor_Interface_t InterfaceOUT; | |
55 | + USB_HID_Descriptor_HID_t HID_KeyboardHID; //UTILE ? | |
56 | + USB_Descriptor_Endpoint_t HID_ReportOUTEndpoint; | |
57 | + | |
58 | + USB_Descriptor_Interface_t InterfaceIN; | |
59 | + USB_Descriptor_Endpoint_t HID_ReportINEndpointBoutons; | |
60 | + USB_Descriptor_Endpoint_t HID_ReportOUTEndpointJoysticks; | |
55 | 61 | } USB_Descriptor_Configuration_t; |
56 | 62 | |
57 | 63 | /** Enum for the device interface descriptor IDs within the device. Each interface descriptor |
... | ... | @@ -60,8 +66,7 @@ |
60 | 66 | */ |
61 | 67 | enum InterfaceDescriptors_t |
62 | 68 | { |
63 | - INTERFACE_ID_InterfaceOUT = 0, | |
64 | - INTERFACE_ID_InterfaceIN = 1,/**< Relay board interface descriptor ID */ | |
69 | + INTERFACE_ID_RelayBoard = 0, /**< Relay board interface descriptor ID */ | |
65 | 70 | }; |
66 | 71 | |
67 | 72 | /** Enum for the device string descriptor IDs within the device. Each string descriptor should | ... | ... |