我从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
根据文件,它有“暂停”和“恢复”方法吗?为什么我收到此错误 - 如果方法不存在 - 如何编写暂停/恢复方法?
答案 0 :(得分:0)
您是否在Windows上运行此代码? pause()和resume()方法不适用于Windows。为避免此运行时错误,请使用if条件对这些函数进行包装,如下所示。
if (process.platform !== 'win32'){
serialPort.pause();
}
我也遇到了这个错误并按上述方法修复了它。