1
votes

Using below code i can send and receive data but on different serial ports. I've removed second port and want to use only one. My question is - can i send and read data on same port(if possible)?

I am using: - SerialPort Version: 4.0.7 - NodeJS Version: 7.9.0 - Electron: 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

1 Answers

1
votes

Yes

You can write to, and read from, the same serial port using node serial-port.

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