From 1df714aa3743393a01a13bc67bca339211e2da61 Mon Sep 17 00:00:00 2001 From: Thomas Hooge Date: Thu, 11 Sep 2025 15:07:06 +0200 Subject: [PATCH] Improved time formatting and added new gps fix time --- boatdata.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/boatdata.py b/boatdata.py index 4b1250e..ce0be1b 100644 --- a/boatdata.py +++ b/boatdata.py @@ -43,6 +43,7 @@ RPOS - Rudder Position, Auslenkung Hauptruder SOG - Speed Over Ground, Geschwindigkeit über Grund STW - Speed Through Water, Geschwindigkeit durch das Wasser SatInfo - Satellit Info, Anzahl der sichtbaren Satelliten +TSPOS - Timestamp des Position-Fixes (sie z.B. 0183/GLL) TWD - True Wind Direction, wahre Windrichtung TWS - True Wind Speed, wahre Windgeschwindigkeit TXT - Textnachricht / Alarm @@ -211,13 +212,19 @@ class BoatValueDate(BoatValue): return formatted class BoatValueTime(BoatValue): - # timefmt = hh:mm | hh:mm:ss + # TODO Formatting! def __init__(self, shortname, timezone='UTC'): super().__init__(shortname) self.tz = timezone - self.timefmt = 'hh:mm:' # TODO hh:mm:ss | ...? + self.timefmt = 'hh:mm' # TODO hh:mm | hh:mm:ss | hh:mm:ss.000 | ... ? def format(self): - formatted = self.value + if self.timefmt == 'hh:mm': + formatted = self.value.strftime("%H:%M") + elif self.timefmt == 'hh:mm:ss': + formatted = self.value.strftime("%H:%M:%S") + else: + # unbekanntes Format + formatted = self.value.strftime("%H%M%S") return formatted class BoatValueSpeed(BoatValue): @@ -445,6 +452,7 @@ class BoatData(): self.lon = BoatValueGeo("LON", "lon", "deg") self.gpsd = BoatValueDate("GPSD", "ISO") self.gpst = BoatValueTime("GPST") + self.tspos = BoatValueTime("TSPOS") self.sog = BoatValueSpeed("SOG", "kn") self.cog = BoatValueAngle("COG", "deg") self.hdm = BoatValueAngle("HDM", "deg") @@ -534,6 +542,7 @@ class BoatData(): 'ROT': self.rot, 'SOG': self.sog, 'STW': self.stw, + 'TSPOS': self.tspos, 'TWD': self.twd, 'TWS': self.tws, 'TXT': self.txt,