- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GPS车载系统课程设计
应用背景介绍和功能描述
1.1应用背景介绍
GPS(global positioning system全球定位系统)车载终端是安装在出租车上的一款集导航,调度,娱乐,远程刷卡,电话等为一体的智能移动终端设备。有了GPS车载终端(客户端)和调度中心后台(服务端),可以最优化驾驶员和乘客的出车和求车的资源配置。
GPS车载系统提供的功能有:
1、终端可以通过接受GPS卫星数据显示年、月、日、星期、方向,以及显示驾驶员信息和车辆参数。
2、驾驶员登录或签退功能:终端必须在登录的情况下,才能实现以下的功能。当驾驶员上班时登录,下班或交接班时签退。
3、调度功能:以热线客服电话实现电话临时叫车和预约用车业务,调度中心在乘客用车所在地点周边0.5-1公里范围内自动搜寻空驶车辆,正常情况在1分钟之内可以调派成功。
4、导航功能:采用最先进的凯立德或高德电子地图导航软件,为驾驶员提供语音导航服务。
5、查询功能:车辆定位查询,调度中心通过后台软件可以查询当前路面上的出租车的使用情况,可以确定出租车的位置以及跟踪运行轨迹,查看空车还是重车状态,查看熄火还是发动状态。
6、通话功能:车载终端可实现调度中心与驾驶员以及和乘客的业务通话、安全提示、查询问答。
7、驾驶员可以通过终端的无线模块下班时上传当班数据完成交账刷卡功能。
1.2功能描述
本项目为模拟GPS车载系统调度应用,模拟车载终端和调度中心分别为客户端和服务器端。注意:本项目有些应用无法模拟的地方均作了简化。另外,文中提到的通信格式(协议)通俗讲是一种封装,就像收发信件需要信封一样。每条协议都是有加header头的,一是考虑安全,二是考虑你这条协议是干什么的,这样socket通信中的网络数据互不干扰,各自处理。客户端和服务器端模型均采用linux + select IO复用实现。
该项目分为客户端、服务端。客户端系统嵌入在出租车内,服务端系统运行在中心服务器上。
实现客户端:
1、出租车客户端软件开发,基本功能如下:
A、客户端与中心服务端建立TCP网络连接。
B、客户端登陆服务端,签到。
C、客户端上传驾驶员信息给服务端。
D、客户端定期发送自己位置信息给服务端。
E、接受、上传业务信息。中心通知出租车附近有人叫车。该出租车接受或者拒绝该业务。
F、驾驶员退出。
服务端:
A、监听TCP连接。
B、对客户端签到信息进行认证。
C、接受客户端上传的驾驶员信息。
D、接受客户的预约业务信息,并处理。
E、接受出租车信息注册、并保存到文件长期记录。
F、出租车登陆后维护当前在线连接。
G、接受出租车的位置信息,并保存。
2.通讯格式和消息类型
2.1通讯格式
FLAG 0 1 长度[注 1] 2 3 消息体(body) 4 … n
注1:长度= 消息内容长度 低位在前 (小端字节)
2.2车载终端发起消息类型
FLAG 消息类型 附 1000 参数读取 请求参数读取,数据保存在服务器本地 1001 参数设置 受限操作,必须驾驶员登录后才能操作 1002 驾驶员注册 简单模拟,检查数据库信息,建立链表遍历成功后,写数据到数据库 1003 驾驶员登录签到 同注册,遍历比较,登陆成功后返回IP和port 1004 驾驶员登出签退 驾驶员状态为登出 1005 请求驾驶员相片url信息 受限操作,必须驾驶员登录后才能操作 1006 url请求下载驾驶员相片 1005请求成功后自动发送,不需手动 1007 心跳包 客户端每5秒发一次心跳包,服务器子线程每5秒扫描一次在线用户链表,超过60次(5分钟),可判断客户端已死亡,并从链表中删除节点,服务器主线程收到客户端心跳包后清零此客户端的timers
客户端本地处理1秒的定位信息:本意为客户端每秒检查GPS串口和车辆参数,现在简单模拟为客户端线程每秒读取文本数据,接着解析GPS数据显示年、月、日、星期、方位,速度等数据。简单模拟不处理车辆参数。
另外客户端有了定位和车辆参数信息,每隔一段时间会向调度中心发送心跳包汇报情况,比如空车重车速度报警等情况,本项目简单模拟处理心跳包:只发送头,不发送消息体。
2.3调度中心发起的消息类型
FLAG 类型 附 1008 业务信息处理 服务器端60秒定时自动发送调度信息,客户端接受数据解析后显示业务ID,要车时间,信息内容)
3.消息体定义
3.1参数读取
车载终端发送(一次读取3个)
参数ID 0 参数ID 1 参数ID[注1] 2 调度中心返回(一次返回3个参数内容)[注2]
参数ID 0 参数长度(n) 1 参数内容 2~n 参数
文档评论(0)