论文部分内容阅读
摘要:该文介绍了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,
关键词: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,