From faf41c444544a5d1af4f5fc9d0561831c3f825c8 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sun, 15 Mar 2015 20:12:59 +1100 Subject: Add CDC control line state change handlers to the class driver demos, to demonstrate how to read DTR change events. --- Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'Demos/Device/ClassDriver/VirtualSerial') diff --git a/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c b/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c index 2d98df760..d9429ba32 100644 --- a/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c +++ b/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c @@ -185,3 +185,18 @@ void EVENT_USB_Device_ControlRequest(void) CDC_Device_ProcessControlRequest(&VirtualSerial_CDC_Interface); } +/** CDC class driver callback function the processing of changes to the virtual + * control lines sent from the host.. + * + * \param[in] CDCInterfaceInfo Pointer to the CDC class interface configuration structure being referenced + */ +void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t *const CDCInterfaceInfo) +{ + /* You can get changes to the virtual CDC lines in this callback; a common + use-case is to use the Data Terminal Ready (DTR) flag to enable and + disable CDC communications in your application when set to avoid the + application blocking while waiting for a host to become ready and read + in the pending data from the USB endpoints. + */ + bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0; +} -- cgit v1.2.3