CN111736914A - 一种联锁软件数据配置与代码的分离和读取方法及系统 - Google Patents
一种联锁软件数据配置与代码的分离和读取方法及系统 Download PDFInfo
- Publication number
- CN111736914A CN111736914A CN202010491564.5A CN202010491564A CN111736914A CN 111736914 A CN111736914 A CN 111736914A CN 202010491564 A CN202010491564 A CN 202010491564A CN 111736914 A CN111736914 A CN 111736914A
- Authority
- CN
- China
- Prior art keywords
- configuration
- data
- code
- reading
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供的联锁软件数据配置与代码的分离和读取方法及系统,其分离方法包括:将核心逻辑代码编译为exe文件;将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建dat二进制文件;其读取方法包括:读取dat二进制文件,获取配置数据;读取exe文件,获取数据配置全局变量;利用配置数据对数据配置全局变量进行赋值。本发明实施例将逻辑功能代码编译得到exe文件,并独立生成的dat二进制数据配置文件,实现核心处理逻辑代码与数据配置的文件分离,防止数据配置过程中对核心逻辑代码的误修改,提高了CI软件的安全性和数据配置效率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种联锁软件数据配置与代码的分离和读取方法及系统。
背景技术
在现有控制系统,如城市轨道交通控制系统中,数据配置一直以来就是工程阶段的重要环节。数据测试用于验证配置数据准确性,若数据配置有误,或数据测试不全面,有可能会在产品工程上线后带来风险。
现有技术中,对于数据的配置通常采用将软件代码与配置数据绑定编译以及将软件代码与配置数据分离配置两种方式来实现。
关于将软件代码与配置数据绑定编译,对于列车运行控制系统中的计算机联锁子系统(Computer-Based Interlocking,简称CI)软件而言,数据配置是通过修改CI软件部分源代码实现。即在现有城市轨道交通控制系统中,CI软件的配置数据通过由工程数据配置人员修改.c源文件格式及.h头文件格式的方式实现。其中,配置数据以全局变量及宏定义的形式存储在.c源文件及.h头文件中。软件代码与配置数据采取绑定编译为一个exe可执行文件的方式,安装在CF卡中运行。对于配置数据与代码未分离的CI软件而言,目前并无有效的技术方案解决配置数据与核心逻辑代码存在的被异常修改的问题。
关于将软件代码与配置数据分离配置,既有代码中配置数据有两种存在形式:宏定义和const类型全局变量。通过宏定义实现的配置项可以分为两类:内部配置宏定义和外部配置宏定义。内部配置宏定义由开发人员修改,主要实现对数据长度或内容的合法性检查;外部配置宏定义由工程数据配置人员修改,包含站场相关信息及工程实施方式等。const类型全局变量完全由工程数据配置人员修改。由于采取将CI软件中的配置数据文件与其它核心逻辑功能代码文件分开于不同模块中,能够一定程度上降低数据更改时误修改问题。但此种数据配置方式不利于CI核心逻辑代码保密性,同时工程数据配置人员需要在很多.c源文件及.h头文件中修改配置数据,配置工作也不条理。
有鉴于此,亟需提供和一种软件配置数据与代码的分离方法,在解决配置数据与核心逻辑代码存在可以被异常修改的缺陷,同时有效地降低工程数据配置人员的工作量,能够提升数据配置的效率,避免人为意外引入的误操作风险。
发明内容
本发明实施例提供一种联锁软件数据配置与代码的分离和读取方法及系统,用于克服或部分解决现有技术在联锁软件数据配置与代码的分离和读取中存在的安全性能差、操作步骤繁琐等缺陷。
第一方面,本发明实施例提供一种联锁软件数据配置与代码的分离方法,主要包括:在联锁软件的编译过程中,将核心逻辑代码编译为exe文件;将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建dat二进制文件。
作为可选地,在核心逻辑代码中还包括预留的数据配置全局变量;该预留的数据配置全局变量为非const类型;该预留的数据配置全局变量的变量空间大于最大工程站场所需的配置数据大小。
作为可选地,本发明实施例提供的联锁软件数据配置与代码的分离方法,还包括:以内部配置宏定义的方式,定义配置数据的预存储数组空间的大小。
作为可选地,在构建dat二进制文件之后,对其进行加密处理。
第二方面,本发明实施例提供一种联锁软件数据配置与代码的读取方法,主要包括:读取dat二进制文件,获取配置数据;读取exe文件,获取数据配置全局变量;利用配置数据对数据配置全局变量进行赋值,实现联锁软件数据配置与代码的读取;exe文件,是在联锁软件的编译过程中,由核心逻辑代码编译构建的;dat二进制文件,是将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建的。
作为可选地,本发明实施例提供的联锁软件数据配置与代码的读取方法,还包括:周期性的对数据配置全局变量的取值进行校验;若数据配置全局变量的取值改变,则采取宕机处理。
作为可选地,在利用所述配置数据对所述数据配置全局变量进行赋值的过程中,若出现错误的配置项,则输出提示报警信息;提示报警信息包括配置错误的类型及位置。
第三方面,本发明实施例提供一种联锁软件数据配置与代码的分离系统,主要包括核心代码编译单元和配置数据编译单元;在联锁软件的编译过程中,核心代码编译单元,用于将核心逻辑代码编译为exe文件;配置数据编译单元,用于将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建dat二进制文件。
第四方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现如第一方面任一所述的联锁软件数据配置与代码的分离方法或第二方面的任一所述的联锁软件数据配置与代码的读取方法步骤。
第五方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面任一所述的联锁软件数据配置与代码的分离方法或第二方面的任一所述的联锁软件数据配置与代码的读取方法的步骤。
本发明实施例提供的联锁软件数据配置与代码的分离和读取方法及系统,将逻辑功能代码编译得到exe文件,并独立生成的dat二进制数据配置文件,实现核心处理逻辑代码与数据配置的文件分离,防止数据配置过程中对核心逻辑代码的误修改,提高了CI软件的安全性和数据配置效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种联锁软件数据配置与代码的分离方法流程示意图;
图2为本发明实施例提供的一种联锁软件数据配置与代码的读取方法流程示意图;
图3为本发明实施例提供的一种联锁软件数据配置与代码的分离系统结构示意图;
图4为本发明实施例提供的一种联锁软件数据配置与代码的读取系统结构示意图;
图5为本发明实施例提供的一种电子设备的实体结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在现有城市轨道交通控制系统中,计算机联锁系统(Computer-BasedInterlocking,简称CI)的软件配置数据通常采取由工程数据配置人员修改.c源文件格式及.h头文件格式的方式来进行。其中,配置数据一般以全局变量及宏定义的形式存储在.c源文件及.h头文件中。核心逻辑代码与配置数据采取绑定编译为一个exe可执行文件的方式,安装在CF卡中运行。
既有的软件代码中的配置数据有两种存在形式:宏定义和const类型全局变量。通过宏定义实现的配置项可以分为两类:内部配置宏定义和外部配置宏定义。其中,内部配置宏定义只能由开发人员修改,主要实现对数据长度或内容的合法性检查;而外部配置宏定义则由工程数据配置人员修改,包含站场相关信息及工程实施方式等;但const类型全局变量完全由工程数据配置人员修改。
上述现有的数据配置方式不利于CI核心逻辑代码保密性,同时工程数据配置人员需要在很多.c源文件及.h头文件中修改配置数据,配置工作也不条理
为有效的克服上述缺陷,本发明实施例提供一种联锁软件数据配置与代码的分离方法,如图1所示,包括但不限于以下步骤:
步骤S11,在联锁软件的编译过程中,将核心逻辑代码编译为exe文件;
步骤S12,将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建dat二进制文件。
本发明实施例提供的联锁软件数据配置与代码的分离方法,通过将核心逻辑代码独立编译为exe文件,并将所有的配置数据均存储于一个二进制dat文件中,实现了核心处理逻辑代码与数据配置的文件分离,从而提高了CI软件安全性。
const(常类型)类型指使用类型修饰符const说明的类型,用其定义的变量或对象的值是不能被改变的。为实现逻辑代码与配置数据的分离,在本发明实施例中,采用将既有配置数据中的外部配置宏定义转变为非const类型全局变量形式,const类型全局变量转变为非const类型全局变量,以支持运行中赋值。通过采用上述技术手段,实现了保留由开发人员修改内部配置宏定义的基础上,可以将外部配置宏定义以及原const类型全局变量等全局变量,采用自动化或半自动化的工程化配套工具进行配置,能够提升数据配置的效率,避免工程数据配置人员的人为意外引入的误操作风险,且在涉及到配置数据的修改时,不影响核心逻辑代码的版本,保证了系统的稳定性和安全性。
其中,exe文件为可移动、可执行文件,可以被加载到内存中,并由操作系统加载其记载的程序来执行,是可在操作系统存储空间中浮动定位的可执行程序。
dat二进制文件,是以二进制的方式存在的数据文件,在本发明实施例中是利用该格式的文件作为全局变量的数据保存方式,具体地,将由外部配置宏定义和const类型全局变量转换后获取到的非const类型全局变量,与内部配置宏定义方式定义的数据,构建成一个dat二进制文件,能够有效的提高数据的存储与读取的效率。
本发明实施例提供的联锁软件数据配置与代码的分离方法,将逻辑功能代码编译得到exe文件,并独立生成的dat二进制数据配置文件,实现核心处理逻辑代码与数据配置的文件分离,防止数据配置过程中对核心逻辑代码的误修改,提高了CI软件的安全性和数据配置效率。
基于上述实施例的内容,作为一种可选实施例,在核心逻辑代码中还包括预留的数据配置全局变量;该预留的数据配置全局变量为非const类型;预留的数据配置全局变量的变量空间大于最大工程站场所需的配置数据大小。
具体地,在本发明实施例中,CI软件的程序部分在必须的数据配置全局变量的基础上,还预留一部分数据配置全局变量。其中,所有的数据配置全局变量均被定义为非const类型,以供读取配置文件使用。
进一步地,本发明实施例提供的联锁软件数据配置与代码的分离方法,可以运用于整个列车控制系统的CI程序,为保证不同站场大小的联锁站均能正常运行,CI程序预留的配置数据全局变量的空间应略大于最大工程站场所需的配置数据大小。
基于上述实施例的内容,作为一种可选实施例,还可以包括:以内部配置宏定义的方式,定义配置数据的预存储数组空间的大小。
由于内部配置宏定义仅开发人员具有修改权限,主要实现对数据长度或内容的合法性检查,在本发明实施例中,对于数组类型的数据均配置全局变量,采用内部配置宏定义方式定义预存储数组空间的大小,利用这一宏定义方式,对读取数据配置文件得到的数据大小进行范围有效性检查,能够有效的防止对预存储数组空间越界赋值。
基于上述实施例的内容,作为一种可选实施例,在构建dat二进制文件之后,对其进行加密处理。
具体地,在目标程序初始化过程中,读取配置文件后,先对其进行解密之后,再读取各类配置数据。因CI程序及配置放置在CF卡中,如果配置文件不加密,单纯通过周期校验,只能保证数据的完整性,不能防止针对配置文件的恶意修改。
在本发明实施例中对构建的配置文件采用加密方式,能够有效的保证数据的完整性,防止针对配置文件的恶意修改。
本发明实施例提供一种联锁软件数据配置与代码的读取方法,如图2所示,主要包括:
步骤S21,读取dat二进制文件,获取配置数据;
步骤S22,读取exe文件,获取数据配置全局变量;
步骤S23,利用所述配置数据对所述数据配置全局变量进行赋值,实现联锁软件数据配置与代码的读取;
exe文件是在联锁软件的编译过程中,由核心逻辑代码编译构建的;dat二进制文件是将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建的。
具体地,本发明实施例提供的联锁软件数据配置与代码的读取方法可以是针对采用上述任一实施例中所述的联锁软件数据配置与代码的分离方法,获取到的独立dat二进制文件和exe文件,进行程序读取的过程。
即在联锁软件的编译过程中,将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建dat二进制文件;将核心逻辑代码编译为exe文件,实现了联锁软件数据配置与代码的分离。
需要读取配置数据,则先读取dat二进制文件,获取配置数据,然后读取exe文件,获取数据配置全局变量;最后,利用获取的配置数据对这些数据配置全局变量赋值,实现代码部分对数据配置功能的支持。
本发明实施例提供的联锁软件数据配置与代码的读取方法,在将逻辑功能代码编译得到exe文件,并独立生成的dat二进制数据配置文件,实现核心处理逻辑代码与数据配置的文件分离的基础上,在数据读取的过程中,能防止数据配置过程中对核心逻辑代码的误修改,提高了CI软件的安全性和数据配置效率。
基于上述实施例的内容,作为一种可选实施例,还包括:周期性的对所述数据配置全局变量的取值进行校验;若数据配置全局变量的取值改变,则采取宕机处理。
由于CI程序中的配置数据全局变量均为非const类型,因此对其读写操作均是被允许的。但实际应用中,这些配置数据全局变量在初始化过程中被写入配置数据后,便再不能被写入其他取值。为防止程序周期运行过程中,对数据配置全局变量误赋值,在本发明实施例中,周期性的对数据配置全局变量的取值进行校验,如果发现数据配置全局变量的取值发生改变,则采取宕机处理,以有效的保证CI软件的安全性。
基于上述实施例的内容,作为一种可选实施例,在利用配置数据对数据配置全局变量进行赋值的过程中,若出现错误的配置项,则输出提示报警信息;该提示报警信息包括配置错误的类型及位置。
具体地,在本发明实施例提供的联锁软件数据配置与代码的读取方法中,CI程序对读取的配置文件,应能提供错误报警功能。且对错误的配置项,能够输出提示报警信息,以指示配置错误类型及位置,供工程数据配置人员参考。
作为可选地,若配置文件采用了加密方式,则在目标程序初始化过程中,读取配置文件后先对其进行解密,之后读取各类配置数据。由于CI程序及配置放置在CF卡中,在本实施例中通过对配置文件进行加密处理,在通过周期校验的基础上,进一步地保证了数据的完整性,有效的防止针对配置文件的恶意修改。
作为可选地,本发明实施例提供的联锁软件数据配置与代码的读取方法中,对于不同工程实施方式及现场应用环境,核心处理逻辑的设置不同的差别处理。例如,针对基于交叉感应环线的移动闭塞列车自动控制系统(Inductive Loop Based Automatic TrainControl,简称MATC)环境与互联互通环境的差别处理、对不同道岔采取的差别处理、根据CI外部接口方式的不同设置的差别处理等。例如,根据接入车载列车自动防护系统(Automatic Train Protection,简称ATP)还是接入轨旁车地通信环线系统(TrainWayside Communication,简称TWC)通信单元等不同情况,需要通过配置数据的差别来区分处理。
本发明实施例提供的联锁软件数据配置与代码的读取方法,通过对于不同工程实施方式及现场应用环境,核心处理逻辑的设置不同的差别处理,能够实现将一版逻辑软件与不同版本工程数据的配合使用。
为了进一步地说明本实施例提供的联锁软件数据配置与代码的分离和读取方法,以表1、表2和表3为例,对配置文件的格式作如下说明:
表1加密前的配置文件格式
字节长度 | 配置域含义 |
4 | 配置数据长度 |
可变 | 配置分区0 |
可变 | 配置分区1 |
… | … |
可变 | 配置分区N |
4 | 32位CRC |
表2每个配置分区的格式
字节长度 | 配置域含义 |
2 | 配置分区长度 |
2 | 配置分区类型(0-0xffff) |
可变 | 配置分区数据 |
表3每个配置域含义的格式
字节长度 | 配置域含义 |
2 | 配置分区长度 |
2 | 配置分区类型(0) |
2 | 设备类型(CI) |
4 | 设备专有ID(联锁ID) |
4 | 配置数据版本 |
本发明实施例提供一种联锁软件数据配置与代码的分离系统,如图3所示,包括但不限核心代码编译单元11和配置数据编译单元12,其中:在联锁软件的编译过程中,核心代码编译单元11主要用于将核心逻辑代码编译为exe文件;配置数据编译单元12主要用于将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建所述dat二进制文件。
需要说明的是,本发明实施例提供的联锁软件数据配置与代码的分离系统,在具体运行时,可用于执行上述任一实施例中所述的联锁软件数据配置与代码的分离方法,在此不作一一赘述。
作为可选地,本发明实施例还提供一种联锁软件数据配置与代码的读取系统,如图4所示,包括但不限于核心代码读取单元21、配置数据读取单元22和配置数据赋值单元23,其中:核心代码读取单元21主要用于读取dat二进制文件,获取配置数据;配置数据读取单元22主要用于读取exe文件,获取数据配置全局变量;配置数据赋值单元23主要用于利用所述配置数据对所述数据配置全局变量进行赋值,实现联锁软件数据配置与代码的读取。
其中,dat二进制文件是将所述配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建的。
需要说明的是,本发明实施例提供的联锁软件数据配置与代码的读取系统,在具体运行时,可用于执行上述任一实施例中所述的联锁软件数据配置与代码的读取方法,在此不作一一赘述。
本发明实施例提供的联锁软件数据配置与代码的分离和读取系统,在将逻辑功能代码编译得到exe文件,并独立生成的dat二进制数据配置文件,实现核心处理逻辑代码与数据配置的文件分离的基础上进行数据的读取,能后有效防止数据配置过程中对核心逻辑代码的误修改,提高了CI软件的安全性和数据配置效率。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行如下方法:在联锁软件的编译过程中,将核心逻辑代码编译为exe文件;将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建dat二进制文件。
进一步地,处理器310也可以调用存储器330中的逻辑指令,以执行如下方法:读取dat二进制文件,获取配置数据;读取exe文件,获取数据配置全局变量;利用配置数据对数据配置全局变量进行赋值,实现联锁软件数据配置与代码的读取;exe文件,是在联锁软件的编译过程中,由核心逻辑代码编译构建的;dat二进制文件,是将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建的。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的联锁软件数据配置与代码的分离方法,例如包括:在联锁软件的编译过程中,将核心逻辑代码编译为exe文件;将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建dat二进制文件。
进一步地,该计算机程序被处理器执行时还可以实现以执行上述各实施例提供的联锁软件数据配置与代码的读取方法,例如包括:读取dat二进制文件,获取配置数据;读取exe文件,获取数据配置全局变量;利用配置数据对数据配置全局变量进行赋值,实现联锁软件数据配置与代码的读取;exe文件,是在联锁软件的编译过程中,由核心逻辑代码编译构建的;dat二进制文件,是将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建的。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种联锁软件数据配置与代码的分离方法,其特征在于,包括:
在联锁软件的编译过程中,将核心逻辑代码编译为exe文件;
将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建dat二进制文件。
2.根据权利要求1所述的联锁软件数据配置与代码的分离方法,其特征在于,在所述核心逻辑代码中还包括预留的数据配置全局变量;
所述预留的数据配置全局变量为非const类型;
所述预留的数据配置全局变量的变量空间大于最大工程站场所需的配置数据大小。
3.根据权利要求1所述的联锁软件数据配置与代码的分离方法,其特征在于,还包括:以内部配置宏定义的方式,定义所述配置数据的预存储数组空间的大小。
4.根据权利要求1所述的联锁软件数据配置与代码的分离方法,其特征在于,在构建所述dat二进制文件之后,对其进行加密处理。
5.一种联锁软件数据配置与代码的读取方法,其特征在于,包括:
读取dat二进制文件,获取配置数据;
读取exe文件,获取数据配置全局变量;
利用所述配置数据对所述数据配置全局变量进行赋值,实现联锁软件数据配置与代码的读取;
所述exe文件是在联锁软件的编译过程中,由核心逻辑代码编译构建的;
所述dat二进制文件是将所述配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建的。
6.根据权利要求5所述的联锁软件数据配置与代码的读取方法,其特征在于,还包括:周期性的对所述数据配置全局变量的取值进行校验;
若所述数据配置全局变量的取值改变,则采取宕机处理。
7.根据权利要求5所述的联锁软件数据配置与代码的读取方法,其特征在于,在所述利用所述配置数据对所述数据配置全局变量进行赋值的过程中,若出现错误的配置项,则输出提示报警信息;
所述提示报警信息包括配置错误的类型及位置。
8.一种联锁软件数据配置与代码的分离系统,其特征在于,包括核心代码编译单元和配置数据编译单元;
在联锁软件的编译过程中,所述核心代码编译单元,用于将核心逻辑代码编译为exe文件;
所述配置数据编译单元,用于将配置数据中的所有外部配置宏定义和const类型全局变量均转换为非const类型全局变量,结合内部配置宏定义构建所述dat二进制文件。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述联锁软件数据配置与代码的分离方法或实现如权利要求5至7任一项所述联锁软件数据配置与代码的读取方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一项所述联锁软件数据配置与代码的分离方法或实现如权利要求5至7任一项所述联锁软件数据配置与代码的读取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010491564.5A CN111736914A (zh) | 2020-06-02 | 2020-06-02 | 一种联锁软件数据配置与代码的分离和读取方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010491564.5A CN111736914A (zh) | 2020-06-02 | 2020-06-02 | 一种联锁软件数据配置与代码的分离和读取方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111736914A true CN111736914A (zh) | 2020-10-02 |
Family
ID=72648252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010491564.5A Pending CN111736914A (zh) | 2020-06-02 | 2020-06-02 | 一种联锁软件数据配置与代码的分离和读取方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111736914A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112560042A (zh) * | 2020-11-25 | 2021-03-26 | 北京交大微联科技有限公司 | 用于计算机联锁系统的数据配置方法及装置 |
WO2024087702A1 (zh) * | 2022-10-27 | 2024-05-02 | 华为技术有限公司 | 一种算子编译方法及装置 |
-
2020
- 2020-06-02 CN CN202010491564.5A patent/CN111736914A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112560042A (zh) * | 2020-11-25 | 2021-03-26 | 北京交大微联科技有限公司 | 用于计算机联锁系统的数据配置方法及装置 |
WO2024087702A1 (zh) * | 2022-10-27 | 2024-05-02 | 华为技术有限公司 | 一种算子编译方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2476400C (en) | Method and device for generating logic control units for railroad station-based vital computer apparatuses | |
EP4099194A1 (en) | Program implementation method and system capable of separating code and configuration data | |
KR102159640B1 (ko) | 데이터 컴파일 방법, 장치 및 전자 단말기, 컴퓨터 판독 가능 저장 매체 | |
CN111736914A (zh) | 一种联锁软件数据配置与代码的分离和读取方法及系统 | |
CN106843934A (zh) | 升级文件的处理方法和装置 | |
CN109725906A (zh) | 一种代码编译方法及对应的持续集成系统 | |
CN107168866B (zh) | 一种配置文件的参数解析方法及装置 | |
CN104778412A (zh) | 一种脚本检查方法及系统 | |
WO2008155198A1 (en) | Method and apparatus for changing and adding activation keys for functions of digital content without having to change and recompile the digital content | |
CN112286534A (zh) | 一种软件包自动化编译方法 | |
CN115858349A (zh) | 一种数据验证方法和装置 | |
CN114816832B (zh) | 一种单片机的数据管理方法、装置以及系统 | |
CN107864204B (zh) | 一种自适应的车辆参数自动识别和共享方法 | |
CN114186233A (zh) | 代码的反混淆方法、装置、电子设备及存储介质 | |
CN112114895A (zh) | 一种轨道交通控制系统数据和程序分离方法及装置 | |
CN111880803B (zh) | 一种应用于多平台的软件构建方法及装置 | |
EP4109313A1 (en) | Computer-implemented method and system for checking data anonymization | |
CN114168108A (zh) | 代码合并方法、装置、电子设备和计算机可读存储介质 | |
CN114756440B (zh) | 智能卡的数据写入方法、装置、设备及存储介质 | |
CN106598769A (zh) | Emmc烧录文件检验的方法及装置 | |
CN113568834A (zh) | Sdk代码的兼容性检测方法、装置、计算机设备和介质 | |
CN112527755B (zh) | 基于区块链技术的政务数据交换方法及系统 | |
CN116643865A (zh) | 批量数据处理方法、装置、设备及可读存储介质 | |
CN113031574B (zh) | 一种设备运行过程复现方法及系统 | |
CN110008073B (zh) | 硬件平台差异化屏蔽方法、装置、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |