v4.8.9

v4.8.9 to wydanie poprawiające efektywność w trybie bezczynności i niezawodność odłączania, zbudowane na Qt Creator 14.0.2. Gruntownie zmienia sposób, w jaki IDE monitoruje sprzęt, dzięki czemu przestaje odpytywać urządzenia, gdy nic się nie dzieje, usprawnia ścieżkę łączenia/odłączania oraz porządkuje dołączony zestaw modeli. W tym zakresie nie ma rebase’u Qt Creator, ale zmieniło się kilka domyślnych zachowań oraz nazwy dołączonych modeli, więc przejrzyj poniższe zmiany łamiące zgodność.

Najważniejsze zmiany

  • Monitorowanie sprzętu sterowane zdarzeniami zastępuje ciągłe odpytywanie urządzeń: IDE zatrzymuje teraz swoje liczniki skanowania w trybie bezczynności i ponownie skanuje porty szeregowe oraz napędy tylko w reakcji na rzeczywiste zdarzenia podłączenia/odłączenia USB i zamontowania/odmontowania dysku, co dramatycznie zmniejsza zużycie CPU i zasobów w trybie bezczynności.

  • Liczniki bezczynności uzależnione od aktywności: licznik zdarzeń bufora ramki (uruchamiany dawniej co 1 ms) działa teraz tylko podczas połączenia, a licznik migania kursora terminala (500 ms) działa teraz tylko wtedy, gdy terminal ma fokus.

  • Synchronizacja importu w tle domyślnie wyłączona: automatyczna synchronizacja folderów importu Examples i Documents/OpenMV jest teraz wyłączona, a jej przełącznik w menu ukryty, dzięki czemu IDE nie skanuje już bez przerwy tych folderów.

  • Szybsze i bardziej niezawodne odłączanie: port szeregowy jest zamykany, a kamera zwalniana natychmiast, limity czasu protokołu zostały obniżone, a zablokowana kamera teraz się odzyskuje zamiast zawieszać.

  • Czytelniejszy przycisk trybu bufora ramki, który pokazuje JPG Mode lub RAW Mode, aby bieżący stan kompresji był widoczny na pierwszy rzut oka.

Nowe funkcje

  • Natywne monitorowanie zdarzeń sprzętowych za pomocą nowego HardwareMonitor, który emituje hardwareEventDetected przy użyciu IOKit i DiskArbitration na macOS, okna typu message-only WM_DEVICECHANGE w systemie Windows oraz gniazda netlink NETLINK_KOBJECT_UEVENT w systemie Linux. Liczniki skanowania portów szeregowych i napędów są teraz uzależnione od 10-sekundowego okna skanowania, które restartuje się przy każdym zdarzeniu (a6612fec9, 462b55f7b, 17c2e93c7).

Pozostałe zmiany i ulepszenia

  • Licznik przetwarzania zdarzeń bufora ramki (uruchamiany dawniej co 1 ms) jest teraz uruchamiany przy połączeniu i zatrzymywany przy odłączeniu, a licznik migania kursora terminala (500 ms) uruchamia się i zatrzymuje przy uzyskaniu/utracie fokusu przez terminal zamiast działać przez cały czas (a02afea53).

  • Automatyczna synchronizacja folderów importu Examples i Documents/OpenMV jest domyślnie wyłączona, a przełącznik ukryty; liczniki skanowania folderów nie uruchamiają się już przy inicjalizacji i działają tylko wtedy, gdy (obecnie ukryta) akcja jest włączona (478f83e97).

  • Przycisk przełączania formatu bufora ramki pokazuje teraz JPG Mode, gdy kompresja JPEG jest włączona, oraz RAW Mode, gdy jest wyłączona (c48831224).

  • Przy połączeniu IDE stosuje teraz zawsze domyślne ustawienie płytki preferujące JPEG dla bufora ramki, zamiast przywracać wcześniej zapisany wybór JPG/RAW dla danej płytki (c48831224).

Poprawki błędów

  • Odłączenie zamyka teraz port szeregowy i zwalnia kamerę (oraz port) w trybie inline w metodzie close(), co czyni odłączanie szybszym i bardziej niezawodnym (1e8941080, 9d31bcf80).

  • Licznik bezczynności portu szeregowego jest teraz zatrzymywany, a flaga protokołu v2 czyszczona przy zamknięciu portu, co naprawia nieaktualne zachowanie licznika bezczynności po odłączeniu (4bd2fd9ea).

  • Dostrojono limity czasu poleceń protokołu (limit czasu otwarcia obniżony z 5 s do 2 s, resync i CHANNEL_SIZE używają krótkiego limitu 1 s), a każde polecenie szeregowe usuwa teraz obiekt kamery w razie niepowodzenia, dzięki czemu zablokowana kamera odzyskuje się i odłącza szybciej zamiast zawieszać (04aa6aea3).

  • Naprawiono problem z blokowaniem/zawieszaniem podczas zatrzymywania skryptu: zdarzenie zatrzymania skryptu czyści teraz również stan zdarzeń ramki i resetuje liczniki gotowości ramki (3695b0704).

  • Protokół toleruje teraz krótkie odczyty z kamery, zwracając częściowy ładunek lub tekst zamiast go odrzucać lub zgłaszać błąd (0c8ccd58e).

Obsługa platformy i narzędzi

  • Baza Qt Creator: 14.0.2.

  • Płytki łączące moduł AE3 lub N6 z sensorem PAG7936 lub PS5520 otrzymują teraz wyższe domyślne ustawienie QVGA (wcześniej tylko AE3 + PAG7936), dzięki czemu odpowiednie przykłady automatycznie podnoszą się z QQVGA do QVGA (fcc0c3227).

  • Dołączony zestaw modeli estymacji pozy ST MoveNet został uporządkowany: usunięto nadmiarowe warianty per-tensor (_pt) oraz zduplikowane warianty singlepose/st_movenet, a pozostałe modele heatmap per-channel zmieniono nazwy na movenet_singlepose_192, movenet_singlepose_224 i movenet_singlepose_256 (18f66c4c1).

  • Usunięto z zestawu modeli dołączony model segmentacji semantycznej DeepLabV3 wraz z jego zasobami przykładowymi (a929e0dc1).

Zmiany łamiące zgodność

Widoczne dla użytkownika zmiany zachowania i dołączonych zasobów między v4.8.8 a v4.8.9.

  • Przy połączeniu bufor ramki używa teraz zawsze domyślnego ustawienia płytki preferującego JPEG i ignoruje wcześniej zapisany wybór JPG/RAW dla danej płytki (c48831224).

  • Synchronizacja w tle folderów importu Examples i Documents/OpenMV jest domyślnie wyłączona, a jej przełącznik ukryty (478f83e97).

  • Kilka dołączonych modeli zostało usuniętych lub przemianowanych: model segmentacji semantycznej DeepLabV3 zniknął, a modele ST MoveNet zostały przerzedzone i przemianowane na movenet_singlepose_192/224/256. Skrypty odwołujące się do starych nazw plików modeli muszą zostać zaktualizowane (a929e0dc1, 18f66c4c1).