由于性能原因,我正在尝试生成一个串行读取缓冲区,而不是使用readlines(),但我无法按预期工作。 我从下面的blog post中得到了一些启发。在
我的readBuffer类定义如下:
def readBuffer(self):
try:
data = self.gpsdevice.read(1)
n = self.gpsdevice.inWaiting()
if n:
data = data + self.gpsdevice.read(n)
return data
except Exception, e:
print e
sys.exit(1)
我正在通过uart读取NMEA数据,我需要它逐行输出,但当我执行以下测试时,输出并不是预期的那样
^{pr2}$输出:
$GNDTM,W84,,0.0000,N,0.0000,E,0.0000,W84*41
$GNGNS,,,,,,NN,00,,,,,,C*3C
$GNGBS,,,,,,,,,1,1*5F
$GNGBS,
,,,,,,,,2,1*5C
$GNRMC,,V,,,,,,,,,,N,C*22
$GNVTG,,T,,M,,N,,K,N*32
$GNZDA,,,,,00,00*56
$GNDTM,W84,,0.0000,N,0.0000,E,0.0000,W84*41
$GNGNS,,,,,,NN,00,,,,,,C*3C
$GNGBS,,,,,,,,,1,1*5F
$GNGBS,
,,,,,,,,2,1*5C
$GNRMC,,V,,,,,,,,,,N,C*22
$GNVTG,,T,,M,,N,,K,N*32
$GNZDA,,,,,00,00*56
$GNDTM,W84,,0.0000,N,0.0000,E,0.0000,W84*41
$GNGNS,,,,,,NN,00,,,,,,C*3C
$GNGBS,,,,,,,,,1,1*5F
$GNGBS,
,,,,,,,,2,1*5C
$GNRMC,,V,,,,,,,,,,N,C*22
$GNVTG,,T,,M,,N,,K,N*32
$GNZDA,,,,,00,00*56
$GNDTM,W84,,0.0000,N,0.0000,E,0.0000,W84*41
$GNGNS,,,,,,NN,00,,,,,,C*3C
$GNGBS,,,,,,,,,1,1*5F
$GNGBS,
,,,,,,,,2,1*5C
$GNRMC,,V,,,,,,,,,,N,C*22
$GNVTG,,T,,M,,N,,K,N*32
$GNZDA,,,,,00,00*56
我希望在每一行的开头有sentencetype($GN…),因为我需要能够将行拆分成一个列表。这是因为我需要计算每种句子类型之间出现的时间。在
我用readline()完成了整个过程,但是由于我要传递很多行,而且需要时间来控制,所以我认为使用read()更好。在
我做错什么了?在
目前没有回答
相关问题 更多 >
编程相关推荐