NodeJS:串行端口库的串行读取不起作用

时间:2021-06-10 12:39:42

标签: c++ node.js serial-port

我有一个在板上运行的 C++ 服务器。我正在使用串行写入通过我的终端发送命令,但在该板上使用 Cout (C++) 打印的响应没有出现在串行读取中。这三种阅读方法我都试过了,都没有效果。

这是我在 NodeJs 中的代码,用于在运行 C++ 服务器的板上编写命令

const sleep = require('system-sleep');


process.stdin.setEncoding('utf8');
const args = process.argv.slice(2);
const inputFile=args[0];
const commandList=[];
var itr=0;
const serialPort = require('serialport')
const Readline = serialPort.parsers.Readline
try {
  const data = fs.readFileSync(inputFile, 'utf8');

  // parse JSON string to JSON object
  const databases = JSON.parse(data);

  databases.forEach(db => {
  commandList.push(db);
  });

}catch (err) {
  console.log(`Error reading file from disk: ${err}`);
}

const port = new serialPort('/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9KB7O1F-if00-port0', {
  baudRate: 115200
}).setEncoding("utf8");
console.log(port);
const parser = new Readline()
port.pipe(parser)

parser.on('data', function(data) {
  console.log(data +"\n");
});

port.on('readable', function () {
  console.log('Data:', port.read())
})

// Switches the port into "flowing mode"
port.on('data', function (data) {
  console.log('Data:', data)
})

port.on("close",function(){
  console.log("WOW");
});



port.write("cd /tmp\n",function(err){
    if(err){
        console.log(err);
        return;
    }
    console.log("sucessfuly written");
    sleep(5000);
    port.write("./test1 ABCD \n",function(err){
      if(err){
          console.log(err);
          return;
      }
      console.log("sucessfuly written");
      port.write("./test1 EFGH \n",function(err){
        if(err){
            console.log(err);
            return;
        }
        console.log("sucessfuly written");
        port.write("./test1 IJKL \n",function(err){
        if(err){
            console.log(err);
            return;
        }
        console.log("sucessfuly written");
        port.write("./test1 MNOP\n",function(err){
            if(err){
                console.log(err);
                return;
            }
            console.log("sucessfuly written");
        });
    });
  });    
});
});

// const parser = port.pipe(new Readline())

0 个答案:

没有答案