一种代码与配置数据分离的程序实现方法及系统技术方案

技术编号:24331440 阅读:25 留言:0更新日期:2020-05-29 19:45
本发明专利技术提供了一种代码与配置数据分离的程序实现方法,包括:在代码中将程序全局变量设置为非常量;将与所述全局变量对应的配置数据存储在配置文件中;所述程序执行时根据配置文件中的配置数据对全局变量赋值。本发明专利技术的方法改变了既有的数据配置方式,将配置数据从软件代码中分离出来,配置文件不参与软件代码的编译,实现核心处理逻辑代码与数据配置文件的分离,提高了程序代码的保密性。

A program implementation method and system for separating code and configuration data

【技术实现步骤摘要】
一种代码与配置数据分离的程序实现方法及系统
本专利技术属于软件应用
,特别涉及一种代码与配置数据分离的程序实现方法及系统。
技术介绍
近些年来,随着轨道交通技术的发展,我国轨道交通行业迎来了更加广阔的市场机遇。联锁系统作为铁路信号控制的地面核心系统,在各个国家的客运铁路、货运铁路、城市轨道交通中都是必不可少的部分,海外联锁市场空间巨大。随着轨道交通行业海外业务的不断推进,如何利用现有资源快速有效地研发出适应不同客户需求的信号产品,成为项目研发和改进的重要课题。计算机联锁系统是执行车站联锁逻辑控制功能,保证行车安全的关键系统之一。而计算机核心联锁软件又是计算机联锁系统的重要组成部分,主要由核心联锁逻辑和站场配置数据组成。现有的联锁系统的配置数据采用人工配置方式,配置数据以常量形式的全局变量及宏定义的形式存储在.c源文件以及.h头文件中,根据项目应用环境等因素的而不同,工程数据配置人员修改联锁项目的.c源文件及.h头文件格式的配置数据。联锁系统的软件程序(主要包括逻辑代码)与配置数据采取绑定编译,编译为一个可执行文件,安装在CF卡中进行,此种配置方式下的配置数据具有一定的可读性,即使将逻辑代码与站场数据进行了分开存储,二者仍然是一体的,作为一个整体项目存在。在这种情况下,当数据发生改变时联锁程序就需要经过重新编译过程中连接到配置文件才能使用,在一定程度上降低了软件的通用性,也不利于核心代码的保密工作,并且在配置数据的过程中,很有可能会对联锁核心逻辑代码进行误修改。因此,现有的联锁配置数据采用人工配置方式存在以下缺点:1.联锁逻辑软件缺乏通用性。2.联锁核心逻辑代码保密性较低。3.数据配置工作缺乏条理性。4.在数据配置工作过程中,可能会对核心逻辑代码造成误修改。因此,如何提供一种安全性好、通用性强的数据配置和程序实现方法,成为亟待解决的技术问题。
技术实现思路
针对上述问题,本专利技术提供了一种代码与配置数据分离的程序实现方法,包括:在代码中将程序全局变量设置为非常量;将与所述全局变量对应的配置数据存储在配置文件中;所述程序执行时根据配置文件中的配置数据对全局变量赋值。进一步地,所述代码为联锁逻辑代码;所述配置数据包括站场相关信息和/或工程实施信息。进一步地,所述方法还包括:对所述全局变量占用空间进行预设置。进一步地,根据程序在不同环境下的运行要求,设置所述全局变量占用空间满足环境要求的最大空间。进一步地,通过在程序中设置内部宏定义的方式设置所述全局变量占用空间。进一步地,所述方法还包括:程序运行过程中对所述全局变量进行检测,以确定所述全局变量是否发生变化。进一步地,所述方法包括:根据程序初始化的所述全局变量计算校验码并保存;程序运行过程中,重新计算所述全局变量校验码,将重新计算的校验码与保存的校验码比较,以确定全局变量是否发生变化。进一步地,对初始化的全局变量存储区域进行分区,分别计算各分区的校验码并保;程序运行过程中,重新计算全局变量指定分区的校验码,将重新计算的校验码与相应的保存的所述校验码进行比较,以确定全局变量是否发生变化。进一步地,方法包括:配置数据以二进制流形式进行存储到配置文件。进一步地,方法包括:对所述配置文件生成校验码并保存在代码中;程序运行时,获取配置文件,根据保存的校验码对配置文件进行校验。进一步地,方法包括:对所述配置文件进行加密,并将相应秘钥保存在代码中;程序运行时,获取配置文件,根据保存的秘钥对所述配置文件进行解密。进一步地,方法包括:所述配置数据采取配置子分区方式存储,所述子分区包含子分区长度、子分区类型字段。进一步地,方法包括:通过可视化编辑终端编辑配置数据,生成二进制配置文件;所述可视化编辑终端还用于将二进制流的配置文件转化为可视化配置数据。本专利技术还提供了一种代码与配置数据分离的程序实现系统,包括:变量设置单元,用于在代码中将程序全局变量设置为非常量;变量配置单元,用于将与所述全局变量对应的配置数据存储在配置文件中;变量赋值单元,用于在所述程序执行时,根据配置文件中的配置数据对全局变量赋值。进一步地,所述代码为联锁逻辑代码;所述配置数据包括站场相关信息和/或工程实施信息。进一步地,所述变量设置单元还用于对所述全局变量占用空间进行预设置,包括:根据程序在不同环境下的运行要求,设置所述全局变量占用空间满足环境要求的最大空间。进一步地,所述系统还包括:变量检测单元,用于在程序运行过程中对所述全局变量进行检测,以确定所述全局变量是否发生变化。进一步地,所述变量检测单元用于:根据程序初始化的所述全局变量计算校验码并保存;程序运行过程中,重新计算所述全局变量校验码,将重新计算的校验码与保存的校验码比较,以确定全局变量是否发生变化。本专利技术的程序核心逻辑代码与配置数据实现分离的方法及系统,改变了既有的数据配置方式,将配置数据从软件代码中分离出来,配置文件不参与软件代码的编译,实现核心处理逻辑代码与数据配置文件的分离,提高了程序代码的保密性。程序运行时,根据配置文件为全局变量赋值,可以基于一套代码适配多个配置文件,在不同环境下运行,从而加强了软件的代码通用性,在很大程度上克服了上述逻辑代码与数据一体的缺点。本专利技术的方法及系统在程序运行过程中进行全局变量检查,进而保障了非静态全局变量不被误修改,提高了安全性。分离的代码与配置文件通过校验机制、加密机制进一步保障了软件程序初始化数据输入的正确性。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了根据本专利技术实施例的联锁逻辑代码与配置数据分离的示意图;图2示出了根据本专利技术实施例的全局变量分区计算校验码的示意图;图3示出了根据本专利技术实施例的代码与配置数据分离的程序实现系统结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术提出一种代码与配置数本文档来自技高网
...

【技术保护点】
1.一种代码与配置数据分离的程序实现方法,其特征在于,包括:/n在代码中将程序全局变量设置为非常量;/n将与所述全局变量对应的配置数据存储在配置文件中;/n所述程序执行时根据配置文件中的配置数据对全局变量赋值。/n

【技术特征摘要】
1.一种代码与配置数据分离的程序实现方法,其特征在于,包括:
在代码中将程序全局变量设置为非常量;
将与所述全局变量对应的配置数据存储在配置文件中;
所述程序执行时根据配置文件中的配置数据对全局变量赋值。


2.根据权利要求1所述的代码与配置数据分离的程序实现方法,其特征在于,
所述代码为联锁逻辑代码;
所述配置数据包括站场相关信息和/或工程实施信息。


3.根据权利要求1所述的代码与配置数据分离的程序实现方法,其特征在于,所述方法还包括:
对所述全局变量占用空间进行预设置。


4.根据权利要求3所述的代码与配置数据分离的程序实现方法,其特征在于,
根据程序在不同环境下的运行要求,设置所述全局变量占用空间满足环境要求的最大空间。


5.根据权利要求3所述的代码与配置数据分离的程序实现方法,其特征在于,
通过在程序中设置内部宏定义的方式设置所述全局变量占用空间。


6.根据权利要求1所述的代码与配置数据分离的程序实现方法,其特征在于,所述方法还包括:
程序运行过程中对所述全局变量进行检测,以确定所述全局变量是否发生变化。


7.根据权利要求6所述的代码与配置数据分离的程序实现方法,其特征在于,所述方法包括:
根据程序初始化的所述全局变量计算校验码并保存;
程序运行过程中,重新计算所述全局变量校验码,将重新计算的校验码与保存的校验码比较,以确定全局变量是否发生变化。


8.根据权利要求6或7所述的代码与配置数据分离的程序实现方法,其特征在于,
对初始化的全局变量存储区域进行分区,分别计算各分区的校验码并保存;
程序运行过程中,重新计算全局变量指定分区的校验码,将重新计算的校验码与相应的保存的所述校验码进行比较,以确定全局变量是否发生变化。


9.根据权利要求1所述的代码与配置数据分离的程序实现方法,其特征在于,
配置数据以二进制流形式存储到配置文件。


10.根据权利要求1或9所述的代码与配置数据分离的程序实现方法,其特征在于,包括:
对所述配置文件生成校验码并保存在代码中;
程...

【专利技术属性】
技术研发人员:胡瑞张利峰周杰
申请(专利权)人:北京全路通信信号研究设计院集团有限公司
类型:发明
国别省市:北京;11

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

1