python GPS – NMEA sentence Parser

from datetime import datetime
import sqlite3
import time
import requests

class db_create():
    def __init__(self,lon,lat,speed):
        self.lon=lon
        self.lat=lat
        self.speed=speed
        self.time=time.time()
    def __str__(self):
        return(" Lon={}\n Lat={}\n Speed={}".format(self.lon,self.lat,self.speed))
class decode():
    def __init__(self,serial_data):
        self.raw_lat=serial_data[3]
        self.raw_lon=serial_data[5]
        self.speed_knot=serial_data[7]

        self.to_decaminal()

    def to_decaminal(self):
        self.lat=float(self.raw_lat[0:2])+(float(self.raw_lat[2:4])/60)+(float(self.raw_lat[5:7])/3600)
        self.lon=float(self.raw_lon[0:3])+(float(self.raw_lon[3:5])/60)+(float(self.raw_lon[6:8])/3600)
        self.speed=float(self.speed_knot)*1.85200 #knots to kmh
        
gprmc="$GNRMC,091805.00,A,3953.300557,N,03252.202539,E,0.102,,200619,,,A*6"#exapmle data string of telnet

if (gprmc[0:6] == "$GNRMC"):
    parsed_data=gprmc.split(",")
    if (parsed_data[2]=="A"):
        decoded_data=decode(parsed_data)
        print(db_create(decoded_data.lon,decoded_data.lat,decoded_data.speed))
    else:
        print("gps error")

It is an example for parsing nmea sentes with python and it creates the db , you need to create serial connection to use with gps receiver.

#gprmc string is example of serial data stream you need to create serial connection to use

http://aprs.gids.nl/nmea/ # here, you can find more information about gps nema sentences

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir