From e57e08c67237cf73d28afac7f672ec1e74ec308d Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Mon, 28 Sep 2009 15:56:27 +0000 Subject: Fixed PrinterHost demo returning invalid Device ID data when the attached device does not have a device ID (thanks to Andrei Krainev). --- Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'Demos/Host/LowLevel/PrinterHost') diff --git a/Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.c b/Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.c index 7ed8898e3..c75b7f910 100644 --- a/Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.c +++ b/Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.c @@ -77,7 +77,7 @@ uint8_t Printer_SendData(void* PrinterCommands, uint16_t CommandSize) uint8_t Printer_GetDeviceID(char* DeviceIDString, uint16_t BufferSize) { uint8_t ErrorCode = HOST_SENDCONTROL_Successful; - uint16_t DeviceIDStringLength; + uint16_t DeviceIDStringLength = 0; USB_ControlRequest = (USB_Request_Header_t) { @@ -92,6 +92,12 @@ uint8_t Printer_GetDeviceID(char* DeviceIDString, uint16_t BufferSize) if ((ErrorCode = USB_Host_SendControlRequest(&DeviceIDStringLength)) != HOST_SENDCONTROL_Successful) return ErrorCode; + + if (!(DeviceIDStringLength)) + { + DeviceIDString[0] = 0x00; + return HOST_SENDCONTROL_Successful; + } DeviceIDStringLength = SwapEndian_16(DeviceIDStringLength); -- cgit v1.2.3