aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2012-02-24 20:28:27 +0000
committerDean Camera <dean@fourwalledcubicle.com>2012-02-24 20:28:27 +0000
commit6a9d1eab2d38bfd524ae5397852c01cb03325559 (patch)
treee3270f407aae8867a7bd1f27887c1773467b9ac6 /Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c
parent63a65a9598266f2ede393d6cf2e24237c81bf158 (diff)
downloadlufa-6a9d1eab2d38bfd524ae5397852c01cb03325559.tar.gz
lufa-6a9d1eab2d38bfd524ae5397852c01cb03325559.tar.bz2
lufa-6a9d1eab2d38bfd524ae5397852c01cb03325559.zip
Modified the CDC Host demos to set a default CDC Line Encoding on enumerated devices.
Diffstat (limited to 'Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c')
-rw-r--r--Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c b/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c
index 5214dd476..88d7b74b0 100644
--- a/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c
+++ b/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c
@@ -126,6 +126,31 @@ void EVENT_USB_Host_DeviceEnumerationComplete(void)
return;
}
+ CDC_LineEncoding_t LineEncoding = { .BaudRateBPS = 9600,
+ .CharFormat = CDC_LINEENCODING_OneStopBit,
+ .ParityType = CDC_PARITY_None,
+ .DataBits = 8 };
+
+ USB_ControlRequest = (USB_Request_Header_t)
+ {
+ .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE),
+ .bRequest = CDC_REQ_SetLineEncoding,
+ .wValue = 0,
+ .wIndex = 0,
+ .wLength = sizeof(LineEncoding),
+ };
+
+ /* Set the Line Encoding of the CDC interface within the device, so that it is ready to accept data */
+ Pipe_SelectPipe(PIPE_CONTROLPIPE);
+ if (USB_Host_SendControlRequest(&LineEncoding) != HOST_SENDCONTROL_Successful)
+ {
+ printf_P(PSTR(ESC_FG_RED "Control Error (Set Line Encoding).\r\n"
+ " -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
+
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+ return;
+ }
+
puts_P(PSTR("CDC Device Enumerated.\r\n"));
LEDs_SetAllLEDs(LEDMASK_USB_READY);
}