我有一个通过USB连接到Raspberry Pi的GPS模块。
由于某些原因,我似乎无法使用以下方法获得修复:
CGPS
它似乎没有得到修复并终止。
我也尝试过:
sudo killall gpsd
sudo gpsd / dev / ttyUSB0 -F /var/run/gpsd.sock
然后又尝试了cgps,但这似乎也没有用。
我甚至尝试过:
sudo nano / etc / default / gpsd
并更改了一行:
GPSD_OPTIONS =""
为:
GPSD_OPTIONS ="的/ dev / ttyACM0"
这显然适用于网络上的其他人,但重启后,这也不起作用。
但出于某种原因,当我这样做时:
gpsmon / dev / ttyUSB0
我得到了完整的数据读数; lat,lon,Sats,altitude,ext。
有没有办法将gpsmon /dev/ttyUSB0
句子输出到文本文件?
另外,为什么我不能使用cgps或类似的东西获得修复?
答案 0 :(得分:7)
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并使用dmesg | tail
跟踪gps的位置来检查gps的位置。它看起来像
[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
将会超时。检查您的天空视图和Time To First Fix。另一方面,xgps
对失败更具弹性,并提供数据缺失或质量的线索。如果您有一台X服务器,xgps
实际上是我首选的测试,它是否正常工作"。如果你没有,但是你的Pi在网络上(xgps 192.168.0.6
或其他什么,因为另一台机器安装了gpsd-client)。另一个选项是ssh -X user@192.168.0.6
,然后执行xgps
)
有趣的是,进入gpsd是另一种层次诊断,与其他人一样。
最后,一个无耻的插件Python client for gpsd (gps3.py)作为从gpsd访问数据的方法。它仍然是阿尔法,但它并没有导入历史残余。
答案 1 :(得分:0)
您可能绑定到错误的序列号。通过导航至以下文件夹(未插入设备)来发现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 kilall gpsd
绑定服务到串行设备
sudo gpsd /dev/ttyACM0 -F /var/run/gpsd.sock
显示GPS数据
gpsmon
此视频逐步显示了您要寻找的东西。
如何在RaspberryPi上安装GPS