UARTController DataReceived Thresholds

Hello. It looks like there is a 100ms minimum time between UARTController DataReceived events. Is there a way to lower that threshold besides manually polling for BytesToRead? If not, could that be a setting for UARTController exposed in a future release?

Yes, in SC13 it is 100ms,

What happened if 100ms? lost data? slow response?
We can pull every 1ms in other thread and raise event if detect data by software? Of course native much better.

It works fine, but in our SC13 application we’re trying to conserve power as much as possible. We need to send several configuration commands to a radio which ends up meaning the device has to be awake for nearly a full second waiting for UART events when it could probably be off 10x faster than that.

SC13 UART and CAN event gap is 100ms · Issue #1124 · ghi-electronics/TinyCLR-Libraries (github.com)

Great, thanks.

Hi Dat: If possible, it would be nice to have an option to see an event fire due to an idle time threshold being reached. So, for example if you have a stream of 10 bytes come into the port and then there is an XX millisecond gap after the last byte comes in, we would want to see an event.

Do you mean after awhile XX millisecond if there is no data then raise event ?

Exactly, so that the event could be raised effectively as soon as the data stops flowing instead of waiting for a 100ms pause? This would make command / response type use of the UART much faster.

I personally prefer using threads to handle uart.

1 Like

We are going to reduce this number to 20ms as SC20xxx. Or open it as a property so user can change it. That is proper way and much easier, It think.

1 Like