DOCS/Kompendium Wiedzy
|
Rozdział 10: Diagnostyka, Troubleshooting i Gotchas
Rozdział 10: Diagnozowanie Problemów, Logi Systemowe i Baza Wiedzy (Gotchas 1-12)
Niniejszy rozdział zbiera sprawdzone procedury diagnostyczne oraz 12 kluczowych pułapek architektonicznych (Gotchas) zidentyfikowanych w rozwoju systemu RCSIM.
📋 1. Kompletna Tabela Pułapek Architektonicznych (RCSIM Gotchas 1-12)
| # | Obszar | Wykryty Problem | Wdrożona Poprawka Architektoniczna |
|---|---|---|---|
| 1 | PySide6 & QPainter | Brak parowania wywołań w rysowaniu OSD zawiesza GUI. | Każdy painter.save() musi być ujęty w blok try...finally z painter.restore(). |
| 2 | WebRTC / UDP MTU | Pakiety >1100B fragmentują i zrywają transmisję. | Obowiązkowy moduł chunking.py z kontrolerem __c: 1. |
| 3 | Qt Thread Affinity | Modyfikacja widgetów z pod-wątków powoduje wycieki pamięci. | Aktualizacja wyłącznie przez sygnały Qt (Signal.emit()). |
| 4 | NaN Guard Telemetria | Wartość NaN w telemetrii wywołuje crash GUI przy rzutowaniu int. |
Obowiązkowa walidacja math.isfinite() przed przetwarzaniem danych. |
| 5 | AI Hailo-8 NPU | Niezgodność wymiarów macierzy rzuca wyjątek NPU. | Wymuszenie cv2.resize() oraz np.expand_dims(frame, axis=0). |
| 6 | BreezySLAM C-Locks | Równoległy odczyt silnika C powoduje Segmentation Fault. | Obowiązkowy threading.Lock() (SLAM Mutex) w pętli skanowania. |
| 7 | Tryb RCSIM-MCS | Wymóg bezkomputerowej pracy w terenie. | Headless RPi 5 + RP2350, własny AP Wi-Fi i sterowanie z WebUI. |
| 8 | Thrustmaster Pedals | Tryb Combined nakłada hamulec i gaz na oś skrętu Linux. | Wymuszony tryb Separate Mode w firmware kierownicy. |
| 9 | OpenCV DSHOW USB | Domyślne YUY2 na Windows obniża płynność do 9.4 FPS. | Przekazanie parametrów MJPG 60FPS bezpośrednio w konstruktorze VideoCapture. |
| 10 | WebRTC FPV Watchdog | Zbyt krótki timeout (3s) zrywa wideo przy braku enkodera. | Karencja co najmniej 15s od statusu connected przed resetem streamu. |
| 11 | Tailscale / MediaMTX | Brak serwera STUN w VPN zrywa pakiety wideo. | Wpisanie webrtcICEServers: [stun:stun.l.google.com:19302]. |
| 12 | RP2350 USB CDC | Reset DTR przy otwarciu portu oraz przepełnienie bufora IN. | Ustawienie dtr=True, rts=True, delay 300ms oraz czyszczenie bufora. |
