基于GISGPSGSM小型车辆监控系统的通信网关设计 .doc

基于GISGPSGSM小型车辆监控系统的通信网关设计 .doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于GISGPSGSM小型车辆监控系统的通信网关设计

基于GIS/GPS/GSM小型车辆监控系统的通信网关设计 江吉智 诸昌钤 (西南交通大学计算机与通信工程学院) 摘要:本文主要介绍了基于GIS/GPS/GSM的小型车辆监控系统的原理和涉及的相关技术,并讨论了本系统的通信网关的技术实现。 关键词:GPS GIS GSM 车辆监控 短消息 1 前言 机动车辆的出现,给人们的生活带来了很多方便,同时也带来了很多棘手的问题,例如车辆分散不易管理,车辆盗窃,车辆遇抢等问题。如何使车辆的管理科学化和提高车辆的运营安全,已经成为一个亟待解决的重大课题。 2 基于GIS/GPS/GSM小型车辆监控系统原理和组成 2.1 基于GIS/GPS/GSM小型车辆监控系统的工作原理 基于GIS/GPS/GSM小型车辆监控系统使用GPS接收机进行自动定位,车载单元的GPS接收接收卫星(共24颗,分布在6个不同的地球轨道上)每秒钟发来的定位数据,并根据从三颗以上不同卫星发来的数据计算出自身所处地理坐标。坐标数据通过GSM,利用短信的形式将车辆的位置、状态、报警器和传感器输入信息发送至GSM,GSM将接收到的车辆定位信息传送至监控中心通信,并在地图上显示位置,控制中心就可清楚和直观掌握车辆的动态位置在遇到紧急情况时,可通过车载设备,采用自动或手动报警,将车辆所在位置、报警类型等数据发送至控制中心,经处理后,及时将事发车辆的精确位置显示在电子地图上 图1: 系统结构图 3 基于GIS/GPS/GSM小型车辆监控系统的通信网关设计 3.1 通信网关在监控系统中的作用 通信网关是基于GIS/GPS/GSM小型车辆监控系统的核心部分,负责数据的转发和数据格式转换。车载终端和监控中心之间。GIS/GPS/GSM小型车辆监控系统的极为重要的一个组成部分,通信网关程序的性能如何将对整个系统的能否很好的满足用户的需求产生决定性的影响,所以通信网关的程序设计工作比较复杂。由于篇幅的关系,在这里只给出了通信网关程序的设计思路和步骤。 结合前面提及的GSM的AT指令,利用WIN32的对串口进行操作的API函数可以很好的完成通信网关程序的设计。从MFC的WinThread类中派生一个CcomThread类,负责串口数据的接收和发送。 (1)CcomThread类OpenConnection(LPTSTR pszDevName)负责串口的打开、配置 BOOL CComThread::OpenConnection(LPTSTR pszDevName) { ComDev=CreateFile(pszDevName, GENERIC_READ|GENERIC_WRITE, //允许读写 0, //此项为0 NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL); if(ComDev==(HANDLE)-1) return FALSE; dcb.DCBlength =sizeof(DCB); GetCommState(ComDev,dcb); //得到串口初始设置 dcb.BaudRate =CBR_9600; //波特率 dcb.ByteSize =8; //字节大小 dcb.Parity =NOPARITY; //无奇偶效验 dcb.StopBits =ONESTOPBIT; SetCommState(ComDev,dcb); SetupComm(ComDev,1024,1024); COMMTIMEOUTS CommTimeOuts; //设置超时值 CommTimeOuts.ReadIntervalTimeout=0; CommTimeOuts.ReadTotalTimeoutMultiplier=0; CommTimeOuts.ReadTotalTimeoutConstant=0; CommTimeOuts.WriteTotalTimeoutMultiplier=0; CommTimeOuts.WriteTotalTimeoutConstant=1000; SetCommTimeouts(ComDev,CommTimeOuts); PurgeComm(ComDev,PURGE_TXCLEAR);//清除发送缓冲区 PurgeComm(ComDev,PURGE_RXCLEAR);//清除接收缓冲区 return TRUE; } (2)从串口接收

文档评论(0)

wuyuetian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档