v4.0.1

v4.0.1 är en modernisering från grunden som rebasar OpenMV IDE från dess långlivade grund i Qt Creator 4.0.2 till Qt Creator 10.0.1. Hela OpenMV-pluginstacken (bildbuffertvisare, seriell/protokoll, terminal, histogram, redigerare för tröskelvärden och nyckelpunkter, videoverktyg och omslag för firmware-flashning) återappliceras ovanpå den nya basen, tillsammans med ett polerat tempar av Flat Light/Flat Dark, OpenMV-medveten Python-färgmarkering, en enhetlig firmware-laddardialog och brett stöd för enhetsdetektering på ARM64 Linux och macOS. Bytet av Qt Creator-basen är en omfattande intern modernisering men bryter inte användarprojekt; några standardbeteenden och kortdefinitioner ändrades dock (se Brytande ändringar).

Höjdpunkter

  • Rebase till Qt Creator 10.0.1. IDE:n flyttas från Qt Creator 4.0.2 till 10.0.1: uppströms Qt Creator skalas ner till sina bygggrunder (98b95fd3b) och hela OpenMV-pluginet återläggs på den nya grunden (0e8047372).

  • Teman Flat Light och Flat Dark. Ett polerat par av ljust/mörkt tema levereras med matchande anpassade stilar för syntaxfärgmarkering i editorn; temaväljaren återexponeras i de allmänna inställningarna men begränsad till bara dessa två, och standardtemat är nu flat-dark (21348924b, 13c3849e8).

  • Seriell terminal med raw-REPL. Terminalen kör, avbryter, läser om och klistrar nu in skript via en riktig tillståndsmaskin för MicroPythons raw-REPL (CTRL-A/CTRL-D), och hanterar tillförlitligt större skript (a7241079c).

  • OpenMV-medveten Python-redigering. OpenMV-moduler, klasser, funktioner, metoder och argument syntaxfärgmarkeras utifrån den medföljande dokumentationen, med smartare autokomplettering och en parentes-/kolonmedveten autoindenterare (801eab8a8, 8e9f967e7, 9fdff9c6d).

  • Enhetlig firmware-laddardialog. Flashning visar nu en enda kontextuell dialog (Raderar disk / Flashar firmware / Flashar startladdare) med en förloppsindikator och en hopfällbar, tillståndskommande Visa/Dölj detaljer-logg (5b51356f8).

  • Stöd för OpenMV Cam RT1062. Firmware, DFU/flash-laddare, SDP/blhost-uppräkning och ett eFuse-bränningssteg i programmeringen läggs till för det nya kortet i i.MX RT1060-klassen (a6595f5f7), som sedan ges en distinkt kortvariant med Secure Bootloader (SBL) (d2b11c6c8).

Nya funktioner

  • Automationsflaggor. Flaggorna -auto_update (release / development / sökväg), -auto_erase och -auto_run låter IDE:n bootloada/radera firmware och sedan köra det öppna skriptet vid anslutning; efter en återanslutning av startladdaren väntar IDE:n upp till 10 s på att kameran ska räknas upp på nytt innan den fortsätter (b54affe79, f4e03d978).

  • Flaggan ``-disable_stop`` och en menyväxel stop on connect/disconnect låter användare inaktivera stopp av skriptet vid anslutning eller frånkoppling (02724ca7d).

  • Stop Script on Connect/Disconnect-växeln (på som standard) frikopplar anslutning/frånkoppling från att stoppa det körande skriptet; Auto Reconnect är nu av som standard (a0e78057f).

  • Fråga om korttyp. När ett anslutet kort rapporterar en arkitektur som inte finns i firmware-mappningen ber IDE:n nu användaren att välja korttyp (och kommer ihåg det senaste valet) istället för att avbryta med felet ”Unsupported board architecture!” (b7165eb3d).

  • OpenMV Python-syntaxfärgmarkering färgar kända OpenMV-moduler, klasser, data, funktioner, metoder och argument med hjälp av nyckelordslistor som fylls från den medföljande dokumentationen (801eab8a8, b4d481bf5).

  • ~300 språkdefinitioner för KSyntaxHighlighting levereras med editorn, så källfiler i många språk färgmarkeras direkt (39674a4dc).

  • Medföljande exempelskript för OpenMV (Hello World, stillbild, videoinspelning, optiskt flöde, händelsekameror, global slutare, FLIR Lepton med mera) committas nu in i och levereras med IDE:n (938ac6bbe).

  • Binär-/hexredigerare aktiveras så att användare kan öppna och inspektera binära filer, med dess verktygsfält beskuret för att passa OpenMV-gränssnittet (675bda966).

  • Diffning av dokument i minnet. Nya filer och skrivskyddade exempel får nu en backande temporärfil så att osparade dokument kan diffas, och den externa fildiffdialogen kommer ihåg den senast använda mappen (5281e5f6c, 2934d5216).

  • Plugin för flikbaserad editor återläggs och ger IDE:n en flikbaserad dokumentrad; minimap-pluginets källkod återlades men lämnades inaktiverad i bygget för den här utgåvan (0e8047372).

  • Reservflashning via DfuSe och pydfu återställs för DFU-enheter som inte kan riktas via serienummer, med automatisk radering utan dialog vid anslutning (e42a5be7d).

  • i.MX RT eFuse-bränning. Firmware-programmeringen bränner nu en eFuse (efuse-program-once) för korten i RT1060-klassen (8053bb578, a6595f5f7).

  • Guidesida för Linux Root Installs låter användaren välja till eller från den upphöjda apt-biblioteksinstallationen och installationen av udev-regler istället för att alltid köra dem (6bac80984).

Övriga ändringar och förbättringar

  • Skanning av serieportar i bakgrunden. Portuppräkning flyttades från UI-tråden till en dedikerad ScanSerialPortsThread-arbetare så att IDE:n förblir responsiv under skanning (7be4dab26).

  • Bredare enhetsdetektering. Portskanning omstrukturerades till en återanvändbar filterPorts()-hjälpare som väver in picotool- och i.MX DFU-enheter och omklassificerar kända serieportar för Arduino-startladdare (gamla NRF/RPI- och loader-PID:n) som DFU-enheter (25a5d30fd).

  • Fler terminalreservalternativ. Vid start av de medföljande videouppspelningsverktygen (Play Video File / Play RTSP Stream) på Linux faller IDE:n nu tillbaka via lxterminal, konsole och xfce4-terminal utöver xterm och gnome-terminal (df54007e0).

  • Rapportering av kortnycklar. Kameraregistrering tolkar nu ett ”Remaining N”-svar för att tala om för användaren hur många kortnycklar som återstår, och lägger till ett distinkt felmeddelande ”Invalid Board Key for Board Type” (5759e73eb).

  • GitHub-hostade nedladdningar. Versionskontroller och resursnedladdningar använder nu raw.githubusercontent.com/openmv/openmv-ide-version och utgåvorna i openmv/openmv-ide istället för upload.openmv.io (994109c28).

  • HTTPS överallt. Alla OpenMV-webbförfrågningar (versionskontroller, registrering av SWD-ID, resurs- och firmware-nedladdningar) använder nu https:// (54347cad0).

  • Automatisering av Linux-uppsättning. Installationsprogrammet upptäcker saknade bibliotek och udev-regler och, om det behövs, genererar ett körbart setup.sh med exakta installationskommandon för apt-get/pip och udev-regler (samt en README som ber användaren köra det) (c6dc705e6).

  • Tolerans för långsamma kort. Den seriella terminalen höjer sin väntetid per läsning från 1 ms till 10 ms och avger en ”OK”-bekräftelse när ett skript slutförs (c935e4489).

  • Jämnare flashningsförlopp. Förloppsindikatorer i firmware-laddaren växlar nu från obestämt till 0–100 % omedelbart istället för efter det första procentsteget, över dfu-util, bossac, picotool och i.MX-flashning (19d947308, 86d021f92).

  • Återställning för gammal startladdare återläggs via ett icke-snabbt startladdarläge som skickar raderings-/skrivkommandon utan utfyllnaden för fråge-synk i snabbläget (c20112c07).

  • Renare verktygskonsoler. Terminaler för firmware-flashning (bossac, dfu-util, picotool, imx, videoverktyg) körs nu som fristående konsolprocesser med bättre formaterad kommandoutdata (8053bb578).

  • Polerad autokomplettering. Komplettering skiljer mellan klasser, metoder och funktioner med separata argumenttips, använder riktiga kodmodellsikoner och respekterar offentlig/skyddad/privat synlighet utifrån prefix med understreck; nyckelordskompletteringsprocessorn hoppar även över inledande blanksteg före markören vid explicit (manuellt) anropad komplettering (8e9f967e7, 68b26b5fc).

  • Konsoliderade dialoger. OpenMV:s ad hoc-dialoger ”Don’t show this again” – inklusive informationsdialogen OpenMV Cam LED Colors vid uppstart samt frågorna om firmware-uppgradering och exempel – är förenade till CheckableMessageBox-dialoger med ”Do Not Ask/Show Again”, en knapp ”Reset Do Not Ask/Show Again Dialogs” lades till i de allmänna inställningarna, och kodvikningsmarkörer är inaktiverade som standard (9fdff9c6d).

  • Temamedveten varumärkning. Startskärmar för mörkt läge, mörka/ljusa ST- och NXP-chiplogotyper i Om-rutan, verktygstipsfärger för mörkt läge och korrekta ikonfärger för autokomplettering lades till (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).

  • Uppstädning av bildvisaren. Åtgärderna dela, bakgrund, kontur och ”set as default” är dolda, en åtgärd för anpassa till skärmen lades till, och dimensioneringen av animerade bilder rättades (b37c55e25).

  • Uppstädning av snabbmenyn. Posterna ”Show in File System View”, ”Open Terminal”, ”File Properties” och ”Add/Delete UTF-8 BOM on Save” är dolda (5d862c78e).

  • Mörk seriell terminal. Den fristående terminalen använder ett riktigt mörkt tema med stiliserade rullningslister, uppdaterade verktygsfältsikoner och korrekt omladdning av rullningslistsikoner i hög DPI över skärmar (5c3af6880).

  • Uppstädning av Sök/Find. Resultatpanelen får ett mörkt tema, väljaren för sökmotor är dold, etiketter förenklas, och Find-in-Files använder mappen Documents/OpenMV som standard (20a806550).

  • Applikationsidentitet. IDE:n visar nu rätt OpenMV-ikon på skrivbordet, i namnlisten och i aktivitetsfältet (med hög DPI-hantering på Windows), och IDE-id:t ändrades till openmvide (8ad1eed1f).

  • Startskärm i hög DPI visar en startbild i 2x på Retina-/200 %-skalade skärmar (626ff673e).

  • Reparation av åtgärdsfältet. Det vänstra åtgärdsfältet (New File, Open, Save, Undo, Redo, Cut, Copy, Paste) reparerades och fick anpassade OpenMV-ikoner (b8479b5d0).

  • Logotyper i Om-dialogen. Både Arduino- och Edge Impulse-partnerlogotyperna visas nu (Edge Impulse var tidigare dold) med 2x-varianter för hög DPI, och den medföljande startskärmsgrafiken uppdaterades (splash-small-2 / splash-large-2) (5facd8d9a).

  • Select Word Under Cursor är aktiverat; kommandona Go to Block Start/End (Ctrl+[ / Ctrl+]) och Select Block Up/Down återaktiverades kortvarigt (36ed5b1a8) men lämnades inaktiverade i utgåvan (626ff673e).

  • Skrivbordsposten för Linux får en Electronics-kategori, en beskrivande Comment och sök-Keywords (embedded electronics, microcontroller, micropython, computer/machine vision) (470e5702e).

  • Resursmigrering. Användarresurser flyttades till en versionerad plats (den gamla qtcreator-mappen tas bort vid uppstart), och ofarliga DirectWrite-typsnittsvarningar på Windows undertrycks (a04af5351, 70765dc2a).

  • Dolda interna alternativ. De interna Core-alternativen -color och -theme är dolda från hjälputmatningen, och presentationsläget återaktiverades (434c7b4cc).

  • Återapplicerade kärnanpassningar på det eleganta åtgärdsfältet/flikwidgeten, meddelandehanteraren/utmatningsfönstret, proxyåtgärder, syntaxfärgmarkeraren och textredigeraren (0e8047372).

  • QCustomPlot 2.1.1. Det medföljande ritbiblioteket uppdaterades för Qt 6.4-kompatibilitet och korrekt hantering av dynamiskt föränderlig display-DPI (8801415fe).

  • Kosmetiska UI-uppstädningar av rullningslisternas pilikoner, statusfältet, stängningsknapparna i dokumentflikraden och editorrullarens bredd; editorns indikator ”Display File Line Ending” är nu av som standard (e0c4d2325, 6a26f4430, e130988fb).

Buggfixar

  • Rättade VID/PID-detektering på Linux genom att läsa /sys/class/tty/<port>/device/uevent för enhetens riktiga VID/PID, vilket kringgår att QSerialPortInfo returnerar USB-hubbens identifierare, så att kameror bakom hubbar detekteras korrekt (28220b351).

  • Rättade firmware-flashning av Mac-startladdare genom att luckra upp assertioner om slutpunktsstorlek och endast lägga till synk-frågepaketet när en skrivning är exakt en USB-slutpunkt stor (86d021f92).

  • Rättade videouppspelningsverktygen på Linux: Play Video File / Play RTSP Stream är nu dolda på 32-bitars och ARM Linux (ingen medföljande ffplay), med ett gnome-terminal-reservalternativ när xterm inte är tillgängligt, och macOS-ffmpeg-binären återställdes från en platshållare (d342649cc, d896f4225).

  • Ökade fördröjningarna för start/slut vid återställning av startladdaren från 0 till 5 för att undvika att raderings- och skrivkommandon överlappar under firmware-uppdateringar (fabc168b6).

  • Strömlinjeformade återställning av startladdaren: att tvinga in startladdaren för att reparera en bricked kamera hoppar över redundanta frågor, och efter en återställning av DFU-startladdaren försöker IDE:n automatiskt uppdatera igen istället för att be användaren att återansluta (12b924088).

  • Tillät att seriella dumpkommandon för bildbuffert/TX-buffert kan avbrytas mitt i transaktionen (4a4afae1b).

  • Tog bort den seriella läs-stall-uppgivningskringgången som kunde fylla ut svar med nollbyte, vilket förbättrar tillförlitligheten vid snabba USB-överföringar (0ee1d8e91).

  • Rättade WiFi-felsökning och automatisk återanslutning: WiFi-portar uppdaterar sin senast-sedda tidsstämpel vid återupptäckt, flera fel med iterator-efter-radering i avveckling av WiFi-portar och DFU/startladdar-detektering rättades, och automatisk återanslutning väntar nu tills IDE:n inte är upptagen innan den återansluter (cf0b67dc6).

  • Rättade video-till-MJPEG-konverteraren så att den tolkar bildfrekvensen från kodarutdata och skriver rätt millisekunds-delta per bildruta, så att konverterade videor spelas upp i rätt hastighet (4a7ad2057).

  • Rättade att firmware-flashning och medföljande kommandoradsverktyg inte gick att starta genom att tvinga fram QProcess-backenden och rätta vakten för händelseloopen vid blockerande process (200fe9f3c).

  • Rättade förgreningsikonerna för expandera/fäll ihop i datamängdsredigerarens träd så att de renderas korrekt på HiDPI-skärmar genom att läsa om ikonstilmallen vid ändring av enhetspixelförhållande (a0e78057f).

  • Paket-/resursuppdateringar startar nu om OpenMV IDE automatiskt istället för att bara avslutas efter installationen (178ee1b8e).

  • Rättade markeringen av Sök-/sökresultat och fick åtgärderna för sökresultat/filöppning att falla tillbaka till den första synliga editorn när det inte finns någon aktuell editor (48c402dfc).

  • Rättade firmware-laddardialogen så att dess varningstext rensas och fönstret ändrar storlek korrekt när en flashningsoperation slutförs (c505c6ade).

  • Rättade flera UI-buggar på macOS: flikraden skräpar inte längre ner med ikonladdningsfel och visas korrekt vid filöppning (9be8c58de, 5322cf968).

  • Rättade stilsättning och baslinjejustering av statusfält/utmatningspanel på macOS och Linux (4fc4545de, d29b2baa0, a440d5cd8).

  • Rättade utskrift av källkod så att sidtitelhuvudet får ordentliga marginaler upptill och i sidled istället för att vidröra sidkanten (786d6012c).

Plattforms- och verktygsstöd

  • Qt Creator-bas: 10.0.1 (rebasad från 4.0.2).

  • OpenMV IDE: 4.0.0 -> 4.0.1.

  • OpenMV Cam RT1062 (i.MX RT1060): den initiala RT1062-firmwaren, flash-laddaren, signerade avbildningar, imx.txt-posten och konfigurationsnycklarna för secure-bootloader/eFuse blhost lades till i firmware-mappen OPENMV5 (a6595f5f7); kortet konsoliderades sedan till en enda OPENMV_RT1060-mapp, och en distinkt kortvariant med Secure Bootloader (SBL) (OpenMV_Cam_RT1062_SBL) lades till (d2b11c6c8, 5baf28c6e).

  • Medföljande flashningsverktygskedja (blhost, bossac, dfu-util, dfuse + STM32-drivrutiner, picotool, sdphost, ffmpeg, FTDI-/Arduino-drivrutiner) ompaketerades för Windows/macOS/Linux, med Linux-binärerna markerade som körbara (fbfa4903a, bfb6b32e2, 9551c64da).

  • ARM64 Linux DFU: en medföljande aarch64 dfu-util plus arm64-detektering i enhetslistning och firmware-nedladdning möjliggör DFU-flashning på värdar såsom Raspberry Pi (16bc6fe0f, 470e5702e).

  • i.MX-enhetsdetektering fungerar nu på Linux (genom att tolka lsusb) och macOS (genom att skanna ioreg), vilket möjliggör laddning av i.MX RT-firmware på dessa plattformar (e03ccbe71, 7cf505d09).

  • Plattformsgrindning: användning av i.MX begränsas till Windows/macOS/Linux-x86_64 med ett kritiskt fel på andra platser, och flashning av Portenta/Nicla på ARM/ARM64 Linux visar varningen ”DFU Util may not be stable on this platform” (9513f6475).

  • Windows OpenGL: mjukvarurendering återställdes genom att paketera opengl32sw, Qt6OpenGL och Qt6Gui OpenGL-stöd i det utrullade paketet (aaaa1928f).

  • Arduino-kortmappar/id:n omdöpta. Firmware-mapparna och boards.txt-kort-id:na för Portenta, Nicla Vision och Nano 33 BLE Sense döptes om till ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION och ARDUINO_NANO_33_BLE_SENSE (a70d6562a); mappen/kort-id:t för Nano 33 BLE Sense gjordes därefter gemen till arduino_nano_33_ble_sense för att matcha det kortnamn enheten rapporterar (22750d8c7, a801a81de).

  • OPENMV_RT1060-startladdarens flash-laddare (blhost_flash_loader.bin, sdphost_flash_loader.bin) uppdaterades (5baf28c6e).

  • QCustomPlot: 2.1.1 (medföljande ritbibliotek) (8801415fe).

  • Firmware-avbildningar på disk ompaketerades för alla stödda OpenMV-/Arduino-kort (OPENMV1-4P, OPENMV4_PRO, OPENMVPT, ARDUINO_NICLA_VISION, arduino_nano_33_ble_sense, ARDUINO_PORTENTA_H7, ARDUINO_NANO_RP2040_CONNECT, OPENMV_RT1060, CYW4343 plus WINC1500 WiFi-firmware), med firmware och, där tillämpligt, startladdar-/uvc-avbildningar (fbfa4903a).

Brytande ändringar

Detta är användarsynliga ändringar i arbetsflöde och beteende; själva rebasen till Qt Creator 10.0.1 bryter inte användarprojekt eller skript.

  • i.MX RT1060-kortdefinitioner ändrade. Posterna EVKBMIMXRT1060 och OPENMV5 ersattes av ett enda OPENMV_RT1060-kort (OpenMV Cam RT1062, plus en SBL-variant), och de gamla firmware-mapparna togs bort (d2b11c6c8).

  • Standardtimeout för kommandosvar är 10000 ms (var 5000 ms i 4.0.0); hjälptexten för -override_read_timeout uppdaterades för att matcha (4a4afae1b).

  • Anslutnings-/frånkopplingsbeteende ändrat. Auto Reconnect är nu AV som standard, och att ansluta eller koppla från stoppar inte längre det körande skriptet som standard om inte den nya växeln ”Stop Script on Connect/Disconnect” är aktiverad (den är på som standard) (a0e78057f).

  • Uppdateringsflödet startar om IDE:n. Paket-/resursuppdateringar startar nu om OpenMV IDE automatiskt istället för att avslutas efter installationen (178ee1b8e).

  • Arduino-kort-id:n omdöpta. boards.txt-kort-id:na och firmware-mapparna för Portenta, Nicla Vision och Nano 33 BLE Sense döptes om till ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION och ARDUINO_NANO_33_BLE_SENSE (den sistnämnda gjordes senare gemen till arduino_nano_33_ble_sense) (a70d6562a, 22750d8c7, a801a81de).