From 9ac63b410cacaf77adcc7ae366a10a761d3d7658 Mon Sep 17 00:00:00 2001 From: Maxime COZZI Date: Thu, 23 Jan 2025 14:01:30 +0100 Subject: [PATCH] fix serial ring buffer management --- network/serial_network/HAL/NATIVE/serial_network_hal.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/network/serial_network/HAL/NATIVE/serial_network_hal.c b/network/serial_network/HAL/NATIVE/serial_network_hal.c index 12555f235..5976b2de4 100644 --- a/network/serial_network/HAL/NATIVE/serial_network_hal.c +++ b/network/serial_network/HAL/NATIVE/serial_network_hal.c @@ -346,12 +346,16 @@ void SerialHAL_Send(uint8_t *data, uint16_t size) // Wait for the buffer to be empty usleep(1000); ioctl(serial_port, TIOCOUTQ, &bytes_in_buffer); - bytesWritten = write(serial_port, &data[bytesWritten], size - bytesWritten); + bytesWritten = write(serial_port, &data[totalBytesWritten], size - totalBytesWritten); if (bytesWritten < 0) { printf("Error writing to serial port\n"); close(serial_port); - LUOS_ASSERT(0); + bytesWritten = 0; + size = 0; + totalBytesWritten = 0; + ioctl(serial_port, TIOCOUTQ, &bytes_in_buffer); + break; } else {