GPS定位信息的接收
来源:互联网 发布:网络揭阳广播电视大学 编辑:程序博客网 时间:2024/05/16 15:21
通常GPS定位信息接收系统主要由GPS接收天线、变频器、信号通道、微处理器、存储器以及电源等部分组成。由于GPS定位信息内容较少,因此多用RS-232串口将定位信息(NEMA0183语句)从GPS接收机传送到计算机中进行信息提取处理。从串口读取数据有多种方法,在此直接使用 Win32 API函数对其进行编程处理。在Windows下不允许直接对硬件端口进行控制操作,所有的端口均被视为"文件",因此在对串口进行侦听之前需要通过打开文件来打开串口,并对其进行相关参数配置:
m_hCom=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING, FILE_FLAG_OVERLAPPED,NULL); file://以异步方式打开COM1口
SetCommMask (m_hCom, EV_RXCHAR ) ; file://添加或修改Windows所报告的事件列表
SetupComm (m_hCom,READBUFLEN/*读缓冲*/,WRITEBUFLEN/*写缓冲*/); // 初始化通讯设备参数
// 清除缓冲信息
PurgeComm (m_hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR) ;
// 对异步I/O进行设置
CommTimeOuts.ReadIntervalTimeout = MAXDWORD ; file://接收两连续字节的最大时间间隔
CommTimeOuts.ReadTotalTimeoutMultiplier =0; file://接收每字节的平均允许时间
CommTimeOuts.ReadTotalTimeoutConstant = 0 ; file://接收时间常数
SetCommTimeouts (m_hCom , &CommTimeOuts) ;
file://获取并设置串口
GetCommState ( m_hCom, &dcb) ;
dcb.BaudRate = CBR_4800;
dcb.ByteSize = 8;
dcb.Parity = ODDPARITY;
dcb.StopBits = ONESTOPBIT ;
SetCommState( m_hCom, &dcb);
在成功打开并设置通讯口后,可采取轮询串口和事件触发两种方式对数据进行接收处理,本文在此采取效率比较高的事件触发方式进行接收处理,通过等待EV_RXCHAR事件的发生来启动ReadFile函数完成对GPS定位信息的接收:
while(true){
WaitCommEvent (m_hCom,&dwEvtMask,NULL);
if (dwEvtMask&EV_RXCHAR == EV_RXCHAR)
if(ComStat.cbInQue>0)
ReadFile(m_hCom,m_readbuf,ComStat.cbInQue,&nLength,&olRead);
}
- GPS定位信息的接收
- GPS定位信息的接收
- GPS定位信息的接收
- 基于uClinux的GPSOne/GPS双定位信息接收
- 对于接收到的GPS信息详解
- 使用GPS获取定位信息
- Unity3d,获取GPS定位信息
- JS gps定位城市信息
- ros发布gps定位信息
- iphone获取GPS的数据信息并定位
- 有关基站定位获取GPS以及基站信息的程序
- GPS的定位原理
- Android的GPS定位
- Android的gps定位
- Android的GPS定位
- 使用j2me获取gps定位信息
- android网络-GPS获取定位信息
- android GPS 定位,取位置信息
- Benq M22模块控制与数据传输程序(待续)
- (转)MapX Mobile开发总结
- GPS中提取定位数据
- 使用WaitForMultipleObjects实现线程间通信
- NEXTVAL 和 CURRVAL 运算符和oracle的sequence设置说明
- GPS定位信息的接收
- (转)GPS定位数据压缩算法的设计与实现
- php 利用 curl 连接各种服务器
- wince串口通信(续2)
- WebWork深入浅出
- javascript获取FCKeditor内容
- wince串口通信(续)
- (转)Windows CE下的串口通讯实例
- 关于微软验证盗版系统出现问题临时解决办法