Erste funktionsfähige Tracker-Version

This commit is contained in:
2025-09-15 19:33:33 +02:00
parent ebb7b42d48
commit eb41bdafa4
6 changed files with 291 additions and 92 deletions

View File

@@ -94,10 +94,10 @@ import cairo
import math
import threading
import socket
import pynmea2
import can
import serial
import smbus2
import pynmea2
import bme280
import math
import time
@@ -301,7 +301,6 @@ class Frontend(Gtk.Window):
def __init__(self, cfg, appdata, device, boatdata, profile):
super().__init__()
self.appdata = appdata
self.appdata.setFrontend(self)
self.owndev = device
self.boatdata = boatdata
self._config = cfg['_config']
@@ -311,6 +310,7 @@ class Frontend(Gtk.Window):
self.connect("delete-event", self.on_delete)
self.connect("destroy", self.on_destroy)
self.appdata.setFrontend(self)
if self._fullscreen:
self.fullscreen()
@@ -396,11 +396,13 @@ class Frontend(Gtk.Window):
self.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.BLANK_CURSOR))
def run(self):
GLib.timeout_add_seconds(1, self.on_timer)
appdata.refreshStatus()
GLib.timeout_add_seconds(1, self.on_timer_fast)
GLib.timeout_add_seconds(10, self.on_timer_slow)
self.show_all()
Gtk.main()
def on_timer(self):
def on_timer_fast(self):
# Boatdata validator
boatdata.updateValid(5)
# Tastaturstatus an Seite durchreichen
@@ -409,6 +411,10 @@ class Frontend(Gtk.Window):
self.da.queue_draw()
return True
def on_timer_slow(self):
appdata.refreshStatus()
return True
def on_draw(self, widget, ctx):
# Fenstertransparenz
ctx.set_source_rgba(0, 0, 0, 0)
@@ -765,7 +771,7 @@ if __name__ == "__main__":
t_rxd_n2k.start()
if cfg['nmea0183']:
print("NMEA0183 enabled, library version {}".format(pynmea2.version))
t_rxd_0183 = threading.Thread(target=nmea0183.rxd_0183, args=(appdata,cfg['0183_port'],))
t_rxd_0183 = threading.Thread(target=nmea0183.rxd_0183, args=(appdata,boatdata,cfg['0183_port'],))
t_rxd_0183.start()
if cfg['gps']:
print("GPS enabled (local)")
@@ -776,6 +782,7 @@ if __name__ == "__main__":
t_rxd_net = threading.Thread(target=rxd_network, args=(cfg['net_port'],cfg['net_addr']))
t_rxd_net.start()
if cfg['tracker']['type'] != 'NONE':
appdata.track.set_type( cfg['tracker']['type'])
t_tracker = threading.Thread(target=appdata.track.mqtt_tracker, args=(cfg['tracker'],cfg['boat'],appdata,boatdata))
t_tracker.start()
if not cfg['simulation']: