0

我正在使用 ruby​​ 串行端口 gem。打开端口后,我会像这样发送我想要的数据。

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

它不起作用,但如果我把它放在一个大约 200 次的循环中:

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

有用。关于为什么会发生这种情况的任何想法?

4

1 回答 1

1

它可能与某种仅在以下情况下被刷新(即:发送数据)的缓冲区有关:

  1. 您在字符串末尾明确发送 CRLF
  2. 它(缓冲区)已满

只是为了测试,您尝试在字符串末尾添加 \r\n 会不会是错误的?

于 2010-03-28T07:27:27.303 回答