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

2024-05-20 22:27:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个can总线网络,它将调查一些传感器以收集数据,以便更好地了解我们要分析和控制的环境。为了做到这一点,我们使用candump来监视通信量,并可以向sen发送信息(来自can-BUS文件,可以在以下地址找到:https://github.com/linux-can/can-utils.git)。我修改了一些代码,它们编译得很好,现在我要做的是制作一个父代码,可以编排这个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是专门为can程序设计的,并且带有CANBUS的iso标准。你知道吗

我想用c函数调用并输入或获取基本信息,就像我在一个有此代码的终端上一样。你知道吗


Tags: 数据代码网络idif环境传感器can
1条回答
网友
1楼 · 发布于 2024-05-20 22:27:47

您可以使用std::system运行其他程序。你知道吗

比如:

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

总的来说,这是完成工作的一种可怕的方式。您需要将这些低级程序(candump more_params >output.txt)的输出重定向到您想对其执行任何操作的文件。如果你只想要一些简单的东西也许就足够了。你知道吗

更好的方法是为这些东西提供一个合适的接口,并将它们链接到二进制文件中。查看candumpcansend是如何实现的,并调用类似的函数。这样可以更好地控制系统的整体工作方式。你知道吗

相关问题 更多 >