GPS在Linux下的使用(war driving的前置学习)
1.ls /dev/tty* 列出所有与 tty 相关的设备文件。这些设备文件通常对应终端设备

ttyUSB0是GPS端口
2.cat /dev/ttyUSB0 用于读取并显示连接到 /dev/ttyUSB0 串口设备发送的原始数据
这种是GPS定位不全的,要拿到更开阔的地方
这种是GPS定位全的

因为会持续输出,所以可以按CTRL^c进行停止
3.GPS语句说明
GPS 输出的语句标准符合 NMEA‐0183
V3.01 规范,输出的语句为$GPGGA, $GPGSA, $GPGSV, $GPRMC, $GPVTG,刷新率:
1Hz。
这是 5 秒钟通过串口发送的数据内容:
$GPGGA,081559.000,2607.3480,N,11917.4707,E,1,04,2.5,134.2,M,,,,0000*0F
$GPGSA,A,3,14,22,21,31,,,,,,,,,2.7,2.5,1.0*35
$GPGSV,2,1,08,18,68,148,,22,64,313,22,50,48,132,,12,44,076,*70
$GPGSV,2,2,08,14,36,316,34,31,24,242,30,21,17,194,29,15,13,088,*75
$GPRMC,081559.000,A,2607.3480,N,11917.4707,E,1.10,211.8,280212,,*35
$GPVTG,211.8,T,,M,1.10,N,2.0,K*58
$GPGGA,081600.000,2607.3480,N,11917.4711,E,1,04,2.5,134.1,M,,,,0000*04
$GPGSA,A,3,14,22,21,31,,,,,,,,,2.7,2.5,1.0*35
$GPGSV,2,1,08,18,68,148,,22,64,313,23,50,48,132,,12,44,076,*71
$GPGSV,2,2,08,14,36,316,34,31,24,242,30,21,17,194,29,15,13,088,*75
$GPRMC,081600.000,A,2607.3480,N,11917.4711,E,0.74,211.8,280212,,*3E
$GPVTG,211.8,T,,M,0.74,N,1.4,K*5C
$GPGGA,081601.000,2607.3480,N,11917.4714,E,1,04,2.5,134.1,M,,,,0000*00
$GPGSA,A,3,14,22,21,31,,,,,,,,,2.7,2.5,1.0*35
$GPGSV,2,1,08,18,68,148,,22,64,313,23,50,48,132,,12,44,076,*71
$GPGSV,2,2,08,14,36,316,34,31,24,242,31,21,17,194,29,15,13,088,*74
$GPRMC,081601.000,A,2607.3480,N,11917.4714,E,0.52,211.8,280212,,*3E
$GPVTG,211.8,T,,M,0.52,N,1.0,K*5C
$GPGGA,081602.000,2607.3478,N,11917.4718,E,1,04,2.5,134.0,M,,,,0000*09
$GPGSA,A,3,14,22,21,31,,,,,,,,,2.7,2.5,1.0*35
$GPGSV,2,1,08,18,68,148,,22,64,313,23,50,48,132,,12,44,076,*71
$GPGSV,2,2,08,14,36,316,34,31,24,242,31,21,17,194,29,15,13,088,*74
$GPRMC,081602.000,A,2607.3478,N,11917.4718,E,0.81,211.8,280212,,*38
$GPVTG,211.8,T,,M,0.81,N,1.5,K*57
$GPGGA,081603.000,2607.3476,N,11917.4728,E,1,04,2.5,133.9,M,,,,0000*0B
$GPGSA,A,3,14,22,21,31,,,,,,,,,2.7,2.5,1.0*35
$GPGSV,2,1,08,18,68,148,,22,64,313,23,50,48,132,,12,44,076,*71
$GPGSV,2,2,08,14,36,316,34,31,24,242,31,21,17,194,29,15,13,088,*74
$GPRMC,081603.000,A,2607.3476,N,11917.4728,E,1.15,211.8,280212,,*38
$GPVTG,211.8,T,,M,1.15,N,2.1,K*5C
以下是 NMEA‐0183 语句详解
1.Global Positioning System Fix Data(GGA)GPS 定位信息
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>
<1> UTC 时间,hhmmss(时分秒)格式
<2> 纬度 ddmm.mmmm(度分)格式(前面的 0 也将被传输)
<3> 纬度半球 N(北半球)或 S(南半球)
<4> 经度 dddmm.mmmm(度分)格式(前面的 0 也将被传输)
<5> 经度半球 E(东经)或 W(西经)
<6> GPS 状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算
<7> 正在使用解算位置的卫星数量(00~12)(前面的 0 也将被传输)<8> HDOP 水平精度因子(0.5~99.9)
<9> 海拔高度(‐9999.9~99999.9)
<10> 地球椭球面相对大地水准面的高度
<11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为
空)
<12> 差分站 ID 号 0000~1023(前面的 0 也将被传输,如果不是差分定位将为空)
2.GPS DOP and Active Satellites(GSA)当前卫星信息
$GPGSA,<1>,<2>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<4>,<5>,<6>*hh<CR><LF>
<1> 模式,M=手动,A=自动
<2> 定位类型,1=没有定位,2=2D 定位,3=3D 定位
<3> PRN 码(伪随机噪声码),正在用于解算位置的卫星号(01~32,前面的 0 也将被传输)。
<4> PDOP 位置精度因子(0.5~99.9)
<5> HDOP 水平精度因子(0.5~99.9)
<6> VDOP 垂直精度因子(0.5~99.9)
3.GPS Satellites in View(GSV)可见卫星信息
$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,…<4>,<5>,<6>,<7>*hh<CR><LF>
<1> GSV 语句的总数
<2> 本句 GSV 的编号
<3> 可见卫星的总数(00~12,前面的 0 也将被传输)
<4> PRN 码(伪随机噪声码)(01~32,前面的 0 也将被传输)
<5> 卫星仰角(00~90 度,前面的 0 也将被传输)
<6> 卫星方位角(000~359 度,前面的 0 也将被传输)
<7> 信噪比(00~99dB,没有跟踪到卫星时为空,前面的 0 也将被传输)
注:<4>,<5>,<6>,<7>信息将按照每颗卫星进行循环显示,每条 GSV 语句最多可以显示 4 颗卫星的信息。其他卫星信息将在下一序列的 NMEA0183 语句中输出。
4.Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐最短定位信息
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>
<1> UTC 时间,hhmmss(时分秒)格式
<2> 定位状态,A=有效定位,V=无效定位
<3> 纬度 ddmm.mmmm(度分)格式(前面的 0 也将被传输)
<4> 纬度半球 N(北半球)或 S(南半球)
<5> 经度 dddmm.mmmm(度分)格式(前面的 0 也将被传输)
<6> 经度半球 E(东经)或 W(西经)
<7> 地面速率(000.0~999.9 节,前面的 0 也将被传输)
<8> 地面航向(000.0~359.9 度,以真北为参考基准,前面的 0 也将被传输)
<9> UTC 日期,ddmmyy(日月年)格式
<10> 磁偏角(000.0~180.0 度,前面的 0 也将被传输)
<11> 磁偏角方向,E(东)或 W(西)
相关文章:
GPS在Linux下的使用(war driving的前置学习)
1.ls /dev/tty* 列出所有与 tty 相关的设备文件。这些设备文件通常对应终端设备 ttyUSB0是GPS端口 2.cat /dev/ttyUSB0 用于读取并显示连接到 /dev/ttyUSB0 串口设备发送的原始数据 这种是GPS定位不全的,要拿到更开阔的地方 这种是GPS定位全的 因为会持续输出…...
开发经验总结: 读写分离简单实现
背景 使用mysql的代理中间件,某些接口如果主从同步延迟大,容易出现逻辑问题。所以程序中没有直接使用这个中间件。 依赖程序逻辑,如果有一些接口可以走读库,需要一个可以显示指定读库的方式来连接读库,降低主库的压力…...
MySQL(面试题 - 同类型归纳面试题)
目录 一、MySQL 数据类型 1. 数据库存储日期格式时,如何考虑时区转换问题? 2. Blob和text有什么区别? 3. mysql里记录货币用什么字段类型比较好? 4. MySQL如何获取当前日期? 5. 你们数据库是否支持emoji表情存储&…...
【C++ Primer Plus习题】17.7
问题: 解答: #include <iostream> #include <vector> #include <string> #include <fstream> #include <algorithm>using namespace std;const int LIMIT 50;void ShowStr(const string& str); void GetStrs(ifstream& fin, vector<…...
vue3(整合版)
创建第一个vue项目 1.安装node.js cmd输入node查看是否安装成功 2.vscode开启一个终端,配置淘宝镜像 # 修改为淘宝镜像源 npm config set registry https://registry.npmmirror.com 输入如下命令创建第一个Vue项目 3.下载依赖,启动项目 访问5173端口 …...
复制他人 CSDN 文章到自己的博客
文章目录 0.前言步骤 0.前言 在复制别人文章发布时,记得表明转载哦 步骤 在需要复制的csdn 文章页面,打开浏览器开发者工具(F12)Ctrl F 查找"article_content"标签头 右键“Copy”->“Copy element”新建一个 tx…...
【算法——二分查找】
理论基础: 程序员面试经典题,二分搜索一个区间,区间查找 (LeetCode 34)_哔哩哔哩_bilibili 手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找_哔哩哔哩_bilibili 这个是红蓝法,很牛…...
Cisco Packet Tracer的安装加汉化
这个工具学计算机网络的同学会用到 1.下载安装 网盘链接:https://pan.baidu.com/s/1CmnxAD9MkCtE7pc8Tjw0IA 提取码:frkb 点击第一个进行安装,按步骤来即可。 2.汉化 (1)复制chinese.ptl文件 (2&…...
MMain函数定义为WinMain函数看port1632.h和pwin32.h文件
编译win2k3的源代码的时候有时候看到MMain函数 ..//public/sdk/inc/port1632.h #if defined(WIN16) /* ---------------- Maps to windows 3.0 and 3.1 16-bit APIs ----------------*/ #include "ptypes16.h" #include "pwin16.h" #include "plan16.…...
单词搜索问题(涉及递归等)
目录 一题目: 二思路解释: 三解答代码: 一题目: newcode题目链接: 单词搜索_牛客题霸_牛客网 二思路解释: 思路:个人理解是找到word中的第一个元素,然后去递归的上下左右查找&am…...
Redis的一些通用指令
首先我们需要先连接客户端服务器,此时我们需要通过redis-cli和redis服务器进行交互,输入ping来确保通路的流畅 (一)get和set redis中最核心的两个命令就是get和set,get就是根据key来取出对应value,set就是把…...
C++中vector类的使用
目录 1.vector类常用接口说明 1.1默认成员函数 1.1.1构造函数(constructor) 1.1.2 赋值运算符重载(operator()) 2. vector对象的访问及遍历操作(Iterators and Element access) 3.vector类对象的容量操作(Capacity) 4. vector类对象的修改及相关操作(Modifiers and Stri…...
cmaklist流程控制——调试及发布
cmaklist流程控制 目前只会配置-编译调试-打包发布,并且不会workflow控制 后续学习配置-编译调试-测试-打包发布,workflow控制,理解整个流程,目前对流程控制理解也不够。 1.CMake Presets 先于Cmakelist文件,指导项…...
制作一个能对话能跳舞的otto机器人
OTTO机器人是一个开源外壳,硬件和软件的桌面机器人项目,非常适合新手研究和拓展。记住,他是一个能移动有表情能声音的机器人。 b站有很多演示和组装的视频,我就不多说了,照着做就好,因为硬件我也是刚入门&…...
git配置SSH
1 打开cmd窗口 2 在窗口中输入如下命令: 配置用户名: git config --global user.name “gyk” 配置邮箱: git config --global user.email “247929163qq.com” 继续在Git命令窗口中输入如下命令,即可生成SSH公钥和私钥 ss…...
mozilla/pdf.js view.html加载指定页码
mozilla/pdf.js view.html加载指定页码 在Mozilla’s PDF.js中,如果你想要在viewer.html加载时直接跳转到指定的页码,你可以通过修改URL来实现。 PDF.js使用查询参数来处理URL,其中page参数用于指定页码。你可以通过修改URL的查询字符串来设…...
Qt之QFuture理解
结构 #mermaid-svg-J9J683RG8QjtEqoM {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-J9J683RG8QjtEqoM .error-icon{fill:#552222;}#mermaid-svg-J9J683RG8QjtEqoM .error-text{fill:#552222;stroke:#552222;}#merm…...
求二叉树的高度(递归和非递归)
假设二叉树采用二叉链表存储结构,设计一个算法求二叉树的高度。 递归: int getTreeHight(BiTree T){if(TNULL){return 0;}else {int lh getTreeHight(T->lchild);int rh getTreeHight(T->rchild);return (lh>rh?lh:rh)1;}}时间复杂度O(n)&a…...
Java查找算法——(四)分块查找(完整详解,附有代码+案例)
文章目录 分块查找1.1普通分块查找 分块查找 1.1普通分块查找 分块原则: 块内无序,块间有序:前一块中的最大数据,小于后一块中所有的数据,块与块之间不能有数据重复的交集。块的数量一般等于数字个数开根号 核心思路ÿ…...
进制数知识(2)—— 浮点数在内存中的存储 和 易混淆的二进制知识总结
目录 1. 浮点数在内存中的存储 1.1 浮点数的大V表示法 1.2 浮点数的存储格式 1.3 浮点数的存入规则 1.4 浮点数的读取规则 1.5 补充:移码与掩码 1.6 题目解析 2. 易错的二进制知识 2.0 符号位到底会不会参与运算? 2.0.1 存储前的编码变化运算 …...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
