- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试为 Gpsd 编写一个非常简单的 python 客户端,但是我有执行脚本一段时间后出现此错误:
Traceback (most recent call last):
File "gps_cap.py", line 13, in <module>
g.stream()
File "/usr/lib/python2.6/site-packages/gps/gps.py", line 348, in stream
gpsjson.stream(self, flags)
File "/usr/lib/python2.6/site-packages/gps/client.py", line 176, in stream
return self.send(arg + "}")
File "/usr/lib/python2.6/site-packages/gps/client.py", line 111, in send
self.sock.send(commands)
socket.error: [Errno 104] Connection reset by peer
这是我的 python 代码:
import os
from gps import *
from time import *
g = gps(mode=WATCH_ENABLE)
while 1:
os.system('clear')
g.poll()
if PACKET_SET:
g.stream()
print
print ' GPS reading'
print '----------------------------------------'
print 'latitude ' , g.fix.latitude
print 'longitude ' , g.fix.longitude
print 'time utc ' , g.utc,' + ', g.fix.time
print 'altitude ' , g.fix.altitude
print 'epc ' , g.fix.epc
print 'epd ' , g.fix.epd
print 'eps ' , g.fix.eps
print 'epx ' , g.fix.epx
print 'epv ' , g.fix.epv
print 'ept ' , g.fix.ept
print 'speed ' , g.fix.speed
print 'climb ' , g.fix.climb
print 'track ' , g.fix.track
print 'mode ' , g.fix.mode
print
print 'sats ' , g.satellites
sleep(1)
也许有人可以帮助解决这个问题?我在 ArchLinux 机器上运行 Gpsd 2.95。
谢谢!
最佳答案
我知道这个问题已经很老了,但我还是把我的答案放在这里,以防将来有人需要它:
#! /usr/bin/python
# Written by Dan Mandle http://dan.mandle.me September 2012
# License: GPL 2.0
import os
from gps import *
from time import *
import time
import threading
gpsd = None #seting the global variable
os.system('clear') #clear the terminal (optional)
class GpsPoller(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
global gpsd #bring it in scope
gpsd = gps(mode=WATCH_ENABLE) #starting the stream of info
self.current_value = None
self.running = True #setting the thread running to true
def run(self):
global gpsd
while gpsp.running:
gpsd.next() #this will continue to loop and grab EACH set of gpsd info to clear the buffer
if __name__ == '__main__':
gpsp = GpsPoller() # create the thread
try:
gpsp.start() # start it up
while True:
#It may take a second or two to get good data
#print gpsd.fix.latitude,', ',gpsd.fix.longitude,' Time: ',gpsd.utc
os.system('clear')
print
print ' GPS reading'
print '----------------------------------------'
print 'latitude ' , gpsd.fix.latitude
print 'longitude ' , gpsd.fix.longitude
print 'time utc ' , gpsd.utc,' + ', gpsd.fix.time
print 'altitude (m)' , gpsd.fix.altitude
print 'eps ' , gpsd.fix.eps
print 'epx ' , gpsd.fix.epx
print 'epv ' , gpsd.fix.epv
print 'ept ' , gpsd.fix.ept
print 'speed (m/s) ' , gpsd.fix.speed
print 'climb ' , gpsd.fix.climb
print 'track ' , gpsd.fix.track
print 'mode ' , gpsd.fix.mode
print
print 'sats ' , gpsd.satellites
time.sleep(5) #set to whatever
except (KeyboardInterrupt, SystemExit): #when you press ctrl+c
print "\nKilling Thread..."
gpsp.running = False
gpsp.join() # wait for the thread to finish what it's doing
print "Done.\nExiting."
此代码与线程一起工作,并将向屏幕提供良好的 gpsd 数据输出。它可以用 Ctrl + C 终止。
所有学分转到http://www.danmandle.com/blog/getting-gpsd-to-work-with-python/
关于python - gpsd python 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3295065/
我有一个 GPS 模块,通过 USB 连接到 Raspberry Pi。 出于某种原因,我似乎无法使用以下方法进行修复: cgps 它似乎没有得到修复并终止。 我也尝试过: sudo killall
我需要重放 gpsd 收集的 gps 数据以进行测试。我知道我可以通过 tcp 提供 gpsd,例如:gpsd -N tcp://127.0.0.1:6000,但我找不到正确的提供格式。我应该使用什么
我正在使用来自 Ubuntu 的 Bionic 存储库的 GPSd v3.17-5。 我遇到了 GPSd 拒绝响应新客户端连接的问题。 以下是来自 lsof 的转储这表明 gpsmon已连接(您可以看
我目前正在使用 gspd 库,并注意到我得到的时间在两个值之间切换 - 实际值(今天)和 1991 年的某个日期。 当显示 gpsmon 时,它通常会显示正确的时间。使用 cgps -s 显示错误的时
我正在编写一个 Python 脚本,该脚本将与应用程序交互并将 GPSD 数据提取到应用程序中。这显然涉及到一个外部库。 我在用于部署代码的 Raspberry Pi 上设置了如下配置: sudo a
我正在开发一个 C++ 应用程序,它应该使用 gpsd 检索接收到的 $GPGGA 类型的 NMEA 语句。我的想法是大约每秒从 gpsd 读取一次并解析最后收到的 $GPGGA 语句,提取我感兴趣的
我有一 block 板子,上面运行着 Linux Ångström。现在我不想在我的程序中获取 GPS 数据。所以我设置了一个 gpsdeamon 从调制解调器获取他的 gps 信息。守护进程运行良好
我需要来自在我的 NTP 主服务器上运行的 GPSD 服务器的一些信息。 它看到的卫星数量 它使用哪些卫星进行定位(可能还有 SNR) 它看到了哪些卫星,因为它们有很多(这可能吗?) 我要把它输出到P
我正在尝试为 Gpsd 编写一个非常简单的 python 客户端,但是我有执行脚本一段时间后出现此错误: Traceback (most recent call last): File "gps_c
我使用的是 adafruit 的 GPS 帽子。 根据文档 Start gpsd and direct it to use HW UART. Simply entering the following
gpsd程序可以让 Linux 用户干净地组织他们的 GPS 外围数据,这样像 cgps 这样的命令行程序或像 xgps 这样的图形程序就可以读取数据,并写入套接字,就像/var/run/gpsd.s
已关闭。这个问题是 not about programming or software development 。目前不接受答案。 这个问题似乎不是关于 a specific programming
我是使用 gpsd 和 C 的新手。我实现了我的第一个客户端,它使用 gps_stream 函数。如果我理解正确的话,它就像一个 pub/sub 函数,您可以使用 gps_read 读取 gps 数据
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我正在尝试从 http://developer.berlios.de/project/showfiles.php?group_id=2116 安装 gpsd但是当我在文件夹上运行 scons 时,我得
我想配置 GPSD 以将 UDP 多播流作为输入。我有一个后台服务,它在 UDP 多播端口 5098 (254.0.0.50:5098) 上发送 NMEA 帧 我试过了: gpsd udp://254
我想使用 libgps 与 gpsd 守护进程交互。这就是为什么我实现了一个小测试应用程序以从特定卫星中提取值(value)的原因。 HOWTO 页面上的文档告诉我们 The tricky part
我已使用 USB 适配器将 adafruit ultimate gps v3 连接到树莓派。 gps 单元似乎有一个修复,因为 led(在 gps 单元上)以缓慢的速度闪烁(可能每 10 秒)。如果我
我有一台带有 GPS 的计算机连接到一个串行端口,该端口以非常基本的配置运行 gpsd。这是/etc/default/gpsd 的内容: START_DAEMON="true" USBAUTO="fa
我必须制作一个能够在 Google map 中显示汽车位置的 Android 客户端。车辆上安装了 Raspberry。我见过一些应用程序将 GPSD 数据显示为 NMEA 形式,但这对我来说还不够
我是一名优秀的程序员,十分优秀!