Нет ответа от команды записи последовательной связи - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть последовательный порт, с которым я хочу связаться с помощью 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
...