У меня есть последовательный порт, с которым я хочу связаться с помощью node js. Вот свалка успешного коммуникационного взаимодействия. это мое spe c (asyn c последовательный протокол) spe c do c
(COM1 in windows) снимок экрана успешной передачи через последовательный порт
Однако, когда я использую nodejs для репликации этого взаимодействия, я не получаю никакого ответа от порта. (/dev/tty.usbserial-14420 в macOS)
var serialport = require("serialport");
const port = "/dev/tty.usbserial-14420";
const ACK = 0x06;
const NAK = 0x15;
const ENQ = 0x05;
const EOT = 0x04;
const STX = 0xF2;
const ETX = 0x03;
const CMT = "C";
let f3 = new serialport(port, {
baudRate: 9600
})
var Readline = serialport.parsers.Readline; // make instance of Readline parser
var parser = new Readline(); // make a new parser to read ASCII lines
f3.pipe(parser); // pipe the serial stream to the parser
f3.on('open', () => {
console.log('port open');
f3.write(makeMessage1());
f3.write(makeMessage0());
f3.write(makeMessage2());
});
parser.on('data', (data) => {
console.log("data received "+data);
});
f3.on('error', (error) => {
console.log('error: ' + error);
})
function makeMessage0() {
return new Buffer.from('05');
}
function makeMessage1() {
return new Buffer.from('f2 00 00 03 43 30 33 03 b2');
}
function makeMessage2() {
return new Buffer.from('f2 00 00 03 43 32 03 ba');
}
вывод:
port open