【问题标题】:NodeJS reading TTY SerialNodeJS读取TTY串口
【发布时间】:2023-03-20 23:43:02
【问题描述】:

我找不到任何使用 Node.JS 在机器上简单地读取串行端口的示例,而且我似乎不是唯一一个在寻找的人。

最近它是一个包含库,但我无法理解它!

http://nodejs.org/docs/v0.3.8/api/tty.html

有没有人有一个简单地读取串行端口并只是 console.log 输出的例子?

【问题讨论】:

    标签: node.js tty


    【解决方案1】:

    尝试查看node-serialport 模块源码。

    【讨论】:

      【解决方案2】:

      在 Windows 上,这可以使用 v0.5.2 node.exe 下载,无需插件。它以 9600 波特率读取 COM1。

      var fs = require('fs');
      var inp = fs.createReadStream("\\\\.\\COM1");
      inp.setEncoding('utf8');
      var inptext = "";
      inp.on('data', function (data) {
          inptext += data;
      });
      

      【讨论】:

      • 但是如何设置波特率、奇偶校验...?有人知道吗?
      • COM 连接设置是永久的,直到重新启动。只需在 Windows 上运行 mode 命令,例如。 mode com1: BAUD=115200 PARITY=N data=8 stop=1 xon=off
      【解决方案3】:

      @James,要在 windows 上配置 comport 试试这个:

      var spawn = require('child_process').spawn 
        , command = 'MODE COM1:38400,N,8,1,P' 
        , cmd    = spawn('cmd', ['/s', '/c', command], { customFds: [0,1,2] }); 
      
      cmd.on('exit', function(code){ 
          console.log(code);  
      }); 
      

      【讨论】:

        【解决方案4】:

        你看过最近docs上的例子吗?

        var tty = require('tty');
        tty.setRawMode(true);
        process.stdin.resume();
        process.stdin.on('keypress', function(char, key) {
          if (key && key.ctrl && key.name == 'c') {
            console.log('graceful exit');
            process.exit()
          }
        });
        

        【讨论】:

        • 我做了但看不到它是如何打开 /dev/tty.usbserial0 例如!
        猜你喜欢
        • 2011-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-24
        • 1970-01-01
        • 2018-06-02
        相关资源
        最近更新 更多