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 月发布的 ...
随机推荐
- web.py之cookie和session
官方给的session例子这里就不讲了.下面直接将怎么设置session,取session: session相关代码一定要放在web.py框架的Main.py里面. # Main.py # 设置ses ...
- Liunx-tail命令
1. 实时刷新tail -f /var/log/messages 2. 实时刷新最新500条log tail -500f /var/log/messages 3. tail -n 20 catali ...
- mongodb的基本操作之更新不存在的数据
查找y为100的数据 db.test_collection.find({y:100}) 发现没有,这时候将y为100的数据更新为y为999的数据 db.test_collection.update({ ...
- 类似于ORACLE decode 的用法
SQL Server 2008中的写法:select t.PROJECTNAME, t.BUILDCONTENTSCALE, CASE t.PROJECTLEVEL WHEN '0' TH ...
- EMF中复制对象属性
1.简单的场景就是复制一个EObject,可以用工具类中的方法EcoreUtil.copy(). 2.场景:自己的TO类继承了EMF创建出的类,需要复制父类中的所有属性. /** * 将父类所有的属性 ...
- 表达式* ptr ++和++ * ptr是否相同?
两种表达都不同.让我们看一个示例代码来理解两个表达式之间的区别. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h> int m ...
- c语言学习、工作相关必备的常用网站
1.https://zh.cppreference.com/,c.c++参考手册, 2.http://www.cplusplus.com/,在线查看c.c++函数的定义及用法 3.http://c-f ...
- [2019牛客多校第四场][G. Tree]
题目链接:https://ac.nowcoder.com/acm/contest/884/G 题目大意:给定一个树\(A\),再给出\(t\)次询问,问\(A\)中有多少连通子图与树\(B_i\)同构 ...
- java正则表达式——总结
在JDK 1.4中,Java增加了对正则表达式的支持. java与正则相关的工具主要在java.util.regex包中:此包中主要有两个类:Pattern.Matcher. Pattern 模式类 ...
- 浏览器顶部设置margin-top时存在的bug
浏览器bug<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8 ...