33 Commits
Author SHA1 Message Date
pali112 fb7086154c TODO.md: porządek — zrobione vs do zrobienia, aktualne pułapki 2026-10-21 20:20:50 +02:00
pali112 1789073d23 Fix nakładania się TTS: lock serializuje odtwarzanie odpowiedzi
- _speak() z lockiem (blocking=False): druga odpowiedź nie odtwarza się,
  gdy pierwsza wciąż gra (piper+pw-play)
- zapobiega nakładaniu się głosów dwóch odpowiedzi LLM
2026-10-21 19:50:49 +02:00
pali112 b31113d3ff Fix zamrażania gry przy PTT: transkrypcja whisper w tle
- _stop_recording_and_send nie woła już subprocess.run(whisper) na głównym watku
- transkrypcja w osobnym watku (_transcribe_and_send), wynik do _pending_send
- flight loop podnosi tekst i wywołuje send() na głównym watku (datarefy)
- gra nie zamiera podczas rozpoznawania mowy
2026-10-21 19:45:47 +02:00
pali112 235278bd75 Fix nakładania się odpowiedzi ATC (race condition na fladze streaming)
- _dispatch ustawia streaming=True synchronicznie przed startem watku,
  zamykajac okno, w ktorym drugie zdarzenie tez przechodzilo sprawdzenie
  i uruchamialo druga odpowiedz LLM (glosy sie nakladaly)
- to tylko przypisanie flagi, nie blokuje; siec nadal w watku roboczym
2026-10-21 19:26:10 +02:00
pali112 efa91cc01e Fix powtarzania 'hold short': pas zajęty tylko gdy samolot NA ziemi na pasie
- usunięto fazy powietrzne (Lift Off 23, Initial Climb 24, Landing 70, Flare 71)
  ze zbioru LT_RUNWAY_OCCUPYING_PHASES
- teraz pas 'zajęty' tylko dla taxi/roll/rotate/touchdown/rollout/stopped
- po oderwaniu się samolotu wyzwalacz gaśnie, ATC nie powtarza 'hold short'
2026-10-21 19:23:01 +02:00
pali112 f67345a287 Status pasa w kontekście + reguła RUNWAY STATUS
- kontekst lotu zawiera 'Selected runway X: clear/OCCUPIED by ...'
- prompt: ATC odmawia zgody na start/lądowanie gdy pas zajęty,
  daje zgodę tylko gdy wolny (na zapytanie pilota)
- działa razem z proaktywnym wyzwalaczem 'pas zajęty'
2026-10-21 19:15:28 +02:00
pali112 b911a77517 Fix: 'pas zajęty' nie odpala się z dala od lotniska (>15 nm)
- wyzwalacz 'pas zajęty' działa tylko w promieniu 15 nm od wybranego pasa
- dodano _pilot_latlon() i _dist_nm() (haversine)
- po odlocie ATC przestaje mówić o pasie EPWA
2026-10-21 19:09:40 +02:00
pali112 1b32304e0f TODO: dopisano parser SimBrief XML (SID/STAR + ograniczenia) jako przyszły etap 2026-10-21 19:06:13 +02:00
pali112 95791915e6 Fix powtarzania ATC w pętli: dedup proaktywnego powodu
- ten sam powód (np. 'pas zajęty' przez ten sam samolot) nie jest
  wysyłany ponownie, dopóki warunek nie zniknie i nie pojawi się na nowo
- zapobiega zapętlaniu się komunikatów co cooldown
2026-10-21 18:49:55 +02:00
pali112 4e365dcd74 Odśwież częstotliwości + pasy jednym przyciskiem (fix braku listy pasów)
- _refresh_freq_display zapamiętuje _runway_icao (ICAO lotniska)
- przycisk 'Odśwież (czestotliwosci + pasy)' ładuje oba naraz
- sekcja 'Pas' czyta listę z zapamiętanego ICAO (bez skanu navaidów)
2026-10-21 18:41:08 +02:00
pali112 6450642689 Fix przycięć: usunięto skan navaidów z pętli rysowania + cache enumeracji LiveTraffic
- sekcja 'Pas' nie woła już _nearest_airport_icao() co klatkę (był pełny
  skan bazy navaidów -> przycięcia co ~10s)
- _runway_icao ustawiane tylko przy 'Odśwież częstotliwości'
- _lt_enumerate() cache'owane 2s (wcześniej ~200 odczytów datarefów co sekundę)
2026-10-21 18:37:25 +02:00
pali112 73a99181c7 Dodano TODO.md — stan prac i plan kontynuacji 2026-10-21 18:31:27 +02:00
pali112 e72f4b43fc Logika 'pas zajęty': wybór pasa + geometria z apt.dat + LiveTraffic
- parser apt.dat czyta geometrię pasów (wiersze 100)
- ręczny wybór pasa w oknie (opcja A)
- _runway_occupants: wykrywa samoloty w fazie startu/lądowania/taxi
  na wybranym pasie (prostokąt pasa + bufor 60m)
- wyzwalacz proaktywny 'runway occupied' gdy pas jest zajęty
2026-10-21 18:26:41 +02:00
pali112 336c26a88f LiveTraffic: enumeracja po indeksie ac/key (skalary), mapa faz lotu
- ac/key to indeks (0..num-1), po zapisie zwraca Mode-S hex
- _lt_enumerate() czyta phase/on_gnd/lat/lon/alt per samolot
- mapa LT_PHASE_NAMES (enum LTFlightPhase z LTAPI.h)
2026-10-21 18:14:19 +02:00
pali112 dc2cd0a4ad Debug LiveTraffic: typy datarefów + próbka key/bulk (opcja A)
- wyświetla typy datarefów livetraffic/ac/* i bulk/*
- próbka ac/key (string/hex) i bulk/quick (binary)
- pomaga ustalić metodę odczytu: scalar+key vs bulk binary
2026-10-21 17:34:52 +02:00
pali112 46f3ebc071 Podgląd danych LiveTraffic (krok 1 przed logiką pasa)
- wykrywanie datarefów livetraffic/ac/* (num, phase, on_gnd, lat, lon, alt,
  heading, speed, vsi, dist, bearing)
- sekcja debug w oknie konfiguracji: surowy podgląd każdego samolotu
- pomaga ustalić realne wartości phase/on_gnd przed napisaniem logiki pasa
2026-10-21 17:25:08 +02:00
pali112 6ac8584811 Kierunek lotu Auto z planu (odlot/przylot) + usunięcie skanowania navaidów z monitora
- tryb Auto: odlot/przylot wyznaczany z planu lotu (start vs cel)
  porównując z najbliższym lotniskiem
- przełącznik Auto/Odlot/Przylot (ręczny override nadal dostępny)
- monitor proaktywny NIE skanuje już bazy navaidów (tylko AGL + TCAS)
  -> eliminuje potencjalne przycięcia w locie
- usunięto wyzwalacz 'nowe lotnisko' (był źródłem skanowania)
2026-10-21 17:15:03 +02:00
pali112 00a771c7e0 Proaktywny ATC: sam inicjuje kontakt (ruch, faza lotu, nowe lotnisko)
- monitor w flight loop (co 1s) sprawdza wyzwalacze
- wyzwalacze: zmiana fazy (start/lądowanie), bliski ruch <5nm, nowe lotnisko w przylocie
- cooldown konfigurowalny (domyślnie 30s) zapobiega spamowaniu
- ATC inicjuje wiadomość w aktualnej roli (bez wiadomości pilota)
- checkbox + slider w oknie konfiguracji
2026-10-21 17:06:14 +02:00
pali112 3c32bd97da Kierunek lotu (odlot/przylot) + poprawki UI częstotliwości
- przełącznik Odlot/Przylot determinuje handoff ATC
  (odlot: Tower->Departure; przylot: Tower->Ground)
- osobne ścieżki handoffu dla odlotu i przylotu
- kierunek lotu dodany do kontekstu i promptu (DIRECTION)
- częstotliwości w osobnym przewijanym panelu (zawsze z suwakiem)
- apt.dat wczytywany w tle od startu (pierwszy klik działa od razu)
2026-10-21 16:58:28 +02:00
pali112 16b1d7795a ATC: role wg częstotliwości, handoff, częstotliwości lotnisk z apt.dat
- poprawne czytanie częstotliwości (fallback cockpit2/radios/actuators)
- reset rozmowy przy zmianie służby ATC (Ground/Tower/...)
- zbieranie częstotliwości lotniska z apt.dat (Global Airports)
- handoff ATC z podaniem realnej częstotliwości następnej służby
- faza lotu (na ziemi / w powietrzu) z AGL
- wyświetlanie częstotliwości w oknie głównym (odświeżanie ręczne)
- fix menu Konfiguracja (refCon zamiast indeksu)
2026-10-21 16:33:34 +02:00
pali112 2b3269c683 README: pełna instrukcja użytkowania (głos, procedury, plan lotu, konfiguracja) 2026-10-20 18:35:43 +02:00
pali112 735e3335ff Procedury ATC: katalog procedures/ + dynamiczne wczytywanie (globalne + per-lotnisko) + przykładowa EPWA 2026-10-20 18:20:48 +02:00
pali112 ed073df1bc TTS: czyste środowisko (LD_LIBRARY_PATH=/opt/piper-tts) — naprawa konfliktu libespeak-ng ze Steam Runtime 2026-10-20 17:49:36 +02:00
pali112 32fe481e28 TTS: pw-play zamiast aplay + szczegółowy logging odtwarzania 2026-10-20 17:45:01 +02:00
pali112 bdf1a1fdd5 Cofnięcie fontu DejaVu — przywraca działający interfejs 2026-10-20 17:33:33 +02:00
pali112 f178589c00 Polskie znaki w oknie: font DejaVu Sans z pełnym zestawem Latin 2026-10-20 17:29:55 +02:00
pali112 93b7a53432 Naprawa STT: pw-record zamiast parecord + SIGINT do poprawnego domknięcia WAV 2026-10-20 17:22:13 +02:00
pali112 d113e81506 Fallback planu lotu z pliku (samoloty z własnym FMC: Toliss/Zibo) 2026-10-20 16:51:36 +02:00
pali112 dcfc572c02 Wtyczka odczytuje plan lotu z FMS/GPS (countFMSEntries/getFMSEntryInfo) 2026-10-20 16:48:15 +02:00
pali112 6e5cc6b414 Głos: STT (whisper-cli przez PTT) + TTS (piper) z konfiguracją w GUI 2026-10-20 16:45:14 +02:00
pali112 19dfb84e81 Okno XSayATC domyslnie ukryte na starcie 2026-10-20 16:37:53 +02:00
pali112 91eec1d95e Ruch lotniczy z TCAS (sim/cockpit2/tcas) zamiast sim/multiplayer — zgodność z LiveTraffic 2026-10-20 16:35:32 +02:00
pali112 36cf23232c XSayATC - lokalny asystent ATC dla X-Plane 12 (llama.cpp) 2026-10-20 15:17:01 +02:00