sync
This commit is contained in:
@@ -2,3 +2,4 @@
|
||||
serial:
|
||||
port: "COM15"
|
||||
baudrate: 112500
|
||||
timeout: 20
|
||||
@@ -208,6 +208,7 @@ void execute_current_command(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
usb_flush_rx();
|
||||
send_error(rc);
|
||||
}
|
||||
break;
|
||||
@@ -222,6 +223,7 @@ protocol_state_t waiting_for_command(uint8_t byte)
|
||||
{
|
||||
if (byte < 'a' || byte > 'z')
|
||||
{
|
||||
LOG_DBG("Ignoring non-command byte: 0x%02x", byte); // Nur aktivieren, wenn nötig!
|
||||
rx_index = 0;
|
||||
return PS_WAITING_FOR_COMMAND;
|
||||
}
|
||||
|
||||
@@ -95,6 +95,18 @@ void usb_write_buffer(const uint8_t *buf, size_t len)
|
||||
}
|
||||
}
|
||||
|
||||
void usb_flush_rx(void)
|
||||
{
|
||||
uint8_t dummy;
|
||||
if (!device_is_ready(cdc_dev)) return;
|
||||
|
||||
// Alles lesen, was gerade im Hardware-FIFO liegt
|
||||
while (uart_fifo_read(cdc_dev, &dummy, 1) > 0);
|
||||
|
||||
// Semaphore zurücksetzen, falls sie gesetzt war
|
||||
k_sem_reset(&usb_rx_sem);
|
||||
}
|
||||
|
||||
static void usb_status_cb(enum usb_dc_status_code cb_status, const uint8_t *param)
|
||||
{
|
||||
switch (cb_status) {
|
||||
|
||||
@@ -47,4 +47,9 @@ void usb_write_char(uint8_t c);
|
||||
*/
|
||||
void usb_write_buffer(const uint8_t *buf, size_t len);
|
||||
|
||||
/**
|
||||
* @brief Flushes the USB RX FIFO
|
||||
*/
|
||||
void usb_flush_rx(void);
|
||||
|
||||
#endif // USB_CDC_ACM_H
|
||||
Reference in New Issue
Block a user