-
Notifications
You must be signed in to change notification settings - Fork 3
Konfiguracja: config.py
Plik config.py jest głównym plikiem konfiguracyjnym całego programu, składowane są tu ustawienia rdzenia jak i wszystkich modułów.
Plik składa się z sekcji konfigurujących poszczególne elementy
Tutaj składowana jest konfiguracja rdzenia
Konfiguracja loggera składa się ze zmiennej dict_log_config
, która zawiera konfigurację loggera w postaci hasha, która jest czytana przez funkcję logging.config.dictConfig
w funkcji setup_logging
w pliku sr0wx.py
.
W tej sekcji nie ustawia się żadnych parametrów, importuje ona je natomiast z pliku .env
Tutaj znajduje się główna konfiguracja rdzenia, tutaj jest lista parametrów wraz z ich znaczeniem:
Parametr | typ | funkcja |
---|---|---|
lat |
float | Szerokość geograficzna stacji (używana na mapie i do modułów pogody) |
lon |
float | Długość geograficzna stacji (używana na mapie i do modułów pogody) |
ctcss_tone |
float | częstotliwość nadawanego tonu CTCSS np. 67.0 , w przypadku None jest wyłączony |
ctcss_volume |
int | głośność tonu CTCSS |
serial_port |
string | Port szeregowy używany do PTT np. /dev/ttyUSB0 , w przypadku None PTT przez port szeregowy jest wyłączone |
serial_baud_rate |
int | baudrate portu szeregowego |
serial_signal |
string | sygnał używany do uruchomienia PTT, wspierane opcje to DTR lub DTR
|
rpi_pin |
int | pi używany do załączania PTT w przypadku Raspberry Pi, w przypadku None PTT przez GPIO jest wyłączone |
multi_processing |
bool | Wieloprocesowość modułów, wszystkie uruchamiają się jednocześnie |
pool_workers |
int | Ilość równoległych procesów w przypadku multiprocessingu |
general_timeout |
int | Limit czasu na uruchomienie wszystkich modułów |
lang_name |
string | nazwa modułu językowego, domyślnie pl_google odpowiadająca nazwie katalogu |
marginDelay |
int | czas odczekany (w milisekundach) między uruchomieniem i wyłączeniem PTT a odtwarzaniem audio |
clockTick |
int | ustawia parametr funkcji pygame.time.Clock().tick(), w głównej pętli odtwarzania. Parametr ustawia ile razy w ciągu sekundy jest sprawdzane jest czy sampel skończył się odtwarzać |
timeDelay |
int | ustawia ile milisekund należy odczekać między kolejnymi samplami |
delayValue |
int | ustala ile trwa przerwa w przypadku sampla _
|
showSamples |
bool | w przypadku uruchomienia wyświetla nazwy sampli podczas odtwarzania |
aux_modules_inversion |
bool | inwersja modułów awaryjnych |
saveAudio |
bool | uruchamia zapis komunikatu do pliku audio |
audioPath |
string | plik, do którego zostanie zapisany komunikat |
check_for_updates |
bool | sprawdzanie aktualizacji na podstawie identyfikatora commit'u |
upstream_url |
string | url do sprawdzania aktualizacji |
read_source_msg |
bool | W przypadku włączenia odczytuje na końcu komunikatu wszystkie źródła danych uruchomionych modułów |
hello_message |
lista | lista sampli do odtworzenia przed komunikatem |
goodbye_message |
lista | lista sampli do odtworzenia po komunikacie |
data_sources_error_message |
list | lista określająca sample informujące o braku połączenia z internetem |
konfiguracja modułu składa się z dwóch elementów: zaimportowania modułu z pliku, np.:
from time_sq2ips import TimeSq2ips
a następnie z utworzenia instancji klasy wraz z konfiguracją np.:
timesq2ips = TimeSq2ips(
language=lang,
start_message=[" _ ", "raport_meteorologiczny", "z_godziny"]
)
Opis dokładnych parametrów znajduje się w opisie konkretnego modułu, ich lista jest tutaj
Po inicjalizacji i konfiguracji wszystkich modułów znajdują się 4 objekty:
-
modules_all
- lista wyszystkich modułów, używana w przypadku parametrów uruchamiania (TODO) -
modules
- lista modułów, które zostaną użyte w przypadku normalnego uruchomienia -
modules_offline
- lista modułów, które zostaną użyte gdy nie będzie połączenia z internetem -
aux_modules
- dict, mówiący jakie moduły uruchomić zastępczo za inne, np.meteoyrsq2ips: openweathersq9atk
mówi, że gdy modułmeteoyrsq2ips
nie będzie działać zamiast niego ma zostać uruchomiony modułopenweathersq9atk