如何编写使用其他C程序的父程序?

时间:2019-01-25 12:39:39

标签: python c++ c can-bus

我正在建立一个CAN总线网络,该网络将调查一些传感器以收集数据,以便更好地了解我们要分析和控制的环境。为此,我们使用candump监视流量并可以发送sen信息(来自可在该地址https://github.com/linux-can/can-utils.git中找到的CAN-BUS文件)。我修改了一些代码,它们可以很好地编译,现在我要做的是制作一个可以编排此C程序以控制环境的父代码。我想使用python或c ++来做到这一点。

示例算法

while(sys == on){

if (everything is in place && security) then 
{candump -l -t -n nb_of_max_cycle can0} 
else { puts("error")}

if (user_id == permited_id && authentification) then 
{ cansend can0 tram=[hexID_arbitration+data] }
else { puts("denied") }

}

预先感谢所有类型的建议。

我已经尝试使用IDE,但是我无法编译任何东西,因为使用的makefile是专门为具有CANBUS的iso标准的can程序制作的。

我想使用c函数调用和放置或获取基本信息,就像我在使用此代码的终端上一样。

1 个答案:

答案 0 :(得分:2)

您可以使用std::system运行其他程序。

类似的东西:

if (std::system("candump -l -t -n nb_of_max_cycle can0") != 0) {
  puts("error");
}

这总体上是完成工作的可怕方法。如果您要执行任何操作,则需要将输出从那些较低级别的程序(candump more_params >output.txt)重定向到文件。如果您只想要简单的东西就足够了。

更好的方法是为这些东西提供适当的接口,并将它们链接到您的二进制文件中。检查实现了candumpcansend并调用类似的函数。这样应该可以更好地控制系统的整体运行方式。