DBC文件的生成方法、装置和电子设备与流程

文档序号:32521295发布日期:2022-12-13 19:35阅读:274来源:国知局
dbc文件的生成方法、装置和电子设备
技术领域
:1.本发明涉及汽车数据库开发的
技术领域
:,尤其是涉及一种dbc文件的生成方法、装置和电子设备。
背景技术
::2.can(controllerareanetwork,控制器局域网络)和canfd(canwithflexibledatarata)都是由bosch公司开发设计的串行总线协议,并已成为iso国际标准,已经广泛应用于汽车领域。dbc(databasecan)是can和canfd的数据库文件,它定义了车载总线系统中各个ecu所要发送和接收的数据报文(message)及报文数据域(data)所有比特值的解释(signal)。在整车开发项目中,canoe(canopenenvironment)总线开发环境可以依据dbc文件建立仿真模型,用于需求分析、软件开发和软件测试等过程。作为关键的技术文档,dbc文件贯穿项目的整个过程。3.现存的dbc文件创建技术主要有手工方式和自动化方式。对于手工方式,如canoe提供的candb++editor编辑器,它是一个可视化的编辑器,工程师根据项目输出的报文矩阵文件(matrix)重复性的进行networknodes、messages、signals、valuetables及相关属性的手工添加,并保存为*.dbc格式。该种方式极其依赖于手动操作、流程复杂且出错率高;自动化dbc文件创建技术是另一类创建dbc文件的解决方案,该技术方案需要制定一个固定格式的matrix(常见的为excel格式)作为模板,工程师需要将项目输出的matrix文件手工转化为指定的模板格式,然后再将符合模板的matrix作为输入,经过程序脚本的加工最终输出*.dbc格式的文件。该种方式虽然能够解决手工方式依赖手工操作等缺点,但也存在一些不足:该种技术方案,不能直接通过项目输出的matrix文件作为程序的输入最终输出*.dbc文件,而是通过手工的方式将项目输出的matrix转化为符合模板的matrix文件,然后再经过程序将符合模板的matrix文件转化为*.dbc文件,因此,当项目输出的matrix文件和模板的格式差异较大且迭代输出时,本质上并没有简化工作量,且极容易在手工转化的过程中出错,且很难对出错的位置进行定位,此外,该技术没有像手工技术中可视化ui编辑器,且为了运行程序,需要安装必要的开发环境(如python等),增加了操作的复杂性。4.综上,现有的dbc文件的生成方法存在操作复杂、易出错的技术问题。技术实现要素:5.有鉴于此,本发明的目的在于提供一种dbc文件的生成方法、装置和电子设备,以缓解现有的dbc文件的生成方法操作复杂、易出错的技术问题。6.第一方面,本发明实施例提供了一种dbc文件的生成方法,应用于自动生成dbc文件的可视化编辑器,所述方法包括:7.获取项目输出的matrix文件的配置文件和所述matrix文件中待转换的工作表,其中,所述配置文件中包括:标准dbc文件中的占位符和所述matrix文件中表头索引的映射关系;8.根据所述映射关系确定所述待转换的工作表中各数据行中与各所述占位符对应的真实列数据;9.根据所述标准dbc文件的格式规范将各所述数据行中与各所述占位符对应的真实列数据写入dbc文件。10.进一步的,获取项目输出的matrix文件的配置文件,包括:11.对所述标准dbc文件的格式规范进行分析,得到所述标准dbc文件中所包含的各个属性;12.从所述标准dbc文件中所包含的各个属性中确定所述项目所需的目标属性,并将所述目标属性作为所述占位符;13.根据所述占位符和所述matrix文件中的表头建立所述占位符与所述表头的表头索引的映射关系,进而得到所述配置文件。14.进一步的,根据所述映射关系确定所述待转换的工作表中各数据行中与各所述占位符对应的真实列数据,包括:15.根据所述映射关系确定所述待转换的工作表中所包含的数据行;16.遍历所有所述数据行执行以下步骤:17.根据所述映射关系确定当前数据行中与目标占位符对应的表头列索引,进而在所述当前数据行中确定与所述表头列索引对应的真实列数据,进而得到所述当前数据行中与各所述占位符对应的真实列数据,其中,所述目标占位符为遍历所述占位符中的任一占位符。18.进一步的,根据所述标准dbc文件的格式规范将各所述数据行中与各所述占位符对应的真实列数据写入dbc文件,包括:19.根据所述标准dbc文件的格式规范对各所述数据行中与各所述占位符对应的真实列数据进行校验;20.若存在校验失败的真实列数据,则对所述校验失败的真实列数据进行人工调整,并将调整后的真实列数据和校验成功的真实列数据作为待写入数据;21.若不存在校验失败的真实列数据,则将所有的校验成功的真实列数据作为所述待写入数据;22.将所述待写入数据按照所述标准dbc文件的格式规范写入所述dbc文件。23.进一步的,所述方法还包括:24.若存在校验失败的真实列数据,则输出校验失败的日志,其中,所述校验失败的日志包括:日志等级、错误的真实列数据和错误的真实列数据在所述matrix文件中的索引。25.进一步的,所述自动生成dbc文件的可视化编辑器包括:菜单栏、工具栏和工作区;26.所述菜单栏包括:config菜单和help菜单;27.所述工具栏包括:运行按钮;28.所述工作区包括:matrix文件导入区、待转换的工作表选择区和校验失败的日志的打印区。29.进一步的,根据所述占位符和所述matrix文件中的表头建立所述占位符与所述表头的表头索引的映射关系,包括:30.通过人工配置的方式建立所述占位符与所述表头的表头索引的映射关系。31.第二方面,本发明实施例还提供了一种dbc文件的生成装置,应用于自动生成dbc文件的可视化编辑器,所述装置包括:32.获取单元,用于获取项目输出的matrix文件的配置文件和所述matrix文件中待转换的工作表,其中,所述配置文件中包括:标准dbc文件中的占位符和所述matrix文件中表头索引的映射关系;33.确定单元,用于根据所述映射关系确定所述待转换的工作表中各数据行中与各所述占位符对应的真实列数据;34.写入单元,用于根据所述标准dbc文件的格式规范将各所述数据行中与各所述占位符对应的真实列数据写入dbc文件。35.第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法的步骤。36.第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述机器可运行指令在被处理器调用和运行时,所述机器可运行指令促使所述处理器运行上述第一方面任一项所述的方法。37.在本发明实施例中,提供了一种dbc文件的生成方法,应用于自动生成dbc文件的可视化编辑器,该方法包括:获取项目输出的matrix文件的配置文件和matrix文件中待转换的工作表,其中,配置文件中包括:标准dbc文件中的占位符和matrix文件中表头索引的映射关系;根据映射关系确定待转换的工作表中各数据行中与各占位符对应的真实列数据;根据标准dbc文件的格式规范将各数据行中与各占位符对应的真实列数据写入dbc文件。通过上述描述可知,本发明的dbc文件的生成方法中,实现了一个自动生成dbc文件的可视化编辑器,工程师可以根据界面进行一些辅助设置,降低了工具的复杂性,提高了可操作性,通过配置文件可以将项目输出的matrix文件直接自动转换为dbc文件,降低了生成dbc文件时操作的复杂性,也避免了出错的风险,缓解了现有的dbc文件的生成方法操作复杂、易出错的技术问题。附图说明38.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。39.图1为本发明实施例提供的一种dbc文件的生成方法的流程图;40.图2为本发明实施例提供的自动生成dbc文件的可视化编辑器的一个页面示意图;41.图3为本发明实施例提供的获取项目输出的matrix文件的配置文件的方法流程图;42.图4为本发明实施例提供的根据映射关系确定待转换的工作表中各数据行中与各占位符对应的真实列数据的方法流程图;43.图5为本发明实施例提供的自动生成dbc文件的可视化编辑器的另一个页面示意图;44.图6为本发明实施例提供的一种dbc文件的生成装置的示意图;45.图7为本发明实施例提供的一种电子设备的示意图。具体实施方式46.下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。47.现有的自动化dbc文件的创建方案中需要制定一个固定格式的matrix(常见的为excel格式)作为模板,工程师需要将项目输出的matrix文件手工转化为指定的模板格式,然后再将符合模板的matrix作为输入,经过程序脚本的加工最终输出*.dbc格式的文件。该种技术方案不能直接通过项目输出的matrix文件作为程序的输入最终输出*.dbc文件,而是通过手工的方式将项目输出的matrix转化为符合模板的matrix文件,然后再经过程序将符合模板的matrix文件转化为*.dbc文件,因此,当项目输出的matrix文件和模板的格式差异较大且迭代输出时,本质上并没有简化工作量,且极容易在手工转化的过程中出错,且很难对出错的位置进行定位,此外,该技术没有像手工技术中可视化ui编辑器,且为了运行程序,需要安装必要的开发环境(如python等),增加了操作的复杂性。48.基于此,本发明的dbc文件的生成方法中,实现了一个自动生成dbc文件的可视化编辑器,工程师可以根据界面进行一些辅助设置,降低了工具的复杂性,提高了可操作性,通过配置文件可以将项目输出的matrix文件直接自动转换为dbc文件,降低了生成dbc文件时操作的复杂性,也避免了出错的风险。49.为便于对本实施例进行理解,首先对本发明实施例所公开的一种dbc文件的生成方法进行详细介绍。50.实施例一:51.根据本发明实施例,提供了一种dbc文件的生成方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。52.图1是根据本发明实施例的一种dbc文件的生成方法的流程图,如图1所示,该方法包括如下步骤:53.步骤s102,获取项目输出的matrix文件的配置文件和matrix文件中待转换的工作表,其中,配置文件中包括:标准dbc文件中的占位符和matrix文件中表头索引的映射关系;54.在本发明实施例中,上述dbc文件的生成方法可以应用于自动生成dbc文件的可视化编辑器,如图2所示,其中示出了自动生成dbc文件的可视化编辑器的一个页面示意图。在使用自动生成dbc文件的可视化编辑器进行dbc文件的生成时,需要预先创建matrix文件的配置文件(即config.json配置文件),完成配置文件的创建后,自动生成dbc文件的可视化编辑器读取配置文件config.json,获得配置文件中所有的key:value信息并存储到变量中,如字典类型变量configdict={key:value},工程师在图2的页面中输入matrix文件(例如,matrix.xls),自动生成dbc文件的可视化编辑器便能获取到配置文件(变量的形式获取的)和matrix文件,当工程师再点击图2中的choosesheetname便会弹出图2中selectsheetname的对话框,工程师点击对话框中左侧的table1,左侧的table1便会进入对话框的右侧(如图2所示的table1),table1便是matrix文件中待转换的工作表。55.上述配置文件中包括:标准dbc文件中的占位符和matrix文件中表头索引的映射关系,上述表头索引包括:表头行索引和表头列索引,表头索引用于表征与占位符对应的表头在待转换的工作表中的位置(行位置和列位置)。56.需要说明的是,本发明中的matrix文件中待转换的工作表是指excel格式的工作表。57.步骤s104,根据映射关系确定待转换的工作表中各数据行中与各占位符对应的真实列数据;58.上述各数据行为待转换的工作表中除了表头的行以外的其它行,下文中再对上述确定的过程进行具体介绍。59.步骤s106,根据标准dbc文件的格式规范将各数据行中与各占位符对应的真实列数据写入dbc文件。60.在本发明实施例中,提供了一种dbc文件的生成方法,应用于自动生成dbc文件的可视化编辑器,该方法包括:获取项目输出的matrix文件的配置文件和matrix文件中待转换的工作表,其中,配置文件中包括:标准dbc文件中的占位符和matrix文件中表头索引的映射关系;根据映射关系确定待转换的工作表中各数据行中与各占位符对应的真实列数据;根据标准dbc文件的格式规范将各数据行中与各占位符对应的真实列数据写入dbc文件。通过上述描述可知,本发明的dbc文件的生成方法中,实现了一个自动生成dbc文件的可视化编辑器,工程师可以根据界面进行一些辅助设置,降低了工具的复杂性,提高了可操作性,通过配置文件可以将项目输出的matrix文件直接自动转换为dbc文件,降低了生成dbc文件时操作的复杂性,也避免了出错的风险,缓解了现有的dbc文件的生成方法操作复杂、易出错的技术问题。61.上述内容对本发明的dbc文件的生成方法进行了简要介绍,下面对其中涉及到的具体内容进行详细描述。62.在本发明的一个可选实施例,参考图3,上述步骤s102,获取项目输出的matrix文件的配置文件,具体包括如下步骤:63.步骤s301,对标准dbc文件的格式规范进行分析,得到标准dbc文件中所包含的各个属性;64.具体的,首先分析标准dbc文件的格式规范,从而得到标准dbc文件中所包含的各个属性,上述标准dbc文件是由vector公司开发的,需要掌握其格式规范,然后按照标准dbc文件的格式规范进行创建dbc文件。65.如,message的格式规范为:bo_{msgid}{msgname}:{msglength}{txecu}。其中,bo_是格式规范的关键字,用来标识其后面的内容是message;{msgid}是属性(即占位符),用来表示message的id,id的值采用十进制表示;{msgname}也是属性(即占位符),用来表示message的名称字段,数据类型为字符串;{msglength}也是属性(即占位符),用来表示message的长度字段,数据类型为byte;{txecu}也是属性(即占位符),用来表示发送该message的ecu字段,数据类型为字符串。signal的格式规范为:sg_{signame}:{sigstartbit}|{siglength}@{sigbyteorder}+({sigfactor},{sigoffset})[{sigminvalue}|{sigmaxvalue}]"{sigunit}"{rxecu},大括号中的内容也是属性。用同样的方式分析networknodes、valuetable及属性等格式规范信息。[0066]步骤s302,从标准dbc文件中所包含的各个属性中确定项目所需的目标属性,并将目标属性作为占位符;[0067]该过程可表述为从标准dbc文件中所包含的各个属性中提取占位符,这些占位符是构成dbc文件的关键信息。[0068]上述确定项目所需的目标属性是指从所有的属性中确定该项目所关心的属性作为目标属性。[0069]步骤s303,根据占位符和matrix文件中的表头建立占位符与表头的表头索引的映射关系,进而得到配置文件。[0070]传统的自动化dbc技术方案,是根据这些占位符来构造固定matrix模板的表头,但实际的项目中,项目输出的matrix文件与固定matrix模板并不相符(即项目并不会使用上述固定模板进行matrix文件的输出),而是根据这些占位符来构建符合项目输出的matrix文件,一般会与固定matrix模板存在差异,所以需要进行手工转化(将项目输出的matrix转化为符合模板的matrix文件)。[0071]本发明将这些占位符作为config.json文件的key,并将任意项目输出的matrix文件的表头中对应占位符的索引[i,j]作为config.json文件的value。通过key:value映射的方式将标准格式规范中的占位符和实际项目中输出的matrix文件建立联系,解决了制定固定matrix模板的缺点,也提高了程序的自适应能力。[0072]具体的,通过人工配置的方式建立占位符与表头的表头索引的映射关系。[0073]config.json配置文件中key的内容需要在程序开发前确定下来,然后针对key进行程序开发。工程师根据项目输出的matrix文件的表头进行配置value值。下述配置1是根据表1的表头信息将对应的value映射到对应的key上得到的配置文件。[0074]表1(excel格式)[0075][0076]配置1[0077][0078][0079]如"msgid":[2,3]表示占位符{msgid}在matrix文件的第2行,第3列,而第3列的数据行值就是占位符的实际数据。有些占位符可能需要配置文件中多个key:value来表示,如占位符{txecu}对应到配置文件中“transmitterflag”:“t”、“ecustart”:[2,16]和“ecuend”:[2,18]三个键值对。即{txecu}对应的占位符是transmitterflag,发送标志,transmitterflag对应表1中的t,t对应的真实列数据为ecu1,即占位符{txecu}对应的真实数据为ecu1。显而易见:key越多说明程序支持的解析字段越丰富,自适应能力越强。value的值可以为空,程序将忽略对它的解析。[0080]在本发明的一个可选实施例中,参考图4,上述步骤s104,根据映射关系确定待转换的工作表中各数据行中与各占位符对应的真实列数据,具体包括如下步骤:[0081]步骤s401,根据映射关系确定待转换的工作表中所包含的数据行;[0082]具体的,从配置1的映射关系中可以看到,占位符对应的表头索引中的行表头索引为2,那么,待转换的工作表中所包含的数据行是从第3行开始的。[0083]步骤s402,遍历所有数据行执行以下步骤:[0084]根据映射关系确定当前数据行中与目标占位符对应的表头列索引,进而在当前数据行中确定与表头列索引对应的真实列数据,进而得到当前数据行中与各占位符对应的真实列数据,其中,目标占位符为遍历占位符中的任一占位符。[0085]如上述举例,获取table1的第3行的数据行,遍历configdict,如"msgname":[2,2],提取出与目标占位符msgname对应的表头列索引为2,即可得到第3行,第2列的数据“msg1“为占位符{msgname}的真实列数据。用同样的方式可以依次解析第3行的所有列数据的对应占位符的真实列数据,最终可以解析出所有行和所有列的数据及对应的占位符。[0086]在本发明的一个可选实施例中,根据标准dbc文件的格式规范将各数据行中与各占位符对应的真实列数据写入dbc文件,具体包括如下步骤:[0087](1)根据标准dbc文件的格式规范对各数据行中与各占位符对应的真实列数据进行校验:[0088]为了防止非法值或无效值而导致dbc文件的格式错误,需要对解析到的真实列数据进行必要的校验。根据标准dbc文件的格式规范,可以在程序中做如下的校验:{msgid}的值只能是数字;{sigstartbit}的值不能为负数;{sigfactor}的值不能为0等;{sigbyteorder}的值只能为“motorola”或“intel”;{msgname}和{signame}值为字符串且长度小于32byte。[0089](2)若存在校验失败的真实列数据,则对校验失败的真实列数据进行人工调整,并将调整后的真实列数据和校验成功的真实列数据作为待写入数据;[0090]另外,若存在校验失败的真实列数据,则输出校验失败的日志,其中,校验失败的日志包括:日志等级、错误的真实列数据和错误的真实列数据在matrix文件中的索引。[0091]如果校验失败,自动生成dbc文件的可视化编辑器的log窗口输出校验失败的日志,日志内容包括:日志等级、错误的真实列数据和错误的真实列数据在matrix文件中的索引。当然,校验失败的日志输出后,需要工程师检测matrix文件的对应数据的正确性。[0092](3)若不存在校验失败的真实列数据,则将所有的校验成功的真实列数据作为待写入数据;[0093](4)将待写入数据按照标准dbc文件的格式规范写入dbc文件。[0094]例如:message的格式规范为:bo_{msgid}{msgname}:{msglength}{txecu},那么,将表1中的第3行数据写入dbc文件,则为:bo_{0x100}{msg1}:{64}{ecu1},即将待写入数据替换标准dbc文件的格式规范中的属性(即占位符)。[0095]在将待写入数据写入dbc文件的过程中,需要符合dbc文件的格式规范,同时也要兼顾can或canfd协议规范。列举主要的处理逻辑:[0096]需要根据messagelength的值自动识别该message的类型。当值大于8时,则识别为canfd协议类型的message,否则识别为can类型;[0097]messageid的值必须为十进制,需要自动识别数据的格式,如果格式为非十进制,则需要将非十进制(如八进制、十六进制)的转化为十进制;[0098]需要为message添加必要的属性,如:根据message的发送类型,为消息添加属性genmsgsendtype;根据message的发送周期,为消息添加属性genmsgcycletime;[0099]信号字节序byteorder的值为motorola和intel两种制式,这两种字节序会影响标准dbc文件的格式规范中信号的起始bit位的值,在代码处理上要有不同的处理。要根据signal的默认值sigdefaultvalue、精度sigfactor及偏移量sigoffset计算出物理初始值,公式为physicalvalue=sigdefaultvalue*sigfactor+sigoffset。该值是实际在总线上传输的信号;[0100]要根据signal的最大值、最小值,识别出信号值的类型。如:当最小值大于0时,则可以识别信号值的类型为unsigned。当最小值小于0时,则识别信号值的类型为signed;[0101]要根据valuetable的内容为信号的值添加signalvaluedescription,用来表示信号值所代表的含义。[0102]在本发明的一个可选实施例中,参考图5,自动生成dbc文件的可视化编辑器包括:菜单栏、工具栏和工作区;[0103]菜单栏包括:config菜单和help菜单;[0104]工具栏包括:运行按钮;[0105]工作区包括:matrix文件导入区、待转换的工作表选择区和校验失败的日志的打印区。[0106]具体的,菜单栏提供config菜单和help菜单。config菜单提供log和dbc子菜单。其中log子菜单,用来设置程序运行期间的日志输出等级,提供'debug','info','warning','error'四种等级;dbc子菜单的主要功能:设置程序使用的config.json文件路径;在默认路径下生成一个新的config.json文件,此文件的key值是固定的,代表程序可以处理的逻辑,而value是空值;根据config.json文件的key值生成只包含表头的matrix矩阵。help菜单的主要功能:给出程序的版本信息和ui编辑器的操作说明。[0107]工具栏只提供了一个运行按钮,方便程序的运行。[0108]工作区主要用来:导入项目输出的matrix文件;根据导入的matrix文件自动显示matrix文件中所有的sheet页,工程师可以根据需求选择需要转换的sheet页,支持多sheet选择;log日志的打印区,用来显示log输出。[0109]本发明的方法可以通过python及相关开源库(wxpython、xlrd、json和logging等)实现,然后再将步骤s104和步骤s106的技术方案集成到程序中,最终打包为免安装的exe程序。[0110]本发明的方法无需制定matrix模板,而是直接通过项目输出的matrix文件来生成dbc文件,且能自适应任意项目输出的matrix文件。[0111]本发明的方法通过设计一个config.json配置文件避免了现有自动化技术中,需要制定matrix模板并将项目输出的matrix转换为模板的弊端。使用本技术方案,工程师不需要关心matrix的格式问题,也不需要对项目输出的matrix矩阵做任何的修改和转化,只需要根据项目输出的matrix文件的表头信息配置config.json配置文件中的value值即可,几乎不会产生任何工作量,这样就可以以项目输出的matrix文件作为程序输入而最终输出*.dbc文件,而不是现有技术以固定模板文件作为程序输入。也避免了现有技术中将项目输出的matrix文件转换为固定模板时的出错风险,如遗漏、重复复制粘贴等问题。此外,现有的自动化技术方案没有提供ui界面的操作,存在操作性差的问题。也没有提供程序的集成,如果在新环境中运行程序,则需要安装必要的lib库。本技术方案本质上实现了一个可视化的dbc自动化转换编辑器,工程师可以根据界面进行一些辅助设置,降低了工具的复杂性,提高了可操作性。[0112]实施例二:[0113]本发明实施例还提供了一种dbc文件的生成装置,该dbc文件的生成装置主要用于执行本发明实施例一中所提供的dbc文件的生成方法,以下对本发明实施例提供的dbc文件的生成装置做具体介绍。[0114]图6是根据本发明实施例的一种dbc文件的生成装置的示意图,该dbc文件的生成装置应用于自动生成dbc文件的可视化编辑器,如图6所示,该装置主要包括:获取单元10、确定单元20和写入单元30,其中:[0115]获取单元,用于获取项目输出的matrix文件的配置文件和matrix文件中待转换的工作表,其中,配置文件中包括:标准dbc文件中的占位符和matrix文件中表头索引的映射关系;[0116]确定单元,用于根据映射关系确定待转换的工作表中各数据行中与各占位符对应的真实列数据;[0117]写入单元,用于根据标准dbc文件的格式规范将各数据行中与各占位符对应的真实列数据写入dbc文件。[0118]在本发明实施例中,提供了一种dbc文件的生成装置,应用于自动生成dbc文件的可视化编辑器,该装置包括:获取项目输出的matrix文件的配置文件和matrix文件中待转换的工作表,其中,配置文件中包括:标准dbc文件中的占位符和matrix文件中表头索引的映射关系;根据映射关系确定待转换的工作表中各数据行中与各占位符对应的真实列数据;根据标准dbc文件的格式规范将各数据行中与各占位符对应的真实列数据写入dbc文件。通过上述描述可知,本发明的dbc文件的生成装置中,实现了一个自动生成dbc文件的可视化编辑器,工程师可以根据界面进行一些辅助设置,降低了工具的复杂性,提高了可操作性,通过配置文件可以将项目输出的matrix文件直接自动转换为dbc文件,降低了生成dbc文件时操作的复杂性,也避免了出错的风险,缓解了现有的dbc文件的生成方法操作复杂、易出错的技术问题。[0119]可选地,获取单元还用于:对标准dbc文件的格式规范进行分析,得到标准dbc文件中所包含的各个属性;从标准dbc文件中所包含的各个属性中确定项目所需的目标属性,并将目标属性作为占位符;根据占位符和matrix文件中的表头建立占位符与表头的表头索引的映射关系,进而得到配置文件。[0120]可选地,确定单元还用于:根据映射关系确定待转换的工作表中所包含的数据行;遍历所有数据行执行以下步骤:根据映射关系确定当前数据行中与目标占位符对应的表头列索引,进而在当前数据行中确定与表头列索引对应的真实列数据,进而得到当前数据行中与各占位符对应的真实列数据,其中,目标占位符为遍历占位符中的任一占位符。[0121]可选地,写入单元还用于:根据标准dbc文件的格式规范对各数据行中与各占位符对应的真实列数据进行校验:若存在校验失败的真实列数据,则对校验失败的真实列数据进行人工调整,并将调整后的真实列数据和校验成功的真实列数据作为待写入数据;若不存在校验失败的真实列数据,则将所有的校验成功的真实列数据作为待写入数据;将待写入数据按照标准dbc文件的格式规范写入dbc文件。[0122]可选地,写入单元还用于:若存在校验失败的真实列数据,则输出校验失败的日志,其中,校验失败的日志包括:日志等级、错误的真实列数据和错误的真实列数据在matrix文件中的索引。[0123]可选地,自动生成dbc文件的可视化编辑器包括:菜单栏、工具栏和工作区;菜单栏包括:config菜单和help菜单;工具栏包括:运行按钮;工作区包括:matrix文件导入区、待转换的工作表选择区和校验失败的日志的打印区。[0124]可选地,获取单元还用于:通过人工配置的方式建立占位符与表头的表头索引的映射关系。[0125]本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。[0126]如图7所示,本技术实施例提供的一种电子设备600,包括:处理器601、存储器602和总线,所述存储器602存储有所述处理器601可执行的机器可读指令,当电子设备运行时,所述处理器601与所述存储器602之间通过总线通信,所述处理器601执行所述机器可读指令,以执行如上述dbc文件的生成方法的步骤。[0127]具体地,上述存储器602和处理器601能够为通用的存储器和处理器,这里不做具体限定,当处理器601运行存储器602存储的计算机程序时,能够执行上述dbc文件的生成方法。[0128]处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成上述方法的步骤。[0129]对应于上述dbc文件的生成方法,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述dbc文件的生成方法的步骤。[0130]本技术实施例所提供的dbc文件的生成装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本技术实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。[0131]在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0132]再例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。[0133]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0134]另外,在本技术提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。[0135]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述车辆标记方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0136]应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。[0137]最后应说明的是:以上所述实施例,仅为本技术的具体实施方式,用以说明本技术的技术方案,而非对其限制,本技术的保护范围并不局限于此,尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本技术实施例技术方案的范围。都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1