v4.0.1¶
v4.0.1 to gruntowna modernizacja, która przenosi OpenMV IDE z jego długo użytkowanej bazy Qt Creator 4.0.2 na Qt Creator 10.0.1. Cały stos wtyczek OpenMV (podgląd bufora ramki, port szeregowy/protokół, terminal, histogram, edytory progu i punktów kluczowych, narzędzia wideo oraz wrappery do programowania oprogramowania układowego) został ponownie zastosowany na nowej bazie, wraz z dopracowaną parą motywów Flat Light/Flat Dark, podświetlaniem składni Python świadomym OpenMV, ujednoliconym oknem dialogowym ładowania oprogramowania układowego oraz szerokim wsparciem dla wykrywania urządzeń na ARM64 Linux i macOS. Zmiana bazy Qt Creator to duża wewnętrzna modernizacja, ale nie psuje projektów użytkowników; kilka domyślnych zachowań i definicji płytek uległo jednak zmianie (zobacz Zmiany niekompatybilne).
Najważniejsze zmiany¶
Przejście na Qt Creator 10.0.1. IDE przechodzi z Qt Creator 4.0.2 na 10.0.1: oryginalny Qt Creator został ograniczony do podstaw kompilacji (98b95fd3b), a cała wtyczka OpenMV została ponownie dodana na nowej bazie (0e8047372).
Motywy Flat Light i Flat Dark. Dopracowana para motywów jasny/ciemny dostarczana jest z dopasowanymi niestandardowymi stylami podświetlania składni edytora; selektor motywu został ponownie udostępniony w ustawieniach ogólnych, ograniczony tylko do tych dwóch, a domyślnym motywem jest teraz
flat-dark(21348924b, 13c3849e8).Terminal szeregowy raw-REPL. Terminal teraz uruchamia, przerywa, przeładowuje i wkleja skrypty poprzez właściwą maszynę stanów raw-REPL MicroPython (CTRL-A/CTRL-D), niezawodnie obsługując większe skrypty (a7241079c).
Edycja Python świadoma OpenMV. Moduły, klasy, funkcje, metody i argumenty OpenMV są podświetlane składniowo na podstawie dołączonej dokumentacji, z inteligentniejszym autouzupełnianiem oraz mechanizmem auto-wcięć świadomym nawiasów/dwukropków (801eab8a8, 8e9f967e7, 9fdff9c6d).
Ujednolicone okno dialogowe ładowania oprogramowania układowego. Programowanie pokazuje teraz pojedyncze kontekstowe okno dialogowe (Kasowanie dysku / Programowanie oprogramowania układowego / Programowanie bootloadera) z paskiem postępu oraz zwijanym, zapamiętującym stan dziennikiem Pokaż/Ukryj szczegóły (5b51356f8).
Wsparcie dla OpenMV Cam RT1062. Dodano oprogramowanie układowe, loadery DFU/flash, wyliczanie SDP/blhost oraz krok programowania z wypalaniem eFuse dla nowej płytki klasy i.MX RT1060 (a6595f5f7), której następnie nadano odrębny wariant płytki Secure Bootloader (SBL) (d2b11c6c8).
Nowe funkcje¶
Flagi automatyzacji. Flagi
-auto_update(release/development/ ścieżka),-auto_eraseoraz-auto_runpozwalają IDE załadować/skasować oprogramowanie układowe, a następnie uruchomić otwarty skrypt po połączeniu; po ponownym połączeniu bootloadera IDE czeka do 10 s na ponowne wyliczenie kamery, zanim kontynuuje (b54affe79, f4e03d978).Flaga ``-disable_stop`` oraz przełącznik menu
stop on connect/disconnectpozwalają użytkownikom wyłączyć zatrzymywanie skryptu przy połączeniu lub rozłączeniu (02724ca7d).Przełącznik Stop Script on Connect/Disconnect (domyślnie włączony) oddziela połączenie/rozłączenie od zatrzymywania uruchomionego skryptu; automatyczne ponowne łączenie jest teraz domyślnie wyłączone (a0e78057f).
Pytanie o typ płytki. Gdy podłączona płytka zgłasza architekturę, której nie ma w mapowaniu oprogramowania układowego, IDE prosi teraz użytkownika o wybranie typu płytki (zapamiętując ostatni wybór) zamiast przerywać działanie błędem „Unsupported board architecture!” (b7165eb3d).
Podświetlanie składni Python OpenMV koloruje znane moduły, klasy, dane, funkcje, metody i argumenty OpenMV przy użyciu list słów kluczowych wypełnianych z dołączonej dokumentacji (801eab8a8, b4d481bf5).
~300 definicji języków KSyntaxHighlighting dostarczanych jest z edytorem, więc pliki źródłowe w wielu językach są podświetlane od razu po instalacji (39674a4dc).
Dołączone przykładowe skrypty OpenMV (Hello World, zrzut obrazu, nagrywanie wideo, przepływ optyczny, kamery zdarzeniowe, global shutter, FLIR Lepton i inne) są teraz zapisane w repozytorium i dostarczane wraz z IDE (938ac6bbe).
Edytor binarny/szesnastkowy jest włączony, dzięki czemu użytkownicy mogą otwierać i przeglądać pliki binarne, z paskiem narzędzi przyciętym tak, aby pasował do interfejsu OpenMV (675bda966).
Porównywanie dokumentów w pamięci. Nowe pliki oraz przykłady tylko do odczytu otrzymują teraz wspierający plik tymczasowy, więc niezapisane dokumenty można porównywać, a okno dialogowe porównywania plików zewnętrznych zapamiętuje ostatnio użyty folder (5281e5f6c, 2934d5216).
Wtyczka edytora z zakładkami została ponownie dodana, dając IDE pasek dokumentów z zakładkami; źródła wtyczki minimapy zostały ponownie dodane, lecz pozostawione wyłączone w kompilacji dla tego wydania (0e8047372).
Programowanie awaryjne DfuSe i pydfu zostało przywrócone dla urządzeń DFU, których nie można wskazać po numerze seryjnym, z automatyczną obsługą kasowania bez okna dialogowego podczas łączenia (e42a5be7d).
Wypalanie eFuse i.MX RT. Programowanie oprogramowania układowego wypala teraz eFuse (
efuse-program-once) dla płytek klasy RT1060 (8053bb578, a6595f5f7).Strona kreatora Linux Root Installs pozwala użytkownikowi włączyć lub wyłączyć instalację bibliotek apt z podwyższonymi uprawnieniami oraz instalację reguł udev, zamiast zawsze je uruchamiać (6bac80984).
Pozostałe zmiany i usprawnienia¶
Skanowanie portów szeregowych w tle. Wyliczanie portów zostało przeniesione z wątku interfejsu do dedykowanego wątku roboczego
ScanSerialPortsThread, więc IDE pozostaje responsywne podczas skanowania (7be4dab26).Szersze wykrywanie urządzeń. Skanowanie portów zostało przebudowane w postać funkcji pomocniczej
filterPorts()wielokrotnego użytku, która uwzględnia urządzenia picotool oraz i.MX DFU i reklasyfikuje znane porty szeregowe bootloadera Arduino (PID-y NRF/RPI old oraz loader) jako urządzenia DFU (25a5d30fd).Więcej awaryjnych terminali. Przy uruchamianiu dołączonych narzędzi do odtwarzania wideo (Play Video File / Play RTSP Stream) na Linuksie IDE korzysta teraz awaryjnie z
lxterminal,konsoleorazxfce4-terminalopróczxtermignome-terminal(df54007e0).Raportowanie kluczy płytek. Rejestracja kamery analizuje teraz odpowiedź „Remaining N”, aby poinformować użytkownika, ile kluczy płytek pozostało, i dodaje odrębny komunikat o błędzie „Invalid Board Key for Board Type” (5759e73eb).
Pobieranie hostowane na GitHub. Sprawdzanie wersji i pobieranie zasobów używa teraz
raw.githubusercontent.com/openmv/openmv-ide-versionoraz wydańopenmv/openmv-idezamiastupload.openmv.io(994109c28).HTTPS wszędzie. Wszystkie żądania sieciowe OpenMV (sprawdzanie wersji, rejestracja SWD ID, pobieranie zasobów i oprogramowania układowego) używają teraz
https://(54347cad0).Automatyzacja konfiguracji Linux. Instalator wykrywa brakujące biblioteki i reguły udev oraz, w razie potrzeby, generuje wykonywalny
setup.shz dokładnymi poleceniami instalacji apt-get/pip i reguł udev (oraz plikREADMEinstruujący użytkownika, aby go uruchomił) (c6dc705e6).Tolerancja dla wolnych płytek. Terminal szeregowy zwiększa czas oczekiwania na pojedynczy odczyt z 1 ms do 10 ms i emituje potwierdzenie „OK”, gdy skrypt się zakończy (c935e4489).
Płynniejszy postęp programowania. Paski postępu ładowania oprogramowania układowego przełączają się teraz z trybu nieokreślonego na 0-100% natychmiast, a nie dopiero po pierwszym tyknięciu procentowym, w narzędziach dfu-util, bossac, picotool oraz przy programowaniu i.MX (19d947308, 86d021f92).
Odzyskiwanie starego bootloadera zostało ponownie dodane poprzez tryb bootloadera bez szybkiego dostępu, który wysyła polecenia kasowania/zapisu bez dopełnienia query-sync trybu szybkiego (c20112c07).
Czystsze konsole narzędzi. Terminale do programowania oprogramowania układowego (bossac, dfu-util, picotool, imx, narzędzia wideo) działają teraz jako samodzielne procesy konsolowe z lepiej sformatowanym wyjściem poleceń (8053bb578).
Dopracowanie autouzupełniania. Autouzupełnianie rozróżnia klasy, metody i funkcje za pomocą osobnych podpowiedzi argumentów, używa właściwych ikon modelu kodu i respektuje zakres public/protected/private na podstawie przedrostka podkreślenia; procesor uzupełniania słów kluczowych pomija też wiodące białe znaki przed kursorem przy jawnie (ręcznie) wywołanym uzupełnianiu (8e9f967e7, 68b26b5fc).
Skonsolidowane okna dialogowe. Doraźne okna dialogowe „Don’t show this again” OpenMV – w tym startowe okno informacyjne
OpenMV Cam LED Colorsoraz komunikaty o aktualizacji oprogramowania układowego i przykładach – zostały ujednolicone w oparciu o okna dialogowe „Do Not Ask/Show Again”CheckableMessageBox, do ustawień ogólnych dodano przycisk „Reset Do Not Ask/Show Again Dialogs”, a znaczniki zwijania kodu są domyślnie wyłączone (9fdff9c6d).Branding świadomy motywu. Dodano ekrany powitalne w trybie ciemnym, ciemne/jasne logo układów ST i NXP w oknie informacyjnym, kolory podpowiedzi w trybie ciemnym oraz właściwe kolory ikon autouzupełniania (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).
Porządki w przeglądarce obrazów. Akcje udostępniania, tła, konturu oraz „ustaw jako domyślne” są ukryte, dodano akcję dopasowania do ekranu, a wymiarowanie animowanych obrazów zostało naprawione (b37c55e25).
Porządki w menu kontekstowym. Wpisy „Show in File System View”, „Open Terminal”, „File Properties” oraz „Add/Delete UTF-8 BOM on Save” są ukryte (5d862c78e).
Ciemny terminal szeregowy. Samodzielny terminal używa właściwego ciemnego motywu ze stylizowanymi paskami przewijania, zaktualizowanymi ikonami paska narzędzi oraz poprawnym przeładowywaniem ikon paska przewijania w trybie high-DPI na różnych ekranach (5c3af6880).
Porządki w Znajdź/Szukaj. Panel wyników zyskuje ciemny motyw, selektor wyszukiwarki jest ukryty, etykiety zostały uproszczone, a Znajdź w plikach domyślnie wskazuje na folder Documents/OpenMV (20a806550).
Tożsamość aplikacji. IDE pokazuje teraz właściwą ikonę OpenMV na pulpicie, pasku tytułu i pasku zadań (z obsługą high-DPI na Windows), a identyfikator IDE został zmieniony na
openmvide(8ad1eed1f).Ekran powitalny high-DPI wyświetla dwukrotnie powiększony obraz powitalny na wyświetlaczach Retina/o skali 200% (626ff673e).
Naprawa paska akcji. Lewy pasek akcji (New File, Open, Save, Undo, Redo, Cut, Copy, Paste) został naprawiony i otrzymał niestandardowe ikony OpenMV (b8479b5d0).
Logo w oknie informacyjnym. Pokazywane są teraz oba loga partnerów, Arduino i Edge Impulse (Edge Impulse było wcześniej ukryte), z dwukrotnie powiększonymi wariantami high-DPI, a dołączona grafika powitalna została zaktualizowana (
splash-small-2/splash-large-2) (5facd8d9a).Zaznacz słowo pod kursorem jest włączone; polecenia Go to Block Start/End (Ctrl+[ / Ctrl+]) oraz Select Block Up/Down zostały na krótko ponownie włączone (36ed5b1a8), ale pozostawione wyłączone w wydaniu (626ff673e).
Wpis pulpitu Linux zyskuje kategorię Electronics, opisowy komentarz oraz słowa kluczowe wyszukiwania (embedded electronics, microcontroller, micropython, computer/machine vision) (470e5702e).
Migracja zasobów. Zasoby użytkownika zostały przeniesione do lokalizacji wersjonowanej (stary folder qtcreator jest usuwany przy starcie), a nieszkodliwe ostrzeżenia DirectWrite dotyczące krojów czcionek na Windows są tłumione (a04af5351, 70765dc2a).
Ukryte opcje wewnętrzne. Wewnętrzne opcje Core
-colori-themesą ukryte z wyjścia pomocy, a tryb prezentacji został ponownie włączony (434c7b4cc).Ponownie zastosowane podstawowe dostosowania do efektownego paska akcji/widżetu zakładek, menedżera komunikatów/okna wyjścia, akcji proxy, podświetlacza składni oraz edytora tekstu (0e8047372).
QCustomPlot 2.1.1. Dołączona biblioteka do wykresów została zaktualizowana pod kątem zgodności z Qt 6.4 oraz poprawnej obsługi dynamicznie zmieniającego się DPI wyświetlacza (8801415fe).
Kosmetyczne porządki w interfejsie dotyczące ikon strzałek pasków przewijania, paska statusu, przycisków zamykania na pasku zakładek dokumentów oraz szerokości suwaka edytora; wskaźnik edytora „Display File Line Ending” jest teraz domyślnie wyłączony (e0c4d2325, 6a26f4430, e130988fb).
Poprawki błędów¶
Naprawiono wykrywanie VID/PID na Linuksie poprzez odczyt
/sys/class/tty/<port>/device/ueventw celu uzyskania prawdziwego VID/PID urządzenia, obchodząc sytuację, w którejQSerialPortInfozwraca identyfikatory koncentratora USB, dzięki czemu kamery za koncentratorami są poprawnie wykrywane (28220b351).Naprawiono programowanie oprogramowania układowego bootloadera na Macu poprzez złagodzenie asercji rozmiaru punktu końcowego i dołączanie pakietu zapytania synchronizującego tylko wtedy, gdy zapis ma rozmiar dokładnie jednego punktu końcowego USB (86d021f92).
Naprawiono narzędzia odtwarzania wideo na Linuksie: Play Video File / Play RTSP Stream są teraz ukryte na 32-bitowym i ARM Linuksie (brak dołączonego ffplay), z awaryjnym użyciem gnome-terminal, gdy xterm jest niedostępny, a binarka ffmpeg dla macOS została przywrócona z atrapy (d342649cc, d896f4225).
Zwiększono opóźnienia startu/końca resetu bootloadera z 0 do 5, aby uniknąć nakładania się poleceń kasowania i zapisu podczas aktualizacji oprogramowania układowego (fabc168b6).
Usprawniono odzyskiwanie bootloadera: wymuszenie bootloadera w celu naprawy uszkodzonej kamery pomija zbędne komunikaty, a po resecie bootloadera DFU IDE automatycznie ponawia próbę aktualizacji zamiast prosić użytkownika o ponowne połączenie (12b924088).
Umożliwiono przerywanie poleceń zrzutu bufora ramki/bufora TX po szeregowym w trakcie transakcji (4a4afae1b).
Usunięto obejście rezygnacji przy zacięciu odczytu portu szeregowego, które mogło dopełniać odpowiedzi bajtami zerowymi, poprawiając niezawodność szybkiego transferu USB (0ee1d8e91).
Naprawiono debugowanie po WiFi i automatyczne ponowne łączenie: porty WiFi odświeżają znacznik czasu ostatniego wykrycia przy ponownym odnalezieniu, poprawiono kilka błędów typu iterator-po-skasowaniu w wycofywaniu portów WiFi oraz w wykrywaniu DFU/bootloadera, a automatyczne ponowne łączenie czeka teraz, aż IDE nie będzie zajęte, zanim ponownie się połączy (cf0b67dc6).
Naprawiono konwerter wideo do MJPEG, aby parsował liczbę klatek na sekundę z wyjścia kodera i zapisywał poprawną deltę milisekundową na klatkę, dzięki czemu skonwertowane wideo odtwarza się z właściwą prędkością (4a7ad2057).
Naprawiono brak uruchamiania programowania oprogramowania układowego i dołączonych narzędzi wiersza poleceń poprzez wymuszenie backendu QProcess i skorygowanie zabezpieczenia pętli zdarzeń procesu blokującego (200fe9f3c).
Naprawiono ikony gałęzi rozwijania/zwijania drzewa w edytorze zbiorów danych, aby renderowały się poprawnie na wyświetlaczach HiDPI, poprzez przeładowanie arkusza stylów ikon przy zmianie współczynnika pikseli urządzenia (a0e78057f).
Aktualizacje pakietów/zasobów automatycznie restartują teraz OpenMV IDE zamiast jedynie zamykać je po instalacji (178ee1b8e).
Naprawiono podświetlanie wyników Znajdź/wyszukiwania i sprawiono, że akcje wyniku wyszukiwania/otwarcia pliku przełączają się awaryjnie na pierwszy widoczny edytor, gdy nie ma bieżącego edytora (48c402dfc).
Naprawiono okno dialogowe ładowania oprogramowania układowego tak, aby jego tekst ostrzeżenia był czyszczony, a okno poprawnie zmieniało rozmiar po zakończeniu operacji programowania (c505c6ade).
Naprawiono kilka błędów interfejsu na macOS: pasek zakładek nie zalewa już logu błędami ładowania ikon i wyświetla się poprawnie przy otwarciu pliku (9be8c58de, 5322cf968).
Naprawiono stylizację paska statusu / panelu wyjścia oraz wyrównanie linii bazowej na macOS i Linuksie (4fc4545de, d29b2baa0, a440d5cd8).
Naprawiono drukowanie kodu źródłowego tak, aby nagłówek z tytułem strony miał właściwe górne i boczne marginesy zamiast dotykać krawędzi strony (786d6012c).
Wsparcie platform i narzędzi¶
Baza Qt Creator: 10.0.1 (przeniesiona z 4.0.2).
OpenMV IDE: 4.0.0 -> 4.0.1.
OpenMV Cam RT1062 (i.MX RT1060): początkowe oprogramowanie układowe RT1062, flash-loader, podpisane obrazy, wpis
imx.txtoraz klucze konfiguracyjneblhostdla secure-bootloadera/eFuse zostały dodane w folderze oprogramowania układowegoOPENMV5(a6595f5f7); płytka została następnie skonsolidowana do pojedynczego folderuOPENMV_RT1060, a dodano odrębny wariant płytki Secure Bootloader (SBL) (OpenMV_Cam_RT1062_SBL) (d2b11c6c8, 5baf28c6e).Dołączony łańcuch narzędzi do programowania (blhost, bossac, dfu-util, dfuse + sterowniki STM32, picotool, sdphost, ffmpeg, sterowniki FTDI/Arduino) został ponownie dołączony dla Windows/macOS/Linux, z binarkami dla Linuksa oznaczonymi jako wykonywalne (fbfa4903a, bfb6b32e2, 9551c64da).
ARM64 Linux DFU: dołączony
dfu-utildla aarch64 wraz z wykrywaniem arm64 w liście urządzeń i pobieraniu oprogramowania układowego umożliwia programowanie DFU na hostach takich jak Raspberry Pi (16bc6fe0f, 470e5702e).Wykrywanie urządzeń i.MX działa teraz na Linuksie (parsowanie
lsusb) oraz macOS (skanowanieioreg), umożliwiając ładowanie oprogramowania układowego i.MX RT na tych platformach (e03ccbe71, 7cf505d09).Ograniczenia platformowe: użycie i.MX jest ograniczone do Windows/macOS/Linux-x86_64, z krytycznym błędem w innych przypadkach, a programowanie Portenta/Nicla na ARM/ARM64 Linux pokazuje ostrzeżenie „DFU Util may not be stable on this platform” (9513f6475).
Windows OpenGL: renderowanie programowe zostało przywrócone poprzez dołączenie
opengl32sw,Qt6OpenGLoraz wsparcia OpenGL Qt6Gui w wdrażanym pakiecie (aaaa1928f).Zmieniono nazwy folderów/identyfikatorów płytek Arduino. Foldery oprogramowania układowego oraz identyfikatory płytek w
boards.txtdla Portenta, Nicla Vision i Nano 33 BLE Sense zmieniono naARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISIONorazARDUINO_NANO_33_BLE_SENSE(a70d6562a); folder/identyfikator płytki Nano 33 BLE Sense został następnie zapisany małymi literami jakoarduino_nano_33_ble_sense, aby pasował do zgłaszanej przez urządzenie nazwy płytki (22750d8c7, a801a81de).Bootloader OPENMV_RT1060 – zaktualizowano flash loadery (
blhost_flash_loader.bin,sdphost_flash_loader.bin) (5baf28c6e).QCustomPlot: 2.1.1 (dołączona biblioteka do wykresów) (8801415fe).
Obrazy oprogramowania układowego na dysku zostały ponownie dołączone dla wszystkich obsługiwanych płytek OpenMV/Arduino (
OPENMV1-4P,OPENMV4_PRO,OPENMVPT,ARDUINO_NICLA_VISION,arduino_nano_33_ble_sense,ARDUINO_PORTENTA_H7,ARDUINO_NANO_RP2040_CONNECT,OPENMV_RT1060,CYW4343, plus oprogramowanie układowe WiFiWINC1500), wraz z obrazami oprogramowania układowego oraz, tam gdzie to dotyczy, bootloadera/uvc (fbfa4903a).
Zmiany niekompatybilne¶
Są to widoczne dla użytkownika zmiany przepływu pracy i zachowania; samo przejście na Qt Creator 10.0.1 nie psuje projektów ani skryptów użytkowników.
Zmieniono definicje płytek i.MX RT1060. Wpisy
EVKBMIMXRT1060iOPENMV5zostały zastąpione pojedynczą płytkąOPENMV_RT1060(OpenMV Cam RT1062, plus wariant SBL), a stare foldery oprogramowania układowego zostały usunięte (d2b11c6c8).Domyślny limit czasu odpowiedzi na polecenie wynosi 10000 ms (w 4.0.0 było 5000 ms); tekst pomocy
-override_read_timeoutzostał zaktualizowany odpowiednio (4a4afae1b).Zmieniono zachowanie połączenia/rozłączenia. Automatyczne ponowne łączenie jest teraz domyślnie WYŁĄCZONE, a połączenie lub rozłączenie nie zatrzymuje już domyślnie uruchomionego skryptu, chyba że nowy przełącznik „Stop Script on Connect/Disconnect” jest włączony (jest on domyślnie włączony) (a0e78057f).
Przepływ aktualizacji restartuje IDE. Aktualizacje pakietów/zasobów automatycznie restartują teraz OpenMV IDE zamiast zamykać je po instalacji (178ee1b8e).
Zmieniono nazwy identyfikatorów płytek Arduino. Identyfikatory płytek w
boards.txtoraz foldery oprogramowania układowego dla Portenta, Nicla Vision i Nano 33 BLE Sense zmieniono naARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISIONorazARDUINO_NANO_33_BLE_SENSE(ten ostatni później zapisany małymi literami jakoarduino_nano_33_ble_sense) (a70d6562a, 22750d8c7, a801a81de).