微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在python中的for循环之外获取gps3数据在for循环之外调用类函数

如何解决在python中的for循环之外获取gps3数据在for循环之外调用类函数

现在我有一个示例脚本,它从 python 中的 gps3 获取数据

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)

效果很好。

我有一个不同的脚本,我有函数调用

def getdata()
    ch = port.readline(); #this gets the data
    data_stream.unpack(new_data)
    thetime = datastream.time; # I want to get the gps time right after the function call
    return ch,thetime 

我想要做的是在调用 readline 函数后立即获取 gps 时间(readline 在这种情况下与 gps 无关,它是不同的 uart)。

我想获取一个 new_data 对象或从 gps3 获取一批新的 gpsd 数据。

编辑: 我也在 while 循环中尝试过这个,但我不确定如何解压缩它不起作用的数据。

while 1==1:
    time.sleep(1)
    newdata = gps_socket
    print(newdata)
    data_stream.unpack(newdata)
    print('Altitude = ',data_stream.alt)
    print('Latitude = ',data_stream.lat)
    print('Time = ',str(data_stream.time))

但这不起作用,我不知道为什么,这是我得到的错误

<gps3.agps3.GPSDSocket object at 0xb5c85bf0>
Traceback (most recent call last):
  File "/home/pi/gpsmag3.py",line 19,in <module>
    data_stream.unpack(newdata)

我知道我正在从类中得到一个指针,我只是不明白为什么 unpack 无法获取数据

我如何在我的函数调用中从 gps_socket 获取一个 new_data 对象来获取 gps 时间?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。