Question

I'm using the ruby serial port gem. After I open up the port I send the data I want like this.

sp.write [200.chr, 30.chr, 7.chr, 5.chr, 1.chr, 2.chr, 0.chr, 245.chr].to_s

It doesn't work, but if I put it in a loop of around 200 times:

200.times do
  sp.write [200.chr, 30.chr, 7.chr, 5.chr, 1.chr, 2.chr, 0.chr, 245.chr].to_s
end

It works. Any ideas on why this is happening?

Was it helpful?

Solution

It can be related to some kind of buffer that only gets flushed (ie: sends data) when:

  1. You're explicitly sending a CRLF at the end of your string
  2. It (the buffer) is full

Just for testing, would it be wrong for you to try to add \r\n at the end of the string?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top