城镇公交车系统软件设计概述

时间:2022-06-20 04:00:32

城镇公交车系统软件设计概述

作者:徐红娟 王宏刚 单位:太原科技大学电子信息工程学院 重庆交通大学 信息科学与工程学院

城市公交调度系统由车载设备、通信前置机(双机热备)、应用服务器(双机热备)、车队调度台和统计分析台、分公司调度台和统计分析台、总公司调度台和统计分析台、运营计划管理台、数据库服务器组成。限于篇幅,本文主要对车队调度台子系统软件的设计与实现进行详细阐述。

1系统功能

通过对某公交公司的运营调度状况进行分析,车队调度台子系统应具有如下功能:系统管理为了避免未经授权的用户对系统做不良操作,系统具有用户管理功能,包括用户登录、注销、退出和修改密码功能。运营车辆的实时监视系统能够以多种方式实时显示车辆所在的位置、速度以及载客量等信息,并能对车辆途中出现的超速、下线、非准点、故障等多种非正常运行报警,使调度员做出及时有效的处理。获取运营计划获取当前运营计划,并能使运营计划以表格和运行图两种形式显示。运营调整包括对运营计划调整和司乘人员调整。运营车辆的实时调整是根据车辆的实时运营信息对运营计划进行调整,如临时加/减车、调度命令等。司乘人员调整是针对特殊情况,如司乘人员突发疾病,调度员及时做出调整。历史回放系统能够记录车辆运行的轨迹,并在用户的要求下进行轨迹回放,具有快进、慢放、正常等功能。日志管理调度员对本系统所做的任何操作都会被自动记录,方便事后对数据进行分析、查询等。

2系统模型

本文主要采用UML[6]从静态和动态的角度对软件模型进行描述。用例模型用例模型是从用户的角度观察系统应具有的功能,帮助分析人员理解系统的行为,它是对系统功能的宏观描述,它与系统的功能相对应[7]。用例模型包含六个主要用例:系统管理用例、运营监控用例、运营计划用例、运营调整用例、历史回放用例和日志管理用例。六个主要用例分别包含若干个子用例,(图略)类模型类模型描述系统的静态结构,着重说明系统包含的类以及类之间的关系[8]。经过对系统进行分析,系统主要涉及到车辆、线路、车站、司乘人员、运行线以及用于显示数据的窗体类。这些类分为存储数据的数据结构类和显示数据的窗体类。数据结构类主要用于存储系统中所涉及到的数据,包括线路类OperationRoad、运行线类OperationLine、车辆类Vehicle、车站类Station、人员类Person、线段类Line和文本类Text。其中,Line、Station和Text三个类具有一些公共属性,如颜色、屏幕坐标、覆盖区域、所属线路等属性,以及公共方法:移动、显示等。按照面向对象的思想,将这三个类的公共属性和方法抽象为基类BusLineObjectRoot。为对数据结构类进行有效管理,本文采用C#中的链表类List[9-10]对系统中的数据进行存储,并将链表类作为文档类Document的属性。文档类Document定义了对数据进行操作的基本方法,如查找、插入、删除等。另外,为实现车队调度台与通信前置机的连接,系统设计了通信类Communication,用于接收车辆实时运营信息和发送调度命令,并完成相应的解析工作。窗体类用于各种信息的显示,包括主窗体类MainForm、线路图显示窗体类LineSketchForm、运行图显示窗体类RunChartForm、表格显示窗体类TableForm、运营计划窗体类RunPlanForm。MainForm类是主窗体类,其他所有的窗体都以子窗体的形式在主窗体中显示,并包含Communication类,Document类也与之相关联。LineSketchForm类、RunChartForm类和TableForm类分别是以线路示意图、运行图和表格形式显示车辆运行状况的窗体类,3个类继承于.NET中提供的Form类。系统类结构如(图略)所示。为使类图简洁,没有显示类的属性、方法以及其他辅助类(如工具条类、状态条类等)。文档类Document包含两个嵌套链表,一个是线路嵌套链表,一个是线路绘制嵌套链表,还有许多单链表,如表1所示。在线路嵌套链表节点中,运行线链表和车辆链表作为其属性。在运行线链表中,车站链表作为其属性,每辆车在每个车站的到达和离开时间以及上下车人数作为车站的属性。在车辆链表中,人员链表作为车辆链表节点的属性。而在线路绘制嵌套链表节点中,车站链表、文本链表和线段链表分别作为其属性。系统动态模型动态模型从动态角度对对象之间的动态关系进行描述[11]。限于篇幅,本文采用时序图对车队调度台处理实时信息过程进行描述,(图略)车队调度台采用传输控制协议(TransmissionControlProtocol,TCP)通过Socket套接字[12]与通信前置机建立连接后,通信前置机server对象连续不断向车队调度台发送车辆实时运营信息。Communication对象接收信息并对协议进行解析,最后将有效的信息存储在document对象中。document对象调用UpdataInfor()方法更新各个窗体的显示信息以向调度人员显示车辆运营的最新状况。调度员发出的调度命令通过Communication对象发出。

3通信协议

通信协议是指双方实体完成通信或服务所必须遵循的规则和约定[13]。限于篇幅,本文仅列出车辆实时信息协议和调度命令协议。其中车辆实时信息的协议(表略)所示,调度命令的协议如(表略)

4结语

该系统已在.NET平台下用C#进行了编码实现,其中对车辆的监控界面如图5所示。图中的黑方块代表车辆,当鼠标点击时,弹出车辆实时运行信息,包括车号、速度、驾驶员和载客人数等。随着信息技术的发展,城市公交调度系统对于保障车辆安全运营、提高运营效率及服务水平发挥着更加重要的作用。该系统软件基本实现了动态调度的需求,但在实现中缺乏对错误操作的处理机制,需要进一步的完善。

上一篇:计量管控中计算机应用 下一篇:焊具数控软件设计论述