nodejs проблема с последовательным соединением в websocket - PullRequest
0 голосов
/ 01 мая 2020

Я прочитал последовательный интерфейс и хотел бы передать эти данные в веб-сокет. Теперь у меня проблема в том, что в функции onSerial у меня нет доступа к ws innherlab из wss. как я могу решить это?

// Serial port
let SerialPort = require("serialport");
let portName = "COM5";
let buffer = "";

var serialPort = new SerialPort(portName, {
  baudRate: 115200,
  dataBits: 8,
  parity: "none",
  stopBits: 1,
  flowControl: false,
});

serialPort.on("open", function () {
  console.log("open serial communication");
  // listen to incoming data
  serialPort.on("data", function (data) {
    buffer += new String(data);
    let lines = buffer.split("\n");
    while (lines.length > 1) onSerial(lines.shift());
    buffer = lines.join("\n");
  });
});

// websocket
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 1337 });

wss.on('connection', function connection(ws) {
  ws.on('message', function incoming(message) {
    console.log('received: %s', message);
    serialPort.write(message);
  });

  ws.send('connected');
  setInterval(() => ws.send("h Date.now()), 1000);


});


function onSerial(msg) {
  console.log("uart msg:" + msg);
  serialInStr = msg;
  if (ws) {
    console.log("ws:" + ws);
    ws.send(msg);
  }
}
...