本发明属于车载健康管理嵌入式存储,具体涉及一种跨平台嵌入式存储功能代码自动生成方法,该方案涉及当嵌入式存储设备部署不同装甲车辆平台时,相关的存储功能代码程序自动生成的方法。
背景技术:
1、信息化条件下的跨平台协同战斗,战场空间广阔,战斗行动速度快,情况复杂多变,对保障的时效性、准确性、灵活性提出了更高要求。精确高效,是完成装甲车辆保障任务的基本目标和要求,也是评估保障效益的基本标准。不管在保障时机上、在保障地点上、还是在保障种类和数量上,跨平台协同作战背景下亟需进行跨平台协同保障。跨平台族系化发展现状下,装甲车辆平台种类多样,跨平台协同保障需尽可能缩小保障种类和数量差。在准确掌握各保障对象的需要的基础上,适当富余,避免过量,力求使有限人力、物力最大限度地发挥保障效能。
2、装甲车辆恶劣的服役环境是造成装备性能退化、功能失效的重要诱因,往往导致装备发生瞬态故障、间歇故障等。在故障机理不明、故障样本缺乏的情况下,亟需进行装甲车辆便捷嵌入式数据存储设计,对实车数据进行长时间采样存储,便于进行基于大量数据变化趋势的性能退化分析。
3、装甲车辆的类型不同,结构组成不同,相应的每类车辆的信息系统需要实现的信息采集、传输、处理、存储、显控等功能也都不一样。根据任务特点、作战环境、结构特点、成本等因素,不同类型车辆的信息系统的体系架构、总线网络、接口、功能等存在较大差别。跨平台协同保障背景下,设计的便捷嵌入式存储设备需适配所有装甲车辆平台,存储设备可以在各装甲车辆平台间通用。针对便捷存储设备的跨平台通用适配需求,不同装甲车辆平台因采集信息不同导致存储功能不同,如何优化平台间的适配存储策略是解决跨平台存储的首要问题;装甲车辆型号对系统组成要求严格,通常不允许额外增加用于存储功能的部件,便捷存储功能需要基于任务模块的控制单元及其存储芯片,在不增加额外硬件开支的情况下,如何利用有限存储容量达成长时间的存储记录需求是需要解决的第二个问题;针对部署便捷存储设备时装甲车辆车型发生改变或车型信息发生变化时面临存储功能代码重复编写的问题,如何避免存储代码编写过程中大量的数据帧信息、位置的重复核对,实现存储功能代码自动生成提高存储设备快速高效部署是需要重点考虑的第三个问题。
技术实现思路
1、(一)要解决的技术问题
2、本发明要解决的技术问题是:如何提供一种跨平台嵌入式存储功能代码自动生成方法。
3、(二)技术方案
4、为解决上述技术问题,本发明提供一种跨平台嵌入式存储功能代码自动生成方法,所述跨平台嵌入式存储功能代码自动生成方法基于存储代码生成工具来实施;
5、如图1所示,所述跨平台嵌入式存储功能代码自动生成方法包括如下步骤:
6、步骤1:所述存储代码生成工具通过文件读取接口接收跨平台特定格式协议文件;
7、步骤2:所述存储代码生成工具生成c语言格式的存储功能代码文件;
8、步骤3:所述存储代码生成工具通过文件输出接口输出存储功能代码文件。
9、其中,所述步骤1中,所述特定格式协议文件包括以特定格式信息表形式存放的协议文件和can文件;
10、所述存储代码生成工具通过can数据接口接收协议文件每帧can数据的slot、basecycle、cycle repetition、byte、bit、bit length以及can文件的can id、数据长度、信号起始byte、起始bit、bit长度信息;
11、在步骤2中,存储代码生成工具按照编码格式,将读取到的数据信息,转换为c语言代码,输出成为c语言格式的存储功能代码文件。
12、其中,所述步骤1中,所述文件读取接口为can数据接口;
13、如图2所示,所述存储代码生成工具获取特定格式协议文件的数据信息的过程如下:
14、存储代码生成工具打开特定格式协议文件中的特定格式信息表,判断是否读取到特定格式信息表的最后一行;若未读取到最后一行,则获取当前can帧的起始行和结束行,并获取其中的can帧信息;若已读取到最后一行,则结束数据信息的获取过程,转入步骤2。
15、其中,所述步骤2包括:
16、步骤21:存储代码生成工具将步骤1中接收到的数据信息,转换为待分配的c语言代码数据;
17、步骤22:存储代码生成工具根据c语言代码数据,生成存储代码头文件,即.h文件;
18、步骤23:存储代码生成工具根据c语言代码数据,生成存储代码c语言文件,即.c文件;
19、步骤24:存储代码生成工具根据c语言代码数据,生成存储功能代码的存储结构文件,即.csv文件;
20、步骤25:根据所述.h文件、.c文件以及.csv文件,生成待输出的c语言格式的存储功能代码文件。
21、其中,所述存储代码生成工具中包含存储代码生成模块;
22、所述步骤21中,所述存储代码生成模块将接收到的数据信息,作为需要存储的can数据信息,将can数据信息转换成待进行存储的c语言代码数据;
23、其具体过程如下:
24、如图3所示,首先,获取can信息表的相关信息;然后,根据相关信息生成用于数据存储的相关结构;再之,根据相关信息生成待进行存储的c语言代码数据。
25、其中,所述步骤22中,存储代码生成工具根据c语言代码数据,生成存储代码头文件,即.h文件;
26、如图4所示,具体过程如下:
27、步骤221:根据can信息形式的c语言代码数据,在存储代码头文件中定义周期存储数据块的字节数量;
28、步骤222:定义定时存储的can数据的帧数;
29、步骤223:填写循环存储帧的结构体定义;
30、步骤224:填写循环存储帧的时间信息定义;
31、步骤225:判断当前帧是否为最后一帧转换帧;若否,转入步骤226,若是,转入步骤227;
32、步骤226:填写循环存储帧的结构信息后,返回步骤225;
33、步骤227:填写循环存储帧的can_bus_off信息定义后,完成存储代码头文件的生成,转入步骤23。
34、其中,所述步骤23中,存储代码生成工具根据c语言代码数据,生成存储代码c语言文件,即.c文件;
35、如图5所示,具体过程如下:
36、步骤231:在存储代理c语言文件的循环存储结构对象中填写时间信息;
37、步骤232:根据can信息形式的c语言代码数据,将can帧信息填写到循环存储结构中;
38、步骤233:在最后填写can_bus_off状态变量,完成存储代码c语言文件的生成,转入步骤24。
39、其中,所述步骤24中,存储代码生成工具根据c语言代码数据,生成存储功能代码的存储结构文件,即.csv文件;
40、其中,所述.csv文件定义了最小的存储结构大小,为1024字节,在1024字节中,前8字节为时间信息,之后每8字节作为一组数据存储,对于不满8字节的数据帧,如果相邻的多帧数据可以组成8字节的则多帧组合成8字节,如果不能组成8字节则也占用8字节;在整个组成帧的结构的最后是1字节的can bus off状态变量信息。
41、其中,所述存储功能代码的存储结构如表1所示:
42、表1
43、
44、其中,所述方法实施过程中,确定以1秒钟作为车辆电气系统数据周期记录的主程序周期。
45、(三)有益效果
46、与现有技术相比较,本发明具备如下有益效果:
47、(1)存储功能代码生成工具是基于国产控制单元,针对控制单元的存储功能,生成可以在控制单元上使用的c文件代码,通过将生成的代码添加到工程中,调用存储代码中的相关方法可以将指定的c an信息存储到控制单元的存储芯片中。
48、(2)本发明方案实施所涉及的存储设备可以以装甲车辆某一总线节点部件为基础,借助该部件的控制单元及其存储功能,不需要额外增加硬件设计支出,可以通过在工程中增加存储代码来便捷实现存储功能。
49、(3)本发明采用紧凑型数据格式和优化的存储记录方法,极大的缩小了数据的存储空间,非常适合于小型单片机系统嵌入式诊断系统的应用,很好的解决了有限存储空间下长时间数据记录的需求。
50、(4)本发明的存储功能代码自动生成方法适配装甲车辆多平台,解决了传统测试系统的多平台数据获取难度大、部署困难的问题,将推进我国装甲车辆测试的数据分析模式从单一平台专用测试分析过渡到跨平台通用协同测试分析。
1.一种跨平台嵌入式存储功能代码自动生成方法,其特征在于,所述跨平台嵌入式存储功能代码自动生成方法基于存储代码生成工具来实施;
2.如权利要求1所述的跨平台嵌入式存储功能代码自动生成方法,其特征在于,所述步骤1中,所述特定格式协议文件包括以特定格式信息表形式存放的协议文件和can文件;
3.如权利要求2所述的跨平台嵌入式存储功能代码自动生成方法,其特征在于,所述步骤1中,所述文件读取接口为can数据接口;
4.如权利要求3所述的跨平台嵌入式存储功能代码自动生成方法,其特征在于,所述步骤2包括:
5.如权利要求4所述的跨平台嵌入式存储功能代码自动生成方法,其特征在于,所述存储代码生成工具中包含存储代码生成模块;
6.如权利要求5所述的跨平台嵌入式存储功能代码自动生成方法,其特征在于,所述步骤22中,存储代码生成工具根据c语言代码数据,生成存储代码头文件,即.h文件;
7.如权利要求6所述的跨平台嵌入式存储功能代码自动生成方法,其特征在于,所述步骤23中,存储代码生成工具根据c语言代码数据,生成存储代码c语言文件,即.c文件;
8.如权利要求7所述的跨平台嵌入式存储功能代码自动生成方法,其特征在于,所述步骤24中,存储代码生成工具根据c语言代码数据,生成存储功能代码的存储结构文件,即.csv文件;
9.如权利要求8所述的跨平台嵌入式存储功能代码自动生成方法,其特征在于,所述存储功能代码的存储结构如表1所示:
10.如权利要求9所述的跨平台嵌入式存储功能代码自动生成方法,其特征在于,所述方法实施过程中,确定以1秒钟作为车辆电气系统数据周期记录的主程序周期。
