电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

C编写gps定位信息的接收

C编写gps定位信息的接收_第1页
1/9
C编写gps定位信息的接收_第2页
2/9
C编写gps定位信息的接收_第3页
3/9
定位信息的接收 通常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导航定位信息通过串口传送到计算机中。前面的代码只负责从串口接收数据并将其放置于缓存,在没有进一步处理之前缓存中是一长串字节流,这些信息在没有经过分类提取之前是无法加以利用的。因此,必须通过程序将各个字段的信息从缓存字节流中...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

C编写gps定位信息的接收

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部