问题标签 [nmea]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1597 浏览

regex - 如何使用 grep 找到损坏的 NMEA 日志语句?

我的 GPS 记录器偶尔会在日志文件末尾留下“未完成”行。我认为它们只是在最后,但我想检查所有行以防万一。

一个完整的句子示例如下所示:

该行应该以一个$符号开始,并以一个*和两个字符的十六进制校验和结束。我不在乎校验和是否正确,只要它存在即可。它还需要忽略没有校验和且位于每个文件开头的“ADVER”语句。

以下 Python 代码可能有效:

grep有没有办法用or或简单的东西来做到这awk一点?我还没有真正想出如何grep去做我想做的事。

更新:感谢@Motti 和@Paul,我几乎可以完成以下操作,但必须使用单引号并删除尾随$才能起作用:

还有两个问题,我怎样才能让它忽略空行?我可以结合最后两个greps 吗?

0 投票
4 回答
30491 浏览

c# - C# 开源 NMEA 解析器

我正在寻找 C# 开源 NMEA 解析器。

0 投票
8 回答
14923 浏览

python - 在 Python 中通过正则表达式解析 GPS 接收器输出

我有一个朋友正在完成他的航空航天工程硕士学位。对于他的最后一个项目,他在一个小团队中负责编写一个跟踪气象气球、火箭和卫星的程序。该程序接收来自 GPS 设备的输入,对数据进行计算,并使用这些计算的结果来控制一系列电机,这些电机旨在定位定向通信天线,因此气球、火箭或卫星始终保持焦点。

虽然我自己有点(永恒的)初学者,但我比我的朋友有更多的编程经验。因此,当他向我征求意见时,我说服他用我选择的语言 Python 编写程序。

在项目的这一点上,我们正在处理解析来自 GPS 设备的输入的代码。这是一些示例输入,我们需要提取的数据以粗体显示:

$GPRMC,092204.999, 4250.5589,S,14718.5084,E ,1,12,24.4, 89.6 ,M,,,0000*1F $GPRMC,093345.679, 4234.7899,N,11344.2567, W , 3,02,24.5,0.1 ,,,0000*1F $GPRMC,044584.936, 1276.5539,N,88734.1543,E ,2,04,33.5, 600.323 ,M,,,*00 $GPRMC,199304.973, 3248.7780,N,11355.7832,W ,1, 02.2, 25722.5 ,M,,,*00 $GPRMC,066487.954, 4572.0089,S,45572.3345,W ,3,09,15.0, 35000.00 ,M,,,*1F

以下是对数据的进一步解释:

“我看起来每行都需要五件东西。请记住,这些区域中的任何一个都可能是空的。这意味着彼此旁边只有两个逗号。例如',,'是两个随时可能满员的领域。他们中的一些人可能只有两个或三个选项,但我认为我不应该指望这一点。

两天前,我的朋友能够从用于跟踪最近气象气球发射的 GPS 接收器获取完整日志。数据很长,所以我把它都放在了这个 pastebin中。

我自己对正则表达式还是很陌生,所以我正在寻求一些帮助。

0 投票
1 回答
2500 浏览

time - GPS时间同步

我正在从一个发送时间戳的设备解析 NMEA GPS 数据,该设备无需毫秒即可发送时间戳。据我所知,这些设备将在发送带有 .000 时间戳的句子时使用特定的触发点 - afaik GGA 句子中的 $。

所以我正在解析 GGA 语句,并在收到 $ 时获取时间戳(我使用串行端口波特率补偿在同一操作中读取的任何其他字符)。

根据这些信息,我计算了用于更正系统时间的偏移量,但是当我将设置的时间与某些 NTP 服务器进行比较时,我会得到 250 毫秒的恒定差异——当我手动更正时,我的偏差在 20 毫秒之内,这适合我的申请。

但当然我不确定这个偏移来自哪里,以及它是否特定于我正在使用的 GPS 鼠标或我的系统。我使用了错误的 $ 字符,还是有人知道应该如何处理?我知道这个问题非常模糊,但是任何可能导致这种偏移的提示都会非常有帮助!

这是来自我的设备的一些示例数据,我将使用 $ 字符作为标记的时间偏移量:

0 投票
2 回答
9399 浏览

gps - 滚动您自己的 NMEA 解析器或使用开源 GPS 解析器?

我做了很多位置感知计算,通常包含 GPS。我有自己的小型简单 NMEA 解析器,它没有做任何特别的事情 - 只是将 GPS 特定的句子转换为可用的数字、标志等。

但是,在 GPSD 和 Gypsy 等项目上进行了很多积极的开发。如果 GPS 是一件简单的事情,这些项目早就完成了,只是进入了维护模式。

  • 他们知道/做什么我不知道,因此我的代码不考虑?
0 投票
7 回答
5359 浏览

gps - 如何从 GPS 设备获取 NMEA?

我正在尝试使用诺基亚的 N95 读取 GPS 设备的当前位置。我读到我需要我的设备将 NMEA 线路返回到串行端口,然后我将解析/拆分它以获得我想要的东西,但一直以来我不知道要向串行端口写入什么以使设备返回 NMEA?

就像还有其他用于消息传递等的 AT 命令......是否有任何特定命令要发送到串行端口以获取 NMEA?

0 投票
1 回答
4654 浏览

c# - 从 GPS 读取 NMEA 语句

我有一台包含 GPS 的 Mio P550 设备。我尝试使用 SerialPort 来获取 NMEA 语句,只需使用 SerialPort.Read()。数据以某种奇怪的编码返回。GPS 应该以 ASCII 格式返回 NMEA 语句,但事实并非如此。这是我的阅读代码:

这是我得到的样本值:xæææxfæ`æxæføøøxxxøx

我还有第二台设备(华硕 A636N),它以 ASCII 码返回 NMEA 语句,我的代码运行良好。

使用 Mio 设备获取 ASCII 格式的 NMEA 语句需要做什么?或者我如何获得设备返回的数据的编码?我尝试使用 System.Text.Encoding.xxx.GetString() 中的所有类从读取的字节中获取字符串,但它没有返回正确的数据 - 它返回类似于上面示例的数据。

0 投票
1 回答
3087 浏览

tcp - 如何通过 tcpip/udp 发送/接收 nmea 字符串

我有一个 gps 接收器,它可以将数据(使用 gprs 连接)发送到服务器 www.example.com。

现在我需要一些东西来从 www.example.com 接收这些数据(gps nmea 字符串)(可能是为了监听某个端口..),解析这些信息并将其存储到我的数据库中。

我对php和mysql有一些了解。所以,问题是——是否有可能用 php 和 mysql 来完成?如果是,请您指出我应该从什么开始?如果没有,你能给我一些其他的建议吗?

非常感谢你!

0 投票
3 回答
3214 浏览

c# - 无法从串行端口解析 NMEA 数据

我正在从串行 GPS 中检索 NMEA 语句。然后字符串就像我所期望的那样出现。问题是在解析这样的句子时:

我使用了一些简单的代码来确保我有正确的语法:

我在该位置添加了返回作为示例。我已将拆分结果打印到文本框中,并且看到 $GPRMC 确实在某个时候出现在 item 变量中。如果字符串遇到,为什么 if 语句不能捕获?是美元吗?我该如何解决这个问题?

0 投票
3 回答
3686 浏览

c# - GPS 信号强度计算

我想使用 .NET CF 显示 GPS 设备的信号条。我能够读取 NMEA 数据并获得 SNR 信号。但它们是一些卫星,有些处于活动状态,有些处于不活动状态,具有各种 SNR。我考虑过获得总信噪比的平均值,但它不会给出准确的值,因为三颗强信号卫星足以进行 GPS 定位,而另外 5 颗信噪比差的卫星会扰乱信号条计算。我如何以正确的方式计算 GPS 信号的百分比?