我正在建立一个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函数调用和放置或获取基本信息,就像我在使用此代码的终端上一样。
答案 0 :(得分:2)
您可以使用std::system
运行其他程序。
类似的东西:
if (std::system("candump -l -t -n nb_of_max_cycle can0") != 0) {
puts("error");
}
这总体上是完成工作的可怕方法。如果您要执行任何操作,则需要将输出从那些较低级别的程序(candump more_params >output.txt
)重定向到文件。如果您只想要简单的东西就足够了。
更好的方法是为这些东西提供适当的接口,并将它们链接到您的二进制文件中。检查实现了candump
和cansend
并调用类似的函数。这样应该可以更好地控制系统的整体运行方式。