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
pylspszervert (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_dfurendszerbetöltő-folyamat vezérli a firmware-frissítéseket asettings.jsonalapjá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
37C5USB 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_dfurendszerbetö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 asettings.jsonalapjá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.dfubetöltését az STM32 ROM helyreállító rendszerbetöltőre, csak abootloader.dfuhaszná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
PATHPython 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
Pythonkategó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ágyazottpython.exefá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-headersmappá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 afirmware/settings.jsonhiá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
TextEditorplugint (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/-blockparancssori 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 aHighlight selectiona 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_timeoutalapé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_STATEleké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_statekezelé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
hiddenlap-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
ImageWriteridő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-headersmappá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ő
.pyfá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űs96e3értékre javítva, hogy az udev kis- és nagybetűre érzékenyidProductegyezése működjön (2cd43c96b). Az AE3 DFU rendszerbetöltő Linux udev szabályát is frissítették a37c5:afe3termékazonosítóra azopenmvdfuszimbolikus 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
37C5gyá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ésujsonmegosztott könyvtárakkal (d3aa663d8, a2cb24e74).Mellékelt nyelvi szerver:
pylspastroid 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
37C5gyártói azonosítóra állnak át új termék- és DFU rendszerbetöltő azonosítókkal; a régi1209:ABD1VID-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
legacylap-jelzővel (amely különbözik a már meglévőhiddenjelző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_timeoutalapé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.