使用Node.js写入后读取串行端口

时间:2016-12-07 20:26:16

标签: node.js serial-port

我的node.js脚本使用serialport npm包来读取和写入COM5端口,该端口连接到RS-232设备。该设备仅在收到与其连接的PC发送的命令时才写入串口。

如何在写入后读取RS-232设备返回的内容?

var SerialPort = require('serialport');
var port = new SerialPort('COM5', {
    parser: SerialPort.parsers.readline('\r')
}, function() {
    port.write('#01RD\r', function(err) {
        if(err)
            console.log('Write error')
        else {
            // HOW TO READ RESPONSE FROM DEVICE?
        }
    });
    port.write('#01VER\r', function(err) {
        if(err)
            console.log('Write error')
        else {
            // HOW TO READ RESPONSE FROM DEVICE?
        }
    });
});     

1 个答案:

答案 0 :(得分:0)

我认为这是一种更好的方法。通过函数调用, 首先创建你的阅读和写作功能:

var serialport = require("serialport");
var SerialPort = serialport.SerialPort;

var sp = new SerialPort("/dev/ttyACM0", {
  baudrate: 9600,
  parser: serialport.parsers.readline("\n")
});

function write() //for writing
{
    sp.on('data', function (data) 
    {
        sp.write("Write your data here");
    });
}

function read () // for reading
{
    sp.on('data', function(data)
    {
        console.log(data); 
    });
}

sp.on('open', function() 
{
    // execute your functions
    write(); 
    read(); 
});