v4.8.11¶
v4.8.11 to wydanie poprawiające stabilność i poprawność, skupione na odporności pod macOS, serializacji narzędzi zewnętrznych oraz niezawodności aktualizacji oprogramowania układowego. Jest oparte na Qt Creator 14.0.2 (bez zmian względem poprzedniego wydania) i nie wprowadza żadnych zmian łamiących zgodność dla projektów użytkowników.
Najważniejsze zmiany¶
Wzmocnienie odporności na awarie pod macOS — wyeliminowano sporadyczne ciche przerwanie
NSRangeExceptionpowodowane przez aktualizowanie zaznaczeń w drzewach/listach/polach kombi, zanim panel lub okienko wyskakujące zostało w pełni zbudowane albo w trakcie asynchronicznego odświeżania, w polu kombi konspektu, hierarchii wywołań/typów, okienkach uzupełniania i lokalizatora, drzewie projektu i nie tylko.Zserializowane narzędzia zewnętrzne — okno postępu ładowania jest teraz modalne na poziomie aplikacji i wstrzymuje całe odpytywanie urządzeń, więc działające dfu-util, bossac, picotool i pozostałe narzędzia nie mogą już zostać ponownie uruchomione przez strumień z kamery ani automatyczne ponowne połączenie.
Niezawodne aktualizacje oprogramowania układowego — automatyczne ponowne połączenie nie może już przejąć aktualizacji oprogramowania układowego w trakcie zapisu do pamięci flash, co wcześniej przerywało właściwą kontynuację i wyświetlało zbędne okno DFU.
Bezpieczeństwo programu Hello World — podłączenie płytki nie nadpisuje już sporadycznie programu Hello World, w który coś wpisano, dzięki porównywaniu z nienaruszonym zrzutem zamiast polegania na zawodnej fladze modyfikacji.
Czytelniejsze błędy DFU — błąd „no matching interface” podaje teraz wykrytą płytkę i nazwy plików oprogramowania układowego, które akceptuje, zamiast wyświetlać surowe VID/PID.
Nowe funkcje¶
ST Edge AI (STM32N6) generuje teraz przemieszczalny plik binarny sieci bezpośrednio za pomocą trybu
--relocatablekompilatora, usuwając osobny krok przemieszczania w języku Python oraz dodatkowe pole Relocation CLI Options z okna dialogowego (7613135c5).
Pozostałe zmiany i ulepszenia¶
Błędy interfejsu DFU podają teraz wykrytą płytkę i wymieniają nazwy plików oprogramowania układowego, które ta płytka akceptuje, wraz ze wskazówką, aby zmienić nazwę lub wybrać właściwy plik, zamiast wyświetlać surowe VID/PID (ac509b369).
Skróty nawigacji po kartach pod macOS używają teraz dostępnych
Cmd+Shift+[/Cmd+Shift+](poprz./nast.) orazCmd+Alt+[/Cmd+Alt+](przenoszenie) zamiast niemożliwych do wciśnięciaCtrl+PageUp/Ctrl+PageDown; powiązania pod Windows i Linux pozostają bez zmian (6c09e10b1).Żądania licencji/płytki do
upload.openmv.io(check.php,insert.php,register.php) wysyłają teraz dostosowany do platformy nagłówekUser-Agentw stylu przeglądarki, dzięki czemu serwer licencji może rozpoznać system operacyjny klienta (6bfd74b36).
Poprawki błędów¶
Naprawiono sporadyczną awarię pod macOS (ciche przerwanie
NSRangeExceptionbez okna awarii), w której aktualizowanie zaznaczeń w drzewach/listach/polach kombi, gdy panel lub okienko wyskakujące było jeszcze ukryte albo w trakcie asynchronicznego odświeżania, prowadziło do indeksowania niezbudowanej pamięci podręcznej dostępności Cocoa. Zaznaczanie, przewijanie i rozwijanie są teraz odraczane lub zabezpieczane w polu kombi konspektu, hierarchii wywołań/typów, okienku uzupełniania kodu, okienku lokalizatora, oknie Save Items, drzewie projektu, nawigacji po folderach, Open Documents, liście Issues/Tasks oraz polu kombi widoku drzewa (94c8f9def, ae40a3806, ed23b5c60, c6baf89cd, d7b6f5838, d8b70609c, 21740d9c2, 9217fc8a9, fe75924d5, 9cc247ffb, 3ca71e915, 559b6005f).Naprawiono osobną awarię pod macOS (
NSRangeException/SIGABRT) w polu kombi konspektu kodu, powodowaną przez nieaktualny indeks spoza zakresu, gdy serwer języka Python asynchronicznie odświeżał symbole;setCurrentIndexponownie weryfikuje teraz granice wiersza/kolumny względem aktualnego modelu (3e0ce89f1).Wzmocniono edytor modeli ROMFS oraz edytor zbiorów danych przed asynchronicznymi wyścigami
QFileSystemModel, odraczając wstępne rozwinięcie drzewa do zakończenia wczytywania katalogu i zaznaczając nowo utworzone pliki/foldery/modele dopiero wtedy, gdy model ma dla nich prawidłowy indeks (5eaa91aff).Operacje narzędzi zewnętrznych (dfu-util, bossac, picotool, alif, imx, ST Cube, mpy-cross, vela, ST Edge AI, konwersja wideo) nie pozwalają już strumieniowi z kamery ani zakolejkowanej pracy na ponowne wejście w operację na urządzeniu za działającym narzędziem: okno postępu ładowania jest teraz modalne na poziomie aplikacji, a odpytywanie urządzeń jest w pełni wstrzymane na czas jego wyświetlania (3069e8ec0).
Automatyczne ponowne połączenie nie przejmuje już aktualizacji oprogramowania układowego w trakcie zapisu do pamięci flash, dzięki trwałej fladze „aktualizacja oprogramowania w toku” zatrzaśniętej na czas całej operacji wymuszonej/bootloadera/wymazywania, którą sprawdza teraz również licznik czasu ponownego połączenia (b7745484a).
Podłączenie płytki nie nadpisuje już sporadycznie programu Hello World, w który coś wpisano, dzięki porównywaniu aktualnego dokumentu z nienaruszonym zrzutem przechwyconym przy otwarciu zamiast polegania na zawodnej fladze modyfikacji przed automatyczną synchronizacją przykładu dla danego sensora (6f4539d44).
Przewijanie w górę w terminalu szeregowym podczas szybkiego ciągłego wyjścia nie szarpie już widoku z powrotem na dół: ścieżki dopisywania danych podążają teraz za trwałą flagą intencji przewijania przez użytkownika zamiast ponownie wyznaczać „na dole” na podstawie pozycji paska przewijania, którą każdy fragment dopiero co przypiął (9aea0f1a2).
Escapeniezawodnie zamyka teraz okno Code Profiler niezależnie od tego, który widżet potomny ma fokus (203ffd1e6).Pod macOS globalne skróty klawiaturowe menu i poleceń działają teraz w całej aplikacji, a nie tylko gdy edytor miał fokus, dzięki podporządkowaniu ukrytego paska menu oknu głównemu na każdej platformie (6d52cbe73).
Dołączony interpreter Python jest teraz wymuszany jako domyślny przy każdym uruchomieniu, więc nieaktualny zapisany domyślny interpreter nie wyłącza już po cichu serwera języka Python (uzupełnianie i podpowiedzi wywołań) (1d5069a52).
Wzmocniono operacje wejścia/wyjścia ustawień OpenMV przed ponownym wejściem:
beginGroup/endGroupna współdzielonym obiekcie ustawień globalnych (które otwierają okna modalne i uruchamiają zagnieżdżone pętle zdarzeń) zostały zastąpione pełnymi ścieżkami kluczy, więc ponowny dostęp do ustawień podczas okna modalnego nie może już błędnie umieścić kluczy w niewłaściwej grupie. Ścieżki na dysku są identyczne co do bajtu, więc ustawienia istniejących użytkowników są zachowane dokładnie (91e78a9e3, f4bb9f48c).Naprawiono regresję, w której kilka okien i pomocników otrzymujących współdzielony obiekt ustawień wykonywało operacje wejścia/wyjścia gołymi kluczami w korzeniu ustawień zamiast pod
OpenMV/, tracąc geometrię okna, podział i stan rozwinięcia model zoo oraz stan sześciu okien ładowania (dfu-util, imx, bossac, alif, picotool i ST Cube Programmer) wraz z opcjami kompilatorów mpy-cross, vela i ST Edge AI; grupa jest teraz wpisana w każdy klucz, dzięki czemu używana jest właściwa ścieżka (258448bdf).
Obsługa platform i narzędzi¶
Baza Qt Creator: 14.0.2.
Wersja OpenMV IDE podniesiona do 4.8.11.
Zmiany łamiące zgodność¶
Brak. Wszystkie zmiany to poprawki błędów i ulepszenia nałożone na istniejącą bazę Qt Creator 14.0.2; istniejące projekty i przepływy pracy nie są naruszone.