NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association )为海用电子设备制定的标准格式。目前业已成了GPS导航设备统一的RTCM(Radio Technical Commission for Maritime services)标准协议。
以下面的数据为例:

$GPGGA,022206.00,3905.87672799,N,11704.89762467,E,4,32,0.5,39.2934,M,-7.5829,M,02,0000*41
$GNGST,022207.00,0.00,0.02,0.01,161.8102,0.02,0.01,0.05*74
$GPGSV,2,1,07,10,30,308,43,15,50,054,50,20,59,312,47,21,49,229,47*7F
$GPGSV,2,2,07,24,71,118,51,27,02,300,37,32,08,258,41*41
$GLGSV,2,1,07,66,46,058,48,82,29,260,44,76,43,059,47,77,38,150,43*66
$GLGSV,2,2,07,81,09,213,40,67,48,329,48,68,06,291,39*57
$GAGSV,2,1,06,04,69,007,48,09,33,287,43,11,35,240,41,12,10,190,37*65
$GAGSV,2,2,06,19,25,078,32,01,38,114,43*66
$BDGSV,3,1,10,01,37,146,43,02,34,226,38,03,43,190,42,06,72,343,47*6C
$BDGSV,3,2,10,08,26,191,41,09,57,287,44,13,39,210,42,16,70,329,49*66
$BDGSV,3,3,10,04,26,124,38,05,16,249,36*6D

每一行末尾的“星号”后面都有两位校验,是本行字符串中将“美元符号”和“星号”之间的每一个字符从左至右依次进行异或等于运算而得到的。(试了好几次,特殊符号不能正常显示,以后再来研究。)
下面以计算一条GPGGA的校验和为例,放出C语言计算代码:

#include <stdio.h>int main()
{char str[] = "$GPGGA,022206.00,3905.87672799,N,11704.89762467,E,4,32,0.5,39.2934,M,-7.5829,M,02,0000*41";int i = 0;int result = str[1];for(i = 2; str[i] != '*'; i++){result ^= str[i];}printf("result=%x\n", result);return 0;
}

计算结果:

result=41

计算结果与GPGGA中的校验和一致。

GNSS_NMEA 0183协议的校验和计算方法_C/C++相关推荐

  1. java实现ip首部校验和算法,理解传输层中UDP协议首部校验和以及校验和计算方法的Java实现...

    UDP,全称User Datagram Protocol,用户数据报协议,是TCP/IP四层参考模型中传输层的一种面向报文的.无连接的.不能保证可靠的.无拥塞控制的协议.UDP协议因为传输效率高,常用 ...

  2. GPS NEMA 0183协议

    GPS NEMA 0183协议 一. NMEA0183标准语句(GPS常用语句) $GPGGA 例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24 ...

  3. minmea——GPS NMEA 0183 协议解析库

    今天给大家推荐一个纯C语言编写,轻量级的GPS NMEA 0183协议解析库:minmea github地址:https://github.com/kosma/minmea 一.特点 1.C99标准编 ...

  4. GPS 0183协议GGA、GLL、GSA、GSV、RMC、VTG、ZDA、DTM作者:hiphopor

    原文地址:GPS 0183协议GGA.GLL.GSA.GSV.RMC.VTG.ZDA.DTM作者:hiphopor 一. NMEA0183标准语句(GPS常用语句) $GPGGA 例:$GPGGA,0 ...

  5. EC20 4G 模块里GPS 0183协议里有GGA、GLL、GSA、GSV、RMC、VTG,

    GPS 0183协议里GGA.GLL.GSA.GSV.RMC.VTG $GPGGA 例: G P G G A , 092204.999 , 4250.5589 , S , 14718.5084 , E ...

  6. 嵌入式GPS模块编程 NMEA协议 0183协议

    嵌入式GPS模块编程 NMEA协议 0183协议 学前小知识: NMEA协议是为了在不同的GPS导航设备中建立统一的RTCM(海事无线电技术委员会)标准,它最初是由美国国家海洋电子协会(NMEA-Th ...

  7. IP头中的校验和计算方法介绍

    校验和的作用   按照协议的规定,报文到达每一层,首先验证校验和是否正确,丢弃掉不正确的报文,再才会进行后续操作.  那么校验和是怎么计算的呢?  校验和的计算方法(以 IP 首部中的校验和为例) 方 ...

  8. matlab ascii 异或,GPS数据包的ASCII异或校验和计算方法(VC++)

    对NMEA协议的每一条数据进行验证,GPS数据从$开始到*之间的所有ASCII码的异或校验和,代码如下: int CalcCheck(BYTE* Bytes,int len) { int i, res ...

  9. GPS 0183协议GGA、GLL、GSA、GSV、RMC、VTG、ZDA、DTM

    NMEA协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronic ...

  10. HDLC协议的快速计算方法

    简介 利用HDLC协议对E1数据进行处理.可以实现对传输链路的有效监控,从而对链路中的流量和差错进行控制,实现数据链路稳定,可靠的传输.虽然会有一定的开销.但还是值得的.以下就是相应的处理模块和流程图 ...

最新文章

  1. 选择 Reac​​tJS 的五大理由
  2. IOS开发之表视图(UITableView)
  3. jQuery基础--样式篇(3)
  4. 几个问题,比较急,知道的大侠,帮帮忙
  5. 浮点数规格化-不同基数的规格化
  6. 将Maven创建的web Servlet2.3工程改为Servlet3.0
  7. nginx内核优化及配置
  8. Spring Framework中的面向方面编程(AOP),第二部分
  9. 范华:资产配置是非常客户化的过程
  10. matlab编程椅子放平问题,数学模型程序代码Matlab-姜启源-第一章-建立数学模型.docx...
  11. 503组史诗电影预告片音效合集动作破坏冲击紧张大气音效库 Hybrid Trailer
  12. Codeforces1389 E. Calendar Ambiguity(数论)
  13. axure强制签入签出
  14. 算法85----手机九宫格
  15. 03 Jme3和Nifty1.4.2中文显示
  16. 【android】调用系统app打开word文档遇到的问题
  17. 疫情问题网络舆情监测方法
  18. dws公共汇总粒度事实层设计
  19. 【人脸识别】face_recognition 库的使用
  20. Android来电、去电监听

热门文章

  1. 1.vue前端项目实战-登录功能
  2. 三菱伺服驱动器说明书_张家港市HG-KN13J-S100三菱伺服控制器
  3. shp文件转json
  4. Python UI自动化报错汇总2
  5. GBase数据库产品介绍
  6. 【技巧帖】关于Mac如何内录电脑内部声音
  7. 【TLSR825x】windows下开发环境搭建,固件烧录方法
  8. 景观设计建模中最常用的SU插件有哪些?
  9. 想批量转换音频?来试试这几个会议录音转文字软件
  10. 生存分析原理简明教程 单因素生存分析 Kaplan-Meier、LogRank 只能针对单一的变量进行 多因素cox回归分析