v4.0.1

v4.0.1 este o modernizare de la zero care rebazează OpenMV IDE de pe vechea sa fundație Qt Creator 4.0.2 pe Qt Creator 10.0.1. Întreaga stivă de plugin-uri OpenMV (vizualizatorul de tampon de cadre (frame buffer), serial/protocol, terminalul, histograma, editoarele de prag și de puncte-cheie, instrumentele video și învelișurile de programare a firmware-ului) este reaplicată peste noua bază, împreună cu o pereche rafinată de teme Flat Light/Flat Dark, evidențierea sintaxei Python conștientă de OpenMV, un dialog unificat de încărcare a firmware-ului și suport extins pentru detectarea dispozitivelor pe ARM64 Linux și macOS. Schimbarea bazei Qt Creator este o modernizare internă amplă, dar nu strică proiectele utilizatorilor; câteva comportamente implicite și definiții de plăci s-au schimbat (vezi Modificări incompatibile).

Repere

  • Rebazare pe Qt Creator 10.0.1. IDE-ul trece de la Qt Creator 4.0.2 la 10.0.1: Qt Creator din amonte este redus la elementele de bază pentru compilare (98b95fd3b), iar întregul plugin OpenMV este readăugat pe noua fundație (0e8047372).

  • Temele Flat Light și Flat Dark. O pereche rafinată de teme deschisă/întunecată este livrată împreună cu stiluri personalizate corespunzătoare de evidențiere a sintaxei în editor; selectorul de teme este reexpus în setările General, restrâns doar la acestea două, iar tema implicită este acum flat-dark (21348924b, 13c3849e8).

  • Terminal serial Raw-REPL. Terminalul rulează, întrerupe, reîncarcă și lipește acum scripturi printr-o mașină de stări REPL brut (raw-REPL) MicroPython corespunzătoare (CTRL-A/CTRL-D), gestionând în mod fiabil scripturi mai mari (a7241079c).

  • Editare Python conștientă de OpenMV. Modulele, clasele, funcțiile, metodele și argumentele OpenMV sunt evidențiate sintactic pe baza documentației incluse, cu o completare automată mai inteligentă și un auto-indentator conștient de paranteze/două puncte (801eab8a8, 8e9f967e7, 9fdff9c6d).

  • Dialog unificat de încărcare a firmware-ului. Programarea afișează acum un singur dialog contextual (Erasing Disk / Flashing Firmware / Flashing Bootloader) cu o bară de progres și un jurnal Show/Hide Details pliabil care își reține starea (5b51356f8).

  • Suport pentru OpenMV Cam RT1062. Firmware-ul, încărcătoarele DFU/flash, enumerarea SDP/blhost și un pas de programare prin ardere de eFuse sunt adăugate pentru noua placă din clasa i.MX RT1060 (a6595f5f7), căreia i se atribuie apoi o variantă distinctă de placă cu Secure Bootloader (SBL) (d2b11c6c8).

Funcționalități noi

  • Indicatori de automatizare. Indicatorii -auto_update (release / development / cale), -auto_erase și -auto_run permit IDE-ului să încarce/șteargă firmware-ul și apoi să ruleze scriptul deschis la conectare; după o reconectare a bootloader-ului, IDE-ul așteaptă până la 10s ca camera să se reenumere înainte de a continua (b54affe79, f4e03d978).

  • Indicatorul ``-disable_stop`` și un comutator de meniu stop on connect/disconnect permit utilizatorilor să dezactiveze oprirea scriptului la conectare sau deconectare (02724ca7d).

  • Comutatorul Stop Script on Connect/Disconnect (activat implicit) decuplează conectarea/deconectarea de oprirea scriptului în execuție; Auto Reconnect este acum dezactivat implicit (a0e78057f).

  • Solicitare pentru tipul plăcii. Când o placă conectată raportează o arhitectură care nu se află în maparea firmware-ului, IDE-ul solicită acum utilizatorului să aleagă tipul plăcii (reținând ultima alegere) în loc să se oprească cu o eroare „Unsupported board architecture!” (b7165eb3d).

  • Evidențierea sintaxei Python OpenMV colorează modulele, clasele, datele, funcțiile, metodele și argumentele OpenMV cunoscute folosind liste de cuvinte-cheie populate din documentația inclusă (801eab8a8, b4d481bf5).

  • ~300 de definiții de limbaj KSyntaxHighlighting sunt livrate cu editorul, astfel încât fișierele sursă în multe limbaje sunt evidențiate imediat (39674a4dc).

  • Scripturile exemplu OpenMV incluse (Hello World, instantaneu, înregistrare video, flux optic, camere de evenimente, global shutter, FLIR Lepton și altele) sunt acum incluse în și livrate împreună cu IDE-ul (938ac6bbe).

  • Editorul binar/hexazecimal este activat astfel încât utilizatorii să poată deschide și inspecta fișiere binare, cu bara de instrumente redusă pentru a se potrivi cu interfața OpenMV (675bda966).

  • Diferențiere de documente în memorie. Fișierele noi și exemplele doar pentru citire primesc acum un fișier temporar de suport, astfel încât documentele nesalvate să poată fi diferențiate, iar dialogul de diferențiere a fișierelor externe reține ultimul folder utilizat (5281e5f6c, 2934d5216).

  • Plugin-ul de editor cu file este readăugat, oferind IDE-ului o bară de documente cu file; sursa plugin-ului de minimap a fost readăugată, dar lăsată dezactivată în compilare pentru această versiune (0e8047372).

  • Programarea de rezervă DfuSe și pydfu este restaurată pentru dispozitivele DFU care nu pot fi vizate după numărul de serie, cu gestionarea automată a ștergerii fără dialog în timpul conectării (e42a5be7d).

  • Ardere de eFuse i.MX RT. Programarea firmware-ului arde acum un eFuse (efuse-program-once) pentru plăcile din clasa RT1060 (8053bb578, a6595f5f7).

  • Pagina de asistent Linux Root Installs permite utilizatorului să accepte sau să refuze instalarea elevată a bibliotecilor apt și instalarea regulilor udev în loc să le ruleze întotdeauna (6bac80984).

Alte modificări și îmbunătățiri

  • Scanare în fundal a porturilor seriale. Enumerarea porturilor a fost mutată de pe firul de execuție al interfeței într-un lucrător dedicat ScanSerialPortsThread, astfel încât IDE-ul rămâne receptiv în timpul scanării (7be4dab26).

  • Detectare mai amplă a dispozitivelor. Scanarea porturilor a fost refactorizată într-un ajutor reutilizabil filterPorts() care include dispozitivele picotool și i.MX DFU și reclasifică porturile seriale cunoscute de bootloader Arduino (PID-urile NRF/RPI vechi și de încărcător) ca dispozitive DFU (25a5d30fd).

  • Mai multe terminale de rezervă. La lansarea instrumentelor incluse de redare video (Play Video File / Play RTSP Stream) pe Linux, IDE-ul recurge acum la lxterminal, konsole și xfce4-terminal pe lângă xterm și gnome-terminal (df54007e0).

  • Raportarea cheilor de placă. Înregistrarea camerei analizează acum un răspuns „Remaining N” pentru a-i spune utilizatorului câte chei de placă au mai rămas și adaugă un mesaj de eroare distinct „Invalid Board Key for Board Type” (5759e73eb).

  • Descărcări găzduite pe GitHub. Verificările de versiune și descărcările de resurse folosesc acum raw.githubusercontent.com/openmv/openmv-ide-version și versiunile openmv/openmv-ide în loc de upload.openmv.io (994109c28).

  • HTTPS peste tot. Toate cererile web OpenMV (verificări de versiune, înregistrarea SWD ID, descărcări de resurse și firmware) folosesc acum https:// (54347cad0).

  • Automatizarea configurării Linux. Programul de instalare detectează bibliotecile și regulile udev lipsă și, dacă este necesar, generează un fișier executabil setup.sh cu comenzile exacte de instalare apt-get/pip și de reguli udev (și un README care îi spune utilizatorului să îl ruleze) (c6dc705e6).

  • Toleranță pentru plăci lente. Terminalul serial își mărește timpul de așteptare pe citire de la 1ms la 10ms și emite o confirmare „OK” când un script se termină (c935e4489).

  • Progres mai fluid al programării. Barele de progres ale încărcătorului de firmware trec acum de la nedeterminat la 0-100% imediat, nu după primul tic procentual, pentru dfu-util, bossac, picotool și programarea i.MX (19d947308, 86d021f92).

  • Recuperarea bootloader-ului vechi este readăugată printr-un mod de bootloader non-rapid care trimite comenzi de ștergere/scriere fără umplutura de sincronizare prin interogare a modului rapid (c20112c07).

  • Console de instrumente mai curate. Terminalele de programare a firmware-ului (bossac, dfu-util, picotool, imx, instrumente video) rulează acum ca procese de consolă autonome cu o ieșire de comandă mai bine formatată (8053bb578).

  • Rafinarea completării automate. Completarea distinge clasele, metodele și funcțiile cu indicii de argumente separate, folosește pictograme corecte de model de cod și respectă domeniul public/protejat/privat prin prefixul cu liniuță de subliniere; procesorul de completare a cuvintelor-cheie sare de asemenea peste spațiile albe de la început, înaintea cursorului, la completarea invocată explicit (manual) (8e9f967e7, 68b26b5fc).

  • Dialoguri consolidate. Dialogurile ad-hoc „Don’t show this again” ale OpenMV – inclusiv dialogul de informații de la pornire OpenMV Cam LED Colors și solicitările de actualizare a firmware-ului și de exemple – sunt unificate pe dialogurile CheckableMessageBox „Do Not Ask/Show Again”, un buton „Reset Do Not Ask/Show Again Dialogs” a fost adăugat în setările General, iar marcajele de pliere a codului sunt dezactivate implicit (9fdff9c6d).

  • Identitate vizuală conștientă de temă. Au fost adăugate ecrane de pornire în mod întunecat, logo-uri de cipuri ST și NXP întunecate/deschise în caseta About, culori de sfaturi în mod întunecat și culori corecte ale pictogramelor de completare automată (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).

  • Curățare a vizualizatorului de imagini. Acțiunile de partajare, fundal, contur și „set as default” sunt ascunse, a fost adăugată o acțiune de potrivire pe ecran, iar dimensionarea imaginilor animate a fost corectată (b37c55e25).

  • Curățare a meniului contextual. Intrările „Show in File System View”, „Open Terminal”, „File Properties” și „Add/Delete UTF-8 BOM on Save” sunt ascunse (5d862c78e).

  • Terminal serial întunecat. Terminalul autonom folosește o temă întunecată corespunzătoare cu bare de derulare stilizate, pictograme actualizate ale barei de instrumente și reîncărcarea corectă a pictogramelor barei de derulare la rezoluție înaltă (high-DPI) pe diferite ecrane (5c3af6880).

  • Curățare a Find/Search. Panoul de rezultate primește o temă întunecată, selectorul motorului de căutare este ascuns, etichetele sunt simplificate, iar Find-in-Files folosește implicit folderul Documents/OpenMV (20a806550).

  • Identitatea aplicației. IDE-ul afișează acum pictograma OpenMV corespunzătoare pe desktop, în bara de titlu și în bara de activități (cu gestionare la rezoluție înaltă (high-DPI) pe Windows), iar id-ul IDE-ului a fost schimbat în openmvide (8ad1eed1f).

  • Ecran de pornire la rezoluție înaltă (high-DPI) afișează o imagine de pornire 2x pe ecrane Retina/la scară 200% (626ff673e).

  • Reparare a barei de acțiuni. Bara de acțiuni din stânga (New File, Open, Save, Undo, Redo, Cut, Copy, Paste) a fost reparată și i s-au atribuit pictograme OpenMV personalizate (b8479b5d0).

  • Logo-uri în dialogul About. Atât logo-urile partenerilor Arduino, cât și Edge Impulse sunt acum afișate (Edge Impulse era anterior ascuns) cu variante 2x la rezoluție înaltă (high-DPI), iar grafica de pornire inclusă a fost actualizată (splash-small-2 / splash-large-2) (5facd8d9a).

  • Select Word Under Cursor este activat; comenzile Go to Block Start/End (Ctrl+[ / Ctrl+]) și Select Block Up/Down au fost reactivate pentru scurt timp (36ed5b1a8), dar lăsate dezactivate în versiune (626ff673e).

  • Intrarea de desktop Linux primește o categorie Electronics, un Comment de descriere și Keywords de căutare (embedded electronics, microcontroller, micropython, computer/machine vision) (470e5702e).

  • Migrarea resurselor. Resursele utilizatorului au fost mutate într-o locație versionată (vechiul folder qtcreator este eliminat la pornire), iar avertismentele inofensive DirectWrite legate de fonturi pe Windows sunt suprimate (a04af5351, 70765dc2a).

  • Opțiuni interne ascunse. Opțiunile interne Core -color și -theme sunt ascunse din ieșirea de ajutor, iar modul prezentare a fost reactivat (434c7b4cc).

  • Personalizări de bază reaplicate la bara de acțiuni/widget-ul de file fancy, managerul de mesaje/fereastra de ieșire, acțiunile proxy, evidențiatorul de sintaxă și editorul de text (0e8047372).

  • QCustomPlot 2.1.1. Biblioteca de reprezentare grafică inclusă a fost actualizată pentru compatibilitate cu Qt 6.4 și gestionarea corectă a DPI-ului de afișare care se modifică dinamic (8801415fe).

  • Curățări cosmetice de interfață la pictogramele săgeților barei de derulare, bara de stare, butoanele de închidere ale barei de file de documente și lățimea derulatorului editorului; indicatorul „Display File Line Ending” al editorului este acum dezactivat implicit (e0c4d2325, 6a26f4430, e130988fb).

Corecții de erori

  • S-a corectat detectarea VID/PID pe Linux prin citirea /sys/class/tty/<port>/device/uevent pentru VID/PID-ul real al dispozitivului, ocolind faptul că QSerialPortInfo returna identificatorii hub-ului USB, astfel încât camerele din spatele hub-urilor sunt detectate corect (28220b351).

  • S-a corectat programarea firmware-ului bootloader-ului pe Mac prin relaxarea aserțiunilor privind dimensiunea punctului final și adăugarea pachetului de interogare de sincronizare doar atunci când o scriere are exact dimensiunea unui punct final USB (86d021f92).

  • S-au corectat instrumentele de redare video pe Linux: Play Video File / Play RTSP Stream sunt acum ascunse pe Linux pe 32 de biți și ARM (fără ffplay inclus), cu o rezervă gnome-terminal când xterm nu este disponibil, iar binarul ffmpeg pentru macOS a fost restaurat dintr-un substituent (d342649cc, d896f4225).

  • S-au mărit întârzierile de început/sfârșit ale resetării bootloader-ului de la 0 la 5 pentru a evita suprapunerea comenzilor de ștergere și scriere în timpul actualizărilor de firmware (fabc168b6).

  • S-a optimizat recuperarea bootloader-ului: forțarea bootloader-ului pentru a repara o cameră blocată sare peste solicitările redundante, iar după o resetare a bootloader-ului DFU, IDE-ul reîncearcă automat actualizarea în loc să-i ceară utilizatorului să se reconecteze (12b924088).

  • S-a permis întreruperea comenzilor de descărcare a tamponului de cadre (frame buffer)/tamponului TX seriale în mijlocul tranzacției (4a4afae1b).

  • S-a eliminat soluția de renunțare la blocarea citirii portului serial, care putea umple răspunsurile cu octeți zero, îmbunătățind fiabilitatea transferului USB rapid (0ee1d8e91).

  • S-au corectat depanarea WiFi și reconectarea automată: porturile WiFi își reîmprospătează marca temporală de ultimă vizualizare la redescoperire, mai multe erori de iterator după ștergere în retragerea porturilor WiFi și detectarea DFU/bootloader au fost corectate, iar reconectarea automată așteaptă acum până când IDE-ul nu mai este ocupat înainte de a se reconecta (cf0b67dc6).

  • S-a corectat convertorul video-în-MJPEG pentru a analiza rata de cadre din ieșirea codificatorului și a scrie delta corectă pe cadru în milisecunde, astfel încât videoclipurile convertite să fie redate la viteza corectă (4a7ad2057).

  • S-a corectat eșecul lansării programării firmware-ului și a instrumentelor incluse de linie de comandă prin forțarea backend-ului QProcess și corectarea protecției buclei de evenimente a procesului blocant (200fe9f3c).

  • S-au corectat pictogramele de ramură de extindere/restrângere ale arborelui editorului de set de date pentru a fi redate corect pe ecrane HiDPI prin reîncărcarea foii de stil a pictogramelor la modificarea raportului de pixeli al dispozitivului (a0e78057f).

  • Actualizările de pachete/resurse repornesc acum automat OpenMV IDE în loc să se închidă pur și simplu după instalare (178ee1b8e).

  • S-a corectat evidențierea rezultatelor Find/căutare și s-a făcut ca acțiunile de rezultat de căutare/deschidere de fișier să recurgă la primul editor vizibil când nu există editor curent (48c402dfc).

  • S-a corectat dialogul încărcătorului de firmware astfel încât textul său de avertizare să fie șters și fereastra să se redimensioneze corect când o operațiune de programare se finalizează (c505c6ade).

  • S-au corectat mai multe erori de interfață pe macOS: bara de file nu mai inundă cu erori de încărcare a pictogramelor și se afișează corect la deschiderea fișierului (9be8c58de, 5322cf968).

  • S-a corectat stilizarea barei de stare / panoului de ieșire și alinierea de bază pe macOS și Linux (4fc4545de, d29b2baa0, a440d5cd8).

  • S-a corectat tipărirea codului sursă astfel încât antetul cu titlul paginii să aibă margini corecte sus și pe laturi în loc să atingă marginea paginii (786d6012c).

Suport pentru platforme și instrumente

  • Baza Qt Creator: 10.0.1 (rebazată de la 4.0.2).

  • OpenMV IDE: 4.0.0 -> 4.0.1.

  • OpenMV Cam RT1062 (i.MX RT1060): firmware-ul inițial RT1062, încărcătorul de flash, imaginile semnate, intrarea imx.txt și cheile de configurare blhost pentru secure-bootloader/eFuse au fost adăugate în folderul de firmware OPENMV5 (a6595f5f7); placa a fost apoi consolidată într-un singur folder OPENMV_RT1060, iar o variantă distinctă de placă cu Secure Bootloader (SBL) (OpenMV_Cam_RT1062_SBL) a fost adăugată (d2b11c6c8, 5baf28c6e).

  • Lanțul de instrumente de programare inclus (blhost, bossac, dfu-util, dfuse + drivere STM32, picotool, sdphost, ffmpeg, drivere FTDI/Arduino) a fost reinclus pentru Windows/macOS/Linux, cu binarele Linux marcate ca executabile (fbfa4903a, bfb6b32e2, 9551c64da).

  • DFU pe ARM64 Linux: un dfu-util aarch64 inclus plus detectarea arm64 în listarea dispozitivelor și descărcarea firmware-ului permit programarea DFU pe gazde precum Raspberry Pi (16bc6fe0f, 470e5702e).

  • Detectarea dispozitivelor i.MX funcționează acum pe Linux (analizând lsusb) și macOS (scanând ioreg), permițând încărcarea firmware-ului i.MX RT pe acele platforme (e03ccbe71, 7cf505d09).

  • Limitarea platformelor: utilizarea i.MX este restrânsă la Windows/macOS/Linux-x86_64 cu o eroare critică în altă parte, iar programarea Portenta/Nicla pe ARM/ARM64 Linux afișează un avertisment „DFU Util may not be stable on this platform” (9513f6475).

  • OpenGL pe Windows: randarea software a fost restaurată prin includerea opengl32sw, Qt6OpenGL și a suportului OpenGL Qt6Gui în pachetul livrat (aaaa1928f).

  • Folderele/id-urile plăcilor Arduino redenumite. Folderele de firmware și id-urile de placă din boards.txt pentru Portenta, Nicla Vision și Nano 33 BLE Sense au fost redenumite în ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION și ARDUINO_NANO_33_BLE_SENSE (a70d6562a); folderul/id-ul de placă Nano 33 BLE Sense a fost ulterior trecut cu litere mici în arduino_nano_33_ble_sense pentru a se potrivi cu numele de placă raportat de dispozitiv (22750d8c7, a801a81de).

  • Încărcătoarele de flash ale bootloader-ului OPENMV_RT1060 (blhost_flash_loader.bin, sdphost_flash_loader.bin) au fost actualizate (5baf28c6e).

  • QCustomPlot: 2.1.1 (bibliotecă de reprezentare grafică inclusă) (8801415fe).

  • Imaginile de firmware pe disc au fost reincluse pentru toate plăcile OpenMV/Arduino acceptate (OPENMV1-4P, OPENMV4_PRO, OPENMVPT, ARDUINO_NICLA_VISION, arduino_nano_33_ble_sense, ARDUINO_PORTENTA_H7, ARDUINO_NANO_RP2040_CONNECT, OPENMV_RT1060, CYW4343, plus firmware-ul WiFi WINC1500), cu imagini de firmware și, unde este cazul, de bootloader/uvc (fbfa4903a).

Modificări incompatibile

Acestea sunt modificări de flux de lucru și comportament vizibile pentru utilizator; rebazarea Qt Creator 10.0.1 în sine nu strică proiectele sau scripturile utilizatorilor.

  • Definițiile plăcilor i.MX RT1060 s-au schimbat. Intrările EVKBMIMXRT1060 și OPENMV5 au fost înlocuite de o singură placă OPENMV_RT1060 (OpenMV Cam RT1062, plus o variantă SBL), iar vechile foldere de firmware au fost eliminate (d2b11c6c8).

  • Timpul de expirare implicit pentru răspunsul la comandă este de 10000 ms (era de 5000 ms în 4.0.0); textul de ajutor -override_read_timeout a fost actualizat în consecință (4a4afae1b).

  • Comportamentul de conectare/deconectare s-a schimbat. Auto Reconnect este acum dezactivat implicit, iar conectarea sau deconectarea nu mai oprește implicit scriptul în execuție, cu excepția cazului în care noul comutator „Stop Script on Connect/Disconnect” este activat (este activat implicit) (a0e78057f).

  • Fluxul de actualizare repornește IDE-ul. Actualizările de pachete/resurse repornesc acum automat OpenMV IDE în loc să se închidă după instalare (178ee1b8e).

  • Id-urile plăcilor Arduino redenumite. Id-urile de placă din boards.txt și folderele de firmware pentru Portenta, Nicla Vision și Nano 33 BLE Sense au fost redenumite în ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION și ARDUINO_NANO_33_BLE_SENSE (ultimul trecut ulterior cu litere mici în arduino_nano_33_ble_sense) (a70d6562a, 22750d8c7, a801a81de).