Dokumentace modulu ui_buttons.py
Modul ui_buttons.py vytváří ovládací tlačítka aplikace, ovládá jejich vzhled,
provádí logiku odesílání hodnot, načítání historie, mazání grafů, restartování BLE komunikace
a poskytuje napojení na ostatní části aplikace (grafy, radiobuttony, frontu, globals).
Umístění hlavních tlačítek v GUI (zmenšeno na 15 %):
Účel modulu
Modul poskytuje kompletní správu všech hlavních akčních tlačítek:
- Send, Reset & Send, Run
- Load history, Clear history, Load history from file
- Restart BLE (s potvrzením)
- Time-dependent balancing mód
- Napojení na frontu → hlavní program
- Aktualizaci full-history grafu po nahrání dat
- Ovládání barvy tlačítka Send při změně radiobuttonu
Hlavní tlačítka v GUI
Vytváří se následující tlačítka:
- Send – hlavní funkce pro odeslání stavových dat
- Reset & Send – nastaví všechny řádky na Reset (4) a odešle
- Run – volá callback z main.py
- Load history – načte historii U ze souboru out_array.txt
- Clear history – smaže historii, přejmenuje log, vymaže graf
- Load history from file – uživatelský výběr *.txt / *.bak
- Restart BLE – bezpečný restart s potvrzovacím dialogem
- Time-dependent balancing – aktivuje časově řízené vyrovnávání
Popis hlavních funkcí
on_send()
- vypne příznaky řízeného balancování
- načte aktuální hodnoty radiobuttonů
- zavolá create_state_file()
- resetuje barvu tlačítka Send
reset_and_send()
Všechny řádky → Reset (4) + volání on_send()
on_load_history(historyU, canvas_full_history)
- načte out_array.txt
- naplní historyU
- překreslí full-history graf
- pošle zprávu do main (queue → „Periodically started“)
on_clear_history()
- vymaže historyU
- přejmenuje out_array.txt → out_array.bak
- aktualizuje graf prázdnými daty
on_load_history_file()
- otevře dialog pro *.txt, *.bak
- načte hodnoty z libovolného log souboru
- aktualizuje graf
on_restart_ble_with_alert()
Před restartem BLE zobrazí dialog Yes / No.
toggle_time_dependent_balancing()
Nastaví příznak pro časové vyrovnávání (LTC3300 sekvence).
set_send_button_color(active)
- True → růžová (uživatel změnil hodnotu)
- False → systémová barva
set_queue(q)
Registruje obousměrnou komunikaci mezi ui a hlavním threadem.
Propojení s ostatními moduly
- ui_radiobuttons – získávání hodnot
- my_tools – log soubory, csv, state soubory
- ui_plots – update_full_history_plot
- globals – stav aplikace, flagy
- main.py – zásadní callbacky + přijímání zpráv přes queue
Tok událostí při stisknutí tlačítka Send
- Uživatel změní radiobutton → tlačítko Send zčervená
- Uživatel klikne na Send
- Barva tlačítka se resetuje
- Získají se radiobutton hodnoty
- Vytvoří se state soubor
- Hlavní aplikace odešle data do BLE zařízení