forked from mfulz_github/qmk_firmware
Finished CDC device class driver documentation.
This commit is contained in:
parent
e6881fd166
commit
bde64666fb
|
@ -462,8 +462,10 @@ static void DiscardFillerBytes(uint8_t NumberOfBytes)
|
|||
/* Wait until next data packet received */
|
||||
while (!(Endpoint_IsOUTReceived()));
|
||||
}
|
||||
|
||||
Endpoint_Discard_Byte();
|
||||
else
|
||||
{
|
||||
Endpoint_Discard_Byte();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,13 +5,12 @@
|
|||
*/
|
||||
|
||||
========== TODO: ===========
|
||||
- Fix bootloaders - make compatible with smaller USB AVRS (USB_IsConnected)
|
||||
- Document new device class drivers
|
||||
- Made new host class drivers
|
||||
- Make new host class drivers
|
||||
- Document new host class drivers
|
||||
- Convert Host mode demos to class drivers
|
||||
- Convert Host mode demos to schedulerless
|
||||
- Add standardized descriptor names to class driver structures, controlled by USE_NONSTANDARD_DESCRIPTOR_NAMES
|
||||
- Add multiple-report HID demo to the library
|
||||
============================
|
||||
|
||||
/** \page Page_ChangeLog Project Changelog
|
||||
|
|
|
@ -130,6 +130,9 @@ void USB_CDC_USBTask(USB_ClassInfo_CDC_t* CDCInterfaceInfo)
|
|||
|
||||
void USB_CDC_SendString(USB_ClassInfo_CDC_t* CDCInterfaceInfo, char* Data, uint16_t Length)
|
||||
{
|
||||
if (!(USB_IsConnected))
|
||||
return;
|
||||
|
||||
Endpoint_SelectEndpoint(CDCInterfaceInfo->DataINEndpointNumber);
|
||||
Endpoint_Write_Stream_LE(Data, Length, NO_STREAM_CALLBACK);
|
||||
}
|
||||
|
@ -159,6 +162,9 @@ uint16_t USB_CDC_BytesReceived(USB_ClassInfo_CDC_t* CDCInterfaceInfo)
|
|||
|
||||
uint8_t USB_CDC_ReceiveByte(USB_ClassInfo_CDC_t* CDCInterfaceInfo)
|
||||
{
|
||||
if (!(USB_IsConnected))
|
||||
return 0;
|
||||
|
||||
Endpoint_SelectEndpoint(CDCInterfaceInfo->DataOUTEndpointNumber);
|
||||
|
||||
uint8_t DataByte = Endpoint_Read_Byte();
|
||||
|
@ -171,6 +177,9 @@ uint8_t USB_CDC_ReceiveByte(USB_ClassInfo_CDC_t* CDCInterfaceInfo)
|
|||
|
||||
void USB_CDC_SendSerialLineStateChange(USB_ClassInfo_CDC_t* CDCInterfaceInfo, uint16_t LineStateMask)
|
||||
{
|
||||
if (!(USB_IsConnected))
|
||||
return;
|
||||
|
||||
Endpoint_SelectEndpoint(CDCInterfaceInfo->NotificationEndpointNumber);
|
||||
|
||||
USB_Request_Header_t Notification = (USB_Request_Header_t)
|
||||
|
|
|
@ -234,10 +234,48 @@
|
|||
*/
|
||||
void EVENT_USB_CDC_ControLineStateChanged(USB_ClassInfo_CDC_t* CDCInterfaceInfo);
|
||||
|
||||
/** Sends a given string to the attached USB host, if connected. If a host is not connected when the function is called, the
|
||||
* string is discarded.
|
||||
*
|
||||
* \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
|
||||
* \param Data Pointer to the string to send to the host
|
||||
* \param Length Size in bytes of the string to send to the host
|
||||
*/
|
||||
void USB_CDC_SendString(USB_ClassInfo_CDC_t* CDCInterfaceInfo, char* Data, uint16_t Length);
|
||||
|
||||
/** Sends a given byte to the attached USB host, if connected. If a host is not connected when the function is called, the
|
||||
* byte is discarded.
|
||||
*
|
||||
* \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
|
||||
* \param Data Byte of data to send to the host
|
||||
*/
|
||||
void USB_CDC_SendByte(USB_ClassInfo_CDC_t* CDCInterfaceInfo, uint8_t Data);
|
||||
|
||||
/** Determines the number of bytes received by the CDC interface from the host, waiting to be read.
|
||||
*
|
||||
* \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
|
||||
*
|
||||
* \return Total number of buffered bytes received from the host
|
||||
*/
|
||||
uint16_t USB_CDC_BytesReceived(USB_ClassInfo_CDC_t* CDCInterfaceInfo);
|
||||
|
||||
/** Reads a byte of data from the host. If no data is waiting to be read of if a USB host is not connected, the function
|
||||
* returns 0. The USB_CDC_BytesReceived() function should be queried before data is recieved to ensure that no data
|
||||
* underflow occurs.
|
||||
*
|
||||
* \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
|
||||
*
|
||||
* \return Next received byte from the host, or 0 if no data received
|
||||
*/
|
||||
uint8_t USB_CDC_ReceiveByte(USB_ClassInfo_CDC_t* CDCInterfaceInfo);
|
||||
|
||||
/** Sends a Serial Control Line State Change notification to the host. This should be called when the virtual serial control
|
||||
* lines (DCD, DSR, etc.) have changed states, or to give BREAK notfications to the host. Line states persist until they are
|
||||
* cleared via a second notification.
|
||||
*
|
||||
* \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
|
||||
* \param LineStateMask Mask of CDC_CONTROL_LINE_IN_* masks giving the current control line states
|
||||
*/
|
||||
void USB_CDC_SendSerialLineStateChange(USB_ClassInfo_CDC_t* CDCInterfaceInfo, uint16_t LineStateMask);
|
||||
|
||||
/* Disable C linkage for C++ Compilers: */
|
||||
|
|
|
@ -115,7 +115,7 @@
|
|||
uint8_t ReportINEndpointNumber; /**< Endpoint number of the HID interface's IN report endpoint */
|
||||
uint16_t ReportINEndpointSize; /**< Size in bytes of the HID interface's IN report endpoint */
|
||||
|
||||
uint8_t ReportINBufferSize;
|
||||
uint8_t ReportINBufferSize; /**< Size of the largest possible report to send to the host, for buffer allocation purposes */
|
||||
|
||||
bool UsingReportProtocol; /**< Indicates if the HID interface is set to Boot or Report protocol mode */
|
||||
uint16_t IdleCount; /**< Report idle period, in ms, set by the host */
|
||||
|
|
Loading…
Reference in New Issue