Skip to content

Releases: sq8bwm/radiodyplom-bridge

0.1.32 — Logger32 działa naprawdę

Choose a tag to compare

@sq8bwm sq8bwm released this 30 Sep 16:09
b5226e1

Logger32 — sprawdzony na żywym programie

Wersja 0.1.31 dodała obsługę Logger32 zbudowaną z opisu formatu. Pierwszy test
na prawdziwym programie (Windows, Logger32 4.0.344) pokazał, że każde QSO
odpada
z komunikatem „bez wymaganych pól – missing: station_callsign".

Przechwycony rekord wyjaśnił dlaczego: Logger32 nie wysyła pola
STATION_CALLSIGN
. Znak, pod którym pracujesz, siedzi w polu OPERATOR
— i tak też rozumie to sam program (instrukcja Logger32 nazywa to wprost
„operator/station callsign"). Mostek bierze go teraz stamtąd i mówi o tym raz
w logu:

Logger32 nie podaje znaku stacji; biorę go z pola OPERATOR: SQ8BWM.

Znak stacji zmienia się w Logger32 przez File ➪ Change operator albo
Ctrl+U w panelu wpisu QSO. Kto pracuje pod innym znakiem niż operator,
dopisuje go w mostku w Rozmnażanie QSO na wiele stacji — reguła nadpisuje
znak z loggera.

Przy okazji z tego samego rekordu: Logger32 numeruje łączności polem
APP_LOGGER32_QSO_NUMBER, więc klucz deduplikacji opiera się o numer razem
z odciskiem treści — dokładniej niż o samą treść.

Instrukcja uzupełniona o krok, którego brakowało

Po ustawieniu eksportu QSO po TCP trzeba jeszcze prawym klikiem na panel TCP
wybrać „Click to Open socket"
. Dopóki się tego nie zrobi, wszystko wygląda na
skonfigurowane, a nic nie leci; po otwarciu napis TCP robi się zielony.
Instrukcja Logger32 nie mówi o tym wprost.

Pełny przepis: Loggery i dane.

Poza tym

  • Włączenie nasłuchu TCP wreszcie mówi, że wymaga restartu. Wcześniej okno
    kwitowało zapis komunikatem „Zapisano i zastosowano", choć nasłuch powstaje
    dopiero przy starcie programu.
  • Więcej w logu, gdy QSO nie przejdzie. Przy brakujących polach widać teraz
    także to, co przyszło — bez tego wiadomo tylko, czego brak, a nie czym to
    zastąpić. Ta zmiana pozwoliła rozwiązać sprawę Logger32 w kilka minut.

Pliki

Plik System
radiodyplom-bridge-0.1.32-x64-setup.exe Windows 10+ — instalator
radiodyplom-bridge-0.1.32-x64-portable.exe Windows 10+ — bez instalacji
radiodyplom-bridge-0.1.32-x86_64.AppImage Linux — uniwersalny
radiodyplom-bridge-0.1.32-amd64.deb Debian / Ubuntu
radiodyplom-bridge-headless-0.1.32-all.deb bez interfejsu — Raspberry Pi, serwer
sha256sum -c SHA256SUMS

Testów: 590 — w tym oparte na prawdziwym rekordzie z Logger32, wklejonym bajt
w bajt.

0.1.29 — komunikat o niedopuszczonym znaku mówi prawdę i krótko

Choose a tag to compare

@sq8bwm sq8bwm released this 08 Sep 15:56
31e30bd

„Konto nie ma tego znaku na liście stacji" — nieprawda, i już tego nie mówimy

Ustalone na żywej akcji: konto z zaznaczonym uprawnieniem „mogę logować jako
wszystkie stacje"
nie mogło logować na znak SN8N, bo SN8N nie był
dodany do akcji.

Czyli warunki są dwa i muszą być spełnione oba:

  1. stacja jest dodana do akcji,
  2. stacja jest dodana do konta, którego PIN-em leci QSO.

Serwis w obu przypadkach odpowiada identycznie (savedTo: []), więc program nie
umie rozdzielić przyczyn — i przestał udawać, że umie. Dawna rada „Dopisz
stację w Managerze"
kierowała w jedno miejsce, i to nie zawsze właściwe.

Nowa treść, przy okazji skrócona z 280 do 110 znaków (to dymek, nie okno):

Konto (SQ8BWM) nie może logować na SN8N w tej akcji. Sprawdź, czy stacja jest
dodana do akcji i do tego konta.

W logu, gdzie jest miejsce na zdanie więcej:

Cel SN8N: serwis nie pozwala logować na ten znak w trwającej akcji (PIN
główny (SQ8BWM)). Te kopie wrócą jako NOT_SAVED. Sprawdź dwa warunki: czy
stacja jest dodana do akcji i czy jest dodana do konta, z którego lecą kopie.

Wypadło też słowo „aktywator": w akcji dodaje się stacje, a „aktywator"
znaczy w krótkofalarstwie coś innego.

Poprawiona dokumentacja

Tam ten błąd żył najdłużej — docs/konfiguracja.md i docs/fan-out.md
twierdziły, że wystarczy mieć znak na liście stacji konta. Doszła sekcja
„Dwa warunki, nie jeden" z pomiarem.

Pliki

Plik System
radiodyplom-bridge-0.1.29-x64-setup.exe Windows 10+ — instalator
radiodyplom-bridge-0.1.29-x64-portable.exe Windows 10+ — bez instalacji
radiodyplom-bridge-0.1.29-x86_64.AppImage Linux — uniwersalny
radiodyplom-bridge-0.1.29-amd64.deb Debian / Ubuntu
radiodyplom-bridge-headless-0.1.29-all.deb bez interfejsu — Raspberry Pi, serwer
sha256sum -c SHA256SUMS

Testów: 558.

0.1.28 — pusta lista stacji poza akcją nie blokuje celów

Choose a tag to compare

@sq8bwm sq8bwm released this 08 Sep 15:09
5937949

Pusta lista stacji poza akcją nie blokuje już celów

Ta sama przyczyna co w 0.1.27 — serwis podaje listę stacji tylko w trakcie
akcji
— ale w gorszym miejscu: w sprawdzaniu celów rozgałęziania. Kod pytał
„czy ten znak jest na liście" przed pytaniem „czy lista w ogóle jest",
więc poza akcją każda reguła dostawała stan blokujący i log przy każdym
starcie mówił:

Cel SN8N: konto tego celu nie ma tego znaku na liście stacji. Te kopie wrócą
jako NOT_SAVED, dopóki nie dopiszesz stacji w Managerze na radiodyplom.pl.

— przy poprawnej konfiguracji.

Teraz pusta lista jest rozpatrywana osobno:

Stan Wynik
pusto, poza akcją brak aktywnej akcji — nie blokuje, bo reguła wpisana dzień przed akcją jest poprawna
pusto w trakcie akcji brak stacji — blokuje, bo wtedy serwis miałby co pokazać, a nie pokazuje nic
pusto, starszy serwis (bez informacji o akcjach) nie wiadomo — i tak to nazywamy

Znak spoza niepustej listy nadal jest blokadą — poprawka tego nie
rozmiękcza i jest na to osobny test.

Pliki

Plik System
radiodyplom-bridge-0.1.28-x64-setup.exe Windows 10+ — instalator
radiodyplom-bridge-0.1.28-x64-portable.exe Windows 10+ — bez instalacji
radiodyplom-bridge-0.1.28-x86_64.AppImage Linux — uniwersalny
radiodyplom-bridge-0.1.28-amd64.deb Debian / Ubuntu
radiodyplom-bridge-headless-0.1.28-all.deb bez interfejsu — Raspberry Pi, serwer
sha256sum -c SHA256SUMS

Testów: 554.

0.1.27 — brak stacji poza akcją to nie awaria

Choose a tag to compare

@sq8bwm sq8bwm released this 08 Sep 14:53
7c8bb37

„Konto nie ma przypisanej żadnej stacji" — już nie straszy bez powodu

Zagadka wisiała kilka dni: panel Konto na radiodyplom.pl pokazywał
brak — konto nie ma przypisanej żadnej stacji, mimo poprawnego PIN-u
i konta ze stacjami. Widać to było i na Windowsie, i na Linuksie.

Rozstrzygnięte doświadczalnie: serwis podaje listę stacji tylko w trakcie
akcji.
Po założeniu akcji próbnej komunikat zniknął, a stacje się pokazały.

Poza akcją pusta lista jest więc normalna, a nasz komunikat brzmiał jak awaria
konta. Panel rozróżnia teraz trzy sytuacje:

Stan Co widać
serwis nie podał listy (starsze API) spokojna podpowiedź, jak dotąd
pusto, bez trwającej akcji serwis podaje listę stacji tylko w trakcie akcji
pusto w trakcie akcji ostrzeżenie — i mocniejsze niż dotąd: QSO zostaną odrzucone

Trzeci przypadek to jedyny, w którym naprawdę jest problem — i dopiero teraz
da się go odróżnić od dwóch pozostałych.

Pliki

Plik System
radiodyplom-bridge-0.1.27-x64-setup.exe Windows 10+ — instalator
radiodyplom-bridge-0.1.27-x64-portable.exe Windows 10+ — bez instalacji
radiodyplom-bridge-0.1.27-x86_64.AppImage Linux — uniwersalny
radiodyplom-bridge-0.1.27-amd64.deb Debian / Ubuntu
radiodyplom-bridge-headless-0.1.27-all.deb bez interfejsu — Raspberry Pi, serwer
sha256sum -c SHA256SUMS

Testów: 550.

0.1.26 — powiększanie widoku

Choose a tag to compare

@sq8bwm sq8bwm released this 08 Sep 14:29
c562609

Widok da się powiększyć — dwiema drogami

Droga Gdzie działa Co skaluje
Ctrl +, Ctrl −, Ctrl 0 i szczypanie dwoma palcami okno na pulpicie wszystko: tekst, odstępy, ikony, ramki
ikona aA w nagłówku (normalny → duży → bardzo duży) okno i przeglądarka, także z telefonu tylko tekst, więc na małym ekranie zostaje więcej treści

Oba wybory są zapamiętywane, bo kto potrzebuje większego widoku, potrzebuje go
przy każdym starcie.

Najważniejsze jest jednak to, czego nie widać: wszystkie rozmiary są teraz
względne
. Dopóki były wpisane w pikselach, ustawienie „większa czcionka"
z systemu albo z przeglądarki było przez program ignorowane — a to
pierwsze, co ma ustawione osoba, która słabo widzi. Teraz jest szanowane,
a ikona aA mnoży tę podstawę (118% i 140%).

Czytelniej dla wszystkich

Kolory pomocnicze w motywie jasnym były zbyt jasne na małym tekście —
zmierzone: szary tekst podpowiedzi 4,42:1, ostrzeżenia 3,25:1, potwierdzenia
3,49:1, wobec progu 4,5:1. Zostały przyciemnione dokładnie tyle, ile potrzeba
(4,81 / 4,97 / 4,70). Motyw ciemny był w porządku i został bez zmian.

Obwódka focusu klawiatury pojawia się teraz na wszystkim, co da się
kliknąć — wcześniej tylko na ikonach w nagłówku.

Poprawki wąskiego ekranu (z telefonu)

  • „Zakończ" nie wychodzi już za krawędź. Przy interfejsie wystawionym
    w sieć w nagłówku dochodzi ikona kłódki i rząd przycisków przestawał się
    mieścić; teraz łamie się na dwie linie.
  • Pasek zakładek widocznie się przesuwa. Ostatnia zakładka wyglądała na
    uciętą, bo nic nie mówiło, że pasek można przewinąć palcem — prawa krawędź
    jest teraz miękko wygaszona.

Pliki

Plik System
radiodyplom-bridge-0.1.26-x64-setup.exe Windows 10+ — instalator
radiodyplom-bridge-0.1.26-x64-portable.exe Windows 10+ — bez instalacji
radiodyplom-bridge-0.1.26-x86_64.AppImage Linux — uniwersalny
radiodyplom-bridge-0.1.26-amd64.deb Debian / Ubuntu
radiodyplom-bridge-headless-0.1.26-all.deb bez interfejsu — Raspberry Pi, serwer
sha256sum -c SHA256SUMS

Testów: 547.

0.1.25 — układ dostosowany do wąskiego ekranu

Choose a tag to compare

@sq8bwm sq8bwm released this 08 Sep 13:06
fa30f74

Interfejs na telefonie wygląda jak interfejs, nie jak pomniejszony monitor

Okno w przeglądarce działało z telefonu od 0.1.20, ale był to układ pisany pod
monitor, pomniejszony przez przeglądarkę do mikrodruku. Przyczyna okazała
się banalna: brak <meta viewport>, więc przeglądarka rysowała stronę tak,
jakby ekran miał 980 px.

Przy ekranie węższym niż 620 px:

  • liczniki po dwa w rzędzie zamiast pięciu w jednym,
  • zakładki w jednym rzędzie, przewijanym palcem — sześć zakładek zawiniętych
    do drugiego rzędu zabierało pół ekranu,
  • dwukolumnowe pary pól (Adres/Port, znak/operator w rozgałęzieniach) schodzą
    do jednej kolumny,
  • pola i przyciski pod palec: minimum 40 px wysokości i 16 px czcionki
    w polach — przy mniejszej przeglądarki na telefonach przybliżają stronę przy
    wejściu w pole i tak ją zostawiają,
  • tabele przewijają się w bok wewnątrz swoich paneli, więc nagłówek nie
    ucieka razem z treścią,
  • zakładka O programie pokazuje etykietę nad wartością, bo ścieżki plików są
    długie.

To ten sam plik, który jedzie w oknie programu, więc te reguły wchodzą też, gdy
zwęzisz okno na monitorze. Okno startuje w 900×700 — domyślnie ich nie widać
i biurkowy układ jest dokładnie taki jak dotąd.

Sprawdzone zrzutami przy 380, 600 i 900 px na wszystkich zakładkach.

Następny krok, jeszcze nie zrobiony: tabele Kolejki jako karty „etykieta:
wartość" zamiast wierszy przewijanych w bok. Najpierw warto zobaczyć na
telefonie z prawdziwą kolejką, czy przewijanie w ogóle przeszkadza.

Pliki

Plik System
radiodyplom-bridge-0.1.25-x64-setup.exe Windows 10+ — instalator
radiodyplom-bridge-0.1.25-x64-portable.exe Windows 10+ — bez instalacji
radiodyplom-bridge-0.1.25-x86_64.AppImage Linux — uniwersalny
radiodyplom-bridge-0.1.25-amd64.deb Debian / Ubuntu
radiodyplom-bridge-headless-0.1.25-all.deb bez interfejsu — Raspberry Pi, serwer
sha256sum -c SHA256SUMS

Testów: 533.

0.1.24 — wolne porty przy pierwszym uruchomieniu

Choose a tag to compare

@sq8bwm sq8bwm released this 08 Sep 11:29
e3f8b2e

Wolne porty przy pierwszym uruchomieniu

Do 0.1.23 dobieranie wolnych portów działało tylko w jednej drodze — „Załóż
katalog i uruchom obok". Każde inne pierwsze uruchomienie (instalator,
portable, AppImage, ręcznie utworzony radiodyplom-dane) zasiewało
konfigurację z portami 12060/12061 na ślepo. Gdy działała już inna
instancja mostka, nowa padała od razu na blokadzie portu UDP — pierwsze
uruchomienie po instalacji kończyło się czerwonym banerem awarii.

Teraz przy zasiewie konfiguracji program sprawdza domyślne porty i, gdy są
zajęte, bierze pierwszą wolną parę od 12070 (dziesiątkami: 12070, 12080…).
Nowy port trafia do config.json, do logu i do zakładki Stan — bo logger
trzeba ustawić właśnie na niego, a dokumentacja mówi 12060.

Dwa świadome ograniczenia:

  • tylko przy zasiewie — później porty są decyzją użytkownika, a cicha
    zmiana przy każdym starcie zepsułaby działającą konfigurację loggera;
  • tylko wersje z okienkiem — usługa bez interfejsu dostaje config.json
    z pakietu i portów jej nie ruszamy: nikt nie patrzy wtedy w okno, a usługa
    nasłuchująca po cichu gdzie indziej niż mówi dokumentacja byłaby gorsza od
    takiej, która wprost odmawia startu i pisze powód w journalctl.

Opis.

Pliki

Plik System
radiodyplom-bridge-0.1.24-x64-setup.exe Windows 10+ — instalator
radiodyplom-bridge-0.1.24-x64-portable.exe Windows 10+ — bez instalacji
radiodyplom-bridge-0.1.24-x86_64.AppImage Linux — uniwersalny
radiodyplom-bridge-0.1.24-amd64.deb Debian / Ubuntu
radiodyplom-bridge-headless-0.1.24-all.deb bez interfejsu — Raspberry Pi, serwer
sha256sum -c SHA256SUMS

Testów: 525.

0.1.23 — druga instancja pyta, co zrobić

Choose a tag to compare

@sq8bwm sq8bwm released this 08 Sep 11:12
48b149e

Druga instancja pyta, co zrobić

Kliknięcie AppImage'a, gdy działa wersja z paczki .deb (albo portable
przy wersji z instalatora), podnosiło okno tej działającej — bez słowa
wyjaśnienia. Wyglądało to jak niedziałający plik, choć było zgodne z projektem:
bez własnego katalogu danych obie wersje dzielą konfigurację i blokadę jednej
instancji.

Teraz program pyta:

  • Pracuj dalej na działającej — jak dotąd (Escape to samo),
  • Załóż katalog i uruchom obok — program tworzy radiodyplom-dane obok
    klikniętego pliku, dobiera wolne porty (pierwsza wolna para od 12070:
    UDP dla loggera i o jeden wyżej interfejs) i uruchamia tę wersję ponownie,
    już na własnym katalogu.

Drugie kliknięcie tej samej ikony zachowuje się jak zawsze — pokazuje okno
i nic nie mówi.

Okno pokazuje pliki, które rozpoznasz: AppImage i portable rozpakowują się
do katalogu tymczasowego, więc zamiast /tmp/.mount_… czy %TEMP%\… widzisz
plik, który kliknąłeś, wraz z rodzajem instalacji.

Nowa instancja ma własną, świeżą konfigurację: tryb próbny i bez PIN-u —
PIN-u nie kopiujemy, bo taki katalog bywa na pendrivie albo dysku
współdzielonym. Trzeba go wpisać w jej zakładce Konfiguracja, a logger musi
wysyłać na jej port UDP. Gdy obok pliku nie da się zapisywać (/opt,
Program Files, nośnik tylko do odczytu), program mówi to wprost.

Opis: Konfiguracja → Dwie instancje na jednej maszynie.

Pliki

Plik System
radiodyplom-bridge-0.1.23-x64-setup.exe Windows 10+ — instalator
radiodyplom-bridge-0.1.23-x64-portable.exe Windows 10+ — bez instalacji
radiodyplom-bridge-0.1.23-x86_64.AppImage Linux — uniwersalny
radiodyplom-bridge-0.1.23-amd64.deb Debian / Ubuntu
radiodyplom-bridge-headless-0.1.23-all.deb bez interfejsu — Raspberry Pi, serwer
sha256sum -c SHA256SUMS

Testów: 518.

0.1.22 — portable z własnymi danymi, dwie instancje naraz

Choose a tag to compare

@sq8bwm sq8bwm released this 08 Sep 10:33
af93c0d

Portable i AppImage mogą mieć własne dane

Dotąd portable dzielił wszystko z wersją instalowaną (a AppImage z paczką
.deb): ten sam PIN, tę samą kolejkę, ten sam certyfikat i tę samą blokadę
jednej instancji — więc obie nie uruchamiały się obok siebie, a na cudzym
komputerze portable zostawiał jawny PIN w profilu użytkownika.

Od tej wersji wystarczy utworzyć obok pliku programu katalog:

radiodyplom-dane

Sama jego obecność przenosi tam konfigurację i dane. Nie ma katalogu — wszystko
działa jak dotąd, więc aktualizacja nikomu nic nie przenosi. Katalog tylko do
odczytu (zablokowany pendrive) nie jest udawany: program wraca do domyślnego
i mówi o tym w logu.

Dwie instancje na jednej maszynie

Na przykład jedna do logowania lokalnego, druga do akcji dyplomowej. Przepis:
katalog radiodyplom-dane obok pliku plus inne porty w jego config.json
(udp.port: 12070, api.port: 12071).

Sprawdzone na uruchomionym programie: wersja instalowana na 12060/12061
i portable na 12070/12071 pracują jednocześnie, każda z własną kolejką.
Uwaga: deduplikacja i kolejka są wtedy osobne — to samo QSO wysłane na oba
porty poleci dwa razy.
Opis.

Widać, gdy mostek nie wystartuje

Gdy rdzeń nie wstanie (najczęściej: port UDP zajęty przez drugą instancję),
okno pokazywało pusty szkielet i wyglądało na „jeszcze wstaje" — bez końca.
Teraz jest czerwony baner z treścią błędu, plakietka „rdzeń nie działa"
i przycisk Pokaż plik konfiguracji — bo bez rdzenia zakładka Konfiguracja
jest pusta i jedyną drogą naprawy jest plik.

Wiersz „Instalacja" w zakładce O programie

Mówi wprost, skąd program został uruchomiony: z instalatora, portable
(z nazwą klikniętego pliku), AppImage, paczka .deb, usługa bez interfejsu
albo ze źródeł — plus dopisek, gdy dane leżą obok pliku. Powstało z pytania,
na które nie dało się odpowiedzieć po restarcie wersji portable. Ten sam rodzaj
(bez ścieżki) jedzie w zgłoszeniu błędu.

AppImage bez klikanej zgody na licencję

Pierwsze uruchomienie AppImage'a pokazywało tekst GPL z przyciskami
Agree/Disagree i przy „Disagree" nie uruchamiało programu. To nieprawda
o licencji: GPLv3 §9 mówi wprost, że uruchomienie programu nie wymaga jej
akceptacji. Tekst licencji zostaje w paczce, w przycisku „Pełny tekst licencji"
i w zdaniu o braku gwarancji.

Pliki

Plik System
radiodyplom-bridge-0.1.22-x64-setup.exe Windows 10+ — instalator
radiodyplom-bridge-0.1.22-x64-portable.exe Windows 10+ — bez instalacji
radiodyplom-bridge-0.1.22-x86_64.AppImage Linux — uniwersalny
radiodyplom-bridge-0.1.22-amd64.deb Debian / Ubuntu
radiodyplom-bridge-headless-0.1.22-all.deb bez interfejsu — Raspberry Pi, serwer
sha256sum -c SHA256SUMS

Testów: 505.

0.1.21 — certyfikat TLS bez openssl-a

Choose a tag to compare

@sq8bwm sq8bwm released this 08 Sep 09:12
5f45722

Interfejs w sieci działa teraz także na Windowsie

Udostępnienie okna w sieci lokalnej wymaga hasła i HTTPS-a jednocześnie.
Certyfikat wystawiał dotąd openssl — bo Node umie X.509 tylko czytać, nie
tworzyć. Na Linuksie i Raspberry Pi OS openssl jest zawsze, na Windowsie
zwykle nie
, więc nasłuch w sieci był tam po prostu odrzucany (program
zostawał na 127.0.0.1 i mówił o tym w oknie — tak działa zasada fail-closed).

Od tej wersji mostek wystawia certyfikat sam, bez żadnego zewnętrznego
narzędzia. Na Windowsie wystarczy hasło, api.tls.enabled: true i host
0.0.0.0 — nic więcej się nie instaluje. Gdy openssl jest w systemie,
mostek nadal korzysta z niego; gdy jest, ale zawiedzie (wersja starsza niż
1.1.1 nie zna -addext), wchodzi zapasem koder wbudowany. Log mówi, którą
drogą poszedł.

Certyfikat ma w SAN nazwę maszyny i jej adresy IPv4 — bo z telefonu
wchodzi się po adresie, nie po nazwie. Ważność dwa lata, klucz z prawami
0600, odcisk SHA-256 w logu do porównania w przeglądarce.

Jak to sprawdzamy — trzema niezależnymi drogami, bo format kodujemy sami:
parserem crypto.X509Certificate, prawdziwym uściskiem dłoni TLS (po
nazwie i po adresie IP) oraz openssl x509 jako trzecią opinią tam, gdzie
narzędzie jest. Testy wymuszają koder wbudowany ZAWSZE, także na Linuksie —
inaczej kod używany głównie na Windowsie nie byłby sprawdzany. Testów: 476.

Opis i ryzyka: Interfejs w sieci.

Poprawki drobne

  • powody odmowy nasłuchu zredukowane do trzech (brak hasła, wyłączony HTTPS,
    nieudane przygotowanie certyfikatu) — „brak openssl-a" przestał być powodem,
  • rozmiar paczki bez interfejsu podany w dokumentacji zgodnie z prawdą (120 kB).

Pliki

Plik System
radiodyplom-bridge-0.1.21-x64-setup.exe Windows 10+ — instalator
radiodyplom-bridge-0.1.21-x64-portable.exe Windows 10+ — bez instalacji
radiodyplom-bridge-0.1.21-x86_64.AppImage Linux — uniwersalny
radiodyplom-bridge-0.1.21-amd64.deb Debian / Ubuntu
radiodyplom-bridge-headless-0.1.21-all.deb bez interfejsu — Raspberry Pi, serwer
sha256sum -c SHA256SUMS