Bugfix und Regattaauswahl verbessert

This commit is contained in:
Thomas Hooge 2025-09-18 19:09:12 +02:00
parent eab6cdf4c9
commit 65335e3c91
2 changed files with 14 additions and 6 deletions

View File

@ -233,7 +233,7 @@ class RaceTracker(Page):
x0 = 8 # Labelspalte
x1 = 88 # Datenspalte
y0 = 75
y0 = 70
yoffset = 16
# Bootsdaten
@ -324,8 +324,8 @@ class RaceTracker(Page):
# Rechte Spalte mit Regattaauswahl
x = 208
y = 75
yoffset = 16
y = 70
yoffset = 21
# Mögliche Regatten
self.races = self.app.track.hero_get_races()

View File

@ -4,7 +4,7 @@ Tracker-Daten
Mögliche Typen:
HERO - Regatta Hero
SDCARD
LOCAL
LOCAL - gpx Datei
SERVER - spezielle Software benötigt, kann auch ein Raspi an Bord sein
NONE - kein Tracking
@ -83,6 +83,7 @@ class Tracker():
}
self.hero_raceid = None # Aktuell ausgewählte Regatta
self.hero_racephase = 0 # Bei Änderung Event auslösen
# MQTT
self.client = mqtt.Client()
@ -345,7 +346,14 @@ class Tracker():
# dem Topic angehängt ist noch die raceid
payload = json.loads(msg.payload)
self.hero_racestatus = payload['racestatus']
racephase = payload['racestatus']['racephase']
if self.hero_racephase != racephase:
# Phasenänderung! Event!
print("Event: Phasenübergang {} -> {}".format(self.hero_racephase, racephase))
self.hero_racephase = racephase
# payload['racestatus']['racestarted']
# payload['racesettings']
"""
time: negativ: Zeit vor dem Start, positiv: Zeit nach dem Start
in Sekunden
@ -369,7 +377,7 @@ class Tracker():
self.log.warning(f"UNKNOWN TOPIC: {msg.topic}")
self.log.debug(msg.payload)
def mqtt_publish(self, client, topic, payload, bv_lat, bv_lon, bv_sog):
def mqtt_publish(self, topic, payload, bv_lat, bv_lon, bv_sog):
"""
Payload vorbelegt als Template, so daß nur noch die veränderlichen
GPS-Daten eingefügt werden müssen: LAT LON SOG TIMESTAMP
@ -385,7 +393,7 @@ class Tracker():
payload['gps']['lon'] = round(lon, 5)
payload['gps']['speed'] = sog
payload['gps']['timestamp'] = time.strftime("%Y-%m-%dT%H:%M:%S.000Z", time.gmtime())
client.publish(topic, json.dumps(payload))
self.client.publish(topic, json.dumps(payload))
else:
self.log.debug("No GPS data available. Nothing published!")