v4.4.0

A v4.4.0 egy jelentős modernizációs kiadás, amely az OpenMV IDE-t a régóta használt Qt Creator 10.0.1 alapról a Qt Creator 14.0.2 alapra helyezi át, újra alkalmazva a teljes OpenMV plugint és minden fork-testreszabást az újabb alapra. Emellett ez a kiadás egy beágyazott Python nyelvi szervert is tartalmaz az offline kódkiegészítéshez, minden platformon engedélyezi a GitHub Copilotot, bevezet egy új, egyedi OpenMV DFU rendszerbetöltőt, és átállítja az OpenMV kamerákat egy új 37C5 USB gyártói azonosítóra. Az alapváltás egy nagy belső modernizáció, de nem töri el a felhasználói projekteket; a néhány felhasználó számára látható munkafolyamat-változásról lásd a Töréssel járó változások részt.

Kiemelt változások

  • Qt Creator 14.0.2 átállás. Az IDE a Qt Creator 10.0.1-ről 14.0.2-re vált, a teljes OpenMV plugin és az összes // OPENMV-DIFF // testreszabás újra alkalmazva a modern alapon (d6c895be8, 1fa75b397).

  • Beágyazott Python nyelvi szerver. Az IDE mostantól egy beépített pylsp szervert (astroid 3.3.5 verzióval) szállít és automatikusan használ, offline Python/MicroPython kódkiegészítést biztosítva külön pip telepítés nélkül Windows, macOS és Linux x86_64 rendszereken (257addee0, 5a2b3e72f, 94470798d).

  • GitHub Copilot minden platformon. A Copilot integrálva van és alapból engedélyezett, beépített Node.js 20.18.0 futtatókörnyezettel Windowsra, macOS-re és Linuxra, így már nem korlátozódik kiválasztott gépekre, plusz egy indítási párbeszédablakkal a bekapcsolásához (bb07d582b, 1cb967c5a, b37e48040).

  • Új OpenMV DFU rendszerbetöltő. Egy teljesen megvalósított, egyedi openmv_dfu rendszerbetöltő-folyamat vezérli a firmware-frissítéseket a settings.json alapján, beleértve egy „board in DFU mode detected” párbeszédablakot, amely felkínálja a legújabb kiadás telepítését, egy adott firmware betöltését és a fájlrendszer törlését, plusz egy tartalék-rendszerbetöltő útvonalat a téglásított kamerák helyreállításához (08b9d0676, 6a6a9351d, 6d78d6571).

  • Új kameratámogatás. Hozzáadja az OpenMV Cam N6, RT1062 és AE3 lapokat, és átállítja a kamerákat az új 37C5 USB gyártói azonosítóra frissített DFU illesztőprogramokkal és udev szabályokkal (000ed8a87, f453bc945, 4a16e04c2, 6d78d6571).

  • Megbízhatóbb soros kommunikáció. A jelentős soros kommunikációs javítások megoldják az összezavarodott terminálszöveget és a véletlenszerű kapcsolatbontásokat a TinyUSB-alapú kameráknál (caeba6a16, 6cf122a3c).

Új funkciók

  • OpenMV DFU rendszerbetöltő. Egy új openmv_dfu rendszerbetöltő-rendszer dedikált DFU illesztőprogramokkal és egy tartalék-rendszerbetöltő mechanizmussal helyreállítja a téglásított kamerákat a különböző firmware-típusoknál (6a6a9351d, 6d78d6571). A folyamat a settings.json alapján vezérli a firmware-frissítéseket, és megjelenít egy „board in DFU mode detected” párbeszédablakot a legújabb kiadás telepítése, egy adott firmware betöltése és a fájlrendszer törlése opciókkal (08b9d0676, ef19133b6, 9c59d113c).

  • Lap neve a port-választóban. A soros port kiválasztó párbeszédablak mostantól lekérdezi az egyes portokat, és a port mellett megjeleníti az észlelt lap nevét (pl. COM3: OpenMV Cam H7) a puszta portnév helyett (9837d6cb5).

  • Füles szerkesztő. A füles szerkesztő plugin visszaállításra került, egy sornyi dokumentumfület adva a szerkesztőterület fölé a nyitott fájlok közötti váltáshoz (c8519c09f), és mostantól megőrzi és visszaállítja a fülek sorrendjét a munkamenetek között (55ccfb207).

  • Python szintaxiskiemelés. Egy dedikált Python szintaxiskiemelési definíciót ad a szerkesztőhöz string-formátum, float és kulcsszó szabályokkal (9be46c0c3).

Egyéb változások és fejlesztések

  • Firmware-betöltés átalakítása. A firmware-betöltő kódot különálló, típusonkénti rendszerbetöltő-kezelőkre osztották (OpenMV DFU, Arduino DFU, BOSSAC, i.MX, picotool), érintéses-újraindítás PID-kezelést adva az Arduino DFU lapokhoz és explicit „Legacy” lapváltozatokat az alternatív VID/PID eszközökhöz (9f465f9f8).

  • STM32 ROM-rendszerbetöltő védelmek. Az IDE mostantól figyelmeztet vagy blokkolja a firmware.dfu/openmv.dfu betöltését az STM32 ROM helyreállító rendszerbetöltőre, csak a bootloader.dfu használatát ajánlva, hogy elkerülje a chip ROM rendszerbetöltő hibája által érintett STM32H7 lapok téglásítását (c5ce0ae1a, e7cde1ec1).

  • Automatikus, csendes Python LSP beállítás. A Python nyelvi szerver mostantól automatikusan települ és frissül infosáv-figyelmeztetések vagy konzolüzenet-áradat nélkül (d89f5985f), és a Python automatikus kiegészítés/dokumentáció-buborék rendszert egy dedikált OpenMV doc motorrá alakították át, amely elemzi a beépített HTML könyvtár-dokumentációt a kulcsszókiemelés és a tooltipek vezérléséhez (47e02873b, 4f9853f21, 82cefc931).

  • Linux Python értelmező észlelése. Az értelmező észlelése Linuxon mostantól automatikus, csak a PATH Python 3 értelmezőit veszi figyelembe, és a legújabbat választja ki egyetlen alapértelmezettként (214fdc758).

  • Python beállítások tisztítása. Az értelmezőnkénti kezelési csoport és az Interpreters oldal el van rejtve, a Language Server Configuration egy Python kategória alá került, és a nem használt REPL és értelmező-választó eszköztárgombok el vannak rejtve a Python szerkesztőben (d89f5985f). Windowson az IDE mostantól automatikusan regisztrálja a beépített, beágyazott python.exe fájlt alapértelmezett értelmezőként, a beépített nyelvi szervert pedig már telepítettnek tekinti (1d9ca003e, d89f5985f).

  • Tisztább profilkönyvtár. Az IDE már nem ír ki nem használt Qt Creator beállítási fájlokat (eszközök, kitek, eszköztáncok, Qt verziók), és közvetlenül a szerkesztőben nyitja meg a fájlokat (3771b0107), már nem keres qmake/Qt verziókat a rendszeren (42807f25f), és elkerüli a nem használt eszköz-/eszköztánc-/kit-gépezet betöltését és az indítási zajt (902a357de, b2666a35b).

  • Biztonságosabb frissítések. Az IDE frissítése már nem írja felül a felhasználói erőforrásokat; csak a kezelt erőforrásmappák (examples, firmware, html, models) törlődnek és másolódnak újra, a micropython-headers mappát pedig ezenfelül törli (azt külön telepíti, nem ezen az útvonalon másolja újra), és egyértelműbb hibaüzenetet ad, ha a firmware/settings.json hiányzik vagy érvénytelen (b4b8c208d, 3255ba4fb).

  • Gyorsabb DFU csatlakozás. A DFU kapcsolatra várakozási idő csökkent, így a flashelés és a csatlakozás gyorsabb (11d8c9fe3, 4700bf678).

  • Visszaállított OpenMV menü és felhasználói felület testreszabások. Az egyszerűsített OpenMV menüelrendezés újra alkalmazva, elrejtve a Build és Debug menüket és eltávolítva a projektkezelési műveleteket (7503f2bec); a kódkiegészítő motor visszanyeri az osztály-/metódus-tudatosságát és a public/private kulcsszó-hatóköröket a MicroPython automatikus kiegészítéséhez (55fc348ea); a terminál ANSI színes megjelenítése újra alkalmazva témaérzékeny világos/sötét értékekkel és kurzor-vissza escape támogatással (c6787a27a); a képnézegető eszköztára pedig testreszabva felbontás-/nagyítás-tooltipekkel és egy áthelyezett Fit-to-Screen művelettel (734fec693).

  • Visszaállított beépített erőforrások. A flashelő eszközök, DFU illesztőprogramok, firmware és a teljes példa-/szkriptfa visszaállításra került a megosztott erőforrások közé az átállás során történt eltávolítás után (33c8354bc), és az OpenMV egyedi alkalmazásindítási logikája újra alkalmazva: kötelezően megköveteli a TextEditor plugint (az OpenMV és TabbedEditor plugin ellenőrzések jelen vannak, de letiltva), telepít egy egyedi Qt üzenetkezelőt, eltávolítja a -client/-pid/-block parancssori opciókat, és kikényszeríti az egypéldányos viselkedést (06c788f3d).

  • Hiányzó plugin hiba. Az alkalmazás mostantól egyértelmű hibaüzenettel keményen leáll, ha a szükséges pluginek hiányoznak vagy le vannak tiltva, az OpenMV plugin kapott egy Copilot függőséget, és több szövegszerkesztő-opció (Prefer single line comments és a megjegyzés-pozíció választó a Behavior beállításokban, valamint a Highlight selection a Display beállításokban) el van rejtve (1bc02b1f3).

  • Rövidebb soros időtúllépések. A soros protokoll időtúllépéseit lerövidítették (olvasás 10000-ről 5000 ms-ra, írás 6000-ről 3000 ms-ra) a gyorsabb hibajelzés érdekében, a dokumentált -override_read_timeout alapértelmezett értékét pedig ennek megfelelően frissítették (641385af4).

  • Beragadt port helyreállítása. A parancs közepén beragadt soros portokat mostantól egy GET_STATE lekérdezéssel állítja helyre (a get-state beállításon keresztül konfigurálható) egy szkriptfuttatási lekérdezés helyett (a8598f550).

  • Beállítások párbeszédablak sorrendje. A beállítások párbeszédablak elrejti az alfabetikus kategóriarendezés jelölőnégyzetet, így az oldallista az OpenMV által szándékolt sorrendben marad (1cb967c5a).

  • Copilot beállítások egyszerűsítve. A Copilot beállítások oldala csak a bejelentkezési/hitelesítési és proxy vezérlőkre szűkült, elrejtve az enable-Copilot, Node.js-útvonal, dist-útvonal és automatikus kiegészítés opciókat (1cb967c5a).

Hibajavítások

  • Megoldotta a jelentős soros kommunikációs problémákat a soros olvasás-elakadás időtúllépésének 10-szeresére növelésével és egy GET_STATE-alapú feloldási útvonal letiltásával, amely összezavarta a soros terminál szövegét (caeba6a16).

  • Megoldotta a véletlenszerű soros kapcsolatbontásokat a TinyUSB-alapú kameráknál egy képkocka-kiíratást feloldó parancs kiadásával és az olvasás-elakadás kezelésének átalakításával a kapcsolatbontás helyett (6cf122a3c).

  • A kamera get_state kezelését toleránssá tette a rövid/részleges válaszokkal szemben, és biztosította, hogy a pufferelt soros terminál szöveg kiírásra kerüljön a hiba-helyreállítás során, így a naplókimenet nem vész el (c8b4248a6, 247a779dd).

  • Kijavította a DFU rendszerbetöltő flash partíció/alt-setting számokat az OpenMV Cam firmware betöltéséhez (a8700d12d).

  • Visszaállította az összes rendszerbetöltőt egy új hidden lap-jelző figyelembevételével, a sorozatszám-szűrés inverz szűrőkre váltásával, és az Arduino Nano RP2040 Connect UF2 bejegyzésnek egy működő picotool konfigurációt adva (63cee629b).

  • Kijavította a rendszerbetöltő laptípus-választó párbeszédablakát, amely rossz értéket jegyzett meg, külön előzménykulcsokat használva az ember által olvasható és az IMX laptípus-választásokhoz (a3325af32).

  • Kijavította a videó-átkódolás (Save Video) időbélyeg-/képkockasebesség-számítását az átlagos képkockaköz mikroszekundumban való kiszámításával, egy új v21 ImageWriter időformátum támogatásával, és az átalakítás során a null pixmapek elleni védelemmel (f5c75c749, f8f762b3e).

  • Kijavított egy összeomlást a hisztogram/framebuffer nézetben, amely akkor lépett fel, amikor egy üres (null) pixmap érkezett, a pixmapUpdate() null adatok elleni védelmével (622cf5ea8).

  • Visszaállította a lebegtetéses jegyzet-tooltipeket a szövegszerkesztőben, így a szövegjelölések fölé lebegve ismét megjelenik a jegyzet-tooltip (1852d18e1).

  • Megakadályozta, hogy a GitHub Copilot és LED-színek információs párbeszédablakok felugranak, miközben az IDE éppen csatlakozással vagy flasheléssel van elfoglalva (f8f762b3e).

  • Összeomlás elleni védelmet adott a nyelvi klienshez, így a dokumentumtartalom-változás kezelése többé nem omlasztja össze az IDE-t szélsőséges esetekben (7926ffe4c).

  • Kijavította a Python nyelvi szerver ellenőrzéseit, amelyek megakadályozták az IDE tiszta leállítását, azáltal, hogy a Python plugin aszinkron módon megvárja a folyamatban lévő ellenőrzéseket a kilépés előtt (9ff6c7936).

  • Kijavította a Python automatikus kiegészítést Linuxon: a nyelvi kliens a beépített micropython-headers mappához gyökereződik, és a redundáns szerkesztő-eszköztár kiegészítési felugró művelet el van rejtve (d37f66a9a, 56e748f9d, 016fa73eb).

  • Kijavította az ideiglenes/nem mentett fájlok kezelését, így a Save As a fájl-párbeszédablak kezdeti könyvtárát használja, a Save Items párbeszédablak és a Diff szerkesztő pedig már nem mutatja a belső ideiglenes fájlútvonalakat (b7f0bb378, c8e7b6b8f, 6b128c34c).

  • Egy névtelen/ideiglenes puffer mentésekor a Save-As párbeszédablak mostantól egy megfelelő .py fájlnevet ajánl fel alapértelmezettként az üres név helyett (3001fdfff).

  • Az ideiglenes/névtelen dokumentumok mostantól mentésre kerülnek felkínálásra, ha módosítva lettek, kizárva az automatikus mentésből, és helyesen a Save-As útvonalon keresztül kerülnek átirányításra (f87b71cf0).

  • Kijavította a Recent Files menü sorrendjét, így egy már listázott fájl újra megnyitása nem rendezi át azt, a fájl-párbeszédablak pedig mostantól alapértelmezetten a projektek könyvtárát használja (d49c0c993).

  • Kijavította az üzenetablak-szöveg megjelenítését azáltal, hogy már nem kényszeríti a rich-text formátumot a bejelölhető üzenetablakokra, így a nyers szöveg helyesen jelenik meg (0c565502f).

  • Kijavította a tooltip színeket, így a tooltipek helyesen jelennek meg a világos témában (35cbf077b).

  • Általános Qt Creator stabilitási és tisztítási javítások a központi beállításokban, a nyelvi kliensben, az MSVC eszköztáncban, a project explorerben és a Python pluginekben (836b163dc, 134f43cb8).

  • Kijavította az Arduino Nano 33 BLE Sense beépített firmware-mappájának nevét (b1d8ac227), és kijavította az AE3 DFU rendszerbetöltő termékazonosítójára vonatkozó Linux udev szabályt, a 96E3 értéket kisbetűs 96e3 értékre javítva, hogy az udev kis- és nagybetűre érzékeny idProduct egyezése működjön (2cd43c96b). Az AE3 DFU rendszerbetöltő Linux udev szabályát is frissítették a 37c5:afe3 termékazonosítóra az openmvdfu szimbolikus linkhez (b99555637).

Platform- és eszköztámogatás

  • Qt Creator alap: 14.0.2 (10.0.1-ről átállítva).

  • Az OpenMV Cam N6 mostantól támogatott (VID:PID 37C5:1206, DFU rendszerbetöltő 37C5:9206), beleértve a firmware-beállításokat, egy Windows DFU illesztőprogramot és egy Linux udev szabályt (000ed8a87, 1b950c8c6).

  • Az OpenMV Cam RT1062 mostantól támogatott egy új, egyedi USB VID/PID alatt (37C5:1060), beleértve a DFU illesztőprogramokat, udev szabályokat és a régebbi egységekhez megtartott örökölt 1209:ABD1 bejegyzéseket (f453bc945, d55d6441f).

  • Az OpenMV Cam AE3 mostantól támogatott, beleértve a Windows DFU illesztőprogramokat, a firmware-/konfigurációs képfáját és az USB VID/PID-et (frissítve 37C5:16E3 futtatási / 37C5:96E3 rendszerbetöltő értékre) (4a16e04c2, cc52e76f5, 3f75e7de4, 8eb80b129).

  • Új USB VID/PID rendszer: Az OpenMV kamerák a 37C5 gyártói azonosítóra váltanak új rendszerbetöltő/DFU azonosítókkal (pl. 37C5:1202/9202 M4, 1203/9203 M7, 1204/9204 H7, 124A/924A H7 Plus, 1205/9205), a régi 1209:ABD1 lapokat Legacy-ként átcímkézve, miközben továbbra is támogatja mind a régi, mind az új firmware-t (6d78d6571, 6a6a9351d, 500b1a0bf).

  • A PAG7936 képérzékelő hozzáadva a felismert érzékelők listájához (f9e3f3461).

  • Beágyazott Python 3.13 értelmező mellékelve macOS, Linux x86_64, Linux arm64 és Linux arm rendszerekhez (9133b1516), natív libpython3.13 és ujson megosztott könyvtárakkal (d3aa663d8, a2cb24e74).

  • Mellékelt nyelvi szerver: pylsp astroid 3.3.5 verzióval Windows, macOS és Linux x86_64 rendszereken (257addee0). A Windows build egy beágyazott CPython-t szállít python-lsp-server 1.12.0, jedi 0.17.2, docstring_to_markdown 0.15, pip 24.2 és distlib 0.3.9 verziókkal (9b6434602, 069807cd3, 5f2e45196, 3b6c6c312).

  • Mellékelt Node.js 20.18.0 „Iron” LTS futtatókörnyezet Windows, macOS, Linux arm64, Linux x64 és Linux armv7 rendszerekhez, hogy minden platformon engedélyezze a GitHub Copilotot (bb07d582b, 6db78bf45, 1cb967c5a).

  • Alif Security Toolkit aláírt boot-/rendszercsomag-binárisok és felhasználói útmutató mellékelve Windows, macOS és Linux x86_64 rendszerekhez az Alif-alapú OpenMV kamerák (pl. AE3) ellátásához (f63851be3).

  • A Linux asztali integráció visszaállításra került, telepítve egy alkalmazás asztali bejegyzést és AppStream metaadatokat, valamint regisztrálva a Python (.py) MIME-típust (3fa25f571).

Töréssel járó változások

A szkriptelési API nem változott. A következő, felhasználó számára látható munkafolyamat- és viselkedésváltozások figyelhetők meg:

  • Új USB gyártói azonosító. Az OpenMV kamerák a 37C5 gyártói azonosítóra állnak át új termék- és DFU rendszerbetöltő azonosítókkal; a régi 1209:ABD1 VID-en lévő lapok mostantól „Legacy” címkét kapnak. Az IDE egyszerre támogatja mind a régi, mind az új firmware-t, de a Linux felhasználóknak újra kell telepíteniük a frissített udev szabályokat, hogy az új azonosítók felismerésre kerüljenek.

  • Örökölt lapbejegyzések elrejtve. Az OpenMV Cam M4/M7/H7/H7 Plus/Pure Thermal lapok örökölt változatai mostantól el vannak rejtve a firmware-/lapválasztó listából egy új legacy lap-jelzővel (amely különbözik a már meglévő hidden jelzőtől), így azok a felhasználók, akiknek kifejezetten egy örökölt lapbejegyzésre van szükségük, már nem látják azt a legördülő menüben (6d78d6571).

  • Rövidebb soros időtúllépések. Az alapértelmezett válasz-olvasási időtúllépés 10000 ms-ról 5000 ms-ra csökken, az írási időtúllépés pedig 6000 ms-ról 3000 ms-ra (az -override_read_timeout alapértelmezett értéke mostantól 5000-ként van dokumentálva). A hosszabb alapértelmezésekre támaszkodó lassú lapok/kapcsolatok hamarabb időtúllépést okozhatnak.

A Qt Creator 14.0.2 átállás egy nagy belső modernizáció, de nem töri el a felhasználói projekteket.