我是节点的新手。我开始构建一个简单的Web界面来控制用C ++编写的模拟程序。使用节点程序,我正在创建配置文件,然后启动和停止模拟。
我想使用child_process模块启动我的C ++模拟程序。这是一个实时仿真,由来自IO的外部信号计时。所以这是至关重要的。节点和仿真在Raspberry Pi 3上运行.C ++程序的仿真结果通过SPI发送到微控制器。微控制器正在做一些事情,然后将模拟结果与电力电子和数字模拟转换器并行地用于控制目的。我正在用示波器观察模拟输出。
如果我独立运行我的C ++模拟程序,一切都很好,模拟信号也符合预期。
如果我使用带有child_process的节点和execFile方法运行我的模拟,一切正常,模拟信号就像预期一样。
如果我使用带有child_process的节点和spawn方法运行我的模拟,模拟将输出两者之间的一些延迟。
我读到child.stdin.end()解决了这个问题,但事实并非如此。
那么为什么使用spawn我的子进程运行得更慢?
我的第二个问题是我想对衍生过程做点什么。为此,我需要过程的PID。但是child.pid返回错误的PID。在spawn和execFile的两种情况下。
我希望这篇文章没问题,这是我在SO上发表的第一篇文章。通常我会找到我需要的所有答案;)
祝你好运 丹尼斯。