From d7ad240f059b47bed4eb8fcc87aee10c5247f094 Mon Sep 17 00:00:00 2001 From: skarg Date: Sun, 17 Mar 2019 22:15:27 +0000 Subject: [PATCH] The patch is to change the timeout from 10us to 0 so that we just do a poll for more receive data when there is already data queued. With this patch, the code seems to work just fine with 100Hz timer tick. Thank you, David Mosberger --- bacnet-stack/ports/linux/rs485.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bacnet-stack/ports/linux/rs485.c b/bacnet-stack/ports/linux/rs485.c index 5f21716b..0afa3493 100644 --- a/bacnet-stack/ports/linux/rs485.c +++ b/bacnet-stack/ports/linux/rs485.c @@ -482,9 +482,9 @@ void RS485_Check_UART_Data( /* data is available */ mstp_port->DataRegister = FIFO_Get(&Rx_FIFO); mstp_port->DataAvailable = true; - /* FIFO is giving data - don't wait very long */ + /* FIFO is giving data - just poll */ waiter.tv_sec = 0; - waiter.tv_usec = 10; + waiter.tv_usec = 0; } else { /* FIFO is empty - wait a longer time */ waiter.tv_sec = 0; @@ -514,9 +514,9 @@ void RS485_Check_UART_Data( /* data is available */ mstp_port->DataRegister = FIFO_Get(&poSharedData->Rx_FIFO); mstp_port->DataAvailable = true; - /* FIFO is giving data - don't wait very long */ + /* FIFO is giving data - just poll */ waiter.tv_sec = 0; - waiter.tv_usec = 10; + waiter.tv_usec = 0; } else { /* FIFO is empty - wait a longer time */ waiter.tv_sec = 0;