Tracker verbessert, lokales Tracking vorbereitet

This commit is contained in:
2025-09-21 10:00:56 +02:00
parent e5646b6f27
commit f0ebdd0201
4 changed files with 60 additions and 7 deletions

View File

@@ -3,9 +3,17 @@ Tracker-Daten
Mögliche Typen:
HERO - Regatta Hero
SDCARD
LOCAL - gpx Datei
SDCARD - nur für ESP32 relevant
LOCAL - Logdatei. GPX ist ungeeignet, weil das Gerät zu jedem Zeitpunkt
ausgeschaltet werden kann und somit die Datei in einem
ungültigen Zustand sein kann.
Es wird eine Datei track.log.geschrieben.
Um fehlende Daten festzustellen wird ein fortlaufender Zähler
geschrieben.
SERVER - spezielle Software benötigt, kann auch ein Raspi an Bord sein
Der Tracker sendet einen HTTP-POST. Der Server speichert
die Daten für mehrere Geräte. Vorläufiger Servername:
trackserver
NONE - kein Tracking
Wenn die Verbindung zum Server im Internet nicht funktioniert, werden
@@ -119,6 +127,32 @@ class Tracker():
def set_active(self, newval):
self.activated = newval
def local_tracker(self, cfg, boat, appdata, boatdata):
# TODO / WIP
self.log.info("Local tracker enabled")
# Zugriff auf Boatdata: Referenzen für leichten schnellen Zugriff
bv_lat = boatdata.getRef("LAT")
bv_lon = boatdata.getRef("LON")
bv_hdop = boatdata.getRef("HDOP")
bv_tspos = boatdata.getRef("TSPOS")
self.local_dt = 15
self.local_lfdno = 0
trackerfile = "/tmp/test.log" # TODO Konfiguration lesen
fh = open(trackerfile, 'a+')
while not appdata.shutdown:
time.sleep(self.local_dt)
self.local_lfdno += 1
data = f"{},{},{},{}\n".format(
self.local_lfdno,
bv_tspos.getValueRaw(),
bv_lat.getValueRaw(),
bv_lon.getValueRaw(),
bv_hdop.getValueRaw())
fh.write(data)
fh.close()
def set_hero_raceid(self, newraceid):
self.hero_raceid = newraceid