c语言 nmealib-0.5.3 学习 简单代码 ,供参考
void showInfo1(char *buf)
{
char gps_str[];// ="$GPGGA,031105.000,4003.9196,N,11620.5765,E,1,05,3.4,109.0,M,-6.4,M,,0000*4A\r\n";
sprintf(gps_str,"%s",buf);
nmeaINFO info; // nmea协议解析结果结构体
nmeaPARSER parser; // nmea协议解析载体
nmeaPOS dpos; nmea_zero_INFO(&info); // 填入默认的解析结果
nmea_parser_init(&parser); // 为解析载体分配内存空间 // 调用函数完成GPS信息解析,最终结果保留于info数组中
if( (nmea_parse(&parser, gps_str, (int)strlen(gps_str), &info)) > )
{
nmea_info2pos(&info, &dpos);
printf("longitude %.5f\r\n",info.lon);
printf("latitude %.5f\r\n",info.lat);
printf("speed %.2f\r\n",info.speed);
printf("\r\n");
printf("longitude %10.8f\r\n",nmea_radian2degree(info.lon));
printf("latitude %10.8f\r\n",nmea_radian2degree(info.lat));
printf("longitude %10.8f\r\n",nmea_radian2degree(dpos.lon));
printf("latitude %10.8f\r\n",nmea_radian2degree(dpos.lat));
} nmea_parser_destroy(&parser); // 释放解析载体的内存空间
} void showInfo_GPGGA(char *buf)
{
char gps_str[];// ="$GPGGA,031105.000,4003.9196,N,11620.5765,E,1,05,3.4,109.0,M,-6.4,M,,0000*4A\r\n"; sprintf(gps_str,"%s",buf);
nmeaINFO info; // nmea协议解析结果结构体
nmeaGPGGA pack;
nmeaPOS dpos; nmea_zero_INFO(&info); // 填入默认的解析结果
nmea_zero_GPGGA(&pack);
// 调用函数完成GPS信息解析,最终结果保留于info数组中
if( (nmea_parse_GPGGA(gps_str, (int)strlen(gps_str), &pack)) > )
{
nmea_GPGGA2info(&pack,&info);
nmea_info2pos(&info, &dpos);
printf("GPGGA longitude %10.8f\r\n",nmea_radian2degree(dpos.lon));
printf("GPGGA latitude %10.8f\r\n",nmea_radian2degree(dpos.lat));
printf("GPGGA height_sea %10.8f\r\n",pack.elv);
printf("GPGGA height_ground %10.8f\r\n",pack.diff);
printf("GPGGA GPS_Num %2d\r\n",pack.satinuse);
}
} void showInfo_GPRMC(char *buf)
{
char gps_str[];// ="$GPGGA,031105.000,4003.9196,N,11620.5765,E,1,05,3.4,109.0,M,-6.4,M,,0000*4A\r\n";
sprintf(gps_str,"%s",buf);
nmeaINFO info; // nmea协议解析结果结构体
nmeaGPRMC pack;
nmeaPOS dpos;
nmea_zero_INFO(&info); // 填入默认的解析结果
nmea_zero_GPRMC(&pack);
// 调用函数完成GPS信息解析,最终结果保留于info数组中
if( (nmea_parse_GPRMC(gps_str, (int)strlen(gps_str), &pack)) > )
{
nmea_GPRMC2info(&pack,&info);
nmea_info2pos(&info, &dpos);
//
printf("GPRMC status %c\r\n", pack.status);
printf("DATE : %4d-%02d-%02d \n",+pack.utc.year,pack.utc.mon+,pack.utc.day);
printf("TIME : %02d:%02d:%02d \n",pack.utc.hour+,pack.utc.min,pack.utc.sec);
printf("GPRMC longitude %10.8f\r\n %c",nmea_radian2degree(dpos.lon),pack.ns);
printf("GPRMC latitude %10.8f\r\n %c",nmea_radian2degree(dpos.lat),pack.ew);
printf("Speed : %10.4f Km/h\n",pack.speed);
printf("direction : %10.4f \n",pack.direction);
}
}
c语言 nmealib-0.5.3 学习 简单代码 ,供参考的更多相关文章
- LR C语言语句复习,几个简单代码
嵌套循环 Action() { int i,j; ;i<=;i++) { ) beark; else lr_output_message("i=%d",i); ;j<= ...
- 《从0到1学习Flink》—— Mac 上搭建 Flink 1.6.0 环境并构建运行简单程序入门
准备工作 1.安装查看 Java 的版本号,推荐使用 Java 8. 安装 Flink 2.在 Mac OS X 上安装 Flink 是非常方便的.推荐通过 homebrew 来安装. brew in ...
- 学习笔记:oracle学习三:SQL语言基础之检索数据:简单查询、筛选查询
目录 1. 检索数据 1.1 简单查询 1.1.1 检索所有列 1.1.2 检索指定的列 1.1.3 查询日期列 1.1.4 带有表达式的select语句 1.1.5 为列指定别名 1.1.6 显示不 ...
- Redis:安装、配置、操作和简单代码实例(C语言Client端)
Redis:安装.配置.操作和简单代码实例(C语言Client端) - hj19870806的专栏 - 博客频道 - CSDN.NET Redis:安装.配置.操作和简单代码实例(C语言Client端 ...
- 20165312 C语言基础调查和JAVA学习展望
C语言基础调查和JAVA学习展望 一.有关学习技能的经历 掌握一项技能,我认为最重要的是练习和认真程度. 我在上幼儿园的时候学过电子琴,上台表演过多次,但是三四年之后就半途而废了,后来小学毕业之后对钢 ...
- 【数据库】4.0 MySQL入门学习(四)——linux系统环境下MySQL安装
1.0 我的操作系统是CentOS Linux release 7.6.1810 (Core) 系统详细信息如下: Linux version 3.10.0-957.1.3.el7.x86_64 ( ...
- Flink 从0到1学习—— 分享四本 Flink 国外的书和二十多篇 Paper 论文
前言 之前也分享了不少自己的文章,但是对于 Flink 来说,还是有不少新入门的朋友,这里给大家分享点 Flink 相关的资料(国外数据 pdf 和流处理相关的 Paper),期望可以帮你更好的理解 ...
- 《C# 6.0 本质论》 - 学习笔记
<C# 6.0 本质论> ========== ========== ==========[作者] (美) Mark Michaelis (美) Eric Lippert[译者] (中) ...
- Go语言核心36讲(Go语言基础知识一)--学习笔记
01 | 工作区和GOPATH 从 Go 1.5 版本的自举(即用 Go 语言编写程序来实现 Go 语言自身),到 Go 1.7 版本的极速 GC(也称垃圾回收器),再到 2018 年 2 月发布的 ...
随机推荐
- 警告信息-Comparing unrelated types
解决方案 使用equals 来比较不相关的类和接口
- [Mac][Python][Jupyter Notebook]安装配置和使用
Jupyter 项目(以前称为 IPython 项目),提供了一套使用功能强大的交互式 shell 进行科学计算的工具,实现了将代码执行与创建实时计算文档相结合. 这些 Notebook 文件可以包含 ...
- SVN将项目代码加入svn版本控制
将已有项目代码加入svn版本控制 - TortoiseSVN入门篇Windows下SVN实用教程(以TortoiseSVN作为客户端(client)) 翻译: Bravo Young Next: 版本 ...
- Week08_day01 (Hive实现WordCount计数)
Hive实现WordCount计数 在没学习Hive之前,我们学习MapReduce去实现WordCount计数的时候,就要去编写80多行的java代码,现在我们学习了Hive,我们只需要一行Sql语 ...
- linux实操_shell预定义变量
当前进程号: 运行后 后台最后一个进程号: 运行后
- SpringBoot启动过程原理(转)
1.1 Springboot启动: @SpringBootApplication public class ServerApplication { public static void main(St ...
- HDU 6154 - CaoHaha's staff | 2017 中国大学生程序设计竞赛 - 网络选拔赛
/* HDU 6154 - CaoHaha's staff [ 构造,贪心 ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 题意: 整点图,每条线只能连每个方格的边或者对角线 问面积大于n的 ...
- [JSOI2018]潜入行动 (树形背包)
题目链接 题意: 外星人的母舰可以看成是一棵 n 个节点. n−1 条边的无向树,树上的节点用 1,2,⋯,n 编号.JYY 的特工已经装备了隐形模块,可以在外星人母舰中不受限制地活动,可以神不知鬼不 ...
- 【题解】[USACO2007 OCT]Obstacle Course-C++
题目Description考虑一个 N x N (1 <= N <= 100)的有1个个方格组成的正方形牧场.有些方格是奶牛们不能踏上的,它们被标记为了’x’.例如下图: . . B x ...
- Oracle 后台进程(四)CKPT进程
一.CKPT简介 检查点是一个数据库事件,它把修改数据从高速缓存写入磁盘,并更新控制文件和数据文件.检查点分为三类:1)局部检查点:单个实例执行数据库所有数据文件的一个检查点操作,属于此实例的全部脏缓 ...