0

我正在尝试使用shelljssocat将 AT 命令发送到 Node.js 中的 USB 设备。

以下 (2) 命令在终端中成功执行:

$ sudo socat - /dev/ttyUSB0
AT+RESTART

注意:第一个命令连接到设备,第二个命令重新启动它。

但是,以下 (2) 命令在Node.js中无法成功执行:

shell.exec('sudo socat - /dev/ttyUSB0');
shell.exec('AT+RESTART');

如何让这两个命令在同一个 shell.exec 实例中运行?

4

2 回答 2

0

这是我的atinout程序的完美匹配用例:

shell.exec('echo AT+RESTART | atinout - /dev/ttyUSB0 -');
于 2018-01-09T06:35:42.570 回答
0

检查node-cmd。它有一个关于如何与 python 控制台交互的示例。

const cmd=require('../cmd.js');

const processRef=cmd.get('python -i');
let data_line = '';

//listen to the python terminal output 
processRef.stdout.on(
  'data',
  function(data) {
    data_line += data;
    if (data_line[data_line.length-1] == '\n') {
      console.log(data_line);
    }
  }
);

const pythonTerminalInput=`primes = [2, 3, 5, 7]
for prime in primes:
    print(prime)

`;

//show what we are doing 
console.log(`>>>${pythonTerminalInput}`);

//send it to the open python terminal 
processRef.stdin.write(pythonTerminalInput);

输出将是,

>>>primes = [2, 3, 5, 7]
for prime in primes:
    print(prime)


2
3
5
7

您可以将其用于终端交互。

于 2018-01-09T03:11:17.983 回答