diff --git a/Demos/Device/ClassDriver/CDC/Descriptors.c b/Demos/Device/ClassDriver/CDC/Descriptors.c index 5a8cc7aeda78a791f927c288762beca49c789235..c8e0a9c7106c65fc3abcaaf32ae731646adf34ba 100644 --- a/Demos/Device/ClassDriver/CDC/Descriptors.c +++ b/Demos/Device/ClassDriver/CDC/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/ClassDriver/CDC/Descriptors.h b/Demos/Device/ClassDriver/CDC/Descriptors.h index a764b2b32494c8643953f00939b00ab670657ddf..33ceab9c5ac4298176f531ae60d509e002cb790b 100644 --- a/Demos/Device/ClassDriver/CDC/Descriptors.h +++ b/Demos/Device/ClassDriver/CDC/Descriptors.h @@ -41,10 +41,6 @@ #include <LUFA/Drivers/USB/USB.h> #include <LUFA/Drivers/USB/Class/CDC.h> - - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif /* Macros: */ /** Endpoint number of the CDC device-to-host notification IN endpoint. */ diff --git a/Demos/Device/ClassDriver/DualCDC/Descriptors.c b/Demos/Device/ClassDriver/DualCDC/Descriptors.c index 8815b9e57d24b54c7248056da352aa661a3858ba..d7601955676c62b7972b901ce4208287348b8751 100644 --- a/Demos/Device/ClassDriver/DualCDC/Descriptors.c +++ b/Demos/Device/ClassDriver/DualCDC/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/ClassDriver/DualCDC/Descriptors.h b/Demos/Device/ClassDriver/DualCDC/Descriptors.h index 739303edda6ab293fc3bc1395727669dcd9cd13f..49befad38943f6ea623f1cd8a6a27ae04b8ca44e 100644 --- a/Demos/Device/ClassDriver/DualCDC/Descriptors.h +++ b/Demos/Device/ClassDriver/DualCDC/Descriptors.h @@ -42,10 +42,6 @@ #include <LUFA/Drivers/USB/USB.h> #include <LUFA/Drivers/USB/Class/CDC.h> - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif - /* Macros: */ /** Endpoint number of the first CDC interface's device-to-host notification IN endpoint. */ #define CDC1_NOTIFICATION_EPNUM 3 diff --git a/Demos/Device/ClassDriver/MassStorage/Descriptors.c b/Demos/Device/ClassDriver/MassStorage/Descriptors.c index b8249238630049ac6dd116bffc90bf01ae0460c9..4dcc4bb2640075e4c0a6d4f67b5a9a560ce12909 100644 --- a/Demos/Device/ClassDriver/MassStorage/Descriptors.c +++ b/Demos/Device/ClassDriver/MassStorage/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/ClassDriver/MassStorage/Descriptors.h b/Demos/Device/ClassDriver/MassStorage/Descriptors.h index 5cf653a5624778b75d5f13063a8ca7fb74ba19f3..6d90b3d0256ba26bae21be32ac5918c6be40304a 100644 --- a/Demos/Device/ClassDriver/MassStorage/Descriptors.h +++ b/Demos/Device/ClassDriver/MassStorage/Descriptors.h @@ -42,10 +42,6 @@ #include <LUFA/Drivers/USB/USB.h> #include <LUFA/Drivers/USB/Class/MassStorage.h> - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif - /* Macros: */ /** Endpoint number of the Mass Storage device-to-host data IN endpoint. */ #define MASS_STORAGE_IN_EPNUM 3 diff --git a/Demos/Device/ClassDriver/USBtoSerial/Descriptors.c b/Demos/Device/ClassDriver/USBtoSerial/Descriptors.c index f88a5f82f4558d2de31dede6364bcf574c839b12..60f2c3200c9fdbdde55ca096d8a618a9ace0f22d 100644 --- a/Demos/Device/ClassDriver/USBtoSerial/Descriptors.c +++ b/Demos/Device/ClassDriver/USBtoSerial/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/ClassDriver/USBtoSerial/Descriptors.h b/Demos/Device/ClassDriver/USBtoSerial/Descriptors.h index f78f395a3be8e06d38dbf332e780c1d00de1142b..730acc6014d31e3c671e2df524fa0e5d36102464 100644 --- a/Demos/Device/ClassDriver/USBtoSerial/Descriptors.h +++ b/Demos/Device/ClassDriver/USBtoSerial/Descriptors.h @@ -42,10 +42,6 @@ #include <LUFA/Drivers/USB/USB.h> #include <LUFA/Drivers/USB/Class/CDC.h> - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif - /* Macros: */ /** Endpoint number of the CDC device-to-host notification IN endpoint. */ #define CDC_NOTIFICATION_EPNUM 2 diff --git a/Demos/Device/LowLevel/CDC/Descriptors.c b/Demos/Device/LowLevel/CDC/Descriptors.c index e81b0342a2d5123caf45da28f5b5f4a605b3efee..2d857a69402c82d29a3851e6ed79df53738a00bd 100644 --- a/Demos/Device/LowLevel/CDC/Descriptors.c +++ b/Demos/Device/LowLevel/CDC/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/LowLevel/CDC/Descriptors.h b/Demos/Device/LowLevel/CDC/Descriptors.h index a3d101e8bbcd29debf8edbf239ac4377480cd33b..08e2e353c71ce3b56cef7cd4fb632cbc21e8f644 100644 --- a/Demos/Device/LowLevel/CDC/Descriptors.h +++ b/Demos/Device/LowLevel/CDC/Descriptors.h @@ -40,10 +40,6 @@ #include <LUFA/Drivers/USB/USB.h> #include <avr/pgmspace.h> - - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif /* Macros: */ /** Macro to define a CDC class-specific functional descriptor. CDC functional descriptors have a diff --git a/Demos/Device/LowLevel/DualCDC/Descriptors.c b/Demos/Device/LowLevel/DualCDC/Descriptors.c index a7f7b039248fcc5154e7f8a81e7068b1f735fceb..e64bfb1aa70d5388d5386b4d48edb74bed7a2e40 100644 --- a/Demos/Device/LowLevel/DualCDC/Descriptors.c +++ b/Demos/Device/LowLevel/DualCDC/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/LowLevel/DualCDC/Descriptors.h b/Demos/Device/LowLevel/DualCDC/Descriptors.h index 781ba5c3192ab9833674cef939a5c409699ed273..de4dd27a4cfc85e07e39cce3006cb938b3b8cb35 100644 --- a/Demos/Device/LowLevel/DualCDC/Descriptors.h +++ b/Demos/Device/LowLevel/DualCDC/Descriptors.h @@ -40,10 +40,6 @@ #include <LUFA/Drivers/USB/USB.h> #include <avr/pgmspace.h> - - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif /* Macros: */ /** Macro to define a CDC class-specific functional descriptor. CDC functional descriptors have a diff --git a/Demos/Device/LowLevel/MassStorage/Descriptors.c b/Demos/Device/LowLevel/MassStorage/Descriptors.c index b8249238630049ac6dd116bffc90bf01ae0460c9..4dcc4bb2640075e4c0a6d4f67b5a9a560ce12909 100644 --- a/Demos/Device/LowLevel/MassStorage/Descriptors.c +++ b/Demos/Device/LowLevel/MassStorage/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/LowLevel/MassStorage/Descriptors.h b/Demos/Device/LowLevel/MassStorage/Descriptors.h index 9b9dd7d318f83265ae180f0ae3b8cd3b0a5d42ec..0fa147b75c20f958a2367c4b7622958ac5498579 100644 --- a/Demos/Device/LowLevel/MassStorage/Descriptors.h +++ b/Demos/Device/LowLevel/MassStorage/Descriptors.h @@ -41,10 +41,6 @@ #include <avr/pgmspace.h> - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif - /* Macros: */ /** Endpoint number of the Mass Storage device-to-host data IN endpoint. */ #define MASS_STORAGE_IN_EPNUM 3 diff --git a/Demos/Device/LowLevel/USBtoSerial/Descriptors.c b/Demos/Device/LowLevel/USBtoSerial/Descriptors.c index d3f7e9218c5b12ec715ddafe6242e984b63cfb4f..495ab3e75d2a6a5b3fc28417173a0e3c1fb3b0eb 100644 --- a/Demos/Device/LowLevel/USBtoSerial/Descriptors.c +++ b/Demos/Device/LowLevel/USBtoSerial/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/LowLevel/USBtoSerial/Descriptors.h b/Demos/Device/LowLevel/USBtoSerial/Descriptors.h index a3d101e8bbcd29debf8edbf239ac4377480cd33b..08e2e353c71ce3b56cef7cd4fb632cbc21e8f644 100644 --- a/Demos/Device/LowLevel/USBtoSerial/Descriptors.h +++ b/Demos/Device/LowLevel/USBtoSerial/Descriptors.h @@ -40,10 +40,6 @@ #include <LUFA/Drivers/USB/USB.h> #include <avr/pgmspace.h> - - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif /* Macros: */ /** Macro to define a CDC class-specific functional descriptor. CDC functional descriptors have a diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 14dab7684e0db65f57d510c50eefe666da7b3fdb..3280e8ed7da5d76ee7ddeed4f33c392fdb7d2da3 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -13,7 +13,7 @@ * - Added flag to the HID report parser to indicate if a device has multiple reports * - Added new EVENT_USB_Device_StartOfFrame() event, controlled by the new USB_Device_EnableSOFEvents() and * USB_Device_DisableSOFEvents() macros to give bus-synchronised millisecond interrupts when in USB device mode - * - Added new Endpoint_SetEndpointDirection() macro for bi-directional endpoints + * - Added new Endpoint_SetEndpointDirection() macro for bidirectional endpoints * - Added new AVRISP project, a LUFA powered clone of the Atmel AVRISP-MKII programmer * - Added ShutDown() functions for all hardware peripheral drivers, so that peripherals can be turned off after use * - Added new CDC_Device_Flush() command to the device mode CDC Class driver to flush Device->Host data