我正在使用 Node.js 串行端口模块的 3.10 版本。
我有一个 GSM 调制解调器连接到 Ubuntu 机器的串行端口,我正在通过调制解调器发送 SMS。这是简化的代码:
var serialPort = require("serialport");
const Readline = serialPort.parsers.Readline;
var portSerial = new serialPort("/dev/ttyUSB1", {
baudrate: 115200,
dataBits:8, stopBits:1, parity: 'none'
}, function (err) {
if (err)
//log error here
});
parser = new Readline();
portSerial.pipe(parser);
portSerial.on("open", function(err) {
if (err)
return console.log("Error in opening serial port");
console.log("Port opened");
});
portSerial.on('error', function(err) {
//log error
})
//Send SMS
setTimeout(function() {
portSerial.write('AT+CMGF=1\nAT+CMGS="'+SMSphone + '"\n' +
SMSmessage + '\032');
}, 1000);
是的,我正在设置 SMSphone 和 SMSmessage 变量。而且代码其实有点复杂,但是发送短信的核心代码如上图所示。
问题:如果我在发送 SMS 时运行 minicom,一切正常。我退出 minicom 的那一刻,短信不出去。portSerial.write 停止工作。
在我升级串行端口版本之前一切正常。