用于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'。

  1. gpsd socket创建gpsd套接字连接&请求/检索gpsd输出。
  2. 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'。

  1. gpsd socket创建gpsd套接字连接&请求/检索gpsd输出。
  2. 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版本。

评论总是值得赞赏的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JTable无法向新创建的列添加值   java如何调整JEditorPane中编辑区域的大小?   Java通过反射确定未知数组中的数组大小   java Intellij Idea有时无法按其预期的方式构建应用程序   java Swing GUI带有IntelliJ错误“contentPane不能设置为null”从终端编译时   如何将这些通用方法调用从C#转换为Java   在null上找不到java属性或字段“index”   从Java HashMap获取整数值时是否需要调用intValue()方法?   java Android谷歌地图获取相机中的图像块   unix无法捕获JAVA中“who m”命令的输出   java,同时将邮件发送到“收件人”标题“我”中的多个收件人   在java中向链表添加未知数量的节点   无法为Heroku上的discord bot设置java端口   java使用Apache HttpClient进行选项请求   与元素类型“ApplicationName”关联的属性“Application Version”需要java Open quote   Android Studio Java中的两个变量求和