4

我有一个通过 USB 连接到 Raspberry Pi 的 GPS 模块。

出于某种原因,我似乎无法使用以下方法进行修复:

全球定位系统

它似乎没有得到修复并终止。

我也试过:

sudo killall gpsd

sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock

然后再次尝试cgps,但这似乎也不起作用。

我什至尝试过:

须藤纳米 /etc/default/gpsd

并更改了行:

GPSD_OPTIONS=""

至:

GPSD_OPTIONS="/dev/ttyACM0"

这显然适用于网络上的其他人,但在重新启动后,它也不起作用。

但由于某种原因,当我这样做时:

gpsmon /dev/ttyUSB0

我得到了完整的数据读数;纬度,经度,星期六,海拔高度,分机。

有没有办法将gpsmon /dev/ttyUSB0句子输出到文本文件?

另外,为什么我不能使用 cgps 或类似的东西获得修复?

4

2 回答 2

10

gpsd是一个漂亮的应用程序,可以简化 gps 的使用,但它可能有点令人困惑。

如果您使用的是 Rasbian 或某些apt基于包的系统,最好对其进行配置sudo dpkg-reconfigure gpsd以避免复杂性 (tyqos),但这不是必需的。我们有偏好,但您可能没有,

  • 自动开启,
  • -n不要等待客户
  • -G收听所有地址,
  • -b损坏设备安全模式,以及
  • 自动查找

生成的配置文件看起来像

# Default settings for gpsd.
# Please do not edit this file directly - use `dpkg-reconfigure gpsd'  to
# change the options.
START_DAEMON="true"
GPSD_OPTIONS="-n -G -b"
DEVICES=""
USBAUTO="true"
GPSD_SOCKET="/var/run/gpsd.sock"

当 gpsd 以这种方式运行时,这种方法的主要绊脚石是它会抢先获取 gps。尝试独立和直接访问设备/dev/whatever将因忙而失败。

如果你想走那条路,无论出于什么原因,在做任何其他事情之前,确保 gpsd 没有运行。

sudo killall gpsd

并删除 gpsd 可能留下的任何套接字,

sudo rm /var/run/gpsd.sock

通过附加 GPS 并跟踪它的去向来检查 GPS 的位置dmesg | tail。它看起来像

[67338.935645] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[67338.935650] usb 1-1.2: Product: USB-Serial Controller
[67338.935653] usb 1-1.2: Manufacturer: Prolific Technology Inc.
[67338.936154] pl2303 1-1.2:1.0: pl2303 converter detected
[67338.937953] usb 1-1.2: pl2303 converter now attached to ttyUSB1
[67339.806917] pl2303 ttyUSB1: usb_serial_generic_read_bulk_callback - urb stopped: -32
[67339.807306] pl2303 ttyUSB1: usb_serial_generic_read_bulk_callback - urb stopped: -32
[67340.018016] pps_ldisc: PPS line discipline registered
[67340.018321] pps pps0: new PPS source usbserial1
[67340.018330] pps pps0: source "/dev/ttyUSB1" added

然后您可以使用 ... 或其他方式检查输出sudo cat /dev/ttyUSB1,但您可以通过运行 gpsd 来执行此操作。(您也可以将其泵入文本文件sudo cat /dev/ttyUSB1 > gps_dump.txt,或您的gpsmon /dev/ttyUSB0 >gps_dump.txt,但有更优雅的解决方案。)

混乱的另一面是 gpsd 没有 gps 输出,因为它没有运行或配置“正确”。(关闭、未启动或指向错误的设备)。一些应用程序会告诉您它没有运行,许多应用程序只是静静地坐着,没有任何数据。我知道没有人会告诉您 gpsd 已手动设置为错误的设备。

如果您杀死了gpsd,或者没有让它自动启动,请确保它正在运行sudo /etc/init.d/gpsd restart

除非您对奇怪的硬件做一些奇怪的事情,否则大多数情况下会在这些设置中使用 gpsd 吐回数据,从而无需诊断设置。

但是,请记住,cgps如果没有修复将超时。检查您的天空视图和首次修复时间xgps另一方面,它对故障更有弹性,并为数据的缺失或质量提供线索。如果你有一个 X 服务器,xgps实际上是我对“它是否工作”的首选测试。如果您不这样做,但将您的 Pi 放在网络上(xgps 192.168.0.6或其他任何东西,因为另一台机器安装了 gpsd-client )。另一种选择是ssh -X user@192.168.0.6然后执行xgps

Telnet 到 gpsd 虽然很有趣,但与其他诊断一样是另一层诊断。

最后,一个用于 gpsd (gps3.py)的 Python 客户端的无耻插件,作为从 gpsd 访问数据的手段。它仍然是 alpha,但它不导入历史记录。

于 2015-03-30T04:34:50.897 回答
5

您可能绑定到错误的序列号。在未插入设备的情况下导航到下面的文件夹,然后在插入设备的情况下刷新,您可以发现 GPS 设备的序列号。

cd /dev/
ls

我的设备名为“ttyACM0”

安装必要的软件包。

sudo apt-get install gpsd gpsd-clients python-gps

停止守护进程

sudo systemctl stop gpsd.socket
sudo systemctl disable gpsd.socket

向公共端口和本地主机公开服务

vim /lib/systemd/system/gpsd.socket

将 127.0.0.1 更改为 0.0.0.0

停止 GPSD 服务

sudo killall gpsd

将服务绑定到串口设备

sudo gpsd /dev/ttyACM0 -F /var/run/gpsd.sock

显示 GPS 数据

gpsmon

这个视频一步一步地展示了如何做你正在寻找的东西。

如何在树莓派上安装 GPS

https://www.youtube.com/watch?v=A1zmhxcUOxw

于 2018-11-03T14:53:22.360 回答