NMEA 데이터를 반환하는 GPS 모듈이 있습니다. 다음 코드를 사용하여 반환하는 모든 데이터를 인쇄하려고 할 때 this이 표시됩니다.파이썬에서 직렬 데이터 읽기
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, M, 42.1, M, * 53
$ GPGSA, A, 3,09,26,28,08,15,18,17 ,,,,,, 1.52,1.25,0.88 * 06
$ GPRMC, 183345.000하는 , 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, M ,, * 57
$ GPGSA, A, 3,09,26,28,08,15,18,17 ,,,,,, 1.52,1.25,0.88 * 06
문제 때로는 쉼표 나 기타 데이터가 누락되어 NMEA 파서가 잘못 읽었을 수 있습니다. 시리얼을 통해 전체 NMEA 프레임을 읽을 수있는 더 좋고 깨끗한 방법이 있습니까?