一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种DBC信号导出起始位格式转换方法及系统与流程

2022-07-02 12:26:27 来源:中国专利 TAG:

一种dbc信号导出起始位格式转换方法及系统
技术领域
1.本发明属于汽车数据库开发技术领域,更具体地,涉及一种dbc信号导出起始位格式转换方法及系统。


背景技术:

2.dbc文件是描述can网络节点间的数据通讯的文件,.dbc文件是一个ascii格式的文件,其.dbc扩展名可用于定义can网络。汽车网络开发过程中,离不开dbc数据库,为了方便查看dbc中的通讯矩阵信息,需要将现有的dbc导入excel表格。目前有很多dbc导入工具,有的采用excel vba,有的采用python,这些导入工具在转换过程中都会面临motorola格式信号起始位candb 格式中与文本格式中不同的问题,很多工具都会直接将文本格式中的起始位导入excel表格中,导致导入的起始位非设计值,再根据candb 中起始位调整excel表格导入值,这样导致了在导入excel后还需进行人工操作,花费大量时间及增加出错可能,最终导致分析时信号判断错误。


技术实现要素:

3.针对现有技术的以上缺陷或改进需求,本发明提供了一种dbc信号导出起始位格式转换方法及系统,能有效解决现有dbc信号导出转换motorola格式信号时出现的candb 格式起始位与文本格式定义起始位不同的问题,生成正确的excel表格文件。
4.为实现上述目的,按照本发明的一个方面,提供了一种dbc信号导出起始位格式转换方法,包括:提取dbc文件中的数据信息,获得起始位、字节长度和字节顺序;判断字节顺序对应的信号格式;在字节顺序为intel格式时,根据定义的文本格式规范,将最低信号位lsb的数值导入excel表格中;在字节顺序为motorola格式时,根据定义的文本格式规范,获取文本格式中的最高信号位msb,将msb计算转换为最低信号位lsb后,将lsb的数值导入excel表格中。
5.在一些实施方式中,将msb计算转换为最低信号位lsb具体为:根据msb判断信号所在字节,再根据信号长度bitlen判断出lsb所在字节,得到lsb所在字节的最大bit位lsb(max);根据信号的msb计算msb所在字节的信号占用长度n(msb)以及非msb与lsb所在字节的信号占用长度n(other),得到lsb所在字节需要占用的剩余bit位r;根据lsb所在字节的最大bit位lsb(max)以及lsb所在字节需要占用的剩余bit位r,计算得到lsb。
6.在一些实施方式中,lsb所在字节需要占用的剩余bit位r=bitlen
ꢀ‑
n(msb)-n(other),计算得到lsb= lsb(max) 1-r。
7.在一些实施方式中,该方法还包括:定义文本格式规范为:起始位| 字节长度 @ 字节顺序。
8.在一些实施方式中,起始位为最低信号位lsb或者最高信号位msb,字节顺序对应intel格式或者motorola格式。
9.在一些实施方式中,首先判断字节顺序是否为intel格式,在判定字节顺序不是
intel格式时,进一步判断字节顺序是否为motorola格式。
10.在一些实施方式中,在判定字节顺序不是motorola格式时,判定dbc文件中数据信息的字节格式异常,并报错。
11.根据本发明的另一方面,提供了一种dbc信号导出起始位格式转换系统,包括:文件信息提取模块,提取dbc文件中的数据信息,获得起始位、字节长度和字节顺序;格式判断模块,用于判断字节顺序对应的信号格式;写入模块,用于根据信号格式及文本格式的写入规范,向excel表格中导入对应的内容。
12.在一些实施方式中,写入模块用于在格式判断模块判断信号格式为intel格式时,根据定义的文本格式规范,将lsb的数值导入excel表格中的起始位栏内。
13.在一些实施方式中,该系统还包括计算模块,用于在格式判断模块判断信号格式为motorola格式时,根据定义的文本格式规范,将msb通过计算转为lsb。
14.在一些实施方式中,计算模块具体通过如下方式计算得到lsb:根据msb判断信号所在字节,再根据信号长度bitlen判断出lsb所在字节,得到lsb所在字节的最大bit位lsb(max);根据信号的msb计算msb所在字节的信号占用长度n(msb)以及非msb与lsb所在字节的信号占用长度n(other),得到lsb所在字节需要占用的剩余bit位r;根据lsb所在字节的最大bit位lsb(max)以及lsb所在字节需要占用的剩余bit位r,计算得到lsb。
15.在一些实施方式中,写入模块还用于在格式判断模块判断信号格式为motorola格式时,根据定义的文本格式规范,将计算模块计算得到的lsb填入excel表格中的起始位栏内。
16.在一些实施方式中,该系统还包括提示模块,用于在格式判断模块判定字节顺序既不是intel格式,又不是motorola格式时,判定dbc文件中数据信息的字节格式异常,并报错。
17.根据本发明的又一方面,提供了一种车辆,包括上述dbc信号导出起始位格式转换系统。
18.根据本发明的又一方面,提供了一种电子设备,包括:处理器;与处理器通信连接的存储器;存储器存储有可被处理器执行的指令,指令被处理器执行,以使处理器能够执行上述方法。
19.根据本发明的又一方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令被处理器执行时实现上述方法。
20.总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:将dbc文本格式中的motorola格式信号起始位准确地计算转换为candb 中的起始位导入excel表格中,使得导入的起始位即为设计所需。
附图说明
21.图1是intel格式信号在candb 中打开时的示意图;图2是motorola格式信号在candb 中打开时的示意图;图3是本发明实施例的dbc信号导出起始位格式转换方法流程图;图4是本发明一实施例的电子设备的结构框图。
具体实施方式
22.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。正如本领域技术人员可以认识到的那样,在不脱离本技术的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
23.无论是motorola格式还是intel格式,在candb 中打开的dbc文件起始位都为最低位(lsb),如图1和图2所示,intel格式和motorola格式均为起始位30、信号长度为24 bit的信号。而在文本格式中,intel格式定义的起始位为最低信号位(lsb),motorola格式定义的起始位为最高信号位(msb),因此导致了无法将文本格式中的起始位直接导入excel表格,而是需要将msb转换为lsb后再导入excel,这样通过转换计算的起始位即为最终dbc文件设计的起始位。
24.如图3所示,本发明实施例的dbc信号导出起始位格式转换方法包括如下步骤:定义文本格式规范。在一些实施例中,文本格式规范为:起始位| 字节长度 @ 字节顺序。其中,起始位为最低信号位lsb或者最高信号位msb。字节长度用bitlen表示。字节顺序用byte order表示,字节顺序有两种,分别对应intel格式和motorola格式。在一些实施例中,用0和1代表motorola格式和intel格式。在一些实施例中,用0代表mot序byte order是否为intel格式,例如,判断字节顺序是否为1,是则根据定义的文本格式规范,查看文本格式中信号的lsb | bitlen @ byte order定义,将lsb的数值导入excel表格中的起始位栏内;否则进一步判orola格式,用1代表intel格式。
25.提取dbc文件中的数据信息,获得起始位、字节长度和字节顺序。
26.判断字节顺序是否为intel格式,例如,判定字节顺序是否为1,1代表intel格式,是则根据定义的文本格式规范,查看文本格式中信号的lsb | bitlen @ byte order定义,将lsb的数值导入excel表格中的起始位栏内。否则进一步判断字节顺序是否为motorola格式。
27.在判定字节顺序不是motorola格式时,例如,判定字节顺序不是0时,0代表motorola格式,判定dbc文件中数据信息的字节格式异常,并报错;在判定字节顺序是0,为motorola格式时,根据定义的文本格式规范,查看文本格式中信号的msb | bitlen @ byte order定义,将msb通过计算转为lsb。
28.首先。根据msb判断信号所在字节,再根据信号长度(bitlen)判断出lsb所在字节,得到该字节最大bit位。在一些实施方式中,判定信号lsb所在字节的最大bit位具体为:判断msb所在字节,通过msb/8取整后得到,再加上信号长度所需占用的其他字节,得到lsb所在字节,所在字节乘以8减去1即为lsb所在字节最大bit位。
29.具体地,计算得到lsb所在字节的最大bit位lsb(max) = (int(msb/ 8) 1
ꢀ‑ꢀ
int((bitlen
ꢀ‑ꢀ
(msb
ꢀ‑ꢀ
int(msb / 8) * 8 1)) / 8
ꢀ‑
1)) * 8
ꢀ‑
1,int()表示对()内的数取整数。
30.其次,根据信号的msb计算msb所在字节的信号占用长度以及非msb与lsb所在字节的信号占用长度,得到lsb所在字节需要占用的剩余bit位。
31.具体地,计算得到lsb所在字节需要占用的剩余bit位r=bitlen
ꢀ‑
n(msb)-n
(other),其中,n(msb)= msb
ꢀ‑ꢀ
int(msb / 8) * 8 1,n(other)= 8 * int((bitlen-1
ꢀ‑ꢀ
(msb
ꢀ‑ꢀ
int(msb/ 8) * 8 1)) / 8),n(msb)表示msb所在字节的信号占用长度,即msb所用的bit位,n(other)表示非msb与lsb所在字节的信号占用长度,即非msb与lsb所用的bit位。
32.根据lsb所在字节的最大bit位lsb(max)加1减去lsb所在字节所需占用的剩余bit位r,得到lsb位,即为最终的信号起始位。
33.具体地,计算得到lsb= lsb(max) 1-r。
34.将计算得到的lsb填入excel中的信号起始位栏内。
35.通过上述方法,将dbc文本格式中的motorola格式信号起始位准确地计算转换为candb 中的起始位导入excel表格中,使得导入表格中的起始位即为设计值。
36.对应地,本发明实施例还提供了一种dbc信号导出起始位格式转换系统,包括:文本格式规范定义模块,用于定义文本格式规范。在一些实施例中,文本格式规范为:起始位| 字节长度 @ 字节顺序。
37.文件信息提取模块,用于提取dbc文件中的数据信息,获得起始位、字节长度和字节顺序。
38.格式判断模块,用于判断字节顺序对应的信号格式。
39.在一些实施方式中,格式判断模块首先判断字节顺序是否为intel格式,在判定字节顺序不是intel格式时,进一步判断字节顺序是否为motorola格式。
40.写入模块,用于根据信号格式及文本格式规范,向excel表格中导入对应的内容。
41.在一些实施方式中,在格式判断模块判断信号格式为intel格式时,写入模块根据定义的文本格式规范,将lsb的数值导入excel表格中的起始位栏内。
42.计算模块,用于在格式判断模块判断信号格式为motorola格式时,根据定义的文本格式规范,将msb通过计算转为lsb。
43.计算模块具体通过如下方式将msb计算转为lsb。
44.首先。根据msb判断信号所在字节,再根据信号长度bitlen判断出lsb所在字节,得到该字节的最大bit位。在一些实施方式中,判定信号lsb所在字节的最大bit位具体为:判断msb所在字节,通过msb/8取整后得到,再加上信号长度所需占用的其他字节,得到lsb所在字节,所在字节乘以8减去1即为lsb所在字节最大bit位。
45.具体地,计算得到lsb所在字节的最大bit位lsb(max) = (int(msb/ 8) 1
ꢀ‑ꢀ
int((bitlen
ꢀ‑ꢀ
(msb
ꢀ‑ꢀ
int(msb / 8) * 8 1)) / 8
ꢀ‑
1)) * 8
ꢀ‑
1,int()表示对()内的数取整数。
46.其次,根据信号的msb计算msb所在字节的信号占用长度以及非msb与lsb所在字节的信号占用长度,得到lsb所在字节需要占用的剩余bit位。
47.具体地,计算得到lsb所在字节需要占用的剩余bit位r=bitlen
ꢀ‑
n(msb)-n(other),其中,n(msb)= msb
ꢀ‑ꢀ
int(msb / 8) * 8 1,n(other)= 8 * int((bitlen-1
ꢀ‑ꢀ
(msb
ꢀ‑ꢀ
int(msb/ 8) * 8 1)) / 8),n(msb)表示msb所在字节的信号占用长度,即msb所用的bit位,n(other)表示非msb与lsb所在字节的信号占用长度,即非msb与lsb所用的bit位。
48.具体地,计算得到lsb= lsb(max) 1-r。
49.在一些实施方式中,写入模块还用于在格式判断模块判断信号位motorola格式时,根据定义的文本格式规范,将计算模块计算得到的lsb填入excel中的信号起始位栏内。
50.提示模块,用于在格式判断模块判定字节顺序既不是intel格式,又不是motorola格式时,判定dbc文件中数据信息的字节格式异常,并报错。
51.本技术实施例还提供了一种车辆,在一些实施方式中,车辆可以包括以上所述的dbc信号导出起始位格式转换系统。
52.图4为根据本技术一实施例的电子设备的结构框图。本技术实施例还提供了一种电子设备,如图4所示,该电子设备包括:至少一个处理器401,以及与至少一个处理器401通信连接的存储器403。存储器403内存储有可被至少一个处理器401执行的指令。指令被至少一个处理器401执行。处理器401执行该指令时实现上述实施例中的驾驶场景重构方法。存储器403和处理器401的数量可以为一个或多个。该电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本技术的实现。
53.该电子设备还可以包括通信接口405,用于与外界设备进行通信,进行数据交互传输。各个设备利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器401可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面(graphical user interface,gui)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
54.可选的,在具体实现上,如果存储器403、处理器401及通信接口405集成在一块芯片上,则存储器403、处理器401及通信接口405可以通过内部接口完成相互间的通信。
55.应理解的是,上述处理器可以是中央处理器(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced risc machines,arm)架构的处理器。
56.本技术实施例提供了一种计算机可读存储介质(如上述的存储器403),其存储有计算机指令,该程序被处理器执行时实现本技术实施例中提供的方法。
57.可选的,存储器403可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据驾驶场景重构方法的电子设备的使用所创建的数据等。此外,存储器403可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。
在一些实施例中,存储器403可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至驾驶场景重构方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
58.在本说明书的描述中,参考术语
“ꢀ
一个实施例”、
“ꢀ
一些实施例”、
“ꢀ
示例”、
“ꢀ
具体示例”、或
“ꢀ
一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本技术的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
59.此外,术语
“ꢀ
第一”、
“ꢀ
第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有
“ꢀ
第一”、
“ꢀ
第二”的特征可以明示或隐含地包括至少一个该特征。在本技术的描述中,
“ꢀ
多个”的含义是两个或两个以上,除非另有明确具体的限定。
60.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个(两个或两个以上)用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
61.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
62.应理解的是,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
63.此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
64.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献