USB_HostRequest renamed to USB_ControlRequest, entire control request header is now read into USB_ControlRequest in Device mode rather than having the library pass only partially read header data to the application.
The USB_UnhandledControlPacket event has had its parameters removed, in favour of accessing the new USB_ControlRequest structure. The Endpoint control stream functions now correctly send a ZLP to the host when less data than requested is sent.
This commit is contained in:
		
							parent
							
								
									e5e7eaee7a
								
							
						
					
					
						commit
						d860e9e842
					
				
					 43 changed files with 209 additions and 317 deletions
				
			
		| 
						 | 
				
			
			@ -152,13 +152,11 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 | 
			
		|||
{
 | 
			
		||||
	uint8_t* LineCodingData = (uint8_t*)&LineCoding;
 | 
			
		||||
 | 
			
		||||
	Endpoint_Discard_Word();
 | 
			
		||||
 | 
			
		||||
	/* Process CDC specific control requests */
 | 
			
		||||
	switch (bRequest)
 | 
			
		||||
	switch (USB_ControlRequest.bRequest)
 | 
			
		||||
	{
 | 
			
		||||
		case REQ_GetLineEncoding:
 | 
			
		||||
			if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 | 
			
		||||
			if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 | 
			
		||||
			{
 | 
			
		||||
				Endpoint_ClearSETUP();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -174,7 +172,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 | 
			
		|||
			
 | 
			
		||||
			break;
 | 
			
		||||
		case REQ_SetLineEncoding:
 | 
			
		||||
			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 | 
			
		||||
			if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 | 
			
		||||
			{
 | 
			
		||||
				Endpoint_ClearSETUP();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -192,7 +190,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 | 
			
		|||
	
 | 
			
		||||
			break;
 | 
			
		||||
		case REQ_SetControlLineState:
 | 
			
		||||
			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 | 
			
		||||
			if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 | 
			
		||||
			{
 | 
			
		||||
				Endpoint_ClearSETUP();
 | 
			
		||||
				
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -151,16 +151,10 @@ EVENT_HANDLER(USB_Disconnect)
 | 
			
		|||
 */
 | 
			
		||||
EVENT_HANDLER(USB_UnhandledControlPacket)
 | 
			
		||||
{
 | 
			
		||||
	/* Discard unused wIndex value */
 | 
			
		||||
	Endpoint_Discard_Word();
 | 
			
		||||
	
 | 
			
		||||
	/* Discard unused wValue value */
 | 
			
		||||
	Endpoint_Discard_Word();
 | 
			
		||||
 | 
			
		||||
	/* Get the size of the command and data from the wLength value */
 | 
			
		||||
	SentCommand.DataSize = Endpoint_Read_Word_LE();
 | 
			
		||||
	SentCommand.DataSize = USB_ControlRequest.wLength;
 | 
			
		||||
 | 
			
		||||
	switch (bRequest)
 | 
			
		||||
	switch (USB_ControlRequest.bRequest)
 | 
			
		||||
	{
 | 
			
		||||
		case DFU_DNLOAD:
 | 
			
		||||
			Endpoint_ClearSETUP();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -96,10 +96,10 @@ EVENT_HANDLER(USB_ConfigurationChanged)
 | 
			
		|||
EVENT_HANDLER(USB_UnhandledControlPacket)
 | 
			
		||||
{
 | 
			
		||||
	/* Handle HID Class specific requests */
 | 
			
		||||
	switch (bRequest)
 | 
			
		||||
	switch (USB_ControlRequest.bRequest)
 | 
			
		||||
	{
 | 
			
		||||
		case REQ_SetReport:
 | 
			
		||||
			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 | 
			
		||||
			if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 | 
			
		||||
			{
 | 
			
		||||
				Endpoint_ClearSETUP();
 | 
			
		||||
				
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue