sync
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
# config.yaml
|
# config.yaml
|
||||||
serial:
|
serial:
|
||||||
port: "COM15"
|
port: "COM15"
|
||||||
baudrate: 112500
|
baudrate: 112500
|
||||||
|
timeout: 20
|
||||||
@@ -208,6 +208,7 @@ void execute_current_command(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
usb_flush_rx();
|
||||||
send_error(rc);
|
send_error(rc);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -222,6 +223,7 @@ protocol_state_t waiting_for_command(uint8_t byte)
|
|||||||
{
|
{
|
||||||
if (byte < 'a' || byte > 'z')
|
if (byte < 'a' || byte > 'z')
|
||||||
{
|
{
|
||||||
|
LOG_DBG("Ignoring non-command byte: 0x%02x", byte); // Nur aktivieren, wenn nötig!
|
||||||
rx_index = 0;
|
rx_index = 0;
|
||||||
return PS_WAITING_FOR_COMMAND;
|
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)
|
static void usb_status_cb(enum usb_dc_status_code cb_status, const uint8_t *param)
|
||||||
{
|
{
|
||||||
switch (cb_status) {
|
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);
|
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
|
#endif // USB_CDC_ACM_H
|
||||||
Reference in New Issue
Block a user