【发布时间】:2020-01-01 15:41:42
【问题描述】:
我无法让 Python2.7 中的简单脚本在 Python3 中正常工作。 脚本:
enter code here{
#!/usr/bin/env python
# simple test program to test serial I/O data from gps
#
# Dec 2019 HRK
import Adafruit_BBIO.UART as UART
import serial
UART.setup("UART2")
ser2 = serial.Serial('/dev/ttyO2', timeout=2)
def parseGPS(gps_data):
if gps_data[0:6] == "$GNRMC":
sdata=gps_data.split(",")
if sdata[2] == 'V':
print("Sat data not valid")
return
print("Parsing GNRMC data")
time=sdata[1][0:2]+":"+sdata[1][2:4]+":"+sdata[1][4:6]
lat=decode(sdata[3])
dirlat=sdata[4]
lon=decode(sdata[5])
dirlon=sdata[6]
print('GMT: {} lat: {}{} long: {}{}'.format(time, lat, dirlat, lon, dirlon))
def decode(coord):
# converts dddmm.mmmmm > DD deg MM.MMMMM min
x = coord.split(".")
head = x[0]
tail = x[1]
tail = tail[0:2]
deg = head[0:-2]
min = head[-2:]
return deg + ":" + min + "." + tail
print("receiving GPS data")
while True:
data = ser2.readline()
parseGPS(data)
}
Python2 给出了预期的响应。 Python3 在打印后停止(“接收 GPS 数据”)。
我知道两个 Python 版本中的串行差异,但谷歌搜索并没有为我带来解决方案。问题可能是 ser2.readline() 语句。
请指教。
提前致谢,
哈克
【问题讨论】: