Remove tud_cdc_connected check from examples

This commit is contained in:
Jan Dümpelmann 2020-09-04 17:25:32 +02:00
parent 9cc22b635c
commit e09ebea7b9
3 changed files with 34 additions and 43 deletions

View File

@ -83,18 +83,15 @@ static void cdc_task(void)
for (itf = 0; itf < CFG_TUD_CDC; itf++) for (itf = 0; itf < CFG_TUD_CDC; itf++)
{ {
if ( tud_cdc_n_connected(itf) ) if ( tud_cdc_n_available(itf) )
{ {
if ( tud_cdc_n_available(itf) ) uint8_t buf[64];
{
uint8_t buf[64];
uint32_t count = tud_cdc_n_read(itf, buf, sizeof(buf)); uint32_t count = tud_cdc_n_read(itf, buf, sizeof(buf));
// echo back to both serial ports // echo back to both serial ports
echo_serial_port(0, buf, count); echo_serial_port(0, buf, count);
echo_serial_port(1, buf, count); echo_serial_port(1, buf, count);
}
} }
} }
} }

View File

@ -105,34 +105,31 @@ void tud_resume_cb(void)
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
void cdc_task(void) void cdc_task(void)
{ {
if ( tud_cdc_connected() ) // is data available to read from rx fifo
if ( tud_cdc_available() )
{ {
// connected and there are data available uint8_t buf[64];
if ( tud_cdc_available() )
// read and echo back
uint32_t count = tud_cdc_read(buf, sizeof(buf));
for(uint32_t i=0; i<count; i++)
{ {
uint8_t buf[64]; tud_cdc_write_char(buf[i]);
// read and echo back if ( buf[i] == '\r' ) tud_cdc_write_char('\n');
uint32_t count = tud_cdc_read(buf, sizeof(buf));
for(uint32_t i=0; i<count; i++)
{
tud_cdc_write_char(buf[i]);
if ( buf[i] == '\r' ) tud_cdc_write_char('\n');
}
tud_cdc_write_flush();
} }
tud_cdc_write_flush();
} }
} }
// Invoked when cdc when line state changed e.g connected/disconnected // Invoked when cdc line state changed e.g connected/disconnected
void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts) void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts)
{ {
(void) itf; (void) itf;
// connected // usually terminal software sets DTR and RTS when connected
if ( dtr && rts ) if ( dtr && rts )
{ {
// print initial message when connected // print initial message when connected

View File

@ -168,25 +168,22 @@ void cdc_task(void* params)
// RTOS forever loop // RTOS forever loop
while ( 1 ) while ( 1 )
{ {
if ( tud_cdc_connected() ) // is data available to read from rx fifo
if ( tud_cdc_available() )
{ {
// connected and there are data available uint8_t buf[64];
if ( tud_cdc_available() )
// read and echo back
uint32_t count = tud_cdc_read(buf, sizeof(buf));
for(uint32_t i=0; i<count; i++)
{ {
uint8_t buf[64]; tud_cdc_write_char(buf[i]);
// read and echo back if ( buf[i] == '\r' ) tud_cdc_write_char('\n');
uint32_t count = tud_cdc_read(buf, sizeof(buf));
for(uint32_t i=0; i<count; i++)
{
tud_cdc_write_char(buf[i]);
if ( buf[i] == '\r' ) tud_cdc_write_char('\n');
}
tud_cdc_write_flush();
} }
tud_cdc_write_flush();
} }
// For ESP32-S2 this delay is essential to allow idle how to run and reset wdt // For ESP32-S2 this delay is essential to allow idle how to run and reset wdt
@ -194,12 +191,12 @@ void cdc_task(void* params)
} }
} }
// Invoked when cdc when line state changed e.g connected/disconnected // Invoked when cdc line state changed e.g connected/disconnected
void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts) void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts)
{ {
(void) itf; (void) itf;
// connected // usually terminal software sets DTR and RTS when connected
if ( dtr && rts ) if ( dtr && rts )
{ {
// print initial message when connected // print initial message when connected