Py-Ser-gps/render.py
2023-06-17 13:05:18 +02:00

36 lines
1 KiB
Python

from ipyleaflet import Map, Marker
import pynmea2
import serial
import io
ser = serial.Serial('/dev/ttyACM0', 9600, timeout=5.0)
sio = io.TextIOWrapper(io.BufferedRWPair(ser, ser))
last_time = 00
while True:
try:
line = sio.readline().rstrip('\n') # Remove newline character
msg = pynmea2.parse(line)
latitude = msg.latitude
longitude = msg.longitude
time = msg.timestamp
except serial.SerialException as e:
# print('Device error: {}'.format(e))
break
except pynmea2.ParseError as e:
# print('Parse error: {}'.format(e))
continue
except Exception as e:
continue
else:
if last_time == 00:
center = (latitude, longitude)
m = Map(center=center, zoom=15)
marker = Marker(location=center, draggable=False)
m.add_layer(marker)
display(m)
last_time = time
else:
marker.location = (latitude, longitude)
last_time = time