class Read_serial:
i=0
file = open('nmea.txt', 'r')
txt = file.read()
#print txt
s=txt.splitlines()
for data in s:
gpgga=nmea.GPGGA()
gpgga.parse(data)
lat=gpgga.latitude
嗨..我是Python新手。我有一个Read_serial类,它读取一组GPS数据。它存储在变量lat中。 我想在另一个类中访问这个'lat',其中我有一个在GTK窗口中显示它的值的函数。随着'lat'值的改变,窗口中的值也应该改变。请为此提出解决方案。
答案 0 :(得分:2)
您没有正确使用该课程。类用于存储和操作数据的对象。通常是必须保留状态的东西。
class Point(object)
def __init__(self, x=0, y=0):
super().__init__()
self.x = x
self.y = y
# end constructor
def move(self, x, y):
self.x = x
self.y = y
...
所以你可能只需要一个函数
def read_gps(filename)
"""Read a file with nmea gps messages."""
lats = []
with open(filename, "r") as file:
for line in file.readlines():
gpgga=nmea.GPGGA()
gpgga.parse(line)
lat = gpgga.latitude
# do something with lat
# call class function.
# point = Point() # If called somewhere else before the for loop.
# point.move(lat, 0)
# GUIs like PySide have signals that you can emit.
lats.append(lat)
# end with (close file)
return lats
# end read_gps
latitude_vals = read_gps("nmea.txt")
# use the returned value
此外还有一个更容易使用的nmea2库。同时读取文件非常快,文件是静态对象,因此您可能希望使用pyserial直接连接到gps。