Dokumentace – my_tools.py

Pomocné funkce pro práci s LiC hodnotami, souborovým systémem a stavovými řetězci

← Zpět na hlavní dokumentaci

1. Cesty a detekce operačního systému

Modul my_tools.py automaticky přepíná cesty souborů podle toho, jestli běží na Linuxu nebo Windows. Všechny signální soubory (S, U, H, R, Q, Sreq) se ukládají v RAMdisku.


# Linux cesty
"/home/host/FTP/ramdisk/S"

# Windows cesty
"C:\\home\\host\\FTP\\ramdisk\\S"

2. Tvorba signálních souborů

create_file_to_send(what_file)

Funkce vytvoří signální soubor (S, U, R, H, Q). Postup:


create_file_to_send("S")

3. Zpracování Uresp.txt – hodnoty LiC

DataFromUresp(historyU)

Čte napětí LiC1…LiC7 a ukládá je do historyU. Detekuje hodnoty pomocí regulárního výrazu a ukládá je v pořadí:


Lic7, Lic6, ..., Lic1   # (nejnovější na indexu 0)

Na konci Uresp.txt smaže.

4. Zpracování Sresp.txt – stavové řetězce

DataFromSresp(radio_vars)

Čte řádky typu:

*1032101#

Výsledkem je pole:

[1,0,3,2,1,0,1]

update_radio_buttons_from_numbers()

Přenese stav 0/1/2/3 → do radiobuttonů.

5. Stavové soubory Sreq a RUN soubory

create_run_file(q)

Vytváří soubor R = spuštění RUN cyklu.

create_state_file(radio_vars)

Převádí radiobuttony na řetězec:

*1032101#

A ukládá jej do souboru Sreq.

6. Práce s CSV logem

save_full_state_to_csv(historyU, radio_vars)

Ukládá stav do out_array.txt ve formátu:

ROW;TIME;LiC7..LiC1;Sta7..Sta1

load_historyU_from_csv()

Načte zpět CSV a obnoví historyU.

7. Výpočet průměrů LiC

prumery_LiC7_6_5_4()

prumery_LiC3_2_1()

prumery_LiC47_13()

Příklad:


{
 "LiC4": 3.6501,
 "LiC5": 3.6522,
 "LiC6": 3.6488,
 "LiC7": 3.6499
}

8. Analýzy limitů LiC

analyze_LiC_top7_6_5_4()

analyze_LiC_top3_2_1()

Vrací např.:


{
 "min": 3.6488,
 "max": 3.6522,
 "avg": 3.6502,
 "over_limit_dolni": 0,
 "over_limit_horni": 3,
 "LiC_min": 6,
 "LiC_max": 5
}

9. Stavové řetězce *XXXXXXX#

build_LiC_status()

Generuje řetězec typu:

*1032101#

parse_status_string(status_string)

Převede řetězec na seznam čísel:

[1,0,3,2,1,0,1]

10. Porovnávání a převody polí

convert_radio_to_status(values)


[4,1,2,3,1,4,1] → [1,0,3,2,1,0,0]

compare_status_arrays(a1, a2)

Vrací True/False podle shody.

Stavový diagram – my_tools.py

IDLE Periodic File Scan ProcessUresp UpdateHistory ProcessSresp ParseStatus UpdateGUI CreateRunFile Write R file Analysis Enough data? Compute averages Build *XXXXXXX#