Releases: sq8bwm/radiodyplom-bridge
Release list
0.1.32 — Logger32 działa naprawdę
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 SHA256SUMSTestó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
„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:
- stacja jest dodana do akcji,
- 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 SHA256SUMSTestów: 558.
0.1.28 — pusta lista stacji poza akcją nie blokuje celów
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 SHA256SUMSTestów: 554.
0.1.27 — brak stacji poza akcją to nie awaria
„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 SHA256SUMSTestów: 550.
0.1.26 — powiększanie widoku
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 SHA256SUMSTestów: 547.
0.1.25 — układ dostosowany do wąskiego ekranu
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 SHA256SUMSTestów: 533.
0.1.24 — wolne porty przy pierwszym uruchomieniu
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 wjournalctl.
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 SHA256SUMSTestów: 525.
0.1.23 — druga instancja pyta, co zrobić
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-daneobok
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 SHA256SUMSTestów: 518.
0.1.22 — portable z własnymi danymi, dwie instancje naraz
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 SHA256SUMSTestów: 505.
0.1.21 — certyfikat TLS bez openssl-a
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