v1.3.0¶
v1.3.0 przebudowuje warstwę komunikacji z kamerą w oparciu o ustrukturyzowany protokół żądanie/odpowiedź oraz dodaje automatyczną aktualizację w samym IDE, zarówno dla IDE, jak i dołączonych do niego zasobów. Wydanie zbudowano na Qt Creator 4.0.2 i dołączono do niego oprogramowanie układowe kamery OpenMV 2.0.0. Na systemach macOS i Linux flashowanie oprogramowania układowego przez DFU wymaga teraz jednorazowej instalacji języka Python oraz bibliotek libusb i pyusb; zobacz Zmiany niekompatybilne wstecznie.
Najważniejsze zmiany¶
Przebudowana warstwa komunikacji. Kod debugowania szeregowego/USB został przebudowany w oparciu o ustrukturyzowany protokół żądanie/odpowiedź z długościami odpowiedzi dla poszczególnych poleceń oraz opóźnieniami oczekiwania na początku i końcu, co zapewnia bardziej niezawodne łączenie, uruchamianie skryptów oraz operacje na buforze ramki i bootloaderze.
Automatyczny aktualizator w IDE. IDE sprawdza teraz w serwisie
openmv.iodostępność nowszej wersji i oferuje przycisk Download, a oddzielnie pobiera i instaluje zaktualizowane pakiety zasobów (przykłady, oprogramowanie układowe, dokumentację), po czym prosi o ponowne uruchomienie.Aktualizacja oprogramowania układowego jednym kliknięciem. Wersja oprogramowania układowego na pasku stanu jest teraz przyciskiem, który porównuje podłączoną kamerę z dołączonym oprogramowaniem układowym i oferuje aktualizację jednym kliknięciem, gdy dostępna jest nowsza wersja.
Flashowanie oprogramowania układowego przez DFU na każdej platformie. Oprogramowanie układowe można teraz flashować przez DFU w systemach Windows, macOS, Linux x86 i Linux x86_64, a okno wyboru oprogramowania układowego akceptuje pliki
.dfuoprócz.bin.Automatyczne przejście awaryjne na DFU. Gdy nie można nawiązać połączenia z szeregowym bootloaderem podczas aktualizacji oprogramowania układowego, IDE oferuje teraz aktualizację za pośrednictwem bootloadera DFU kamery, przeprowadzając użytkownika przez dodanie zworki
BOOT/RST.
Nowe funkcje¶
Aktualizator w IDE. Sprawdza w serwisie
openmv.iodostępność nowszej wersji IDE i oferuje przycisk Download, który otwieraopenmv.io/download, a także pobiera, rozpakowuje i instaluje pakiety zasobówopenmv-ide-resources-X.Y.Z.zipbezpośrednio do IDE przed wyświetleniem monitu o ponowne uruchomienie (8a1f92bb1, 194acd828, b0be97e3e).Klikalny przycisk wersji oprogramowania układowego. Etykieta wersji na pasku stanu stała się elementem
QToolButtonpołączonym z przepływemupdateCam(), który odczytuje dołączony plikfirmware/firmware.txt, porównuje go z podłączoną kamerą i oferuje Firmware Update z opcjonalnym wyczyszczeniem wewnętrznego systemu plików, gdy dostępna jest nowsza wersja (b2ac8defe).Obsługa plików DFU. Okno dialogowe bootloadera/flashowania oprogramowania układowego akceptuje teraz pliki
.dfuoprócz.bini wymusza pełne wyczyszczenie wewnętrznego systemu plików podczas flashowania pliku.dfu. Filtr wyboru oprogramowania układowego został rozszerzony doFirmware Binary (*.bin *.dfu), a przepływ wymuszonego czyszczenia dla.dfuwprowadzono w4ad2be5f9, wraz z zawsze zaznaczonym, wyłączonym polem wyboru czyszczenia, które automatycznie przełącza się na podstawie rozszerzenia wybranego pliku, dodanym wb2ac8defe(4ad2be5f9, b2ac8defe).Automatyczne przejście awaryjne na DFU przy awarii bootloadera. Gdy aktualizacja oprogramowania układowego
.binnie może uruchomić szeregowego bootloadera, IDE zgłasza terazUnable to connect to the bootloader!, a następnie oferuje aktualizację z użyciem bootloadera DFU kamery, ostrzegając, że DFU czyści wewnętrzny system plików pamięci flash, oraz przeprowadzając użytkownika przez dodanie zworkiBOOT/RSTi ponowne podłączenie, zanim uruchomiDfuSeCommand.exe(Windows) (4ad2be5f9).Przykład HoG. Dodano przykład wizualizacji histogramu zorientowanych gradientów (
09-Feature-Detection/hog.py) z użyciemimg.find_hog()(b03a707f7).
Pozostałe zmiany i ulepszenia¶
Zastąpiono stary, doraźny kod szybkości transmisji/pakietów klasami
OpenMVPluginSerialPortCommand/Result, opkodami__USBDBG_*i__BOOTLDR_*oraz funkcjami pomocniczymicommand()/commandResult()zamiastwrite()/readAll()/isOpen()(b03a707f7, 141122e21, b2ac8defe, 1d72fe4bf, b4cf2fe43, c60936d5f).Instalacja sterownika portu szeregowego w systemie Windows odbywa się teraz cicho i bez nadzoru, przez przełączenie skryptów sterowników
openmv.cmd/pybcdc.cmdna instalatory oparte nadpinstzamiast interaktywnegoInfDefaultInstall, a instalator pakietu Visual C++ Redistributable (vcr.cmd, uruchamiający cichovcredist_x86.exeivcredist_x64.exe) został dodany i poprawiony (a5a6e0590, 754d0776d, b0be97e3e, 452a29f0d, c051c6e30, ad1b674ef, 565f1eccd).
Poprawki błędów¶
Naprawiono awarie flashowania oprogramowania układowego i komunikacji wewnątrz maszyn wirtualnych oraz poluzowano różne limity czasu poleceń i odpytywanie buforów ramki/tx, dzięki czemu łączenie i uruchamianie są bardziej niezawodne. Okno dialogowe reprogramowania zawiera teraz informację, że „może to zająć do 5 minut”, a limit czasu procesu DFU został podniesiony z 240 s do 300 s w
324f243f9(c051c6e30, b0be97e3e, 1d72fe4bf, b4cf2fe43, 324f243f9, c60936d5f).Naprawiono porównanie dostępności aktualizacji oprogramowania układowego/IDE, tak aby nowsza wersja podrzędna lub poprawkowa nie wyzwalała już fałszywie aktualizacji, gdy wyższe pole jest równe, oraz wymuszono, aby okno dialogowe bootloadera miało prawidłowo wybrany plik przed flashowaniem (4ad2be5f9).
Zamknięto uchwyty plików (listy płytek, plików oprogramowania układowego/wersji) po odczycie i poprawiono dopełnianie fragmentów flashowania oprogramowania układowego do
FLASH_WRITE_CHUNK_SIZE, zapobiegając wyciekom uchwytów i błędnie dopełnianym końcowym fragmentom podczas aktualizacji oprogramowania układowego (4ad2be5f9).Naprawiono menu
HelpOpenMV i panele wyjścia: pozycja About OpenMV Cam nie koliduje już z systemową rolą About (AboutRole→ApplicationSpecificRole), a panele wyjścia nie przechwytują już skrótówAlt/Cmd+ cyfra (a0694eac7).Otwieranie zewnętrznych łączy internetowych OpenMV (fora, pobieranie, wsparcie) zgłasza teraz okno dialogowe błędu „Failed to open”, gdy nie można otworzyć adresu URL, zamiast po cichu nie robić nic (b0be97e3e).
Obsługa platform i narzędzi¶
Baza Qt Creator: 4.0.2.
Dołączone oprogramowanie układowe kamery: zaktualizowane do 2.0.0, z nowymi plikami
firmware.bin/openmv.binoraz nowo dodanymifirmware.dfu/bootloader.dfu/firmware.elf/bootloader.elfdla OMV2 i OMV7.Flashowanie DFU w systemie Windows dodane z użyciem dołączonego ST
DfuSeCommand.exe, pakietu sterownika USB ST DfuSe (DfuSe v3.0.4.0 w Win7/Win8, v3.0.5.0 w Win8.1) oraz instalatora sterownikadfuse.cmd(4ad2be5f9).Flashowanie DFU w systemach macOS i Linux przeniesione z gotowych binariów
dfu-utilna dołączony program flashującypydfu.py, przy czym IDE wyświetla wymagane polecenia instalacji libusb/pyusb.ac248c0eckrótko dodał binariadfu-util/dfu-prefix/dfu-suffixdla Linux x86_64, ale324f243f9następnie usunął je wszystkie na rzeczpydfu.py. W ostatecznym wydaniu nie ma żadnych binariówdfu-util;static.prodołącza katalog danychpydfudla wszystkich hostów innych niż Windows, podczas gdy Windows używa dołączonego przepływu DfuSe (ac248c0ec, 324f243f9, 7837a07da).Reguły udev systemu Linux zaktualizowane, aby używać dopasowywania
SUBSYSTEM(cam VID 1209/PID abd1 tty oraz STM DFU 0483/df11), dzięki czemu dowiązania symboliczne urządzenia i DFU działają na 32-bitowym systemie Linux, a żądania sieciowe podążające za przekierowaniami zostały zabezpieczone dla starszych wersji Qt (194acd828).
Zmiany niekompatybilne wstecznie¶
Dołączone samodzielne binaria dfu-util dla macOS i Linux zostały usunięte i zastąpione programem flashującym pydfu.py w języku Python. Na systemach macOS i Linux flashowanie oprogramowania układowego przez DFU wymaga teraz jednorazowej instalacji języka Python oraz bibliotek libusb i pyusb (IDE wyświetla dokładne polecenia MacPorts/HomeBrew/apt-get). Windows nadal korzysta z dołączonego przepływu opartego na DfuSe. Nie ma żadnych zmian niekompatybilnych w API skryptowym, a baza Qt Creator 4.0.2 pozostaje bez zmian.