全网唯一OpenCyphal/UAVCAN教程(11)用candump和gawk工具写一个Cyphal协议解析小工具
Posted 奇妙之二进制
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全网唯一OpenCyphal/UAVCAN教程(11)用candump和gawk工具写一个Cyphal协议解析小工具相关的知识,希望对你有一定的参考价值。
经常需要调试Cyphal协议,yakut的安装比较麻烦,所以就用candump和gawk实现了一个协议解析工具。
这个candump导出的数据,很明显这是一条心跳广播,7D55是心跳广播的id,而且还是条单帧消息。
can1 107D552A [8] 00 00 00 00 00 01 A1 E0
can1 107D552A [8] 01 00 00 00 00 01 A1 E1
can1 107D552A [8] 02 00 00 00 00 01 A1 E2
can1 107D552A [8] 03 00 00 00 00 01 A1 E3
解析的依据参考这个图片:
贴上我们的awk脚本:
#!/usr/bin/gawk
BEGIN
id_name[7509] = "heart_beat";
# add your id and name map here
can_id_index = 2;
getline
#line example: (001.000) can0 11111 [8] 55555
if($1 ~/^\\(/)
can_id_index = 3;
while (getline)
# have timestamp
if(can_id_index == 3)
timestamp = strtonum(substr($1, 2));
#line example: can0 1122233 [8] 5555555
can_id = strtonum("0x"$can_id_index);
source_id = and(can_id, 0x0000007F);
# 0 message
以上是关于全网唯一OpenCyphal/UAVCAN教程(11)用candump和gawk工具写一个Cyphal协议解析小工具的主要内容,如果未能解决你的问题,请参考以下文章
全网唯一OpenCyphal/UAVCAN教程libcanard介绍
全网唯一OpenCyphal/UAVCAN教程libcanard介绍
全网唯一OpenCyphal/UAVCAN教程(11)用candump和gawk工具写一个Cyphal协议解析小工具