projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move check for devices not supporting internal serials in demos which make use of...
[pub/USBasp.git]
/
LUFA
/
Drivers
/
USB
/
Class
/
Device
/
CDC.c
diff --git
a/LUFA/Drivers/USB/Class/Device/CDC.c
b/LUFA/Drivers/USB/Class/Device/CDC.c
index
cbb9a85
..
816a5f1
100644
(file)
--- a/
LUFA/Drivers/USB/Class/Device/CDC.c
+++ b/
LUFA/Drivers/USB/Class/Device/CDC.c
@@
-118,53
+118,70
@@
void CDC_Device_USBTask(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo)
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
\r
return;
\r
\r
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
\r
return;
\r
\r
+ Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataOUTEndpointNumber);
\r
+
\r
+ if (Endpoint_IsOUTReceived() && !(Endpoint_BytesInEndpoint()))
\r
+ Endpoint_ClearOUT();
\r
+
\r
CDC_Device_Flush(CDCInterfaceInfo);
\r
}
\r
\r
CDC_Device_Flush(CDCInterfaceInfo);
\r
}
\r
\r
-
void
CDC_Device_SendString(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, char* const Data, const uint16_t Length)
\r
+
uint8_t
CDC_Device_SendString(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, char* const Data, const uint16_t Length)
\r
{
\r
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
\r
{
\r
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
\r
- return;
\r
+ return
ENDPOINT_READYWAIT_NoError
;
\r
\r
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpointNumber);
\r
\r
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpointNumber);
\r
- Endpoint_Write_Stream_LE(Data, Length, NO_STREAM_CALLBACK);
\r
+
return
Endpoint_Write_Stream_LE(Data, Length, NO_STREAM_CALLBACK);
\r
}
\r
\r
}
\r
\r
-
void
CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, const uint8_t Data)
\r
+
uint8_t
CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, const uint8_t Data)
\r
{
\r
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
\r
{
\r
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
\r
- return;
\r
+ return
ENDPOINT_READYWAIT_NoError
;
\r
\r
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpointNumber);
\r
\r
if (!(Endpoint_IsReadWriteAllowed()))
\r
{
\r
\r
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpointNumber);
\r
\r
if (!(Endpoint_IsReadWriteAllowed()))
\r
{
\r
+ uint8_t ErrorCode;
\r
+
\r
Endpoint_ClearIN();
\r
Endpoint_ClearIN();
\r
- Endpoint_WaitUntilReady();
\r
+
\r
+ if ((ErrorCode = Endpoint_WaitUntilReady()) != ENDPOINT_READYWAIT_NoError)
\r
+ return ErrorCode;
\r
}
\r
\r
}
\r
\r
- Endpoint_Write_Byte(Data);
\r
+ Endpoint_Write_Byte(Data);
\r
+ return ENDPOINT_READYWAIT_NoError;
\r
}
\r
\r
}
\r
\r
-
void
CDC_Device_Flush(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
\r
+
uint8_t
CDC_Device_Flush(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
\r
{
\r
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
\r
{
\r
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
\r
- return;
\r
+ return
ENDPOINT_READYWAIT_NoError
;
\r
\r
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpointNumber);
\r
\r
if (Endpoint_BytesInEndpoint())
\r
{
\r
\r
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpointNumber);
\r
\r
if (Endpoint_BytesInEndpoint())
\r
{
\r
+ uint8_t ErrorCode;
\r
+
\r
Endpoint_ClearIN();
\r
Endpoint_ClearIN();
\r
- Endpoint_WaitUntilReady();
\r
+
\r
+ if ((ErrorCode = Endpoint_WaitUntilReady()) != ENDPOINT_READYWAIT_NoError)
\r
+ return ErrorCode;
\r
}
\r
\r
Endpoint_ClearIN();
\r
}
\r
\r
Endpoint_ClearIN();
\r
- Endpoint_WaitUntilReady();
\r
+ return Endpoint_WaitUntilReady();
\r
}
\r
\r
uint16_t CDC_Device_BytesReceived(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
\r
{
\r
}
\r
\r
uint16_t CDC_Device_BytesReceived(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
\r
{
\r
+ if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
\r
+ return 0;
\r
+
\r
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataOUTEndpointNumber);
\r
\r
if (Endpoint_IsOUTReceived() && !(Endpoint_BytesInEndpoint()))
\r
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataOUTEndpointNumber);
\r
\r
if (Endpoint_IsOUTReceived() && !(Endpoint_BytesInEndpoint()))
\r
@@
-175,7
+192,7
@@
uint16_t CDC_Device_BytesReceived(USB_ClassInfo_CDC_Device_t* const CDCInterface
\r
uint8_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo)
\r
{
\r
\r
uint8_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo)
\r
{
\r
- if (
USB_DeviceState != DEVICE_STATE_Configured
)
\r
+ if (
(USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS)
)
\r
return 0;
\r
\r
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataOUTEndpointNumber);
\r
return 0;
\r
\r
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataOUTEndpointNumber);
\r
@@
-190,7
+207,7
@@
uint8_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo)
\r
void CDC_Device_SendControlLineStateChange(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
\r
{
\r
\r
void CDC_Device_SendControlLineStateChange(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
\r
{
\r
- if (
USB_DeviceState != DEVICE_STATE_Configured
)
\r
+ if (
(USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS)
)
\r
return;
\r
\r
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.NotificationEndpointNumber);
\r
return;
\r
\r
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.NotificationEndpointNumber);
\r