GPGGA协议解析简单版
### GPGGA协议解析知识点详解 #### 一、GPGGA协议简介 GPGGA(Global Positioning System Fix Data)是NMEA 0183协议中的一种标准数据格式,常用于GPS接收器中,用来传输GPS定位信息。它包含了时间、经纬度、定位质量、卫星数量、水平精度、海拔高度等重要信息。 #### 二、GPGGA数据格式 GPGGA的数据格式通常以“$GPGGA”开头,以“*XX”(校验和)结尾,其中每一项数据之间由逗号分隔。具体字段包括: 1. **$GPGGA**:消息ID。 2. **UTC时间**:格式为HHMMSS.sss(小时分钟秒.毫秒)。 3. **纬度**:格式为DDMM.MMMM(度分.小数分)。 4. **纬度方向**:N表示北纬,S表示南纬。 5. **经度**:格式为DDDMM.MMMM(度分.小数分)。 6. **经度方向**:E表示东经,W表示西经。 7. **定位质量**:0 = 无效定位,1 = GPS定位,2 = DGPS定位等。 8. **使用的卫星数量**:0到12,表示参与定位计算的卫星数量。 9. **水平精度**:单位为米,表示水平方向上的精度。 10. **海拔高度**:单位为米,正数表示高于海平面,负数表示低于海平面。 11. **海拔基准面**:单位为米,一般为“M”。 12. **差分校正值**:如果可用,则为最近的差分GPS校正值的时间(秒)。 13. **差分校正站ID**:如果可用,则为差分GPS参考站的ID。 14. **校验和**:由星号*后面跟着两个十六进制数字组成,表示前面所有字符的校验和。 #### 三、示例代码解析 在提供的代码片段中,作者使用C语言来解析GPGGA字符串。下面是对这段代码的逐行分析: 1. **初始化变量**: - 定义了一个包含GPGGA示例字符串的数组`a`。 - 定义了一个包含15个指针的数组`str`,用于存储解析后的各个字段。 - 初始化循环变量`i`、用于存储指针的`pold`和`pnew`以及字段长度`num`。 2. **查找GPGGA标志**: - 使用`strstr`函数在字符串`a`中查找“$GPGGA”,并将结果存储在`flag`中。 - 如果未找到“$GPGGA”,则输出错误信息。 3. **解析字段**: - 通过循环遍历GPGGA字符串中的各个字段。 - 使用`strstr`函数找到逗号分隔符,确定每个字段的起始位置和终止位置。 - 分配内存并使用`memcpy`函数复制相应的字符串段至`str`数组中。 - 在每个字段末尾添加空字符`'\0'`,以便后续处理。 4. **处理校验和**: - 寻找最后一个字段前的星号“*”,并提取校验和。 - 分配内存并复制校验和字符串。 5. **结果**: - 最终,每个字段都被存储在`str`数组中对应的指针所指向的空间内。 #### 四、注意事项 - **动态内存管理**:在代码中使用了`new`关键字来动态分配内存,但没有显示释放内存。在实际应用中,应当使用`delete[]`来释放这些内存,避免内存泄漏。 - **错误处理**:虽然代码中有简单的错误检查(例如,内存分配失败时释放已分配的内存),但在实际应用中还需要更全面的错误处理机制。 - **效率问题**:该方法使用了大量的字符串操作函数,对于大数据量的情况可能会导致效率低下。 #### 五、扩展知识 - **NMEA 0183协议**:GPGGA是NMEA 0183协议的一部分,了解整个协议有助于更好地理解GPGGA格式和其他GPS相关数据。 - **校验和计算**:理解如何计算GPGGA数据的校验和可以帮助验证接收到的数据的有效性。 - **其他GPS数据格式**:除了GPGGA之外,NMEA 0183协议还定义了许多其他数据格式,例如GPRMC(Recommended Minimum Specific GPS/Transit Data)、GPVTG(Track Made Good and Ground Speed)等。 通过对GPGGA协议及其解析方法的深入理解,可以更好地利用GPS数据进行位置追踪、导航等应用。
- 这样生活UP2014-12-22说实话,没看懂。。。有点凌乱
- shijie_nihao2021-05-06做数据校验了吧?
- 团子妈2013-07-25学校布置的任务,好不容易找到一个资料。很有用,学习了
- chenzuilengfeng2014-09-11很不错,找了很长时间
- 花花诗人2019-02-21不错啊 可以用
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- training_plan_db.sql
- 2c4f3adc7be59975e81fa0c1f24cb6ea.JPG
- python爬虫入门,分享给有需要的人,仅供参考
- 722bf4c3ee17fa231ad9efcb12407aa0.JPG
- 15da2b5d3ceeddc8af2f6a7eed26d7e0.JPG
- 7ae59002be36a13ad6de32c4e633a196.JPG
- spark中文文档,spark操作手册以及使用规范
- WPF-Halcon算法平台,类似于海康威視VisionMater.zip
- Fake Location,可用来王者荣誉修改战区及企业微信定位打卡等
- the fire level NULL