O módulo Serialport no node.js funciona apenas se o minicom estiver ativo na porta
Estou usando a versão 3.10 do módulo serialport do Node.js.
Eu tenho um modem GSM conectado ao serialport de uma máquina Ubuntu e estou enviando SMS pelo modem. Aqui está o código simplificado:
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);
Sim, estou definindo as variáveis SMSphone e SMSmessage. E o código é realmente um pouco mais complexo, mas o código principal para o envio de SMS é como mostrado acima.
PROBLEMA: Tudo funciona bem se eu estiver executando o minicom quando o SMS é enviado. No momento em que saio do minicom, o SMS não sai. portSerial.write para de funcionar.
Tudo estava funcionando bem até que eu atualizei a versão serialport.