commit 88754840f2ece9748821e4939d7e2490dc19780a Author: DenialOfIntelligence Date: Fri Jun 16 15:53:48 2023 +0200 Initial Commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..021760d --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +Code for reading nmea data from the Serial port and displaying gps data using ipyleafleat. + +# All code is untested + +Based on [this code](https://github.com/Knio/pynmea2/blob/master/examples/read_serial.py) diff --git a/render.py b/render.py new file mode 100644 index 0000000..48799fc --- /dev/null +++ b/render.py @@ -0,0 +1,36 @@ +from ipyleaflet import Map, Marker +import pynmea2 +import serial +import io + +ser = serial.Serial('/dev/ttyS1', 9600, timeout=5.0) +sio = io.TextIOWrapper(io.BufferedRWPair(ser, ser)) +last_time=00 + + +def check_last_update(time,last_time): + if nmea==last_nmea: + return False + else: + return True + +while 1: + try: + line = sio.readline() + msg = pynmea2.parse(line) + except serial.SerialException as e: + print('Device error: {}'.format(e)) + break + except pynmea2.ParseError as e: + print('Parse error: {}'.format(e)) + continue + else: + if check_last_update(time=msg.timestamp,last_time=last_time)==True: + if last_time==00: + m = Map(center=msg.latitude, msg.longitude, zoom=15) + marker = Marker(location=center, draggable=False) + m.add_layer(marker); + display(m) + else: + marker.location=(msg.latitude, msg.longitude) + last_time=msg.timestamp