尽管can-utils软件包在Linux中可用于与CAN网络设备交互,但我试图确认tcpdump在读取CAN数据包时是否只能打印十六进制格式而不包含ASCII字符?
tcpdump版本4.2.1 libpcap 1.1.1版
我发现唯一的解决方法是将tcpdump输出定向到一个文件,然后使用hexdump,xxd或OD等工具从所述文件中读取。
左上角的屏幕基于以下脚本:
# tcpdump -ivcan0 -s0 -x -w - -s0 -l > canpackets.hex & tail -f canpackets.hex | hexdump -vC
右上方的屏幕表示使用(-x)的tcpdump输出,不重定向到hexdump;仍然打印ASCII。
左下方的屏幕是candump;这里只是为了说明右下方屏幕中cangen util生成的十六进制值。
while :; do ./cansend vcan0 001#1122334455667788; sleep .25; done