cat 2025-12-22-T9-nowa-logikaMFD.md

Nowa logika tworzenia ekranów MFD i system input keypad


2025-12-22

Problem

Oryginalna logika tworzenia ekranów była sztywna i trudna do rozszerzania. Każdy nowy ekran wymagał modyfikacji głównego pliku. Dodatkowo, system input dla radia był zbyt prosty i nie pozwalał na naturalną pracę z numeryczną klawiaturą.

Nowa architektura ekranów

Przeredagowałem system, aby każdy ekran był autonomicznym komponentem z własnymi metodami renderowania i obsługi inputu. System został uproszezony do przełączania się między ekranami za pomocą prostego mappingu. To umożliwia dodawanie nowych ekranów bez modyfikacji istniejącego kodu.

System Keypad

Zaimplementowałem obsługę numerycznej klawiatury ze standardem T9. Użytkownik może teraz naturalnie wprowadzać częstotliwości radia: naciśnie cyfrę, wynik pojawi się na ekranie, może go edytować (backspace), i zatwierdzić (enter).

Wyzwania

1. Zarządzanie stanem inputu

Keypad musiał pamiętać co użytkownik wpisał, obsługiwać edycję i walidować dane przed wysłaniem do backendu. Potrzebowałem oddzielnego state managementu dla każdego rodzaju inputu.

2. Integracja z Canvas

Keypad wyświetlany jest na Canvas, ale obsługuje rzeczywiste zdarzenia klawiatury. Musiałem mapować zdarzenia klawiatury na wizualne elementy keypad-u i na odwrót.

3. Validacja danych

Częstotliwości radia mają określone zakresy (COM: 118.00-136.975, NAV: 108.00-117.95). Keypad musiał walidować dane przed wysłaniem.

Wynik

System input jest teraz naturalny i intuicyjny. Logika ekranów jest czysta i łatwa do rozszerzania. Dodanie nowego ekranu zajmuje teraz ułamek czasu.

⌨️