用于gpsd的python 2.7-3.5客户端
gps3的Python项目详细描述
安装
[sudo [-H]] pip[2|3] install gps3
例如,sudo -H pip3 install gps3用于默认的P3安装。 sudo pip2 install gps3对于python 2.7。
gps3.py将安装在/usr/local/lib/python[3.5]/dist-packages/gps3/gps3.py
gps3.py是一个python 2.7-3.5gpsd接口(http://www.catb.org/gpsd),并且 在两个类中,默认为host='127.0.0.1',port=2947,gpsd_protocol='json'。
- gpsd socket创建gpsd套接字连接&请求/检索gpsd输出。
- datastream将流式gpsd数据解压到python字典中。
这些字典是从gpsd发送的json数据包中读取的。
from gps3 import gps3 gps_socket = gps3.GPSDSocket() data_stream = gps3.DataStream() gps_socket.connect() gps_socket.watch() for new_data in gps_socket: if new_data: data_stream.unpack(new_data) print('Altitude = ', data_stream.TPV['alt']) print('Latitude = ', data_stream.TPV['lat'])
有关属性/键的可能性,请参阅第147 FF行。 或http://www.catb.org/gpsd/gpsd_json.html
agps3.py安装在/usr/local/lib/python[3.5]/dist-packages/gps3/agps3.py
它在功能上类似于gps.py,但是能够读取对象属性,而不是python字典。
py也是一个python 2.7-3.5gpsd接口(http://www.catb.org/gpsd),并且 在两个类中,默认为host='127.0.0.1',port=2947,gpsd_protocol='json'。
- gpsd socket创建gpsd套接字连接&请求/检索gpsd输出。
- datastream将流式gpsd数据解压为对象属性值。
from gps3 import agps3 gps_socket = agps3.GPSDSocket() data_stream = agps3.DataStream() gps_socket.connect() gps_socket.watch() for new_data in gps_socket: if new_data: data_stream.unpack(new_data) print('Altitude = ', data_stream.alt) print('Latitude = ', data_stream.lat)
有关属性值的可能性,请参阅第140 FF行。
对于人类体验,两个版本都有一些简单的Showcase脚本,位于
/usr/local/share/gps3/examples/
agpsthreaded.py是agps3prethreaded作为默认守护进程线程,所有数据都作为线程数据流的属性公开。
from gps3.agps3threaded import AGPS3mechanism agps_thread = AGPS3mechanism() # Instantiate AGPS3 Mechanisms agps_thread.stream_data() # From localhost (), or other hosts, by example, (host='gps.ddns.net') agps_thread.run_thread() # Throttle time to sleep after an empty lookup, default '()' 0.2 two tenths of a second while True: # All data is available via instantiated thread data stream attribute. # line #140-ff of /usr/local/lib/python3.5/dist-packages/gps3/agps.py print('---------------------') print( agps_thread.data_stream.time) print('Lat:{} '.format(agps_thread.data_stream.lat)) print('Lon:{} '.format(agps_thread.data_stream.lon)) print('Speed:{} '.format(agps_thread.data_stream.speed)) print('Course:{}'.format(agps_thread.data_stream.track)) print('---------------------') sleep(60) # Sleep, or do other things for as long as you like.
human.py展示gps3.py,ahhuman.py展示agps3.py
python[X] /usr/local/share/gps3/examples/[a]human.py[-host][-port]或--help用于命令行选项列表。
用“0”、“1”、“2”、“3”切换LAT/LON表单,用于RAW、DDD、DMS和DMS
用“0”、“m”、“i”、“n”切换单位,用于“原始”、“公制、英制、航海”
分别使用“j”和“a”在JSON和NMEA输出之间切换。
用“d”刷新设备信息的显示,以查看发出gps3.misc.hertz(5)后的返回,将支持GPS的设备更改为5Hz
使用“q”或“^c”
退出同样,这两个版本都有一些琐碎的应用程序[a]gegps3.py为google earth创建一个“live”kml文件。
python[X] /usr/local/share/gps3/examples/[a]gegps3.py(默认值)
扫描文档位于相应的文件中。
un安装
[sudo -H] pip[2|3] uninstall gps3
例如,sudo -H pip3 uninstall gps3用于P3安装。 同样,对于python 2.7 sudo pip2 uninstall gps3
安装问题
使用上面的方法取消安装并y删除旧文件,然后
sudo -H pip[2|3] install --ignore-installed gps3
这将绕过缓存版本并获取最新的typo free版本。
评论总是值得赞赏的。