CN109933786A - 基于编译规则的应答器报文工具的构建方法 - Google Patents
基于编译规则的应答器报文工具的构建方法 Download PDFInfo
- Publication number
- CN109933786A CN109933786A CN201910112518.7A CN201910112518A CN109933786A CN 109933786 A CN109933786 A CN 109933786A CN 201910112518 A CN201910112518 A CN 201910112518A CN 109933786 A CN109933786 A CN 109933786A
- Authority
- CN
- China
- Prior art keywords
- message
- map
- transponder
- rule
- construction method
- 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.)
- Granted
Links
Landscapes
- Train Traffic Observation, Control, And Security (AREA)
Abstract
本发明涉及一种基于编译规则的应答器报文工具的构建方法,该方法包括以下步骤:步骤1、读入列控工程项目的输入数据;根据输入表格数据字典,生成标准数据表;步骤2、对生成的标准数据表进行分析构建Map地图;步骤3、创建报文规则解释器,其输入为规则文件,利用编译器前端技术构建语法分析树ConfigBasicRule,通过车站、进路类型、应答器类型和报文类型的四结构来指导报文的生成;步骤4、依据步骤3输出的ConfigBasicRule和步骤2输出的Map地图以及工程的基本配置,进行报文的计算和显示。与现有技术相比,本发明具有可适应复杂线路,报文生成无需人工干预,通过配置文件指导报文生成,具备良好的扩展性和维护性等优点。
Description
技术领域
本发明涉及列控系统领域,尤其是涉及一种基于编译规则的应答器报文工具的构建方法。
背景技术
应答器是CTCS-2即列控系统地面设备的重要组成部分,用于将列控车载设备传输定位信息、线路参数、临时限速等信息。应答器报文工具用于自动成成列控工程中所有车站的有源应答器的各种进路报文文件,包括静态报文和二进制的报文及扰码文件。
应答器报文工具通过读入原始工程数据表,依据报文计算规范,查表计算车站不同应答器不同进路的报文。由于不同车站包含的正线线路数目不同,因此工具应具备适应多条(大于等于1)正线的能力,但是当前工具仅依靠线路的方向和运行方向查表,仅能适应两条正线的情况;同时由于车站存在改造增加线路,应答器和进路的可能,因此工具需要具备较好的扩展性,但是当前工具在报文计算时,所有的应答器和进路的报文计算都在同一个函数中,代码冗长不易维护,容易相互影响。新的报文规范的提出和不断增加的铁路线路要求应答器报文工具能适应多条正线,且具备更好的适应性、扩展性及维护性。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于编译规则的应答器报文工具的构建方法。
本发明的目的可以通过以下技术方案来实现:
一种基于编译规则的应答器报文工具的构建方法,该方法包括以下步骤:
步骤1、读入列控工程项目的输入数据,存储于相应的数据结构中;根据输入表格数据字典,生成标准数据表,存储于相应的数据结构中;
步骤2、对生成的标准数据表进行分析构建Map地图;
步骤3、创建报文规则解释器,其输入为规则文件,利用编译器前端技术构建语法分析树ConfigBasicRule,通过车站、进路类型、应答器类型和报文类型的四结构来进行报文结构的生成;
步骤4、依据步骤3输出的ConfigBasicRule和步骤2输出的Map地图以及工程的基本配置,进行报文的计算和显示。
优选地,所述的步骤1中生成标准数据表的处理具体包括以下步骤:
步骤1.1、统一编码方式,将仅包含有限固定值的属性存储于枚举变量中;
步骤1.2、依据线路名称的唯一性结合工作表名称创建并分配线路名和线路编号;
步骤1.3、依据线路数据表中信号点里程属性按照优先考虑下行正向递增公里标,以线路数据修改较小的原则设定线路的基准公里标。
优选地,所述的步骤2中的Map地图的数据结构采用分层结构描述。
优选地,电子地图的物理层,表示所有涉及到的物理点的集合,同时分割出地图的站内视图,包含该站进路的所有集合。
优选地,所述的步骤3中的规则文件包括FrameStruct.xml和ConfitBasicRule.xml文件。
优选地,所述的步骤3具体包括以下步骤:
步骤3.1、构建词法分析器,将XML文件中的字符串分割为对于报文计算有意义的词素并构建词法单元;
步骤3.2、构建语法分析器,为XML文件中的终结字符串构建语法树,树的节点表示有意义的程序构造,语法树用于表征报文的计算过程;
步骤3.3、创建相关的符号表,并将语法分析器创建的语法树和具体的计算代码相关联。
与现有技术相比,本发明具有以下优点:
1、创建并分配线路名-线路编号,工具可以基于线路编号实现不同表格的识别,因此可以适应包含多条正线的工程;
2、进行了基准公里标的设置,可不依赖人工配置,并可适应同一公里标在不同线路中变化不同和同一线路中不同公里标变化不同等较为复杂的工程;
3、通过规则文件指导报文的生成,报文规则和具体的报文计算是分离的,因此当报文规范发生变化时,比如报文管辖范围或者进路生成的报文类型,仅需修改规则文件即可。
附图说明
图1为本发明创建线路名-线路编号Map的流程图;
图2为本发明线路名-线路编号的分配的流程图;
图3为本发明设定基准公里标的流程图;
图4为本发明创建报文规则解释器的流程图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
如图1所示,本发明线路名-线路编号Map的创建方法,依据线路编号、线路方向及运行方向可唯一的标识一个工作表,以适应包含多条正线的工程,关键代码如下:
包括以下步骤:
步骤1.1、初始化线路名-线路编号Map,lineIdMap_={“”,”1”};
步骤1.2、构建识别线路名称的正则表达式:"(.*)(上行(线)?|下行(线)?)(正向|反向)?(.*)";
步骤1.3、将迭代器lineNamesIter初始化为指向线路数据表第一个工作表;
步骤1.4、若lineNamesIter不为空,则利用正则表达式匹配线路数据表的工作表名。匹配成功则提取线路名lineName,转入步骤1.5、;否则lineNameIter++;
步骤1.5、判断lineIdMap_中是否存在名为lineName的键,如果存在,则不做处理;如果不存在,则创建新的字典项,键为lineName,值为lineIdMap_项的数目加1;lineNameIter++,跳转至步骤1.4。
如图2所示,本发明线路名-线路编号的分配方法,依据已创建的lineIdMap_为所有的工程数据表分配线路编号属性,关键代码如下:
lineIdMapIter=lineIdMap_.find(lineName);
io_excelInRam.dataSet_[i].setLineNameId(lineIdMapIter->second);
包括以下步骤:
步骤2.1、构建识别线路名称的正则表达式:"(.*)(上行(线)?|下行(线)?)(正向|反向)?(.*)";
步骤2.2、利用正则表达式匹配输入的工作表名,匹配成功则提取线路名lineName,跳转至步骤2.3;否则输出报警信息,并跳出函数;
步骤2.3、获取lineIdMap_中键为lineName的项,若提出项不为空,则将对应的值设置为工作表的线路编号属性,否则输出报警信息;跳出函数。
如图3所示,本发明自动设置基准公里标的方法,主要包括以下步骤:
步骤3.1、初始化lineNamesIter,使其指向线路数据表的第一个工作表;lineNameId为相应的线路编号;
步骤3.2、若lineNamesIter不为空,则跳转至步骤3.3;否则跳转至步骤3.5;
步骤3.3、判断lineNameId和当前工作表的线路编号属性是否相同,若不同,则依据优先选择1)下行正向递增的公里标,2)出现次数较多的公里标的原则设置该线路的基准公里标,同时清空记录公里标个数及递增性的数据结构,并将lineNameId设置为当前线路的线路编号;若相同则转入步骤3.4;
步骤3.4、记录该工作表中出现的不同公里标的个数,以及公里标在下行正向时的递增特性;lineNamesIter++;
步骤3.5、设置当前线路的基准公里标,跳出函数。
如图4所示,本发明报文规则解释器的构建,通过读取XML文件利用编译器前端技术构建语法分析树,后续可指导报文的生成。
步骤4.1、将XML文件中的字符串分割由对于报文生成有意义的词素,本发明中词素分为常数、函数、标识符和符号四类;
步骤4.2、将每一个词素转换为语法树的一个节点,并构建相应的符号表,本发明中常数词素仅对应整型数;符号包括单目运算符!和二目运算符@、[、=等;标识符按照大类分为进路、应答器、信号机、车站等;函数则包括扩展有效区段f_extendRangeWithPoint、计算制动点f_calBrakeEndPoint等;
步骤4.3、建立符号表和语法树节点的对应关系,形成可指导报文计算的语法分析树。
本发明的报文工具的使用流程及使用中需要注意的事项:
步骤5.1、首先点击新建工程项,创建新的工程;
步骤5.2、基本工程配置,可修改工程名,TSR闭塞分区个数等;
步骤5.3、在弹出的工程配置界面,选择工程数据目录;目录下应包含配置文件和工程数据,其中工程数据至少应包含列车进路数据表,车站信息表,分相信息表,里程系信息表,线路断链明细表,线路数据表,线路速度表和应答器位置表;配置文件应至少包含上述数据表的字典数据和用于规则生成的ConfigBasicRule.xml及FrameStuct.xml文件。
步骤5.4、点击确定,工具即可自动生成相应报文并显示。
本工具生成的显示界面包括区域1、区域2和区域3,其中区域1为工程界面,按照工程-车站-应答器编号-进路编号四级结构显示;选中某一进路后,区域2将显示该进路的报文,包括变量名,所占位数及变量值;区域3为工具运行相关信息。
本发明具有可适应复杂线路,报文生成无需人工干预,通过配置文件指导报文生成,具备良好的扩展性和维护性等优点。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (6)
1.一种基于编译规则的应答器报文工具的构建方法,其特征在于,该方法包括以下步骤:
步骤1、读入列控工程项目的输入数据;根据输入表格数据字典,生成标准数据表;
步骤2、对生成的标准数据表进行分析构建Map地图;
步骤3、创建报文规则解释器,其输入为规则文件,利用编译器前端技术构建语法分析树ConfigBasicRule,通过车站、进路类型、应答器类型和报文类型的四结构来指导报文的生成;
步骤4、依据步骤3输出的ConfigBasicRule和步骤2输出的Map地图以及工程的基本配置,进行报文的计算和显示。
2.根据权利要求1所述的一种基于编译规则的应答器报文工具的构建方法,其特征在于,所述的步骤1中生成标准数据表的处理具体包括以下步骤:
步骤1.1、统一编码方式,将仅包含有限固定值的属性存储于枚举变量中;
步骤1.2、依据线路名称的唯一性结合工作表名称创建并分配线路名和线路编号;
步骤1.3、依据线路数据表中信号点里程属性按照优先考虑下行正向递增公里标,以线路数据修改较小的原则设定线路的基准公里标。
3.根据权利要求1所述的一种基于编译规则的应答器报文工具的构建方法,其特征在于,所述的步骤2中的Map地图的数据结构采用分层结构描述。
4.根据权利要求3所述的一种基于编译规则的应答器报文工具的构建方法,其特征在于,电子地图物理层表示所有涉及到的点的物理点的集合,同时分割处地图的站内视图,并包含该站进路的所有集合。
5.根据权利要求1所述的一种基于编译规则的应答器报文工具的构建方法,其特征在于,所述的步骤3中的规则文件包括FrameStruct.xml和ConfitBasicRule.xml文件。
6.根据权利要求1所述的一种基于编译规则的应答器报文工具的构建方法,其特征在于,所述的步骤3具体包括以下步骤:
步骤3.1、构建词法分析器,将XML文件中的字符串分割为对于报文计算有意义的词素并构建词法单元;
步骤3.2、构建语法分析器,为XML文件中的终结字符串构建语法树,树的节点表示有意义的程序构造,语法树用于表征报文的计算过程;
步骤3.3、创建相关的符号表,并将语法分析器创建的语法树和具体的计算代码相关联。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910112518.7A CN109933786B (zh) | 2019-02-13 | 2019-02-13 | 基于编译规则的应答器报文工具的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910112518.7A CN109933786B (zh) | 2019-02-13 | 2019-02-13 | 基于编译规则的应答器报文工具的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109933786A true CN109933786A (zh) | 2019-06-25 |
CN109933786B CN109933786B (zh) | 2022-08-30 |
Family
ID=66985582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910112518.7A Active CN109933786B (zh) | 2019-02-13 | 2019-02-13 | 基于编译规则的应答器报文工具的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109933786B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111003030A (zh) * | 2019-12-27 | 2020-04-14 | 卡斯柯信号(北京)有限公司 | 一种列控系统临时限速报文测试用例的生成方法及装置 |
CN111086540A (zh) * | 2020-03-23 | 2020-05-01 | 北京全路通信信号研究设计院集团有限公司 | 一种铁路报文信息处理方法和系统 |
CN112702444A (zh) * | 2021-03-25 | 2021-04-23 | 北京全路通信信号研究设计院集团有限公司 | 一种面向批量应答器报文的解析比较系统及方法 |
CN114666009A (zh) * | 2022-03-16 | 2022-06-24 | 天津津航计算技术研究所 | 一种基于模式匹配的应答器报文自动生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0371943A2 (en) * | 1988-11-29 | 1990-06-06 | International Business Machines Corporation | System and method for generating programming language translators |
CN101110812A (zh) * | 2007-08-29 | 2008-01-23 | 中兴通讯股份有限公司 | 文本命令解析处理方法 |
CN101174921A (zh) * | 2007-10-29 | 2008-05-07 | 北京佳讯飞鸿电气股份有限公司 | 列车控制系统动态报文编码方法 |
CN107911143A (zh) * | 2017-10-12 | 2018-04-13 | 北京交通大学 | 基于列车运行速度的应答器传输系统可靠性评估方法 |
-
2019
- 2019-02-13 CN CN201910112518.7A patent/CN109933786B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0371943A2 (en) * | 1988-11-29 | 1990-06-06 | International Business Machines Corporation | System and method for generating programming language translators |
CN101110812A (zh) * | 2007-08-29 | 2008-01-23 | 中兴通讯股份有限公司 | 文本命令解析处理方法 |
CN101174921A (zh) * | 2007-10-29 | 2008-05-07 | 北京佳讯飞鸿电气股份有限公司 | 列车控制系统动态报文编码方法 |
CN107911143A (zh) * | 2017-10-12 | 2018-04-13 | 北京交通大学 | 基于列车运行速度的应答器传输系统可靠性评估方法 |
Non-Patent Citations (2)
Title |
---|
L.J. AARTMAN等: "An independent verification tool for multi-vendor Mode S airborne transponder conformance testing", 《IEEE XPLORE》 * |
臧一佩等: "有源应答器报文自动生成方法的设计与研究", 《铁路计算机应用》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111003030A (zh) * | 2019-12-27 | 2020-04-14 | 卡斯柯信号(北京)有限公司 | 一种列控系统临时限速报文测试用例的生成方法及装置 |
CN111003030B (zh) * | 2019-12-27 | 2022-02-22 | 卡斯柯信号(北京)有限公司 | 一种列控系统临时限速报文测试用例的生成方法及装置 |
CN111086540A (zh) * | 2020-03-23 | 2020-05-01 | 北京全路通信信号研究设计院集团有限公司 | 一种铁路报文信息处理方法和系统 |
CN112702444A (zh) * | 2021-03-25 | 2021-04-23 | 北京全路通信信号研究设计院集团有限公司 | 一种面向批量应答器报文的解析比较系统及方法 |
CN112702444B (zh) * | 2021-03-25 | 2022-03-01 | 北京全路通信信号研究设计院集团有限公司 | 一种面向批量应答器报文的解析比较系统及方法 |
CN114666009A (zh) * | 2022-03-16 | 2022-06-24 | 天津津航计算技术研究所 | 一种基于模式匹配的应答器报文自动生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109933786B (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933786A (zh) | 基于编译规则的应答器报文工具的构建方法 | |
CN108427556B (zh) | 一种表单设计解析方法及系统 | |
CN106445484A (zh) | 通过软件开发工具包实现数据跟踪的方法及系统 | |
CN105335310A (zh) | 一种接口定义方法和数据传输方法及装置 | |
CN104049976A (zh) | 基于布尔逻辑的联锁软件自动生成系统 | |
CN103559199A (zh) | 网页信息抽取方法和装置 | |
CN105631080A (zh) | 一种矢量电网接线图自动生成装置和方法 | |
CN101216824B (zh) | 一种将树型结构数据库发布为分布式xml数据库的方法 | |
CN105808772A (zh) | 一种数据定义文件生成方法及装置 | |
CN104484337B (zh) | Xml文档的存储方法 | |
CN104386098B (zh) | 一种轨道交通线路地理信息的描述方法 | |
CN107784097A (zh) | 一种数据库表数据传输方法、系统及客户端、服务端 | |
CN111783397B (zh) | 一种aixm数据结构的本土化编码方法、装置及存储介质 | |
Shvaiko et al. | Trentino government linked open geo-data: A case study | |
CN104199928A (zh) | 一种半结构化的页面描述与解析方法 | |
CN104253790A (zh) | 规范化页面流的方法和设备 | |
CN107025329A (zh) | 智能变电站的虚回路自动连接方法 | |
CN110543641A (zh) | 一种中外文信息对比方法及装置 | |
CN103373376B (zh) | 一种获取铁路被监测信号设备信息的通用方法及系统 | |
CN104978379A (zh) | 一种应用程序资料站的搭建方法及装置 | |
CN113553117A (zh) | 列车自动监督系统配置数据自动生成方法和装置 | |
CN105808644A (zh) | 一种确定正文节点的方法及装置 | |
CN106815303A (zh) | 一种基于xml配置及标签的面包屑导航实现方法及系统 | |
CN103885762A (zh) | 一种基于文件字典拼装的文件开发工具装置以及方法 | |
CN112632200A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |