|
|
|
@ -374,7 +374,11 @@ const USB_Descriptor_Device_t PROGMEM DeviceDescriptor = {
|
|
|
|
.ReleaseNumber = DEVICE_VER,
|
|
|
|
.ReleaseNumber = DEVICE_VER,
|
|
|
|
.ManufacturerStrIndex = 0x01,
|
|
|
|
.ManufacturerStrIndex = 0x01,
|
|
|
|
.ProductStrIndex = 0x02,
|
|
|
|
.ProductStrIndex = 0x02,
|
|
|
|
|
|
|
|
#if defined(SERIAL_NUMBER)
|
|
|
|
.SerialNumStrIndex = 0x03,
|
|
|
|
.SerialNumStrIndex = 0x03,
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
.SerialNumStrIndex = 0x00,
|
|
|
|
|
|
|
|
#endif
|
|
|
|
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
|
|
|
|
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
@ -950,10 +954,7 @@ const USB_Descriptor_String_t PROGMEM ProductString = {
|
|
|
|
.UnicodeString = LSTR(PRODUCT)
|
|
|
|
.UnicodeString = LSTR(PRODUCT)
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef SERIAL_NUMBER
|
|
|
|
#if defined(SERIAL_NUMBER)
|
|
|
|
# define SERIAL_NUMBER 0
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const USB_Descriptor_String_t PROGMEM SerialNumberString = {
|
|
|
|
const USB_Descriptor_String_t PROGMEM SerialNumberString = {
|
|
|
|
.Header = {
|
|
|
|
.Header = {
|
|
|
|
.Size = USB_STRING_LEN(sizeof(STR(SERIAL_NUMBER)) - 1), // Subtract 1 for null terminator
|
|
|
|
.Size = USB_STRING_LEN(sizeof(STR(SERIAL_NUMBER)) - 1), // Subtract 1 for null terminator
|
|
|
|
@ -961,6 +962,7 @@ const USB_Descriptor_String_t PROGMEM SerialNumberString = {
|
|
|
|
},
|
|
|
|
},
|
|
|
|
.UnicodeString = LSTR(SERIAL_NUMBER)
|
|
|
|
.UnicodeString = LSTR(SERIAL_NUMBER)
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
// clang-format on
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
|
|
@ -1005,11 +1007,13 @@ uint16_t get_usb_descriptor(const uint16_t wValue, const uint16_t wIndex, const
|
|
|
|
Size = pgm_read_byte(&ProductString.Header.Size);
|
|
|
|
Size = pgm_read_byte(&ProductString.Header.Size);
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
#if defined(SERIAL_NUMBER)
|
|
|
|
case 0x03:
|
|
|
|
case 0x03:
|
|
|
|
Address = &SerialNumberString;
|
|
|
|
Address = &SerialNumberString;
|
|
|
|
Size = pgm_read_byte(&SerialNumberString.Header.Size);
|
|
|
|
Size = pgm_read_byte(&SerialNumberString.Header.Size);
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|