v1.7.0¶
v1.7.0 dodaje dzielenie na fragmenty i ponowne składanie bufora ramki przez łącze szeregowe, dzięki czemu duże ramki można przesyłać przez debugowe łącze szeregowe, czyni rozłączanie z resetem bezpieczniejszym poprzez opróżnienie (a w systemie Windows wysunięcie) napędu pamięci masowej USB kamery oraz odświeża zestaw przykładów. Wydanie bazuje na Qt Creator 4.0.2 (ta sama baza co w poprzednim wydaniu) i dodaje obsługę kompilacji dla skompilowanych krzyżowo wbudowanych celów Linux, takich jak Raspberry Pi. Nie ma żadnych zmian łamiących zgodność.
Najważniejsze zmiany¶
Dzielenie bufora ramki na fragmenty przez łącze szeregowe — duże transfery bufora ramki są dzielone na fragmenty o rozmiarze MTU i ponownie składane w buforze pikseli, dzięki czemu duże ramki można przesyłać przez debugowe łącze szeregowe.
Bezpieczniejsze rozłączanie z resetem — napęd pamięci masowej USB kamery jest opróżniany przed resetem (a w systemie Windows wymuszane jest jego wysunięcie), dzięki czemu system plików jest najpierw synchronizowany.
Atomowy zapis plików — pliki
main.pyoraz pliki punktów kluczowych są zapisywane atomowo, co zapobiega uszkodzeniom i naprawia błąd ścieżki, który zapisywałmain.pyw niewłaściwej lokalizacji.Raspberry Pi / wbudowany Linux — dołączono teraz obsługę kompilacji krzyżowej.
Odświeżone przykłady — zestaw Servo Shield, nowe dema wykrywania cech oraz przykłady wideo Image Reader/Writer.
Nowe funkcje¶
Dzielenie na fragmenty i ponowne składanie bufora ramki przez łącze szeregowe. Transfery bufora ramki są dzielone na fragmenty o rozmiarze MTU i ponownie składane w buforze pikseli, dzięki czemu duże ramki można przesyłać przez debugowe łącze szeregowe przy użyciu domyślnego MTU. Dodano uzgadnianie automatycznej negocjacji MTU w czasie działania z progiem wersji oprogramowania układowego ustawionym na 2.5.0, odpowiadającym oprogramowaniu układowemu 2.5.0 dołączonemu w tym samym commicie (96458ccef). Próg ten został następnie podniesiony do
9.9.9na potrzeby wydania, czego nie zgłasza żadne dostarczane oprogramowanie układowe, więc kamery używają domyślnego MTU i negocjacja nie zachodzi (abd1dacb9).Opróżnianie/wysuwanie przy rozłączaniu z resetem. Rozłączanie z resetem opróżnia teraz napęd pamięci masowej USB kamery przed resetem: w systemie Windows napęd jest wymuszanie wysuwany, podczas gdy w systemach Linux i macOS system plików napędu jest synchronizowany (
syncfs/sync_volume_np). W razie niepowodzenia na wszystkich trzech platformach zgłaszany jest błądFailed to eject(243618791, ff6b15aff, 1865ffd31, 4fd4e89cf).Przykłady Servo Shield. Dodano zestaw przykładów
15-Servo-Shielddemonstrujący serwa sterowane przez PCA9685, w tym sterownikpca9685.pyoraz pomocnikaservo.py(abd1dacb9).Nowe przykłady wykrywania cech. Dodano
find_circles(Hough),find_rects(próg czterostronny),find_numbers(rozpoznawanie cyfr LeNet) oraz szybkie i odporne przykłady regresji liniowej w katalogu09-Feature-Detection(abd1dacb9).Przykłady wideo i sterowania płytką. Dodano przykłady Image Reader/Writer do nagrywania i odtwarzania strumieni zrzutów obrazu z karty SD, przykład sterowania płytką RTC oraz uruchamiacz testów jednostkowych na kamerze (abd1dacb9).
Inne zmiany i ulepszenia¶
Przemianowano katalog przykładów
99-Tests(wcześniej15-Tests) oraz dodano uruchamiaczunittests.py(abd1dacb9).
Poprawki błędów¶
Wzmocniono zapisywanie plików
main.pyoraz plików punktów kluczowych. Zapisy przełączono na atomowe zapisyFileSaver(zapis, a następnie finalizacja) w (4fd4e89cf), a brakujący separator ścieżki, który zapisywałmain.pyw niewłaściwej lokalizacji, został naprawiony w (1865ffd31).Poprawiono niezawodność łącza szeregowego poprzez powiększenie bufora odczytu szeregowego do 1MB na wszystkich portach oraz wydłużenie limitu czasu zatrzymania odczytu, rozwiązując problem gubionych danych przy
QSerialPort(7f68368dc).Naprawiono usterkę układu rozdzielacza okna poprzez wyeksportowanie
MainWindowi emitowanie sygnału zdarzenia pokazania, dzięki czemu wtyczka OpenMV może przywrócić układ, gdy główne okno jest pokazywane (4895e20b7).
Obsługa platform i narzędzi¶
Baza Qt Creator: 4.0.2.
Dodano obsługę kompilacji dla skompilowanych krzyżowo wbudowanych celów Linux, takich jak Raspberry Pi: wdraża czcionki Qt, naprawia obsługę
chrpath/RPATH, buduje tłumaczenia przy użyciu plików binarnych hosta oraz dodaje brakującą zależnośćqml(73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a).Zaktualizowano dołączone oprogramowanie układowe OpenMV z 2.4.1 do 2.5.0 (96458ccef).
Przemianowano katalogi oprogramowania układowego
OMV2/OMV3naOPENMV2/OPENMV3oraz dostarczono zaktualizowane, ponownie zbudowane pliki binarne oprogramowania układowego i bootloadera STM32F427 (OPENMV2) i STM32F765 (OPENMV3) (abd1dacb9).
Zmiany łamiące zgodność¶
Brak. To wydanie nie wprowadza żadnych widocznych dla użytkownika zmian w przepływie pracy ani zachowaniu, a istniejące projekty działają nadal bez zmian.