read_nmea.py 777 B

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/python3
  2. import serial
  3. import time
  4. from pynmeagps import NMEAReader
  5. gga = None
  6. rmc = None
  7. deadline = time.monotonic() + 15
  8. with serial.Serial('/dev/ttyAMA0', 38400, timeout=1) as stream:
  9. nmr = NMEAReader(stream)
  10. while time.monotonic() < deadline and (gga is None or rmc is None):
  11. raw_data, msg = nmr.read()
  12. if msg is None:
  13. continue
  14. if msg.msgID == "GGA":
  15. gga = msg
  16. elif msg.msgID == "RMC":
  17. rmc = msg
  18. if gga is None or rmc is None:
  19. print("Trame GGA ou RMC manquante")
  20. else:
  21. print(f"Date : {rmc.date}")
  22. print(f"Heure_UTC : {rmc.time}")
  23. print(f"Latitude : {gga.lat} {gga.NS}")
  24. print(f"Longitude : {gga.lon} {gga.EW}")
  25. print(f"Altitude : {gga.alt} {gga.altUnit}")