mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-15 20:31:27 +00:00
Add CDC control line state change handlers to the class driver demos, to demonstrate how to read DTR change events.
This commit is contained in:
parent
be2df78637
commit
faf41c4445
@ -216,3 +216,27 @@ void EVENT_USB_Device_ControlRequest(void)
|
||||
CDC_Device_ProcessControlRequest(&VirtualSerial2_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;
|
||||
|
||||
if (CDCInterfaceInfo == &VirtualSerial1_CDC_Interface)
|
||||
{
|
||||
/ CDC interface 1's host is ready to send/receive data
|
||||
}
|
||||
else
|
||||
{
|
||||
// CDC interface 2's host is ready to send/receive data
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -224,6 +224,22 @@ void EVENT_USB_Device_ControlRequest(void)
|
||||
MS_Device_ProcessControlRequest(&Disk_MS_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;
|
||||
}
|
||||
|
||||
/** Mass Storage class driver callback function the reception of SCSI commands from the host, which must be processed.
|
||||
*
|
||||
* \param[in] MSInterfaceInfo Pointer to the Mass Storage class interface configuration structure being referenced
|
||||
|
@ -265,3 +265,18 @@ void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDI
|
||||
// Unused (but mandatory for the HID class driver) in this demo, since there are no Host->Device reports
|
||||
}
|
||||
|
||||
/** 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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user