Working data ingress into live data buffer

This commit is contained in:
2026-07-08 12:30:47 +01:00
parent 5887e0d0a0
commit 05bc8bdf25
7 changed files with 131 additions and 55 deletions

View File

@@ -18,6 +18,7 @@ import dynalab.ui.windows
from dynalab.ui.windows import build_loading, build_windows
import dpg_gauges as dpgg
from dpg_gauges.exceptions import GaugeNotFoundError
def _setup_logging(level: int = logging.INFO) -> None:
@@ -168,10 +169,15 @@ def run() -> None:
except Empty:
pass
else:
dpgg.analog_gauge(
dpgg.digital_gauge(
tag=f"{new_signal.id}",
label=f"{new_signal.name}",
parent=MENU_WINDOW_DATA_INPUT,
unit=new_signal.unit if new_signal.unit is not None else "",
value=0,
precision=1,
min_value=new_signal.min_value,
max_value=new_signal.max_value,
)
try:
@@ -181,6 +187,22 @@ def run() -> None:
else:
dpgg.delete_gauge(f"{removed_signal.id}")
ctr: int = 0
while not state.new_data_id.empty() or ctr < 5:
try:
new_value_id = state.new_data_id.get_nowait()
except Empty:
pass
else:
try:
dpgg.set_value(
tag=f"{new_value_id}", value=state.live_data[new_value_id]
)
except GaugeNotFoundError:
pass
ctr += 1
# Render frame
dpg.render_dearpygui_frame()
finally: