nodejs - 从串口读取

时间:2011-05-17 20:04:23

标签: node.js serial-port

我一直在四处寻找答案......

基本上,我想从串口读取数据(在这种情况下,通过USB)。我查看了node-serialport模块,但是在第一个结果形成串口后它一直停滞不前。我预计它会在收到数据时吐出数据。好像缓冲区正在填满,需要以某种方式刷新?

我稍微修改了我在此处找到的演示代码 - https://github.com/voodootikigod/node-serialport/tree/master/tests

这是我的代码:

    var sys = require("sys"),
    repl = require("repl"),
    serialPort = require("serialport").SerialPort;

    // Create new serialport pointer
    var serial = new serialPort("/dev/tty.usbmodem1d11" , { baudrate : 9600 });

    // Add data read event listener
    serial.on( "data", function( chunk ) {
        sys.puts(chunk);
    });


    serial.on( "error", function( msg ) {
        sys.puts("error: " + msg );
    });

    repl.start( "=>" );

我正在使用Arduino因此9600波特率。

任何帮助都会很棒,干杯,

詹姆斯

2 个答案:

答案 0 :(得分:25)

node-serialport的作者。我已经跟踪了这个问题,这是由于node.js中IOWatcher的编译问题。我已经修改了从串口读取的策略,现在它应该在所有情况下都按照设计运行。请确保您使用的是node-serialport 0.2.6及更高版本。

现在出去建造JS控制的机器人!!!

答案 1 :(得分:8)

我也遇到串口读取问题。 这是由于node.js v4.7中的错误(请参阅this issue

然而,在切换到较旧版本的Node.js(v4.0)之后,它仍然有效。

它也适用于v4.6以下的版本,但我还没有验证过。