Skip to content

Konfiguracja: config.py

sq2ips edited this page Feb 8, 2025 · 16 revisions

Plik config.py jest głównym plikiem konfiguracyjnym całego programu, składowane są tu ustawienia rdzenia jak i wszystkich modułów.

Sekcje

Plik składa się z sekcji konfigurujących poszczególne elementy

Rdzeń

Tutaj składowana jest konfiguracja rdzenia

Logger

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.

.env

W tej sekcji nie ustawia się żadnych parametrów, importuje ona je natomiast z pliku .env

Konfiguracja ogólna

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

Moduły

Konfiguracja modułów

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

Listy modułów

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
Clone this wiki locally