轨道交通车辆数据显示方法、系统及轨道交通车辆与流程

文档序号:23657762发布日期:2021-01-15 13:55阅读:131来源:国知局
轨道交通车辆数据显示方法、系统及轨道交通车辆与流程
本发明涉及轨道交通领域,特别是一种轨道交通车辆数据显示方法、系统及轨道交通车辆。
背景技术
:随着现代轨道交通车辆的普及,其车载网络设备的技术得到了高速发展,车载显示屏在司机驾驶车辆的使用设备中,扮演了越来越重要的角色。显示屏需要显示车辆的各子系统的状态信息与故障诊断信息等,如牵引系统、制动系统、车门系统、空调系统、乘客信息系统、火灾报警系统、走行部检测系统等。不同的轨道交通车辆项目,采用的子系统生产厂家众多,且不同的项目,对子系统的需求也不一致,使得对不同的车辆项目,显示屏显示的车辆数据均有或大或小的差异,导致网络通信协议多样化。显示屏所显示数据的数据来源是列车通信网络。通信协议的变化,使显示屏应用程序需做相应的更改,这极大的加大了显示器应用程序开发的工作量。如何设计出显示屏程序模块化框架,使得软件开发工作量受通信协议变化的影响变小,是需要解决的技术问题。列车通信网络根据子系统状态数据与故障诊断数据量的多少,为每个子系统分配一定数量的的网络端口,以特定的端口号进行区分,子系统的单个数据,以端口号、字节偏移和位偏移共同区分,例如:列车占有数据,位于a0端口10字节1位。显示屏显示软件包含列车网络数据获取模块、界面显示模块。列车网络数据获取模块从网络端口获取列车网络数据中的列车各子系统的状态数据与故障诊断信息等数据,并将获取后的数据保存于网络数据缓冲区(显示屏中的存储数据的内存空间,其数据通过网络端口号进行标识),界面显示模块根据端口号从数据缓冲区获取数据,显示于界面控件(显示器界面显示数据的单元),以往显示屏软件设计方法,是从网络数据缓冲区根据端口号、字节偏移、位偏移,获取界面控件所对应的数据,并根据数据,进行界面的数值刷新,实现车辆状态数据在显示屏的显示。但是,这种处理方法的最大弊端是:对于不同车辆项目,需求存在变化,其数据协议存在变化,对于变化的数据,需要修改数据获取的端口号、字节偏移、位偏移,带来软件开发与测试的庞大工作量。技术实现要素:本发明所要解决的技术问题是,针对现有技术不足,提供一种轨道交通车辆数据显示方法、系统及轨道交通车辆,在列车网络通信数据协议变化或者界面标准变化时,最大限度的降低软件代码修改程度。为解决上述技术问题,本发明所采用的技术方案是:一种轨道交通车辆数据显示方法,包括以下步骤:s1、获取列车各子系统的状态数据;s2、设置多个中间变量,所述多个中间变量与需传输且需在显示屏显示的状态数据一一对应;s3、从所述中间变量获取对应的状态数据,并通过界面控件显示在显示屏界面上。本发明设置了中间变量,实现显示屏应用软件界面显示模块与列车通信网络数据获取模块分离,实现了数据低耦合度,因此在列车网络通信数据协议变化或者界面标准变化时,可以最大限度的降低软件代码修改程度。步骤s2的具体实现过程包括:1)编制状态数据与中间变量的映射表;所述映射表包括中间变量所属系统名称列、中间变量名称列、中间变量所对应状态数据所传输的端口的端口号列、中间变量所对应状态数据在网络中传输端口中的字节号列、中间变量所对应状态数据在网络中传输的位号列;2)解析所述映射表,生成数据获取函数和中间变量赋值函数;其中,所述数据获取函数表示从对应的端口获取状态数据,并将状态数据放置于数据缓冲区;所述中间变量赋值函数表示从所述数据缓冲区对应字节获取数据,并赋值至对应的中间变量。本发明通过编制映射表与根据映射表生成数据获取函数与中间变量赋值函数,具有以下优势,第一,在进行显示屏软件开发时,只需要根据网络通信协议,编制映射表,无需对显示屏软件的所有源代码进行重新编制,修改每个显示数据在传输端口的协议位置,大量减少源代码编制的时间。第二,根据映射表生成数据获取函数和中间变量赋值函数时,只需要测试此部分代码,无需对已经验证与测试过的成熟模块进行重复测试,可大量减少软件的调试与测试时间。为了使映射表更明晰,内容更清楚,步骤1)中,所述映射表还包括以下列:中间变量的类型列、中间变量的说明列。相应地,本发明还提供了一种轨道交通车辆数据显示系统,其包括:列车网络数据获取模块,用于从列车网络取得列车各子系统的状态数据,并将状态数据储存于网络数据缓冲区;中间处理模块,用于将网络数据缓冲区中的数据传送至中间变量;界面显示模块,用于从中间处理模块的中间变量获取数据,通过控件在显示屏界面显示获取的数据。利用中间处理模块隔离列车网络数据获取模块和界面显示模块,将列车通信网络端口定义与界面显示模块分开,实现了网络与界面显示的解耦。本发明的显示系统还包括:端口设置模块,用于将列车网络数据根据不同子系统设置对应的通信端口。端口设置均在映射配置表中完成,即对于需要显示不同子系统状态数据的中间变量,配置对应的端口号、字节偏移、位偏移等,无需在显示软件的每个显示界面源代码文件中进行端口配置。减少源代码开发工作量与测试工作量。所述列车网络数据获取模块利用网络数据获取函数从列车网络通信端口获取数据;其中,所述网络数据获取函数利用映射表生成;所述映射表包括中间变量所属系统名称列、中间变量名称列、中间变量所对应状态数据所传输的端口的端口号列、中间变量所对应状态数据在网络中传输端口中的字节号列、中间变量所对应状态数据在网络中传输的位号列。所述中间处理模块利用中间变量赋值函数将从数据缓冲区获取的需显示的车辆状态数据赋值于中间变量;所述中间变量赋值函数利用所述映射表生成。上述列车网络数据获取模块的优势在于:网络数据获取函数集中统一生成,获取的网络数据赋值给中间变量,在显示界面使用中间变量进行显示,避免了在显示器各显示界面中频繁使用网络数据获取函数,故当数据协议变化时,无需修改与测试各显示界面,减少软件开发与测试工作量。作为一个发明构思,本发明还提供了一种轨道交通车辆,其采用上述显示系统。与现有技术相比,本发明所具有的有益效果为:1)本发明能将列车通信网络端口定义与界面显示模块分开,实现网络与界面显示的解耦,降低了数据耦合度,在列车网络通信数据协议变化或者界面标准变化时,最大限度的降低软件代码修改程度。2)本发明可使得对于相同的界面标准但列车网络协议标准不同的项目,界面显示模块可不进行重新开发,沿用以往成熟项目界面显示模块,且对该部分软件模块,无需进行单元测试。3)本发明可使得对于列车网络通信协议标准一致但界面风格不同的项目,网络数据获取模块可不进行重新开发,沿用以往项目的网络数据获取模块,且对该部分软件模块,无需进行单元测试。4)本发明对于界面标准与列车通信网络协议均不一致的项目,可单独分模块进行单元开发与测试,独立进行,便于进行团队合作。附图说明图1为本发明实施例显示器应用软件结构图;图2为本发明实施例显示屏中列车网络数据流向图。具体实施方式图1是显示器应用软件结构图,本发明实施例将显示器应用程序划为为列车网络数据获取模块、中间处理模块、界面显示模块。图2为显示屏中列车网络数据流向图。列车网络数据获取模块负责从列车网络取得列车各子系统的状态数据,储存于网络数据缓冲区(显示屏中的存储数据的内存空间,其中的数据通过网络端口号进行标识,如:列车控制系统ccu的状态数据,在列车通信网络中,端口号设定为a0,其在网络数据缓冲区的存储区域命名为pd_port_a0;网络数据缓冲区的数据结构与网络端口的数据结构一致;列车网压值linevolt通过列车通信网络端口a0的第10字节传输,则在缓冲区获取网压值时,从pd_port_a0的第10字节获取)。针对列车网络数据中传输的且需要在显示屏显示的数据,在中间处理模块中设置对应的中间变量,中间处理模块负责将网络数据缓冲区中的数据,传送至中间变量。中间处理模块中的中间变量,与列车网络中传输的且需要在显示屏显示的数据是一一对应关系,如:列车控制子系统的端口号为0xa0的端口中,第12字节数据为网压值,则在中间处理模块中,具有网压值的中间变量ccudata.g_ccu_linevolt。中间处理模块软件包含两方面内容:获取网络数据与给中间变量赋值。处理代码根据映射表生成,生成规则为根据类型列定义的类型,从端口号列定义的端口,字节偏移列、位偏移列的位置,获取网络数据,赋值于结构体名称列与变量名称列所定义的变量,类型为bool时,按位取网络数据;类型为char时,按字节取网络数据;类型为unsignedshort或short时,按双字节取网络数据等。例如,对于表1中的第一行,结构体名称为ccudata,变量名称为g_ccu_occupied_a1,端口号为pd_port_a0,字节偏移为0,位偏移为0,类型为bool,其数据含义是a1车司机室占有。从端口号pd_port_11的0字节的0位,获取网络数值,赋值于变量ccudata.g_ccu_occupied_a1;其对应生成的代码为ccudata.g_ccu_occupied_a1=get_ubit(pd_port_11,0,0);。编制网络数据协议与中间变量映射表(示例),映射表格式示例如表1。表1网络数据协议与中间变量映射表名称/结构体名称变量名称端口号字节偏移位偏移类型说明备注ccudatag_ccu_occupied_a1pd_port_a000boola1车司机室占有ccudatag_ccu_occupied_a2pd_port_a001boola2车司机室占有ccudatag_ccu_fwdpd_port_a002bool向前ccudatag_ccu_bwdpd_port_a003bool向后ccudatag_ccu_loadpd_port_a020unsignedshort列车载荷ccudatag_ccu_mpprspd_port_a022unsignedshort主风管压力ccudatag_ccu_linevoltpd_port_a010short电网电压ccudatag_ccu_currentpd_port_a026short电网电流ccudatag_ccu_battvoltpd_port_a028short蓄电池电压ccudatag_ccu_spdpd_port_a030short列车速度ccudatag_ccu_hmicomfaultpd_port_9000bool显示屏通信故障ccudatag_ccu_piscomfaultpd_port_9001bool乘客信息系统通信故障表1中,网络协议与中间变量映射表第1行为表列说明,映射表第2行以后为中间变量配置数据,其中b列为中间变量所属系统名称,如ccudata表示数据为列车控制单元ccu发送的数据;c列为中间变量名称;d列为中间变量所对应网络数据所传输的端口的端口号,e列为中间变量所对应网络数据在网络中传输端口中的字节号;f列为中间变量所对应网络数据在网络中传输的位号;g列为中间变量的类型;h列为中间变量的说明。以网络协议与中间变量映射表作为输入,解析映射表,生成如下数据获取函数(voidmvbdataget())与中间变量赋值(voidvardataset())两个函数,如表2,其中第1-7行为数据获取函数的注释与说明,第8行是函数类型(void:计算机c++语言中的类型)和函数名称mvbdataget(),第10行为列车网络数据获取接口函数,mvbapp_getdata(0xa0,pd_port_a0,sizeof(pd_port_a0)),表示从端口0xa0获取网络数据,放置于数据缓冲区pd_port_a0中。第14-21行为中间变量赋值函数的注释;第22行是中间变量赋值函数的函数类型(void:计算机c++语言中的类型)和函数名称vardataset(),第24-35行是中间变量赋值函数,如ccudata.g_ccu_linevolt=get_ushort(pd_port_a0,10);表示从网络数据缓冲区pd_port_a0的0字节获取数据赋值至网压中间变量g_ccu_linevolt。表2自动生成网络数据获取函数与中间变量赋值函数(示例)界面显示模块,在界面显示模块定义需要在显示屏显示的列车网络数据的控件(显示器界面用于显示数据的单元),且对每个控件命名,如:网压值ctl_linevolt。界面显示模块,从中间处理模块的中间变量获取数据,通过控件在界面显示。本发明实施例实现过程总结如下:1)在列车网络控制软件系统设计设计阶段,将列车网络数据根据不同子系统设置对应的通信端口,如:列车控制系统状态数据0xa0,故障端口0x90等,设定网压数据位于0xa0端口的10字节。2)将显示屏软件划分为列车网络数据获取模块、中间处理模块、界面显示模块。3)编制网络协议与中间变量映射表,如表1。4)生成网络数据获取函数与中间变量赋值函数,如表2。其中网络数据获取函数在列车网络数据模块中使用,用于从列车网络通信端口获取数据。中间变量赋值函数在中间处理模块中使用,用于从数据缓冲区获取需显示的车辆状态数据,赋值于中间变量。5)列车网络数据模块从列车网络通信端口获取数据,放置于数据缓冲区。如:从端口0xa0获取列车控制系统状态数据,放置于数据缓冲区pd_port_a0;从端口0x90获取故障诊断数据,放置于数据缓冲区pd_port_90。6)中间处理模块从数据缓冲区获取需显示的车辆状态数据,赋值于中间变量。如:从pd_port_90的第10字节获取网压数据,赋值给网压中间变量g_ccu_linevolt。7)界面显示模块从中间变量取值,通过界面控件显示在显示屏界面。如网压界面控件ctl_voltage显示中间变量g_ccu_linevolt传送的网压值。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1