使用节点和放大器在同一端口上发送/接收数据serialport节点包

时间:2018-02-07 12:17:13

标签: node.js serial-port node-serialport

使用以下代码我可以在不同的串口上发送和接收数据。 我删除了第二个端口,只想使用一个端口。我的问题是 - 我可以在同一个端口上发送和读取数据(如果可能的话)吗?

我正在使用: - SerialPort版本:4.0.7 - NodeJS版本:7.9.0 - 电子:1.7.12

const portName = 'COM21'
var port = new serialport(portName, {baudRate: 19200})


//**** SENDING

var sent_data = 'Test data sent\r'

port.open(function(err){
  if(err){
    return console.log('Error opening port: ', err.message)
  }
  port.write(sent_data, function(err){
  if(err){
      return console.log('Error on write', err.message);
   }
   console.log('Port.write: ', sent_data);
  });

})

//****RECEIVING

port.on('data', function(data){

  // decoding uint8Array to string
  if (!("TextDecoder" in window))
    alert("Sorry, this browser does not support TextDecoder...");
  var enc = new TextDecoder();
  var arr = new Uint8Array(data);
  ready = enc.decode(arr)

  console.log('Data received: ', ready);
  document.getElementById('data').textContent = ready
});

// Read data that is available but keep the stream from entering "flowing   mode"
port.on('readable', function () {
  console.log('Data2:', port.read());
});

document.writeln(ready)

1 个答案:

答案 0 :(得分:0)

您可以使用node serial-port写入同一个串口并从中读取。

port = new SerialPort(options...);
port.write("some data");
port.on("data", (data) => {
    console.log(data);
});