v4.4.0¶
v4.4.0 är en omfattande moderniseringsutgåva som flyttar OpenMV IDE från dess sedan länge etablerade Qt Creator 10.0.1-bas till Qt Creator 14.0.2, och återapplicerar hela OpenMV-insticksmodulen och varje fork-anpassning ovanpå den nyare basen. Utöver detta levererar denna utgåva en inbäddad Python-språkserver för offline kodkomplettering, aktiverar GitHub Copilot på alla plattformar, introducerar en ny anpassad OpenMV DFU-startladdare och migrerar OpenMV-kameror till ett nytt 37C5 USB-tillverkar-ID. Basbytet är en stor intern modernisering men förstör inte användarnas projekt; se Brytande ändringar för det fåtal användarsynliga arbetsflödesändringar.
Höjdpunkter¶
Qt Creator 14.0.2-ombasering. IDE:n flyttas från Qt Creator 10.0.1 till 14.0.2, med hela OpenMV-insticksmodulen och alla
// OPENMV-DIFF //-anpassningar återapplicerade på den moderna basen (d6c895be8, 1fa75b397).Inbäddad Python-språkserver. IDE:n levererar nu och använder automatiskt en medföljande
pylsp(med astroid 3.3.5), vilket ger offline Python/MicroPython-kodkomplettering utan en separat pip-installation på Windows, macOS och Linux x86_64 (257addee0, 5a2b3e72f, 94470798d).GitHub Copilot på alla plattformar. Copilot är integrerad och aktiverad som standard, med en medföljande Node.js 20.18.0-körmiljö för Windows, macOS och Linux så att den inte längre är begränsad till utvalda maskiner, plus en startdialog för att slå på den (bb07d582b, 1cb967c5a, b37e48040).
Ny OpenMV DFU-startladdare. Ett fullt implementerat anpassat
openmv_dfu-startladdarflöde driver firmware-uppdateringar frånsettings.json, inklusive en ”board in DFU mode detected”-dialog som erbjuder valen installera-senaste-utgåva, ladda-specifik-firmware och radera-filsystem, plus en reservstartladdarväg för att återställa förstörda kameror (08b9d0676, 6a6a9351d, 6d78d6571).Nytt kamerastöd. Lägger till korten OpenMV Cam N6, RT1062 och AE3, och migrerar kameror till det nya
37C5USB-tillverkar-ID:t med uppdaterade DFU-drivrutiner och udev-regler (000ed8a87, f453bc945, 4a16e04c2, 6d78d6571).Mer tillförlitlig seriell kommunikation. Stora seriella kommunikationsfixar löser förvanskad terminaltext och slumpmässiga frånkopplingar med TinyUSB-baserade kameror (caeba6a16, 6cf122a3c).
Nya funktioner¶
OpenMV DFU-startladdare. Ett nytt
openmv_dfu-startladdarsystem med dedikerade DFU-drivrutiner och en reservstartladdarmekanism återställer förstörda kameror över olika firmware-typer (6a6a9351d, 6d78d6571). Flödet driver firmware-uppdateringar frånsettings.jsonoch presenterar en ”board in DFU mode detected”-dialog med valen installera-senaste-utgåva, ladda-specifik-firmware och radera-filsystem (08b9d0676, ef19133b6, 9c59d113c).Kortnamn i portväljaren. Dialogen för val av serieport sonderar nu varje port och visar det detekterade kortnamnet bredvid porten (t.ex.
COM3: OpenMV Cam H7) istället för ett naket portnamn (9837d6cb5).Flikbaserad editor. Den flikbaserade editor-insticksmodulen är återställd, vilket lägger till en rad med dokumentflikar ovanför editorområdet för att växla mellan öppna filer (c8519c09f), och den bevarar och återställer nu flikordning mellan sessioner (55ccfb207).
Python-syntaxmarkering. Lägger till en dedikerad Python-syntaxmarkeringsdefinition för editorn med regler för strängformat, flyttal och nyckelord (9be46c0c3).
Övriga ändringar och förbättringar¶
Omstrukturering av firmware-laddning. Koden för firmware-laddning delades upp i separata per-typ-startladdarhanterare (OpenMV DFU, Arduino DFU, BOSSAC, i.MX, picotool), vilket lägger till touch-to-reset PID-hantering för Arduino DFU-kort och explicita ”Legacy”-kortvarianter för enheter med alternativa VID/PID (9f465f9f8).
Skyddsåtgärder för STM32 ROM-startladdare. IDE:n varnar nu för eller blockerar laddning av
firmware.dfu/openmv.dfutill STM32 ROM-återställningsstartladdaren, och rekommenderar endastbootloader.dfuför att undvika att förstöra STM32H7-kort som påverkas av en bugg i chippets ROM-startladdare (c5ce0ae1a, e7cde1ec1).Automatisk, tyst konfiguration av Python-LSP. Python-språkservern installeras och uppdateras nu automatiskt utan informationsfältsuppmaningar eller skräp i konsolmeddelanden (d89f5985f), och systemet för Python-autokomplettering/dokumentationssvävning omarbetades till en dedikerad OpenMV-dokumentationsmotor som tolkar de medföljande HTML-biblioteksdokumenten för att driva nyckelordsmarkering och verktygstips (47e02873b, 4f9853f21, 82cefc931).
Detektering av Python-tolk på Linux. Tolkdetektering på Linux är nu automatisk, beaktar endast Python 3-tolkar från
PATHoch väljer den nyaste som den enda standardtolken (214fdc758).Uppstädning av Python-inställningar. Per-tolk-hanteringsgruppen och Interpreters-sidan är dolda, Language Server Configuration är inordnad under en
Python-kategori, och de oanvända REPL- och tolkväljar-verktygsfältsknapparna är dolda i Python-editorn (d89f5985f). På Windows registrerar IDE:n nu automatiskt den medföljande inbäddadepython.exesom standardtolk, med den medföljande språkservern behandlad som redan installerad (1d9ca003e, d89f5985f).Renare profilkatalog. IDE:n skriver inte längre oanvända Qt Creator-inställningsfiler (devices, kits, toolchains, Qt-versioner) och öppnar filer direkt i editorn (3771b0107), söker inte längre igenom systemet efter qmake/Qt-versioner (42807f25f), och undviker att ladda oanvänd device/toolchain/kit-maskineri och uppstartsbrus (902a357de, b2666a35b).
Säkrare uppdateringar. Uppdatering av IDE:n skriver inte längre över användarresurser; endast de hanterade resursmapparna (examples, firmware, html, models) tas bort och kopieras om, med
micropython-headersdessutom borttagen (den installeras separat istället för att kopieras om via denna väg), och ett tydligare felmeddelande omfirmware/settings.jsonsaknas eller är ogiltig (b4b8c208d, 3255ba4fb).Snabbare DFU-anslutning. Väntetiden för DFU-anslutning minskades så att flashning och anslutning går snabbare (11d8c9fe3, 4700bf678).
Återställd OpenMV-meny och UI-anpassningar. Den strömlinjeformade OpenMV-menylayouten är återapplicerad, vilket döljer menyerna Build och Debug och tar bort projekthanteringsåtgärder (7503f2bec); kodkompletteringsmotorn återfår klass-/metodmedvetenhet och public/private-nyckelordsräckvidder för MicroPython-autokomplettering (55fc348ea); terminalens ANSI-färgrendering är återapplicerad med temamedvetna ljusa/dämpade värden och stöd för cursor-back-escape (c6787a27a); och bildvisarens verktygsfält är anpassat med verktygstips för upplösning/zoom och en omplacerad Fit-to-Screen-åtgärd (734fec693).
Återställda medföljande resurser. Flashningsverktyg, DFU-drivrutiner, firmware och hela exempel-/skriptträdet är återställda i share-resurserna efter ombaseringens nedbantning (33c8354bc), och OpenMV:s anpassade logik för programuppstart är återapplicerad: den kräver hårt
TextEditor-insticksmodulen (kontrollerna för OpenMV- och TabbedEditor-insticksmodulerna finns men är inaktiverade), installerar en anpassad Qt-meddelandehanterare, tar bort kommandoradsalternativen-client/-pid/-blockoch tvingar fram enkelinstans-beteende (06c788f3d).Fel vid saknad insticksmodul. Appen misslyckas nu hårt med ett tydligt felmeddelande om de nödvändiga insticksmodulerna saknas eller är inaktiverade, OpenMV-insticksmodulen fick ett Copilot-beroende, och flera textredigeringsalternativ (
Prefer single line commentsoch kommentarspositionsväljaren i Behavior-inställningarna, samtHighlight selectioni Display-inställningarna) är dolda (1bc02b1f3).Kortare seriella timeouts. De seriella protokoll-timeouterna kortades ned (läsning 10000 till 5000 ms, skrivning 6000 till 3000 ms) för snabbare felåterkoppling, med standardvärdet för det dokumenterade
-override_read_timeoutuppdaterat för att matcha (641385af4).Återställning av fastnad port. Serieportar som fastnat mitt i ett kommando återställs nu med en
GET_STATE-förfrågan (konfigurerbar via get-state-inställningen) istället för en skriptkörningsförfrågan (a8598f550).Ordning i inställningsdialogen. Inställningsdialogen döljer kryssrutan för alfabetisk kategorisortering så att sidlistan behåller OpenMV:s avsedda ordning (1cb967c5a).
Förenklade Copilot-inställningar. Copilot-inställningssidan är reducerad till enbart inloggnings-/autentiserings- och proxy-kontrollerna, och döljer alternativen aktivera-Copilot, Node.js-sökväg, dist-sökväg och autokomplettering (1cb967c5a).
Felrättningar¶
Rättade stora seriella kommunikationsproblem genom att öka timeouten för seriell lässtockning 10x och inaktivera en
GET_STATE-baserad upplåsningsväg som förvanskade text i serieterminalen (caeba6a16).Rättade slumpmässiga seriella frånkopplingar med TinyUSB-baserade kameror genom att utfärda ett frame-dump-upplåsningskommando och omarbeta hanteringen av lässtockning istället för att koppla från (6cf122a3c).
Gjorde kamerans
get_state-hantering tolerant mot korta/partiella svar och säkerställde att buffrad text i serieterminalen töms under felåterställning så att loggutdata inte går förlorad (c8b4248a6, 247a779dd).Korrigerade partitions-/alt-setting-nummer för DFU-startladdarens flashminne vid laddning av OpenMV Cam-firmware (a8700d12d).
Återställde alla startladdare genom att respektera en ny
hidden-kortflagga, växla serienummerfiltrering till inversa filter och ge UF2-posten för Arduino Nano RP2040 Connect en fungerande picotool-konfiguration (63cee629b).Rättade att startladdarens dialog för val av korttyp kom ihåg fel värde genom att använda separata historiknycklar för människoläsbara och IMX-korttypsval (a3325af32).
Rättade beräkningen av tidsstämpel/bildfrekvens vid videotranskodning (Save Video) genom att beräkna det genomsnittliga bildrutsintervallet i mikrosekunder, stödja ett nytt v21
ImageWriter-tidsformat och skydda mot null-pixmaps under konvertering (f5c75c749, f8f762b3e).Rättade en krasch i histogram-/framebuffer-vyn när en tom (null) pixmap togs emot genom att skydda
pixmapUpdate()mot null-data (622cf5ea8).Återställde verktygstips för svävningsannoteringar i textredigeraren så att svävning över textmarkeringar åter visar annoteringsverktygstipset (1852d18e1).
Förhindrade att informationsdialogerna för GitHub Copilot och LED-färger dyker upp medan IDE:n är upptagen med att ansluta eller flasha (f8f762b3e).
Lade till kraschskydd i språkklienten så att hantering av dokumentinnehållsändringar inte längre kraschar IDE:n i gränsfall (7926ffe4c).
Rättade Python-språkserverkontroller som förhindrade en ren avstängning av IDE:n genom att låta Python-insticksmodulen vänta asynkront på pågående kontroller innan avslut (9ff6c7936).
Rättade Python-autokomplettering på Linux: språkklienten rotar sig vid de medföljande
micropython-headersoch den överflödiga kompletteringspopup-åtgärden i editorns verktygsfält är dold (d37f66a9a, 56e748f9d, 016fa73eb).Rättade hanteringen av temporära/osparade filer så att Save As använder fildialogens initiala katalog, och Save Items-dialogen samt Diff-editorn visar inte längre interna temporära filsökvägar (b7f0bb378, c8e7b6b8f, 6b128c34c).
När en namnlös/temporär buffert sparas föreslår Save As-dialogen nu som standard ett korrekt
.py-filnamn istället för ett tomt namn (3001fdfff).Temporära/namnlösa dokument erbjuds nu för sparande när de ändrats, exkluderas från autospara och dirigeras korrekt genom Save As (f87b71cf0).
Rättade ordningen i menyn Recent Files så att återöppning av en redan listad fil inte längre ändrar dess ordning, och fildialogen använder nu projektkatalogen som standard (d49c0c993).
Rättade textrendering i meddelanderutor genom att inte längre tvinga rich-text-format på kryssbara meddelanderutor, så att rå text visas korrekt (0c565502f).
Rättade verktygstipsfärger så att verktygstips renderas korrekt i det ljusa temat (35cbf077b).
Allmänna stabilitets- och uppstädningsfixar för Qt Creator över kärninställningar, språkklienten, MSVC-verktygskedjan, projektutforskaren och Python-insticksmodulerna (836b163dc, 134f43cb8).
Korrigerade namnet på den medföljande firmware-mappen för Arduino Nano 33 BLE Sense (b1d8ac227) och rättade Linux udev-regeln för AE3 DFU-startladdarens produkt-ID, och korrigerade
96E3till gemena96e3så att udev:s skiftlägeskänsligaidProduct-matchning fungerar (2cd43c96b). AE3 DFU-startladdarens Linux udev-regel uppdaterades också till produkt-ID:t37c5:afe3föropenmvdfu-symlänken (b99555637).
Plattforms- och verktygsstöd¶
Qt Creator-bas: 14.0.2 (ombaserad från 10.0.1).
OpenMV Cam N6 stöds nu (VID:PID 37C5:1206, DFU-startladdare 37C5:9206), inklusive firmware-inställningar, en Windows DFU-drivrutin och en Linux udev-regel (000ed8a87, 1b950c8c6).
OpenMV Cam RT1062 stöds nu under ett nytt anpassat USB VID/PID (37C5:1060), inklusive DFU-drivrutiner, udev-regler och bibehållna äldre 1209:ABD1-poster för äldre enheter (f453bc945, d55d6441f).
OpenMV Cam AE3 stöds nu, inklusive Windows DFU-drivrutiner, dess firmware-/konfigurationsbildträd och USB VID/PID (uppdaterat till 37C5:16E3 körtid / 37C5:96E3 startladdare) (4a16e04c2, cc52e76f5, 3f75e7de4, 8eb80b129).
Nytt USB VID/PID-system: OpenMV-kameror flyttar till tillverkar-ID
37C5med nya startladdar-/DFU-ID:n (t.ex. 37C5:1202/9202 M4, 1203/9203 M7, 1204/9204 H7, 124A/924A H7 Plus, 1205/9205), och ommärker gamla 1209:ABD1-kort som Legacy medan både gammal och ny firmware fortfarande stöds (6d78d6571, 6a6a9351d, 500b1a0bf).PAG7936-bildsensor tillagd i listan över igenkända sensorer (f9e3f3461).
Inbäddad Python 3.13-tolk medföljer för macOS, Linux x86_64, Linux arm64 och Linux arm (9133b1516), med inbyggda
libpython3.13- ochujson-delade bibliotek (d3aa663d8, a2cb24e74).Medföljande språkserver:
pylspmed astroid 3.3.5 på Windows, macOS och Linux x86_64 (257addee0). Windows-bygget levererar en inbäddad CPython med python-lsp-server 1.12.0, jedi 0.17.2, docstring_to_markdown 0.15, pip 24.2 och distlib 0.3.9 (9b6434602, 069807cd3, 5f2e45196, 3b6c6c312).Medföljande Node.js 20.18.0 ”Iron” LTS-körmiljö för Windows, macOS, Linux arm64, Linux x64 och Linux armv7 för att möjliggöra GitHub Copilot på alla plattformar (bb07d582b, 6db78bf45, 1cb967c5a).
Alif Security Toolkit signerade boot-/systempaketbinärer och användarhandbok medföljer för Windows, macOS och Linux x86_64 för provisionering av Alif-baserade OpenMV-kameror (t.ex. AE3) (f63851be3).
Linux skrivbordsintegration är återställd, vilket installerar en programskrivbordspost och AppStream-metadata samt registrerar Python (
.py)-MIME-typen (3fa25f571).
Brytande ändringar¶
Inget skript-API ändrades. Följande användarsynliga arbetsflödes- och beteendeändringar kan märkas:
Nytt USB-tillverkar-ID. OpenMV-kameror migrerar till tillverkar-ID
37C5med nya produkt- och DFU-startladdar-ID:n; kort på det gamla1209:ABD1-VID:t märks nu som ”Legacy”. IDE:n stöder både gammal och ny firmware samtidigt, men Linux-användare måste installera om de uppdaterade udev-reglerna för att de nya ID:na ska kännas igen.Äldre kortposter dolda. Äldre varianter av korten OpenMV Cam M4/M7/H7/H7 Plus/Pure Thermal undertrycks nu från firmware-/kortvalslistan via en ny
legacy-kortflagga (skild från den befintligahidden-flaggan), så användare som specifikt behöver en äldre kortpost kommer inte längre att se den i rullgardinsmenyn (6d78d6571).Kortare seriella timeouts. Standard-timeouten för svarsläsning sänks från 10000 ms till 5000 ms och skriv-timeouten från 6000 ms till 3000 ms (standardvärdet för
-override_read_timeoutdokumenteras nu som 5000). Långsamma kort/länkar som förlitade sig på de längre standardvärdena kan få timeout tidigare.
Qt Creator 14.0.2-ombaseringen är en stor intern modernisering men är inte brytande för användarnas projekt.