forked from mfulz_github/qmk_firmware
Fixed LowLevel PrinterHost demo not sending control requests to the attached printer with the correct printer interface wIndex value.
This commit is contained in:
parent
092f82e06f
commit
b7b8a9edfa
|
@ -153,7 +153,7 @@ void EVENT_USB_Device_ConfigurationChanged(void)
|
||||||
void EVENT_USB_Device_UnhandledControlRequest(void)
|
void EVENT_USB_Device_UnhandledControlRequest(void)
|
||||||
{
|
{
|
||||||
/* Determine which interface's Line Coding data is being set from the wIndex parameter */
|
/* 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 */
|
/* Process CDC specific control requests */
|
||||||
switch (USB_ControlRequest.bRequest)
|
switch (USB_ControlRequest.bRequest)
|
||||||
|
|
|
@ -86,7 +86,7 @@ uint8_t Printer_GetDeviceID(char* DeviceIDString,
|
||||||
.bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE),
|
.bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE),
|
||||||
.bRequest = REQ_GetDeviceID,
|
.bRequest = REQ_GetDeviceID,
|
||||||
.wValue = 0,
|
.wValue = 0,
|
||||||
.wIndex = 0,
|
.wIndex = PrinterInterfaceNumber,
|
||||||
.wLength = sizeof(DeviceIDStringLength),
|
.wLength = sizeof(DeviceIDStringLength),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -130,11 +130,11 @@ uint8_t Printer_GetPortStatus(uint8_t* const PortStatus)
|
||||||
{
|
{
|
||||||
USB_ControlRequest = (USB_Request_Header_t)
|
USB_ControlRequest = (USB_Request_Header_t)
|
||||||
{
|
{
|
||||||
bmRequestType: (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE),
|
.bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE),
|
||||||
bRequest: REQ_GetPortStatus,
|
.bRequest = REQ_GetPortStatus,
|
||||||
wValue: 0,
|
.wValue = 0,
|
||||||
wIndex: 0,
|
.wIndex = PrinterInterfaceNumber,
|
||||||
wLength: sizeof(uint8_t),
|
.wLength = sizeof(uint8_t),
|
||||||
};
|
};
|
||||||
|
|
||||||
Pipe_SelectPipe(PIPE_CONTROLPIPE);
|
Pipe_SelectPipe(PIPE_CONTROLPIPE);
|
||||||
|
@ -154,7 +154,7 @@ uint8_t Printer_SoftReset(void)
|
||||||
.bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE),
|
.bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE),
|
||||||
.bRequest = REQ_SoftReset,
|
.bRequest = REQ_SoftReset,
|
||||||
.wValue = 0,
|
.wValue = 0,
|
||||||
.wIndex = 0,
|
.wIndex = PrinterInterfaceNumber,
|
||||||
.wLength = 0,
|
.wLength = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,8 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <LUFA/Drivers/USB/USB.h>
|
#include <LUFA/Drivers/USB/USB.h>
|
||||||
|
|
||||||
|
#include "../PrinterHost.h"
|
||||||
|
|
||||||
/* Macros: */
|
/* Macros: */
|
||||||
/** Printer class-specific request to retrieve the printer's ID string. */
|
/** Printer class-specific request to retrieve the printer's ID string. */
|
||||||
|
|
|
@ -70,6 +70,9 @@
|
||||||
/** LED mask for the library LED driver, to indicate that the USB interface is busy. */
|
/** LED mask for the library LED driver, to indicate that the USB interface is busy. */
|
||||||
#define LEDMASK_USB_BUSY LEDS_LED2
|
#define LEDMASK_USB_BUSY LEDS_LED2
|
||||||
|
|
||||||
|
/* External Variables: */
|
||||||
|
extern uint8_t PrinterInterfaceNumber;
|
||||||
|
|
||||||
/* Function Prototypes: */
|
/* Function Prototypes: */
|
||||||
void EVENT_USB_Host_DeviceAttached(void);
|
void EVENT_USB_Host_DeviceAttached(void);
|
||||||
void EVENT_USB_Host_DeviceUnattached(void);
|
void EVENT_USB_Host_DeviceUnattached(void);
|
||||||
|
|
|
@ -171,10 +171,10 @@ uint8_t PRNT_Host_SoftReset(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo)
|
||||||
USB_ControlRequest = (USB_Request_Header_t)
|
USB_ControlRequest = (USB_Request_Header_t)
|
||||||
{
|
{
|
||||||
.bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE),
|
.bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE),
|
||||||
.bRequest = REQ_SoftReset,
|
.bRequest = REQ_SoftReset,
|
||||||
.wValue = 0,
|
.wValue = 0,
|
||||||
.wIndex = PRNTInterfaceInfo->State.InterfaceNumber,
|
.wIndex = PRNTInterfaceInfo->State.InterfaceNumber,
|
||||||
.wLength = 0,
|
.wLength = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
Pipe_SelectPipe(PIPE_CONTROLPIPE);
|
Pipe_SelectPipe(PIPE_CONTROLPIPE);
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
* in the USB controller if the endpoints or pipes were allocated in anything other than ascending order (thanks to Martin Degelsegger)
|
* in the USB controller if the endpoints or pipes were allocated in anything other than ascending order (thanks to Martin Degelsegger)
|
||||||
* - Fixed USBtoSerial and Benito project SetLineEncoding calls failing if the USART is busy, due to the RX ISR delaying the control
|
* - Fixed USBtoSerial and Benito project SetLineEncoding calls failing if the USART is busy, due to the RX ISR delaying the control
|
||||||
* request handler
|
* request handler
|
||||||
|
* - Fixed LowLevel PrinterHost demo not sending control requests to the attached printer with the correct printer interface wIndex value
|
||||||
*
|
*
|
||||||
* \section Sec_ChangeLog100807 Version 100807
|
* \section Sec_ChangeLog100807 Version 100807
|
||||||
* <b>New:</b>
|
* <b>New:</b>
|
||||||
|
|
Loading…
Reference in New Issue