X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=arducontrol%2Fs88.c;h=bd53deb72f55e252e2c88db1ed609e42fa896bae;hb=f0f49dd7ecb27635906557267a733dd8bdb8a9f7;hp=cfe536734be49a78fa7642193148822120304bcb;hpb=4150740d3a5c2384289865923cef08c5852cb520;p=model-railway-devices.git diff --git a/arducontrol/s88.c b/arducontrol/s88.c index cfe5367..bd53deb 100644 --- a/arducontrol/s88.c +++ b/arducontrol/s88.c @@ -28,15 +28,17 @@ void s88_init(void) void s88_check(void) { + /* Check remaining read count before ringbuffer fill. If it is zero, no + more bytes are arriving in the buffer and the contents can be sent out. */ + uint8_t rc = s88_read_count; uint8_t count = ringbuffer_fill(s88_buffer); - if(count>=4 || (count>0 && !s88_read_count)) + if(count>=4 || (count>0 && !rc)) { uint8_t reply[10]; - uint8_t i; reply[0] = S88_DATA; reply[1] = s88_out_index; - for(i=0; i