如何通过python中的串行连接从NMEA GPS解析数据?

问题描述

我对python非常陌生,我正在尝试与GPS进行串行通信。每个样本中有4行定期重复,我只希望保存以GPGGA开头的行。 GPS认以 5 Hz 采样。到目前为止,我的代码如下。

import serial
import csv

gps = serial.Serial('COM3',56700,timeout=1)  # opening COM port
gps.flushinput()                    # clears the serial port so there is no data overlaping
gps_bytes = gps.readline()

try: 
    while gps_bytes:
        line = gps.readline()
        if line.find('$GPGGA') != -1:

#else:
    # time,LAT,dir1,LONG,dir2 = line.split(",")[1:5]
            print(line)   

       
        input('Press Enter to stop\n')
except (Exception,KeyboardInterrupt):
        pass
        gps.close()


    #with open("gps_data.csv","a") as f:
     #   writer = csv.writer(f,delimiter=",")
      #  writer.writerow([time.time(),gps_data])

GPS信号线是逗号分隔的。在我只想使用GPGGA,时间(hhmmss。),LON(XX),N,LAT(YY),E行的地方,只需要这3个数值(时间,LONG,LAT)。

$GPGGA,070611.00,XXXX.XX,N,YYY.Y,E,2,12,0.9,15.147,M,39.586,*50

$PNVGBLS,N*33

$GPRMC,A,XXXX.X,0.07,0.00,211020,D*5E

$GPVTG,T,0.13,K,D*70

$GPHDT,T*1B

我想要的是打开串口并开始向我发送数据,直到我按Enter键停止然后将其保存在.csv文件中。有人可以帮助我吗?任何帮助将不胜感激。

提前谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)