我有一个节点脚本,通常称为
node emitter.js "some message"
现在我正在使用trl_fm和multimon_ng来接收和解码一些无线电消息。我设法使用如下命令将输出重定向到/ dev / stdin:
rtl_fm -M fm -f 81.200M -s 21 | multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin
通过这种方式,我得到了一种控制台日志,解码后的消息一旦被接收就会打印出来。
我想要实现的是每次收到消息时都要调用emitter.js
并将此消息作为参数传递给emitter.js
,但我无法弄清楚如何获取此消息工作。
我尝试过的事情:
rtl_fm -M fm -f 81.200M -s 21 | multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin | node emitter.js
rtl_fm -M fm -f 81.200M -s 21 | multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin > node emitter.js
rtl_fm -M fm -f 81.200M -s 21 | multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin >> node emitter.js
有什么方法可以让它发挥作用吗?
答案 0 :(得分:1)
您可以通过一些shell脚本来连接所有内容:
#!/bin/sh
rtl_fm -M fm -f 81.200M -s 21 | \
multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin | \
while read message
do
node emitter.js "$message"
done
或者您可以修改emitter.js
以便它从stdin读取消息而不是使用命令行参数,在这种情况下,您可以直接管道到Node进程(并且它也将消除启动新节点的需要)每个传入消息的过程。)