一种DBC报文信号赋值和解析的方法、系统、终端设备及存储介质技术方案

技术编号:37845280 阅读:23 留言:0更新日期:2023-06-14 22:29
本发明专利技术涉及报文处理技术领域,公开了一种DBC报文信号赋值和解析的方法、系统、终端设备及存储介质,通过读取和解析DBC文件,实现在代码中创建报文结构体,报文字典,信号结构体,信号字典。相当于将DBC以代码的形式,存放起来,方便在代码中调用。在开发和测试CAN通讯相关产品的过程,往往需要在代码中实现信号赋值和解析信号的功能,CAN网络通信过程中,往往会存在大量的报文交互,因此在每次交互之前提前人工构建报文的数据区,将想要给某些信号赋的值写入进去,这样做既容易出现错误,也容易产生大量的相似的代码,且出现错误时,不容易排查问题。调用此工具,既可节省时间,通过此工具自动构建报文的数据区,又可避免出错,大大提高了工作效率。了工作效率。了工作效率。

【技术实现步骤摘要】
一种DBC报文信号赋值和解析的方法、系统、终端设备及存储介质


[0001]本专利技术涉及报文处理
,特别是涉及一种DBC报文信号赋值和解析的方法、系统、终端设备及存储介质。

技术介绍

[0002]CAN,全称为“ControllerAreaNetwork”,即控制器局域网,是一种多主方式的串行通讯总线,是国际上应用最广泛的现场总线之一。这种总线也广泛应用于车辆ECU之间的通信。
[0003]CAN网络DBC指的是CAN报文的数据库。简单地说,通过CAN总线通信的数据类型可以用DBC文件来读取和理解。DBC是一种基于ASCII的翻译,是在20世纪90年代发展起来的标准文件,现在正在被全世界的汽车工业所使用。这些文件可以通过描述CAN帧内的数据来帮助识别它。作为这些CAN数据库,文本文件包含了将原始CAN总线解码为物理值的信息。因此,它也在作为一个信号库发挥作用。CAN总线通讯的主要载体是报文,信号是报文的主要组成部分,没有DBC数据库,就无法解析信号。DBC相当于一部针对通信内容的百科辞典。
[0004]在使用代码开发和测试本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种DBC报文信号赋值和解析的方法,其特征在于,所述的方法至少包括以下:S1、创建信号结构体、创建信号字典;S2、创建报文结构体、创建报文字典,所述报文字典用于存放报文;S3、创建报文标志位,并赋予默认值;S4、按行读取DBC报文文件,并依次判断报文信息、信号信息、报文标志位,再使用正则表达式,提取DBC文件中所有关于报文和信号的信息,将提取的信息存放报文结构体,报文字典,信号结构体,信号字典中,遍历DBC报文文件各行;S5、关闭DBC报文文件,返回报文字典;S6、根据建立的报文字典同步判断是否给信号赋值和是否解析报文信号,并结束。2.如权利要求1所述的一种DBC报文信号赋值和解析的方法,其特征在于,所述的信号结构体包含有信号的各种属性,所述的报文结构体包含有报文的各种属性。3.如权利要求1所述的一种DBC报文信号赋值和解析的方法,其特征在于,所述的“按行读取DBC报文文件”,具体为:通过Split()方法,将整行的内容按照“:”分割为字符串数组words,如果字符串数组的长度为2,使用正则表达式去匹配特定的字符串matches;如果matches的数量大于等于1,并且words[0]包含“BO_”,则为报文头部;如果matches的数量大于等于7,并且words[0]包含“SG_”,为为报文内容。4.如权利要求1所述的一种DBC报文信号赋值和解析的方法,其特征在于,所述的“依次判断报文信息、信号信息、报文标志位”,具体为:S41、判断是否为报文信息,如果是,则创建一条报文,数据类型为报文结构体,将报文信息添加到报文结构体中,并将报文标志位置1,如果否,则执行S42步骤;S42、判断是否为是否为信号信息,如果是,则创建一个信号,数据类型为信号结构体,将信号信息添加到信号结构体中,并将信号结构体添加到报文的信号字典中,如果否,则执行S43步骤;S43、判断报文标志位是否为1,如果是,将报文结构体添加到报文字典中,再次将报文标志位置0,如果否,则遍历DBC报文文件各行,循环执行S4步骤。5.如权利要求1所述的一种DBC报文信号赋值和解析的方法,其特征在于,所述的“根据建立的报文字典同步判断是否给信号赋值和是否解析报文信号”,具体为:S61、判断是否要在代码中给信号赋值,如果是,则创建一个信号,数据类型为信号结构体,将报文字典中的对应信号赋值给该信号,并将要赋的值转化为原始值写入要发送报文的数据区的正确位置,如果否,则执行S62步骤;S62、判断是否要解析接收到的报文中的信号...

【专利技术属性】
技术研发人员:姚正刚
申请(专利权)人:北京国家新能源汽车技术创新中心有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1