From b7b8a9edfacb000c138eb6e7ad77c515c3a82050 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Tue, 24 Aug 2010 13:16:16 +0000 Subject: Fixed LowLevel PrinterHost demo not sending control requests to the attached printer with the correct printer interface wIndex value. --- .../Device/LowLevel/DualVirtualSerial/DualVirtualSerial.c | 2 +- Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.c | 14 +++++++------- Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.h | 2 ++ Demos/Host/LowLevel/PrinterHost/PrinterHost.h | 3 +++ 4 files changed, 13 insertions(+), 8 deletions(-) (limited to 'Demos') diff --git a/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.c b/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.c index c9a2d9248..11f6cda0d 100644 --- a/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.c +++ b/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.c @@ -153,7 +153,7 @@ void EVENT_USB_Device_ConfigurationChanged(void) void EVENT_USB_Device_UnhandledControlRequest(void) { /* Determine which interface's Line Coding data is being set from the wIndex parameter */ - uint8_t* LineEncodingData = (USB_ControlRequest.wIndex == 0) ? (uint8_t*)&LineEncoding1 : (uint8_t*)&LineEncoding2; + void* LineEncodingData = (USB_ControlRequest.wIndex == 0) ? &LineEncoding1 : &LineEncoding2; /* Process CDC specific control requests */ switch (USB_ControlRequest.bRequest) diff --git a/Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.c b/Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.c index 024895991..ac0ca9a2b 100644 --- a/Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.c +++ b/Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.c @@ -86,7 +86,7 @@ uint8_t Printer_GetDeviceID(char* DeviceIDString, .bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE), .bRequest = REQ_GetDeviceID, .wValue = 0, - .wIndex = 0, + .wIndex = PrinterInterfaceNumber, .wLength = sizeof(DeviceIDStringLength), }; @@ -130,11 +130,11 @@ uint8_t Printer_GetPortStatus(uint8_t* const PortStatus) { USB_ControlRequest = (USB_Request_Header_t) { - bmRequestType: (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE), - bRequest: REQ_GetPortStatus, - wValue: 0, - wIndex: 0, - wLength: sizeof(uint8_t), + .bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE), + .bRequest = REQ_GetPortStatus, + .wValue = 0, + .wIndex = PrinterInterfaceNumber, + .wLength = sizeof(uint8_t), }; Pipe_SelectPipe(PIPE_CONTROLPIPE); @@ -154,7 +154,7 @@ uint8_t Printer_SoftReset(void) .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE), .bRequest = REQ_SoftReset, .wValue = 0, - .wIndex = 0, + .wIndex = PrinterInterfaceNumber, .wLength = 0, }; diff --git a/Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.h b/Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.h index 8c3bd3316..3edfe434d 100644 --- a/Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.h +++ b/Demos/Host/LowLevel/PrinterHost/Lib/PrinterCommands.h @@ -41,6 +41,8 @@ #include #include + + #include "../PrinterHost.h" /* Macros: */ /** Printer class-specific request to retrieve the printer's ID string. */ diff --git a/Demos/Host/LowLevel/PrinterHost/PrinterHost.h b/Demos/Host/LowLevel/PrinterHost/PrinterHost.h index 78583f0e4..2ba270f7d 100644 --- a/Demos/Host/LowLevel/PrinterHost/PrinterHost.h +++ b/Demos/Host/LowLevel/PrinterHost/PrinterHost.h @@ -70,6 +70,9 @@ /** LED mask for the library LED driver, to indicate that the USB interface is busy. */ #define LEDMASK_USB_BUSY LEDS_LED2 + /* External Variables: */ + extern uint8_t PrinterInterfaceNumber; + /* Function Prototypes: */ void EVENT_USB_Host_DeviceAttached(void); void EVENT_USB_Host_DeviceUnattached(void); -- cgit v1.2.3