DBC解析请见:CAN BLF包解析和播包发送(一):CAN dbc解析https://blog.csdn.net/qq_42503781/article/details/128966946

CAN BLF包解析

BLF是什么

BLF是vector的CANoe工具录制can报文形成的包的数据格式,一般会保存在BLF和ASC两种格式,BLF是其中一种。

好,废话不多说,直接进入BLF解析,无需看BLF的格式定义,直接根据包的输出即可直观了解。

BLF包解析

BLF解析需要结合dbc和blf解析两者才可实现正常数据展示。

dbc解析请转至文章开始,点击链接跳转。

BLF解析也采用python,需要使用can的库,安装方法:

pip3 install can

使用时,直接import can即可。

直接上代码,可直接运行:

# -*- coding: utf-8 -*-
#####
"""
# author:vehicle_ma, 2023/2/10
"""
######
import can
import cantools
import timedb = cantools.db.load_file('test.dbc')   #dbc对象
filename = "test.blf"
blf = can.BLFReader(filename)      #blf对象for msg in blf:ID = msg.arbitration_id             #message idtime_stamp = msg.timestamp          #blf包中保存的报文时间戳can_data = msg.data                 #blf包中保存的数据,直接打印是加密的数字字符码dict_data = db.decode_message(msg.arbitration_id, msg.data)    #对数据进行解码length = msg.dlc                    #blf包中保存的报文长度,如8,64print('origin message data   ', msg.data)print('message id:      ', ID)print('message data     ', dict_data)print('message length   ', length)break            #为了好展示,所以就输出了包里面的第一行报文,全输出去掉即可

直接执行结果:

origin message data    bytearray(b'\x00\x02\x00\x04\x00\x00\t|\x80\x08\x00\x80\x00\x00\x00\x00\x04\x00\x00\x02\x00\x80\x00\x00\x80\x08\x00\x00\x04\x00\x00\x00\x02\x00\x00\x08\x00\x80\x00\x00\x80\x00\x00\x04\x00\x00\x00\x00\x80\x08\x00\x80\x02\x00\x00\x00\x80\x08\x00\x00\x04\x00\x00\x00')
message id:       428
message data      {'FRM_ObjID': 0, 'FRM_ObjObstcl': 0.0, 'FRM_ObjDirAccrnY': 0.0, 'FRM_ObjExistnc': 0.0, ********(这里不全部展示了)}
message length    64

这里面用到的接口有:

  • blf = can.BLFReader(filename), 获取一个blf文件对象
  • d = db.decode_message(msg.arbitration_id, msg.data), db为dbc对象,根据输入的id和data,对data进行decode,形成可直观展示的结果;

相对应的就有对can报文进行encode的接口:

  • msg.data = db.encode_message(msg.arbitration_id, d), 输入为message id和直观展示的直观展示的字典结果,如上述中decode之后的结果。输出就是上述示例中的origin message data

CAN BLF包解析和播包发送(二):CAN BLF包解析相关推荐

  1. iis服务器udp协议,Win2003系统的IIS服务的w3wp.exe使用UDP的80端口发送大量的数据包,寻求帮助...

    环境介绍: 1. 系统是:Windows 2003 Enterprise Edit + SP2 2. 作为Web服务器:安装 IIS6,同时支持asp + asp.net 1.1  + asp.net ...

  2. python scapy 抓包_Python3下基于Scapy库完成网卡抓包解析

    Scapy是一个可以让用户发送.侦听和解析并伪装网络报文的Python程序.这些功能可以用于制作侦测.扫描和攻击网络的工具. 在 Python 代码中可以通过 sniff 函数调用抓包分析,并对抓到的 ...

  3. ARP原理概述——基于WinPcap发送ARP请求数据包获取远程MAC地址

    ARP原理概述--基于WinPcap发送ARP请求数据包获取远程MAC地址 ARP协议 ARP概述 ARP工作原理 ARP数据包格式 编写程序发送ARP请求获取本机和远程IP的MAC 注意: ARP协 ...

  4. Python基于statsmodels包构建多元线性回归模型:模型构建、模型解析、模型推理预测

    Python基于statsmodels包构建多元线性回归模型:模型构建.模型解析.模型推理预测 目录

  5. python数据包的作用_使用Python将登录数据包发送到Minecraft服务器不起作用

    我在Python中有以下脚本 . 它的作用是尝试连接到MineCraft服务器,首先发送'handshake',然后发送登录请求 . 协议规格可以在这里找到:http://wiki.vg/Protoc ...

  6. java中DatagramSocket连续发送多个数据报包时产生丢包现象解决方案

    1 try { 2 //向指定的ip和端口发送数据~! 3 //先说明一下数据是谁发送过来的! 4 byte[] ip = InetAddress.getLocalHost().getHostAddr ...

  7. tshark 解析pcap中带TLS协议的数据包

    tshark的简单用法参考:tshark解析本地pcap数据包提取五元组{src_ip,src_port,proto,dst_ip,dst_port}与时间戳,包长 详细用法:官方DOC 比如提取一个 ...

  8. java发送接收UDP数据包:字符串,byte[]字节数组,文件等

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java发送接收UDP数据包,数据内容为byte[],包括一切可以转换为byte[]的内容. 测试代码 public static void ma ...

  9. 网卡是如何将包转换成电信号并发送到网线中的

    下面来看一看网卡是如何将包转换成电信号并发送到网线中的.网卡驱动从IP模块获取包之后,会将其复制到网卡内的缓冲区中,然后向MAC模块发送发送包的命令.接下来就轮到MAC模块进行工作了. 首先,MAC模 ...

最新文章

  1. ORA-12514 监听程序当前无法识别连接描述符中的服务
  2. 如何删除oracle用户数据库用户,oracle删除指定用户的原数据库,建立该用户的新数据库...
  3. WebSphere MQ For AIX和HP-UX安装配置
  4. ps光效插件_全套光效PS插件(2019),只有你想不到的,没有它做不到的PS特效...
  5. Focal Loss升级:让Focal Loss动态化,类别极端不平衡也可以轻松解决
  6. mysql删除有关联的数据库表_【数据库】mysql如何删除关联表
  7. 数据结构之单链表(头结点)的一些常用操作(增删改查逆)
  8. linux打印软件,KX-MB2033CN Linux
  9. 烂泥:nagios学习(四):pnp4nagios图形化绘制nagios数据
  10. 黑鸭宣布开源项目-年度新秀
  11. 羊坊店不眠夜(续集)
  12. 3串口多串口双串口以及2串口转WiFi多跳路由通讯实现一
  13. idea如何恢复默认的keymap
  14. 编辑器 的保存怎么绑定事件_135编辑器有哪些可以快速提升新媒体小编工作效率的功能?...
  15. 001.Python安装及Pycharm安装破解
  16. python中forward是什么意思_pytorch 中forward 的用法与解释说明
  17. 入行大数据需要学习哪些编程语言
  18. 金立android怎么升级包,金立S6升级刷机教程[多图]
  19. C语言串的基本操作(assign,compare,concat,index,insert,delete,replace)
  20. Matlab声音处理教程

热门文章

  1. 江苏机器人竞赛南航_南航金城学院学子在第十届江苏省机器人大赛中获佳绩
  2. C语言判断一个数是否为素数(质数),C语言经典例题计算素数,C语言二级重点
  3. 遥感图像处理基本操作——遥感图像辐射定标和大气校正(ENVI)
  4. java学习资源第二弹,持续更新方便你我
  5. 【IDEA】配置翻译插件【Translate】
  6. GPO:部署 ADMX/ADML Template
  7. 计算机组成原理的基本知识
  8. 利用命令行对批量文件改名字
  9. 百度飞桨PaddleClas图像识别开源应用扫盲课笔记(一)
  10. java邮件开发--电子邮件基础