SerialPort没有名为' pause'

时间:2014-04-20 09:39:01

标签: node.js

我从https://github.com/voodootikigod/node-serialport

下载了NodeJS SerialPort模块

以下是我使用它的方式:

var Serialport = require("serialport").SerialPort;
var serialPort = new Serialport("COM1", {
baudrate: 9600,  dataBits: 8,  parity: 'none',  stopBits: 1, flowControl: false, xon : false, rtscts:false, xoff:false, xany:false, bufferSize:0, rtscts: false, dsrdtr: false
});

serialPort.on("open", function () {
console.log('Serial communication open');
serialPort.write("AT+CMGF=1");
serialPort.write('\r');
serialPort.flush();
serialPort.pause ();
serialPort.on('data', function(data) { 
        global.recData += data.toString()
        if (global.recData.indexOf("OK") >= 0)                
          serialPort.resume();
        });
});

但是我收到了错误 -

            serialPort.pause ();
                       ^
TypeError: Object #<SerialPort> has no method 'pause'
    at SerialPort.<anonymous> (E:\NodeJS\bas\routes\serial.js:40:24)
    at SerialPort.EventEmitter.emit (events.js:92:17)
    at E:\NodeJS\node_modules\serialport\serialport.js:201:12

根据文件,它有“暂停”和“恢复”方法吗?为什么我收到此错误 - 如果方法不存在 - 如何编写暂停/恢复方法?

1 个答案:

答案 0 :(得分:0)

您是否在Windows上运行此代码? pause()和resume()方法不适用于Windows。为避免此运行时错误,请使用if条件对这些函数进行包装,如下所示。

if (process.platform !== 'win32'){
 serialPort.pause();
}

我也遇到了这个错误并按上述方法修复了它。