我正在尝试使用 shelljs 和 socat 向Node.js中的USB设备发送AT命令。
以下(2)命令在终端中成功执行:
$ sudo socat - /dev/ttyUSB0
AT+RESTART
注意:第一个命令连接到设备,第二个命令重新启动它。
但是,以下(2)命令无法在 Node.js 中成功执行:
shell.exec('sudo socat - /dev/ttyUSB0');
shell.exec('AT+RESTART');
如何让两个命令在同一个shell.exec实例中运行?
答案 0 :(得分: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
您可以将其用于终端互动。
答案 1 :(得分:0)
这是我的atinout计划的完美匹配用例:
shell.exec('echo AT+RESTART | atinout - /dev/ttyUSB0 -');