ZPW-2000A型轨道电路设备调整辅助移动应用软件设计

2021-12-31 08:01
铁路通信信号工程技术 2021年12期
关键词:配线电平视图

李 博

(北京铁路信号有限公司,北京 102613)

ZPW-2000A无绝缘移频自动闭塞轨道电路的每个轨道区段都包含发送器、接收器、衰耗器、防雷模拟网络等设备。要完成一个区段的设备调整需要查询“接收电平调整表”等4种设备调整表,通常需要手动查询数百行的表格才能确定配线方法,工作量很大。

设计一种移动应用软件来辅助轨道电路设备的调整工作,是一个很好提高工作效率的选择。只要在该软件中输入所需调整的电平等级,软件就可以自动完成对调整表的检索,将对应设备调整配线方法快速、直观、精准的显示在手机上。

本文就如何在Android系统下实现ZPW-2000A系列轨道电路设备调整辅助移动应用软件(以下简称设备调整辅助应用)的设计进行介绍。

1 开发必备工具

设备调整辅助应用的开发是在Windows PC机上完成的,需要下载安装下列工具。

1)Android SDK(Software Development Kit),包含Android开发库、调试器、模拟器、开发者文档等。

2)集成开发环境:Eclipse,也可以选择Google 官方提供的Android Studio。

3)SQLite数据库编辑器:SQLite Database Browser。

4)开发语言:Java。

2 应用设计模式

设备调整辅助应用采用3层架构设计模式,包括模型层、视图层和控制器层(Model-View-Controller,MVC)3个部分,如图1所示。

图1 MVC设计模式Fig.1 MVC design mode

1)模型对象用于存储和管理应用数据和业务逻辑。

2)视图对象负责响应用户输入,调用控制器进行处理,并将处理结果显示给用户。

3)控制对象是视图和模型对象联系的纽带,它响应视图对象触发的事件,进行相应处理,并将结果交由模型对象存储,或视图对象来显示。

MVC设计模式可以降低系统的复杂度,隔离各层间的变化,提高了代码的复用性和可维护性,为系统的升级和业务扩展留下空间。

3 用户界面设计架构

视图对象是建立用户界面的基石,它们的属性决定了用户界面如何在屏幕上显示并响应用户的输入。根据视图对象的用途和包含关系,将用户界面设计为3层构架,即首页(第一层)、查询页面容器(第二层)和查询页面(第三层),它们之间的关系如图2所示。

在设备调整辅助应用的首页包含若干个按钮,例如ZPW-2000A-T型和ZPW-2000A-J型,用户点击按钮可以选择不同型号ZPW-2000A轨道电路设备的调整辅助功能。

图2 用户界面的视图对象关系分解Fig.2 A Breakdown of the relationship between view objects on the user interface

点击首页的按钮进入第二层,这里有“主轨出”、“小轨出”、“模拟网络”和“发送”4个选项卡,它们是查询页面的容器,分别对应接收电平调整、小轨接收电平调整、模拟网络长度调整和发送电平调整的4个查询页面。

第三层是查询页面,由文本框和自定义键盘构成。文本框用来接收用户输入和显示有用数据。自定义键盘包含功能键区和普通键区,更加适合本应用的操作。

4 查询页面设计和应用场景分析

针对不同应用场景的需求,设计了风格相似、功能各异的查询页面。

4.1 查询页面的设计

为使页面简洁直观,要求完成一项调整工作的全部用户操作和数据显示在同一个查询页面内完成;为使交互方式易于理解,查询页面模拟了计算器结构,设置仿真“液晶屏”的显示屏、输入区域和键盘区;为了更好的适应不同应用场景,将最常用的应用场景转化为独立的查询功能,并设置功能切换键;在配色方面,对显示区域和输入区域进行了区分。查询页面的结构和配色风格如图3所示。

图3 接收电平调整的查询页面设计Fig.3 Design of the query page of the adjustments in the receiving level

下面以“主轨出”选项卡中的查询页面为例进行说明。

1)“主轨出”选项卡:包含了接收电平调整查询页面(简称“主轨出查询页面”)。

2)主显示屏:用于显示接收电平调整配线次序。

3)辅助显示屏:用于显示辅助内容,显示的内容会随着查询功能不同而变化。

4)输入区:显示用户输入框,也会随着选择的查询功能不同而变化。

5)键盘区:包含功能键区和普通键盘区。功能键用于选择切换“主轨入优先”、“接收电平优先”和“逆向查询”功能。

4.2 应用场景和查询功能

接收电平调整通常会遇到3种应用场景,对应的“主轨出查询页面”中也有3个查询功能与之相适应,使用方法如表1所示。

表1 不同的应用场景与查询功能的使用Tab.1 Diあerent application scenarios and the steps to perform query functions

5 控制器与程序工作逻辑

在设备调整辅助应用中,控制器需要响应用户操作、处理数据、查询数据库,最终将数据交给视图对象来显示。以主轨出查询页面的“接收电平优先”功能为例,控制器、视图对象与模型对象的载体是对应的文件、类型和变量等。

视图层:新建fragment_palmlist_zgc.xml文件,增加EditText1用于显示数据,EditText2用于用户输入。

控制层:新建JSDPFragment.java文件,建立控制器JSDPFragment类。

模型层:新建JSDPParam.java文件,建立模型JSDPParam类,定义变量mJSDP用来存储接收电平,定义变量mEditText1存储将要在EditText1中显示的配线数据。

在操作运行过程中,该应用程序的各层对象之间关系如图4所示。用户在EditText2中输入需要的电平级,控制器从视图层中获取用户输入,进行必要的判断和计算,然后调用setJSDP()方法将电平级记录在模型层的mJSDP变量中;用户点击“GO”键后,控制器调用数据库驱动程序查询数据库,获得的所需配线数据并存入模型层的mEditText1变量中;最后控制器从模型层获取配线数据,并送到视图层EditText1中显示。SQLite Database用来存储固定数据,即各种设备的调整表。KeyBoardDriver是自定义键盘驱动类,实现键盘的按压监测和键码传递。

图4 设备调整辅助应用的对象图解Fig.4 Diagram of the objects of the application to assist in equipment adjustment

如果在“主轨入优先”功能下,控制器获取用户输入主轨入电压和主轨出电压的值,可以按照公式(1)计算出相应的接收电平,然后再进行查询。

6 模型层、数据库与数据安全

模型层JSDPParam类拥有私有变量,且只能通过私有方法setter/getter进行数据存取,从视图获取数据后,或控制器进行运算后都要先将数据存入模型中,控制器遵循“先存后取,无效清空”的原则存取数据,防止数据的存取出现竞争关系,以保证数据时效性和唯一性。

数据库中存储各种设备调整表,作为本地化的数据以供控制器查询,应用软件不提供用户直接操作数据库的方法,保证数据的安全。

有关数据处理和更新视图先后顺序的代码如图5所示。

7 逆向查询功能

逆向查询,就是在已知实际配线的情况下反向查找对应的电平级或者模拟网络长度。通过应用软件的逆向查询功能,工程师只需要在提示框中输入配线连接关系就可以轻松的查询到对应的调整等级,且输入时无需考虑配线和端子的顺序,例如输入J2-8~J2-14或者J2-14~J2-8都可以准确识别。此外,通过模糊匹配还可以搜索到可能的其他等级。如果输入的配线方法在调整表中查询不到,软件会给出警告。

即使实际配线很简单,手动逆向查找也不是件容易的事情。软件自动逆向查询可以很轻松的解决这个问题,在进行现场配线的正确性检测中能够起到事半功倍的效果,对设备调试和故障排查。

8 结论

基于Android系统的ZPW-2000A无绝缘轨道电路设备调整辅助应用采用MVC应用架构、分层树形用户界面设计,便于程序的升级和扩展。应用的功能针对用户的需要,面向多种应用场景,能够有效的辅助用户的工作,提高工作效率,能够给ZPW-2000A系列轨道电路产品的用户带来更好的使用体验。据对比测试,1个区段的调试过程大约节省2~5 min时间。如果完成上千个区段的设备调整将会积少成多,可以节约大量时间,也能减少纸张使用,创造出很大价值。

图5 数据处理和更新视图先后顺序的代码节选Fig.5 Part of the codes for data processing and updating the sequence of view objects

猜你喜欢
配线电平视图
浅析旅客列车配线绝缘不良的原因及改进措施
二电平和三电平网侧变流器控制及谐波比较*
三电平PWM整流器下的地铁牵引供电系统探讨
汇流排在信号电码化N+1配线中的运用
基于直流侧电压不均衡的CHB多电平逆变器SHEPWM控制技术
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
Django 框架中通用类视图的用法
Danger Bomb:炸弹闹钟