Added multiple data graphs and stronger safety with threads

This commit is contained in:
2026-04-07 17:53:38 +02:00
parent 95ba7376c5
commit 2d631f0669
8 changed files with 311 additions and 9 deletions

View File

@@ -7,6 +7,15 @@ from threading import Lock, Thread
from serial import Serial
from queue import Queue
@dataclass
class Buffers:
timestamp: list[int] = field(default_factory=list)
speed: list[float] = field(default_factory=list)
vbat: list[float] = field(default_factory=list)
teng: list[float] = field(default_factory=list)
lat: list[float] = field(default_factory=list)
lng: list[float] = field(default_factory=list)
@dataclass
class AppState:
running: bool = True
@@ -16,11 +25,21 @@ class AppState:
serial_thread_running: bool = False
telemetry_thread: Thread | None = None
telemetry_thread_running: bool = False
serial_status_thread: Thread | None = None
serial_status_queue: Queue = field(default_factory=Queue)
ui_worker_thread: Thread | None = None
packet_queue: Queue = field(default_factory=Queue)
latest_telemetry: dict = field(default_factory=dict)
telemetry_valid: bool = False
raw_buffers: Buffers = field(default_factory=Buffers)
live_buffers: Buffers = field(default_factory=Buffers)
live_buffers_updated: bool = False
buffer_dump_thread: Thread | None = None
lock: Lock = field(default_factory=Lock)