- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GPS外场数据与电脑的数据通讯
摘要:该文介绍了GPS的数据采集格式和在Windows环境下,用VC++6.0开发基于Windows消息机制的多线程的GPS应用程序,并简要给出了说明实例。
关键词:GPS;数据格式;串行通信;多线程
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)35-2143-02
GPS的中文简要含义是“全球定位系统”,是英文Navigation Satellite Timing andRanging/Global Postioning System的缩写词NAVSTAR/GPS的简称,是在美国联合计划局领导下诞生的方案,成为继阿波罗登月计划之后的第三项庞大空间计划。它从根本上解决了人类在地球上的导航和定位问题。
对于用户来说,最重要的关键设备就是用户接收机(GPS接收机)。很多情况下,用户都是用计算机和GPS接收机通信,将GPS信息导入计算机然后再处理。而VC由于其在和GPS接收机的通信及后面的数据处理应用方面的强大威力,成为许多用户开发GPS应用程序的首选开发语言。该文将介绍利用VC编写计算机与GPS接收机的通信和Windows消息的传递
及多线程的GPS应用程序。
1 GPS用户端的数据录取及数据输出格式
GPS数据传送分为同步串行传送和异步串行传送。在计算机与GPS通讯进行数据传送时,都采用异步串行传送方式。GPS作为数据终端设备(DTE)与计算机(DCE)之间利用D型RS 232C电缆接口进行数据交换。从数据输出形式来看,GPS的输出分为两类:二进制码与十进制ASCII码。
二进制码是用0和1表示的编码。此种编码虽然不直观,但运算方便,在计算机中应用非常普遍。目前通用的字长为8位,可用两位16进制数表示。在编码时,一个二进制数由小数点向左,每4位一分,不足4位前面补0,组成整数部分。由小数点向右,每4位一分,不足4位前面补0,组成小数部分。输出/输入二进制数据流的格式是低字节/高字节排列,每一个字节的输出次序是从最低有效位到最高有效位。GPS的原始观测量、星历以及其他数据都采用了二进制编码。为了满足异步串行通讯的要求,每一组数据须包含三个部分:字头块、数据块和结束符。字头块包括电文的标志和语句名。数据块包括电文中的全部数据。结束符包括校验和与回车换行。各种GPS接收机的数据格式在总体结构上相同,但具体采用的符号、内容、字长等各不相同。因此,在编写软件之前,需知道此数据的具体结构。另外,在编写软件时,为了确保数据的传送和采集质量,必须进行校验和检验。
十进制码比较直观,易于识别和应用。GPS的统一标准格式NMEA 0183输出就采用ASCII码。其格式定义如下:
比特率:4 800 b/s;数据位:8 b;奇偶校验:无;开始位:1 b;停止位:1 b
2 基本串行通讯协议程序
2.1 初始化程序段
HANDLEm_ hComm;
m_ hComm = CreateFile (m_ sFileName, GENERIC_
READ| GENERIC_ WRITE,0,NULL,OPEN _EXISTING,
FILE_ ATTRIBUTE_ NORMAL,NULL);
(m sFileName一般取“com1”或“com2”,其他参数请参考MSDN,由于篇幅关系,这里不作详细介绍。)
BOOL SetupComm (HANDLE hFile, DWORD dwIn_Queue,DWORD dwOutQueue);
HFile取上面创建的串行通信句柄,dwInQueue,dwOutQueue分别是输入缓存和输出缓存的大小,一般取1000即可。
2.2 设置串行通讯环境
DCB dcb; SetCommState(m_ hComm,dcb);
DCB是串行通信设备的控制字,对GPS来说,要设置比特率、数据位、奇偶校验、开始位、停止位、还要设置RTS、DTR等串行通信协议。
2.3 设置串行通讯时限
COMMTIMEOUTS commtimeouts; SetCommTimeouts(m_ hComm,commtimeouts);
COMMTIMEOUTS是一个结构,读和写的间隔字符的时间和总共的时间,单位是毫秒。通过上面的设置,就可以进行串口的读和写。
2.4 读、写串口程序
读语句:DWORD iLength; void* pBuffer; DWORD pReadFact; ReadFile (m_ hComm, pBuffer, iLength, pReadFact,NULL
您可能关注的文档
最近下载
- 消防工程质量监理质量评估报告.docx VIP
- JTT 1516-2024 公路工程脚手架与支架施工安全技术规程.docx VIP
- 咨询服务流程与方法.docx VIP
- 乳制品的生产企业应急预案终稿.pdf
- 北师大版七年级数学下学期期中易错精选50题(解析版)2022-2023学年七年级数学下册重难点专题提优训练(北师大版).docx VIP
- 2023-2024年暨南大学352口腔综合考研真题.pdf VIP
- 110千伏及以下配电网规划技术指导原则(2024年).doc VIP
- 药品常用知识(共18张PPT).pptx VIP
- 医疗质量管理课件.pptx VIP
- 管理学原理配套教材电子课件(完整版).pptx
文档评论(0)