Tracker verbessert, lokales Tracking vorbereitet
This commit is contained in:
38
tracker.py
38
tracker.py
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user