/* This function sends multiple bytes to the USB host. */ status_t USBVC001_SendData(const char* const DataBuffer, const uint16_t Length) { status_t Status = (uint32_t)DAVEApp_SUCCESS; do{ if(Length == 0) { Status = USBVC001_ERROR; break; } /* Send data to USB host.*/ if(CDC_Device_SendData(&USBVC001_CDCInterface, (const char *)DataBuffer, Length) != ENDPOINT_RWSTREAM_NoError) { Status = USBVC001_USBCDC001_ERROR; } else if(CDC_Device_Flush(&USBVC001_CDCInterface) != ENDPOINT_READYWAIT_NoError) { Status = USBVC001_USBCDC001_ERROR; } }while(0); return Status; }
void VCOM_echo(void) { if(CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface)) { in_buff[0] = CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface); CDC_Device_SendData(&VirtualSerial_CDC_Interface, (char *)in_buff, 1); Endpoint_ClearIN(); } }
void VCOM_bridge(void) { uint32_t recv_count; recv_count = CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface); while(recv_count--) { out_buff[0] = CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface); uart_send_byte(out_buff[0]); } recv_count = uart_get_data(in_buff); if(recv_count) { CDC_Device_SendData(&VirtualSerial_CDC_Interface, (char *)in_buff, recv_count); Endpoint_ClearIN(); } }