问题标签 [gpsd]
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.
systemd - 通过网络访问 GPSD 端口 2947
使用来自 digitalbarbedwire.com 的帖子中的信息,使用 Adafruit Ultimate GPS 帽子和 PPS 使用最新的 Jessie Lite Raspbian 2017 年 1 月的 RPI2。简单的设置和 PPS 以及所有 gps 命令在本地工作得很好。
我试图让 gpsd 在端口 2947 上接受通过网络传入的请求以导出位置信息(OpenCPN)。我编辑了 /etc/default/gpsd 以添加 -G 选项 GPSD_OPTIONS="-n -G" 但不允许外部请求。如果我停止 gpsd(sudo service stop gpsd),并在前台调用 gps(/usr/sbin/gpsd -N -n -G /dev/ttyAMA0 /dev/pps0,一切正常!所以我猜有一个将gpsd作为守护进程启动的权限问题,但我还没有弄清楚。让我发疯!
有什么建议么?
相关文件:
有任何想法吗?
android - 如何使用 GPS 高精度计算每 15 秒的距离
我以 3 种方式获得 GPS 位置Map.getMyLocation().getLatitude()
,例如locationManager
和mGoogleApiClient
。
但这些对我每 15 秒计算一次距离没有帮助。
问题是位置纬度和经度不准确,即我使用这些方式距离计算步行 1-2 米。计算距离为 400 m-600 米有时也显示 1 km。GPS 位置在 20 米到 600 米之间变化。 请提供一些关于如何通过在 android 中每 15 秒计算一次距离来获得我的位置高度准确度的更好的想法。
这是我的代码
这是我的距离计算方法 ,但这种方法不是问题
python - PYTHON,LINUX:流式传输到 cmdline
我正在尝试使用gpsd库解码一些非标准 AIS(带有额外信息标记的 nmea 字符串)数据。AIS 数据是从一个不断增加的文本文件中读取的(每天一个,换行符是新数据)。一些处理在 python 中完成,然后推送到 GPSD 解码器进行解码并返回给 python 进行更多工作。目前这是使用 os.system 或 subprocess.check_output (它们都花费相同的时间)和命令完成的:
这行得通,但速度很慢。如果我将所有 NMEA 字符串写入文本文件并进行批量解码,它的速度会快 10-50 倍:
但这不能实时工作,因为我需要尽快处理传入的数据。
有没有办法在 Python 中打开 gpsdecode(或任何其他 cmdline 工具)的管道,在 nmea_strings 准备好时将其发送并读取结果,而无需一直启动/停止该工具?我已经在使用带队列的多处理来加快处理速度,但瓶颈是解码位。
有任何想法吗?
编辑:进一步的测试表明,“缓慢”可能与 cmdline 解码无关。这可能是我在工作人员之间拆分数据的地方。需要做一些分析。
ubuntu - 与 GPS 的连接无法正常工作。
我正在尝试建立与 gps 的连接,但很遗憾,我无法这样做。首先,我尝试遵循生产者网站的指南:http://odroid.com/dokuwiki/doku.php?id=en:
c1_usb_gps
,但输入命令后sudo dpkg-reconfigure gpsd
我收到一条消息:
所以我决定自己使用sudo nano /etc/default/gpsd
. 所以现在它看起来像这样:
尽管如此,当我使用时,gpsmon
我没有得到任何数据,就好像我的 gps 甚至没有插入一样。我试图检查它是否被插入,但我不确定我是否做对了。
非常感谢您的回复!
c - GPS代码未读取纬度数据
我正在尝试编写代码来返回带有 GPS 天线的盒子的纬度,但是我似乎无法弄清楚如何取回这些数据。远程盒子正在运行 gpsd,我可以看到正在使用 gpspipe 从 GPS 天线检索数据。
以下是我为将 GPS 数据发送到本地机器所做的工作:
ssh -l user x.x.x.x -L 2948:127.0.0.1:2947
gpsd -N -n "gpsd://localhost:2948"
接下来,为了验证我是否正在获取 NMEA 数据,我运行了 gpspipe,我可以看到数据在流动。
我编写了以下 C 代码:
当我运行代码时,我得到以下输出:
等等...
我的问题是:我的代码是否正确?为什么我无法检索任何修复数据?我的设置正确吗?
如果您需要更多信息,请随时询问。谢谢。
linux - Linux:用一个进程从串口读取数据,用另一个进程写入
我在 Raspberry Pi 上使用串行 GPS/GNSS 设备时遇到了问题。有问题的设备是一个 u-blox GNSS 接收器,符号链接到/dev/gps
.
我尝试实现从该设备记录输出数据并同时向其发送校正数据。
更具体地说,我使用 RTKLIBs ( http://www.rtklib.com/ )str2str
工具将 NTRIP/RTCM 校正数据发送到 GNSS 接收器,以便使用 DGNSS/RTK 获得更好的位置估计。接收器的输出数据将由基于 GPS 守护进程 (gpsd) 的 python 脚本记录。
但是,我想主要问题与串口控制有关。当我首先运行写入过程(str2str)然后同时运行任何读取过程(我的python脚本/gpsd前端(例如cgps)/cat)时,读取过程将输出数据几秒钟然后冻结。我使用哪种工具来读取数据并不重要。
我发现了这个问题:https ://superuser.com/questions/488908/sharing-a-serial-port-between-two-processes 。因此,我确保这些进程获得了对设备的 rw 访问权限,甚至尝试以超级用户身份运行它们。此外,我偶然发现了 socat 和虚拟串行端口,但没有发现任何用处。(Linux 的虚拟串行端口)
有没有办法用一个进程从串行端口读取数据并用另一个进程写入它?我现在知道的唯一解决方案可能是使用pySerial重写python中的读写过程。这将允许只有一个进程访问串行设备,但这意味着大量的工作。
python - 从树莓派 GPS 轮询器的 self.current_value 中获取不同的值
我试图弄清楚如何制作一个将在后台运行的脚本,并为我提供 GPS 的当前纬度、经度、海拔等值。我也想让它把速度更新到最大。我发现这个有用的指南 Python GPS 模块:阅读最新的 GPS 数据
但我不知道如何从 self.current_value 获取纬度、经度等。任何帮助将非常感激。
c - 未使用 libgps 接收任何 GPS 数据
我想用 libgps 读取我的 GPS 坐标。
这是我的代码:
不幸的是,我总是得到这个结果:
GPS-Data:纬度:nan,经度:nan,海拔:nan,时间戳:301989888
所以 gpsd 没有返回任何 GPS 坐标...
但是如果我执行sudo gpscat -s 4800 /dev/ttyACM0
:
$GPGGA,190238.00,4819.14754,N,01512.57069,E,2,11,0.83,469.6,M,43.1,M,,0000*53
有谁知道可能出了什么问题?
c++ - GPSD 发送错误的时间
我目前在gspd
图书馆里玩得很开心,并注意到我在两个值之间切换的时间 - 实际值(今天)和 1991 年的某个日期。
显示gpsmon
时,它通常会显示正确的时间。使用cgps -s
显示错误的时间,偏移量大得离谱。
我在网上发现的(到目前为止)唯一可能的问题是系统时间不是最新的,这会混淆 gps 时间,但这里不是这种情况。
我们gpsd
通过以下代码访问:
所有其他值(位置、高度等)都是正确的。只是时间没了。
有人知道为什么会发生这种情况吗?提前致谢!
gpsd - cgps 和 gpsmon 提供不同的值
我目前正在让自己进入 gpsd 并且一直在玩它,直到我注意到以下问题:
控制台命令显示不同的值gpsmon
。cgps
确切地说,两者之间的差异在3'
. cgps
值是正确的,是gpsmon
关闭3'
的。
由于这不是一个小数字,我想找出这里可能出现的问题。
有人有想法吗?