Skip to content

CAN-do-parser 用于对CAN数据帧解析,支持DBC文件解析,支持CAN总线字节数据转换为物理量

License

Notifications You must be signed in to change notification settings

Jarrettluo/CAN-do-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


CAN-Do-Parser

CAN总线数据的解析工具。

目录
  1. 关于项目
  2. 开始使用
  3. 开源许可
  4. 联系方式
  5. 致谢

关于项目

CAN-do-parser 是用于CAN总线协议数据的解析工具。

主要目标是对字节数据根据DBC文件的信息解析为物理量。

主要的功能是:

  • 解析DBC文件。
  • 解析字节数组byte[]为十进制数据。

(返回)

开始使用

安装依赖

<dependency>
  <groupId>io.github.jarrettluo</groupId>
  <artifactId>can-frame-parser</artifactId>
  <version>1.0.0</version>
</dependency>

解析dbc文件

String filePath = "xxx.dbc";

// 对dbc文件进行解析
Map<DbcMessage, List<DbcSignal>> dbcMessageListMap = DbcParser.parseFile(filePath);

解析CAN帧数据

方法1: 通过实例化解析对象进行解析数据帧

// CAN 帧数据
CANFrame canFrame = new CANFrame(System.currentTimeMillis(), 1, 8, 20, "275d602702000000");

// dbc数据; 通过dbc解析器得到
Map<String, DbcMessage> dbcMessageMap = new HashMap<String, DbcMessage>();

// 初始化解析器
CANFrameParser canFrameParser = new CANFrameParser(dbcMessageMap);

// 对can数据进行解析
Map<String, Double> physicalValueMap = canFrameParser.extractMessage(canFrame);

方法2: 通过解析工具静态方法进行解析某一条信号

CANFrame canFrame = new CANFrame(System.currentTimeMillis(), 1, 8, 20, "275d602702000000");

// 解析具体的信号
int startBit = 32;
int length = 32;
boolean isSigned = true;
boolean isLittleEndian = true;
String factor = "1";
String offset = "0";

// 解析工具的静态解析方法,对信号进行解析
double signal = CANFrameParser.extractSignal(canFrame.getMsgData(), startBit, length, isSigned, 
                isLittleEndian, factor, offset);

开源许可

请遵守开源协议,查看更多详细信息可查看LICENSE.txt

(返回)

联系方式

Jarrett Luo - http://jiaruiblog.com - luojiarui2@163.com

(返回)

致谢

暂无。

(返回)

About

CAN-do-parser 用于对CAN数据帧解析,支持DBC文件解析,支持CAN总线字节数据转换为物理量

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages