代码之家  ›  专栏  ›  技术社区  ›  Seth Archer Brown

Ruby串行端口

  •  0
  • Seth Archer Brown  · 技术社区  · 15 年前

    我用的是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
    

    它起作用了。你知道为什么会这样吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Franck Verrot    15 年前

    它可能与某种缓冲区相关,只有在以下情况下才会刷新(即:发送数据):

    1. 你在字符串末尾明确地发送了一个crlf
    2. 它(缓冲区)已满

    仅用于测试,尝试在字符串末尾添加\r\n是否有误?

    推荐文章