关于nmealib库的学习

2023-10-27

调用流程

前部分的调用流程如下:

nmea_parse()
->nmea_parser_push(parser, buff, buff_sz);
	->nparsed += nmea_parser_real_push(parser, buff, nparse);
		->sen_sz = nmea_find_tail( (const char *)parser->buffer + nparsed, (int)parser->buff_use - nparsed, &crc);
			->nmea_parse_GPGGA(
                    (const char *)parser->buffer + nparsed,
                    sen_sz, (nmeaGPGGA *)node->pack))【以GPGGA为示例】

调用分为两部分:

  • 循环的将读取到的NMEA格式报文数据拷贝到parser的buffer中,每一个循环拷贝nparse个数据, 见这个函数nmea_parser_real_push;
  • 找到buffer中拷贝过来报文中的一段标准行报文的tail尾部,并进行解析,详情见这个函数nmea_parse_GPGGA。

Tips

- 解析出的链表的管理
parser中有两个指针parser->top_node和parser->end_node,用于管理解析出的信息结构体node链表,其中top_node指向链表的头部,end_node指向链表的尾部。
- parser->buffer的管理
注意在调用的前半部分,每次循环都将拷贝报文数据到parser的buffer中,但buffer的大小不是无限的,一旦发现拷贝进入buffer的数据量超出了设定大小,将清除一次buffer,可以在nmea_parser_real_push函数中看到如下语句:

if(parser->buff_use + buff_sz >= parser->buff_size)
		nmea_parser_buff_clear(parser);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于nmealib库的学习 的相关文章

  • 国网学籍跨省转学页面不显示问题解决办法

    1 火狐浏览器登陆学籍网 跨省转学显示 未连接 有潜在的安全问题 Firefox 检测到潜在的安全威胁 并因 ksyw zxxs moe edu cn 要求安全连接而没有继续 2 点击高级 再点击查看证书 3 下载证书 4 IE浏览器登陆学
  • 2023年电气,电子与信息工程国际会议(ISEEIE 2023)

    2023年电气 电子与信息工程国际会议 ISEEIE 2023 重要信息 会议网址 www iseeie org 会议时间 2023年2月24 26日 召开地点 新加坡 截稿时间 2022年12月31日 录用通知 投稿后2周内 收录检索 E
  • 搭建portus管理docker registry私服

    本节课将介绍Docker Registry以及带UI管理的仓库管理软件Portus搭建过程和管理使用 Portus介绍 Portus by SUSE 是一个带UI管理的仓库管理软件 用于Docker Registry API V2 的开源和
  • idea中,引用不到项目中的类

    1 查看src是否为source root文件 只有该文件下的java文件才会被编译 2 IDEA中有缓存 应该是项目中的缓存 建立的索引报错了 导致不能正常引用现有的类 解决方案 清理缓存并重启
  • 使用excel估计GARCH模型参数——以GARCH(1,1)为例

    本文的知识点 使用excel求解GARCH模型的系数 以GARCH模型为例 主要采用的是极大似然估计法MLE 同时给出了R语言的输出结果作为对照验证 参考了
  • 华硕路由器(RT-AC86U)架设简易git服务器

    背景 我有多台设备 而且不同平台 在多台设备间倒腾代码 直接复制很不方便 于是有了搭一个简易家用级别的git服务器的想法 目的 解决内部不同平台间倒腾代码不方便的问题 家用级轻量解决方案 不需要高功耗服务器 软硬件准备 华硕RT AC86U
  • HDFS入门和应用开发:HDFS简介、发展历史、设计目标以及应用场景

    一 HDFS简介 HDFS Hadoop Distributed File System 是 Apache Hadoop 项目的一个子项目 它的设计初衷是为了能够支持高吞吐和超大文件读写操作 HDFS是一种能够在普通硬件上运行的分布式文件系
  • 刷脸支付不负众望站在了支付舞台的中央

    刷脸支付自宣布商用全面推广以来 便在线下不断释放积极信号 从最初的无人知晓到如今的无人不晓 刷脸支付跨越一个又一个的难关 打破一个又一个外界对它的质疑 承载着希望和荣耀 勇往直前 到了今天 刷脸支付不负众望 站在了支付舞台的中央 不断散发着
  • 微信小程序 SCROLL-VIEW的滚动条设置

    小程序的scroll view用的比较多了 列表页一般也没管它的滚动条 最近突然发现在android与ios中横向滑动的时候表现不一样 不一样在哪呢 ios上直接就不显示啊 也是没谁了 深入想了一下 这滚动条能不能换一颜色或者换个样式 有这

随机推荐