A
Alexander Chernov
Hi
I was doing serial port reading software with Ruby and Ruby/SerialPort
Library on Windows. I noticed that port reading works but with delays or
jitter when data from serial port comes, reading works in portions. In
reality, data comes twice per second but Ruby software detects data and
shows data only in portions. It means, at some particular time, there is
no data even if it is actually arriving on port. Then, occasionally, the
data comes all together for all the time when it was expected as one
single portion. And then data receive stops again. Point is the data
receive is correct, there is no lost data os something like that. But
Ruby software simply does not detect data at the time when it arrives.
It detects the data some time later and it combines the data arrival
into one portion, and until the portion is full, it simply does not
detect any data.
This is strange thing happens only on Windows XP, on Linux everything is
fine.
Serial software is typical with threads as given in example included
into Ruby/SerialPort Library package.
I did not build library for Windows XP by myself. I took it binary. For
Linux, I took binary as well.
Does anybody has a clue why it works differently? How possible to avoid
that delay or data delivery in portions? Is this Ruby threads issue on
Windows?
Thanks in advance
chelex
I was doing serial port reading software with Ruby and Ruby/SerialPort
Library on Windows. I noticed that port reading works but with delays or
jitter when data from serial port comes, reading works in portions. In
reality, data comes twice per second but Ruby software detects data and
shows data only in portions. It means, at some particular time, there is
no data even if it is actually arriving on port. Then, occasionally, the
data comes all together for all the time when it was expected as one
single portion. And then data receive stops again. Point is the data
receive is correct, there is no lost data os something like that. But
Ruby software simply does not detect data at the time when it arrives.
It detects the data some time later and it combines the data arrival
into one portion, and until the portion is full, it simply does not
detect any data.
This is strange thing happens only on Windows XP, on Linux everything is
fine.
Serial software is typical with threads as given in example included
into Ruby/SerialPort Library package.
I did not build library for Windows XP by myself. I took it binary. For
Linux, I took binary as well.
Does anybody has a clue why it works differently? How possible to avoid
that delay or data delivery in portions? Is this Ruby threads issue on
Windows?
Thanks in advance
chelex