Trace-Modus für den Tracker
This commit is contained in:
parent
acbcfac425
commit
b1d0687952
|
@ -45,6 +45,7 @@ mqtt_user = demo
|
|||
mqtt_pass = 123456
|
||||
orgname = demo
|
||||
passcode = 123456
|
||||
trace = false
|
||||
|
||||
[boat]
|
||||
name = MY boat
|
||||
|
|
|
@ -750,6 +750,7 @@ if __name__ == "__main__":
|
|||
cfg['tracker']['orgname'] = config.get('tracker', 'orgname')
|
||||
cfg['tracker']['passcode'] = config.get('tracker', 'passcode')
|
||||
cfg['tracker']['logdir'] = cfg['logdir']
|
||||
cfg['tracker']['trace'] = config.getboolean('tracker', 'trace')
|
||||
|
||||
# Boat data
|
||||
cfg['boat']['name'] = config.get('boat', 'name')
|
||||
|
|
21
tracker.py
21
tracker.py
|
@ -27,6 +27,9 @@ class Tracker():
|
|||
raise TypeError(f"Invalid tracker type: '{valtype}'. Only supported: {validtypes}")
|
||||
self.ttype = trackertype
|
||||
self.activated = False
|
||||
self.trace = False # Debugging
|
||||
self.trace_fh = None # File Handle der Tracedatei
|
||||
|
||||
self.races = set() # Liste der Regatten, eindeutige Namen
|
||||
self.courses = set() # Liste der Bahnen, eindeutige Namen
|
||||
|
||||
|
@ -74,6 +77,12 @@ class Tracker():
|
|||
"""
|
||||
TODO raceid über userdata? dann topic prüfen?
|
||||
"""
|
||||
if self.trace:
|
||||
self.trace_fh.write(msg.topic)
|
||||
self.trace_fh.write("\n")
|
||||
self.trace_fh.write(msg.payload.decode())
|
||||
self.trace_fh.write("\n\n")
|
||||
self.trace_fh.flush()
|
||||
if msg.topic == "regattahero/orgstatus/thomas":
|
||||
# kommt alle 10s
|
||||
orgstatus = json.loads(msg.payload)
|
||||
|
@ -127,6 +136,7 @@ class Tracker():
|
|||
|
||||
def mqtt_tracker(self, cfg, boat, appdata, boatdata):
|
||||
print("MQTT tracker enabled")
|
||||
self.trace = cfg['trace']
|
||||
client = mqtt.Client()
|
||||
client.on_connect = self.mqtt_on_connect
|
||||
client.on_message = self.mqtt_on_message
|
||||
|
@ -137,9 +147,10 @@ class Tracker():
|
|||
print("MQTT connection refused. Check username and password.")
|
||||
return
|
||||
|
||||
tracefile = os.path.join(os.path.expanduser(cfg['logdir']), 'tracker.log')
|
||||
trace_fh = open(tracefile, 'w+')
|
||||
client.user_data_set({'trace': trace_fh})
|
||||
if cfg['trace']:
|
||||
# TODO Log Hinweis
|
||||
tracefile = os.path.join(os.path.expanduser(cfg['logdir']), 'tracker.log')
|
||||
self.trace_fh = open(tracefile, 'w+')
|
||||
|
||||
topic = "regattahero/tracker/" + cfg['orgname']
|
||||
payload = {
|
||||
|
@ -176,7 +187,7 @@ class Tracker():
|
|||
time.sleep(1)
|
||||
if appdata.track.is_active():
|
||||
self.mqtt_publish(client, topic, payload, bv_lat, bv_lon, bv_sog)
|
||||
print("MQTT tracker shutdown")
|
||||
client.loop_stop()
|
||||
client.disconnect()
|
||||
trace_fh.close()
|
||||
if cfg['trace']:
|
||||
self.trace_fh.close()
|
||||
|
|
Loading…
Reference in New Issue