电动自行车租赁站点服务终端软件设计与实现第4章下Word下载.docx
《电动自行车租赁站点服务终端软件设计与实现第4章下Word下载.docx》由会员分享,可在线阅读,更多相关《电动自行车租赁站点服务终端软件设计与实现第4章下Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
租赁站点服务终端启动初始化完成后,创建SerialPortThread子线程,解析串口接收数据完成对软件操作用户鉴权,然后响应用户操作,完成与用户的交互。
4.5.2车辆管理模块实现
根据软件模块划分可知,车辆管理模块分为车辆信息采集和车辆充电管理。
通过主动轮询,完成车辆信息采集,从而实现车桩电量监控和充电控制,以及车辆和车桩管理。
1.车辆信息采集
车桩和车辆信息的采集通过PollThread线程实现,服务终端每隔10分钟发送一次轮询信息,轮询流程如图4.13所示。
服务终端软件向租赁站点所有车桩发出含有05H功能码的轮询命令,车桩依次将车辆信息和车桩信息及时返回至服务终端。
图4.13CAN总线轮询流程图
服务终端软件将CAN总线返回的车桩和车辆信息与数据库中存储数据进行比对过滤,将有效的数据存入数据库,无效数据丢弃,异常的数据上报监管平台。
2.租车/还车
服务终端最基本的功能是用户租车和还车,用户租车和还车同时涉及到了网络通信和CAN通信,为简化租车流程和确保车辆安全,一张卡只能租用一辆车。
同时,为方便用户租车,在每个车桩上都有两个RFID控制器,一个用于读写用户卡,另一个用作读写车辆RFID号。
本文设计实现了租车和还车,以及无卡还车,用户在有车的车桩刷卡就可以实现租车,租车流程如图4.14所示。
图4.14租车流程图
用户在车桩刷卡,车桩采集车辆和车桩的信息,通过CAN总线将卡号、卡状态和卡余额等租车相关信息发送至服务终端,服务终端根据车桩返回信息对用户卡进行鉴权,当余额充足时,解锁对应车桩的车锁,并上传用户卡信息和对应车桩的车辆ID号,标注用户卡为租车锁定用户,语音提示用户租车成功;
当用户卡余额不足时,进行语音提示。
还车用户只需要将车辆放置到空闲的,并且正常运行的车桩,并在车桩读卡区域刷卡,就可实现用户卡还车。
用户还车时也可以不刷卡,虽然不刷卡简化了用户的还车流程,但会增加电动自行车租赁系统处理的还车复杂程度,还车流程如图4.15所示。
图4.15还车流程图
用户还车时在车桩刷卡,车桩读取用户卡内存储的租车信息和车辆的RFID号上传至服务终端。
服务终端根据上传还车信息进行费用计算,并返回消费信息至车桩,同时将租车记录上传至监管平台,以方便管理和用户查询。
车桩根据返回信息对用户卡进行写卡操作。
服务终端提供无卡租车,用户要在公共电动自行车租赁网站上进行注册和实名认证才能进行无卡租车。
在租赁站点使用终端登录站点免费WiFi,根据WiFi推送页面的操作流程进行租车。
具体操作流程如图4.16所示。
图4.16WiFi用户租车流程图
用户使用终端登录站点WiFi,在租车页面输入需租车辆的ID号并提交给监管平台,监管平台对用户发送信息进行租车权限判断,若拥有租车权限则返回租车确认信息至对应的租赁站点服务终端和用户手机终端。
服务终端控制对应车桩开锁,完成租车;
反之提示租车失败。
还车时用户只需将电动自行车推入空闲车桩,车桩自动识别车辆ID并上传还车信息,监管平台根据车辆ID信息计算租车费用,用户通过在线支付方式进行费用结算,完成还车。
4.5.3用户管理模块实现
用户管理模块包括用户查询功能和地图功能。
1.用户管理模块
服务终端软件的不同使用者拥有不同的权限,不同权限用户登录软件使用不同的功能。
用户的登录流程如图4.17所示。
图4.17用户登录流程图
不同类别的用户拥有不同的权限,普通用户只能拥有个人密码修改权限和个人信息修改权限,调度员比普通用户多了一项站点车辆信息查看权限,维修员可以查看站点车辆、车桩和服务终端信息,其中管理员的权限最高,可以对服务终端和车桩进行配置。
2.地图
任何人都可查看本市租赁站点分布、网点分布和电子商务相关信息。
服务终端的电子地图主要是用来标注城市已有的租赁站点和网点,方便用户查询。
用户还可以搜索附近的公交车站、景点、宾馆和饭店,方便出行。
通过查询,可以确认目的地附近是否有租赁站点,方便用户租还车。
同时用户查询时,可以根据用户查询内容推广租赁站点周围商户信息,为用户提供消费便利,提高商家的知名度。
(1)电子地图功能
国内已经有很多免费的电子地图,例如XX地图、高德地图和腾讯地图等。
XX地图有很庞大的用户群体,且免费为开发者提供API接口,JavaScriptAPI、Web服务API、AndroidSDK、iOSSDK、定位SDK、车联网API和LBS云等多种开发工具与服务,提供基本地图展现、搜索、定位、逆/地理编码、路线规划、LBS云存储与检索等功能,适用于PC端、移动端和服务器等多种设备,可在多种操作系统下进行地图应用开发[38]。
开发者在开发时,需要申请唯一密钥,以保证数据安全,这些特点使开发变得易于实现且安全,所以服务终端采用XX地图进行二次开发。
XX地图提供了Javascript类参考、极速版JS类参考、Web组件类参考、Android类参考、Flash类参考和iOS类参考等多种类参考,因为QT中的QtWebKit提供了HTML浏览器引擎,可以方便访问网络内容和服务,Javascript作为Web页面中的一种脚本编程语言,可用web系统的客户端和服务器端的编程[39],服务终端软件使用Javascript类参考作为接口。
(2)地图功能实现
本设计基于XX地图API进行二次开发,使用版本为Javascript类v2.0,该套API免费对外开放,为了保证信息的安全性,需要申请密钥。
下面主要对服务终端如何获取XX地图服务和租赁站点在XX地图上的标注做详细设计。
XX地图提供丰富的API供开发者调用,标注流程如图4.18所示。
图4.18地图标注流程图
首先在html文件中使用<
divid="
allmap"
>
<
/div>
建立一个div元素,在该div元素上实现地图实例的创建,如:
varmap=newBMap.Map("
);
其次使用经纬度坐标或城市名初始化地图,并设置缩放级别,根据使用者的操作,向服务区发出请求,获得相关坐标并在地图上标注。
4.5.4站点管理模块实现
站点管理主要是车辆调度和车辆维修、服务终端管理和车桩管理、广告和网络异常管理。
1.车辆调度和车辆维修
车辆调度和维修管理主要依赖于操作员在车桩上进行操作并刷卡,然后在服务终端相应界面进行数据录入。
服务终端软件使用CanThread实现获取车辆调度和车辆维修信息,CanThread初始化时启动,用于持续监听租车、还车、维修和调度信息。
2.服务终端管理和车桩管理
服务终端管理和车桩管理主要是对车桩和终端进行一键停止/启用功能,同时通过CAN总线轮询采集车桩信息和车辆信息。
服务终端配置信息和车桩配置信息从监管平台通过UdpThread获得,服务终端软件初次启动加入网络,监听监管平台分发的配置广播信息,根据配置信息进行终端配置。
UDP通信流程如图4.19所示。
图4.19UDP通信程序设计流程图
服务终端软件将接收到的配置信息terminalsite.txt和bicyclesiteconfig.txt保存至./file下,terminalsite.txt文件内容主要有终端配置编号ID、租赁站点名称、租赁站点地址、租赁站点车桩数、服务终端状态、站点添加时间、租赁站点经度和租赁站点纬度;
bicyclesiteconfig.txt文件主要内容有车桩配置编号ID、车桩起止使用标记和车桩添加时间。
服务终端根据解析配置txt具体内容更新数据库表内容。
服务终端软件UDP程序流程:
(1)程序的初始化,使用QUdpsocket()函数建立一个QUdpsocket。
(2)设置本地地址中的sockaddr_in结构中的变量信息,并进行赋值。
(3)绑定和监听一个固定端口号8800端口,调用bind()函数进行绑定,再检查是否成功,有错误就退出,避免重复运行。
(4)进入监听状态,直到收到监管平台发送的广播信息,并向监管平台请求配置信息。
(5)产生新的进程与客户端进行数据通信交换。
(6)进程结束后断开连接。
3.广告
随着智慧城市智慧交通的发展,在公共电动自行车租赁站点投放广告能够降低公共自行车租赁投资成本,同时还能给市民提供便利。
在电动自行车租赁站点放置LED显示屏播放广告和公告,满足服务终端软件多元化综合需求。
服务终端将从监管平台接收的广告文件存储到./ad目录下,并将播放规则存储到本地数据库。
广告信息数据库表如表4.7所示,在每个服务终端初始化时建立广告信息数据库表用于存储广告播放规则。
表4.7ad_information广告信息表
中文属性
数据字段
数据类型
长度
允许空
约束
站点编号
site_id
char
4
—
PK
广告格式
ad_type
varchar
广告名称
ad_namet
10
播放规则
ad_play_rule
操作级别
ad_operate_priority
添加时间
ad_add_time
datetime
监管平台统一按照规定的图片和视频格式进行归类传送至服务终端,对不同的租赁站点分发不同的广告,广告信息由广告商提供。
服务终端收到广告文件后,根据播放规则播放。
服务终端还有公告功能,用于发布生活信息或紧急消息。
服务终端同样将从监管平台接收的公告信息存储到./notice目录下,并将播放规则存储到本地数据库进行公告播放。
公告信息由监管平台制定分发,公告数据库表如表4.8所示。
表4.8notice_information公告信息表
公告格式
notice_type
公告名称
notice_name
nvarchar
notice_play_rule
notice_operate_priority
notice_add_time
服务终端在夜间通信闲时将广告文件分发至各个服务终端。
在一般情况下,公告的优先级高于广告,因此会先分发优先级别较高的公告信息。
由服务终端软件通过在STcpThread线程里建立Tcpserver实现监听监管平台发送数据,监管平台先将新广告通知发送至服务终端,服务终端根据解析通知内容,通过FTP进行广告信息的获取。
由于公告是文本信息播放简单,本文就不再赘述,下文将分别介绍广告视频文件的获取和播放。
(1)视频传输功能实现
广告文件的远程控制,符合智能化现代社会的要求。
FTP主要实现Internet上控制文件的双向传输。
与大多数Internet服务一样,FTP也是一个客户机/服务器系统。
FTP视频获取流程如4.20所示。
图4.20FTP视频获取流程图
服务终端向作为监管平台发出FTP请求,监管平台通过21号端口控制会话,然后服务终端通过端口20进行广告数据的获取,服务终端将需对接收到的视频进行MD5(Message-DigestAlgorithm5,消息摘要算法)验证,以保证数据接收的正确性和完整性。
(2)视频播放功能实现
QT提供了强大的外部程序调用类,可以方便简单的调用外部程序。
服务终端软件使用MPlayer作为视频播放软件,该软件可移植到嵌入式平台直接使用,有强大的编解码功能,支持绝大多数的视频格式,其稳定性能和播放质量较高。
QT中调用外部程序的方法分为三种:
LinuxC函数、QT中QProcess类中的excute函数和QT中QProcess类中的start函数。
前两种方式是阻塞调用,直到被调用程序结束运行前,都不会执行后边的代码,占用内存大,而第三种方式是非阻塞调用,支持多进程,所以本设计使用第三种方法。
MPlayer的移植比较简单,就不在赘述。
4.网络异常
断网时租赁站点提供“只还不借”服务,且不影响还车计时。
服务终端软件在断网时需要进行数据备份,将站点数据暂存在数据库中,等待网络正常时传输至监管平台,同时还将数据库内容以文本形式备份至SD卡,方便管理员进行数据管理。
4.6界面设计
用户界面在布局、美观性等方面进行的约束和要求是目前系统研发过程中非常重要的因素。
因为开发人员所设计的软件或系统完成后需要面向不同的群体,用户当中有很多对计算机并不精通,因此界面的设计要满足透明性、友好性、实用性以及美观性等原则。
4.6.1界面设计思想
服务终端屏幕相比普通的计算机屏幕尺寸要小,但是功能必须要求能够尽量完善。
在界面设计上,针对服务终端软件,主要有以下几个主要指标:
1.设计直观,采用标准化的布局方式;
2.导航条和按钮配合使用,用户可以方便快捷地找到需要的功能;
3.图片清晰、字体大小合适、画面颜色鲜明,能够突出主题;
4.键盘和触摸屏对应,配合使用,方便用户快速操作[40];
5.各窗口风格一致,体现软件的整体风格,并降低不必要的影响;
6.简洁明了,降低界面占用资源率。
4.6.2界面实现
服务终端软件GUI的实现采用QtCreator,QtCreator提供可视化的设计方式,简化图形界面设计。
QtCreator包括项目生成向导、高级的C++代码编辑器、浏览文件及类的工具,集成了QtDesigner、QtAssistant、QtLinguist、图形化的GDB调试和qmake构建工具等[41]。
同时还具有信号与槽(Signals&
Slots)图示调试器,使Qt类结构可一目了然。
图4.21GUI界面设计框架图
服务终端软件GUI界面设计如图4.21所示,分为以下几个模块界面:
租赁站点服务终端软件主界面、管理员界面、普通用户界面、维修员界面、调度员界面和其他界面。
4.7本章小结
本章主要介绍了服务终端软件的设计,首先对进行了开发环境的配置,然后详细设计和实现了服务终端软件的各功能模块,包括角色分配、数据库设计、通信模块设计、车辆管理模块、用户管理模块和站点管理模块,最后对GUI界面设计并实现。