Bash:确定 CANbus 比特率是否配置正确

Bash:确定 CANbus 比特率是否配置正确

我正在开发一个嵌入式 Linux (4.1.15) bash 脚本,其中 CANbus 的比特率可能是几种可能性之一。当我的模块上线时,它会以列表中的第一个比特率出现,检查流量,如果没有流量,则以类似的方式循环遍历每个比特率,直到检测到流量。

我最初的方法是做类似的事情timeout -t 1 output=$(candump can0)。如果输出为空,则比特率不正确。但是,该timeout函数似乎并没有强制从命令返回。

我的第二种方法是尝试用ip -details -statistics link show can0.虽然这确实在单个离散命令中产生了一些有意义的信息,但如果无法重置统计信息,它就不是很有用。

该命令uname -rms生成有关系统的版本信息:Linux 4.1.15 armv7l

如果有人知道如何使这些方法中的任何一种发挥作用,那就太好了,或者如果您知道另一种方法,我洗耳恭听。最重要的是,我需要找到一种使用 bash 脚本来执行此操作的方法。

答案1

(我的超时命令没有使用-t,但似乎有不同的版本)。通过将超时部分放在 中$(),它应该能够向canbus命令发出信号,并且至少对 的赋值output应该始终创建变量。

output=$(timeout -t 1 candump can0)

相关内容