|
|
|
|
|
|
|
|
int usb_serial_write_buffer_free(void); |
|
|
int usb_serial_write_buffer_free(void); |
|
|
void usb_serial_flush_output(void); |
|
|
void usb_serial_flush_output(void); |
|
|
extern uint32_t usb_cdc_line_coding[2]; |
|
|
extern uint32_t usb_cdc_line_coding[2]; |
|
|
|
|
|
extern volatile uint32_t usb_cdc_line_rtsdtr_millis; |
|
|
|
|
|
extern volatile uint32_t systick_millis_count; |
|
|
extern volatile uint8_t usb_cdc_line_rtsdtr; |
|
|
extern volatile uint8_t usb_cdc_line_rtsdtr; |
|
|
extern volatile uint8_t usb_cdc_transmit_flush_timer; |
|
|
extern volatile uint8_t usb_cdc_transmit_flush_timer; |
|
|
extern volatile uint8_t usb_configuration; |
|
|
extern volatile uint8_t usb_configuration; |
|
|
|
|
|
|
|
|
uint8_t numbits(void) { return usb_cdc_line_coding[1] >> 16; } |
|
|
uint8_t numbits(void) { return usb_cdc_line_coding[1] >> 16; } |
|
|
uint8_t dtr(void) { return (usb_cdc_line_rtsdtr & USB_SERIAL_DTR) ? 1 : 0; } |
|
|
uint8_t dtr(void) { return (usb_cdc_line_rtsdtr & USB_SERIAL_DTR) ? 1 : 0; } |
|
|
uint8_t rts(void) { return (usb_cdc_line_rtsdtr & USB_SERIAL_RTS) ? 1 : 0; } |
|
|
uint8_t rts(void) { return (usb_cdc_line_rtsdtr & USB_SERIAL_RTS) ? 1 : 0; } |
|
|
operator bool() { return usb_configuration && (usb_cdc_line_rtsdtr & (USB_SERIAL_DTR | USB_SERIAL_RTS)); } |
|
|
|
|
|
|
|
|
operator bool() { return usb_configuration && |
|
|
|
|
|
(usb_cdc_line_rtsdtr & (USB_SERIAL_DTR | USB_SERIAL_RTS)) && |
|
|
|
|
|
((uint32_t)(systick_millis_count - usb_cdc_line_rtsdtr_millis) >= 25); |
|
|
|
|
|
} |
|
|
size_t readBytes(char *buffer, size_t length) { |
|
|
size_t readBytes(char *buffer, size_t length) { |
|
|
size_t count=0; |
|
|
size_t count=0; |
|
|
unsigned long startMillis = millis(); |
|
|
unsigned long startMillis = millis(); |