Browse Source

Delete old USB serial code, and implement Serial.clear()

teensy4-core
PaulStoffregen 5 years ago
parent
commit
5b7e3213b2
1 changed files with 4 additions and 79 deletions
  1. +4
    -79
      teensy4/usb_serial.c

+ 4
- 79
teensy4/usb_serial.c View File

} }
return c; return c;
} }
#if 0
unsigned int i;
int c;

if (!rx_packet) {
if (!usb_configuration) return -1;
rx_packet = usb_rx(CDC_RX_ENDPOINT);
if (!rx_packet) return -1;
}
i = rx_packet->index;
c = rx_packet->buf[i++];
if (i >= rx_packet->len) {
usb_free(rx_packet);
rx_packet = NULL;
} else {
rx_packet->index = i;
}
return c;
#endif
return -1; return -1;
} }


return rx_buffer[rx_index[0]]; return rx_buffer[rx_index[0]];
} }


#if 0
if (!rx_packet) {
if (!usb_configuration) return -1;
rx_packet = usb_rx(CDC_RX_ENDPOINT);
if (!rx_packet) return -1;
}
if (!rx_packet) return -1;
return rx_packet->buf[rx_packet->index];
#endif
return -1; return -1;
} }


int usb_serial_available(void) int usb_serial_available(void)
{ {
return rx_count[0] - rx_index[0]; return rx_count[0] - rx_index[0];
#if 0
int count;
count = usb_rx_byte_count(CDC_RX_ENDPOINT);
if (rx_packet) count += rx_packet->len - rx_packet->index;
return count;
#endif
return 0;
} }


// read a block of bytes to a buffer // read a block of bytes to a buffer
int usb_serial_read(void *buffer, uint32_t size) int usb_serial_read(void *buffer, uint32_t size)
{ {
#if 1
// Quick and dirty to make it at least limp... // Quick and dirty to make it at least limp...
uint8_t *p = (uint8_t *)buffer; uint8_t *p = (uint8_t *)buffer;
uint32_t count=0; uint32_t count=0;
count++; count++;
} }
return count; return count;
#else
uint8_t *p = (uint8_t *)buffer;
uint32_t qty, count=0;

while (size) {
if (!usb_configuration) break;
if (!rx_packet) {
rx:
rx_packet = usb_rx(CDC_RX_ENDPOINT);
if (!rx_packet) break;
if (rx_packet->len == 0) {
usb_free(rx_packet);
goto rx;
}
}
qty = rx_packet->len - rx_packet->index;
if (qty > size) qty = size;
memcpy(p, rx_packet->buf + rx_packet->index, qty);
p += qty;
count += qty;
size -= qty;
rx_packet->index += qty;
if (rx_packet->index >= rx_packet->len) {
usb_free(rx_packet);
rx_packet = NULL;
}
}
return count;
#endif
return 0;
} }


// discard any buffered input // discard any buffered input
void usb_serial_flush_input(void) void usb_serial_flush_input(void)
{ {
#if 0
usb_packet_t *rx;

if (!usb_configuration) return;
if (rx_packet) {
usb_free(rx_packet);
rx_packet = NULL;
}
while (1) {
rx = usb_rx(CDC_RX_ENDPOINT);
if (!rx) break;
usb_free(rx);
if (rx_index[0] < rx_count[0]) {
rx_index[0] = rx_count[0];
usb_prepare_transfer(rx_transfer + 0, rx_buffer + 0, CDC_RX_SIZE, 0);
usb_receive(CDC_RX_ENDPOINT, rx_transfer + 0);
} }
#endif
} }


// When the PC isn't listening, how long do we wait before discarding data? If this is // When the PC isn't listening, how long do we wait before discarding data? If this is

Loading…
Cancel
Save