У меня есть модуль GPS, который возвращает данные NMEA. Когда я пытаюсь распечатать все данные, которые он возвращает, используя следующий код, я получаю this.Чтение данных из серии в python
while True:
try:
rcv = port.read()
print rcv
Затем я внесла некоторые изменения, которые будут чистить данные чистых данных NMEA. Это выглядит следующим образом:
port = serial.Serial("/dev/ttyAMA0", baudrate=9600, timeout=10.0)
line = []
print("connected to: " + port.portstr)
while True:
try:
rcv = port.read()
except:
rcv = ''
line.append(rcv)
if rcv == '\n':
line = "".join(line)
print line
line = []
Выход выглядит так:
$ GPGGA, 183345.000,5023.3424, N, 01857,3817, E, 1,7,1.25,313.3, М, 42,1, М, * 53
$ GPGSA, A, 3,09,26,28,08,15,18,17 ,,,,,, 1.52,1.25,0.88 * 06
$ GPRMC, 183345,000, A , 5023.3424, N, 01857.3817, E, 0.40.55.07 050214 ,,, A * 54
$ GPVTG, 55,07, T, M, 0,40, N, 0,74, K, A * 0D
$ GPGGA, 183346.000,5023.3423, N, 01857,3817, E, 1,7,1,25,313,3, M, 42,1, М ,, * 57
$ GPGSA, A, 3,09,26,28,08,15,18,17 ,,,,,, 1.52,1.25,0.88 * 06
проблема заключается в том, что иногда он пропускает некоторые запятые или другие данные, а анализатор NMEA читает его неправильно. Есть ли лучший и более чистый способ читать целые кадры NMEA через последовательный порт?