v4.4.0¶
v4.4.0 este o versiune majoră de modernizare care rebazează OpenMV IDE de la baza sa veche Qt Creator 10.0.1 pe Qt Creator 14.0.2, reaplicând întregul plugin OpenMV și fiecare personalizare a fork-ului peste noua bază. În plus, această versiune include un server de limbaj Python încorporat pentru completare de cod offline, activează GitHub Copilot pe fiecare platformă, introduce un nou bootloader DFU OpenMV personalizat și migrează camerele OpenMV pe un nou ID de furnizor USB 37C5. Schimbarea bazei este o modernizare internă amplă, dar nu afectează proiectele utilizatorilor; consultați Breaking changes pentru numărul redus de modificări de flux de lucru vizibile pentru utilizator.
Repere¶
Rebazare pe Qt Creator 14.0.2. IDE-ul trece de la Qt Creator 10.0.1 la 14.0.2, cu întregul plugin OpenMV și toate personalizările
// OPENMV-DIFF //reaplicate pe baza modernă (d6c895be8, 1fa75b397).Server de limbaj Python încorporat. IDE-ul livrează acum și folosește automat un
pylspinclus (cu astroid 3.3.5), oferind completare de cod Python/MicroPython offline fără o instalare pip separată pe Windows, macOS și Linux x86_64 (257addee0, 5a2b3e72f, 94470798d).GitHub Copilot pe toate platformele. Copilot este integrat și activat implicit, cu un runtime Node.js 20.18.0 inclus pentru Windows, macOS și Linux, astfel încât nu mai este limitat la anumite mașini, plus un dialog de pornire pentru a-l activa (bb07d582b, 1cb967c5a, b37e48040).
Nou bootloader DFU OpenMV. Un flux de bootloader
openmv_dfupersonalizat, complet implementat, conduce actualizările de firmware dinsettings.json, inclusiv un dialog „board in DFU mode detected” care oferă opțiunile de instalare a celei mai recente versiuni, încărcare a unui firmware specific și ștergere a sistemului de fișiere, plus o cale de bootloader de rezervă pentru recuperarea camerelor blocate (08b9d0676, 6a6a9351d, 6d78d6571).Suport pentru camere noi. Adaugă plăcile OpenMV Cam N6, RT1062 și AE3 și migrează camerele pe noul ID de furnizor USB
37C5cu drivere DFU și reguli udev actualizate (000ed8a87, f453bc945, 4a16e04c2, 6d78d6571).Comunicație serială mai fiabilă. Corecții majore ale comunicației seriale rezolvă textul terminalului corupt și deconectările aleatorii cu camerele bazate pe TinyUSB (caeba6a16, 6cf122a3c).
Funcționalități noi¶
Bootloader DFU OpenMV. Un nou sistem de bootloader
openmv_dfucu drivere DFU dedicate și un mecanism de bootloader de rezervă recuperează camerele blocate indiferent de tipul de firmware (6a6a9351d, 6d78d6571). Fluxul conduce actualizările de firmware dinsettings.jsonși prezintă un dialog „board in DFU mode detected” cu opțiunile de instalare a celei mai recente versiuni, încărcare a unui firmware specific și ștergere a sistemului de fișiere (08b9d0676, ef19133b6, 9c59d113c).Numele plăcii în selectorul de port. Dialogul de selecție a portului serial sondează acum fiecare port și afișează numele plăcii detectate lângă port (de ex.
COM3: OpenMV Cam H7) în loc de un simplu nume de port (9837d6cb5).Editor cu file. Pluginul de editor cu file este restabilit, adăugând un rând de file de documente deasupra zonei editorului pentru comutarea între fișierele deschise (c8519c09f), iar acum păstrează și restaurează ordinea filelor între sesiuni (55ccfb207).
Evidențiere a sintaxei Python. Adaugă o definiție dedicată de evidențiere a sintaxei Python pentru editor, cu reguli pentru format de șir, virgulă mobilă și cuvinte-cheie (9be46c0c3).
Alte modificări și îmbunătățiri¶
Refactorizarea încărcării firmware-ului. Codul de încărcare a firmware-ului a fost împărțit în handlere de bootloader separate per tip (OpenMV DFU, Arduino DFU, BOSSAC, i.MX, picotool), adăugând gestionarea PID-ului touch-to-reset pentru plăcile Arduino DFU și variante explicite „Legacy” de plăci pentru dispozitivele cu VID/PID alternativ (9f465f9f8).
Măsuri de protecție pentru bootloader-ul ROM STM32. IDE-ul avertizează sau blochează acum încărcarea
firmware.dfu/openmv.dfupe bootloader-ul de recuperare ROM STM32, recomandând doarbootloader.dfupentru a evita blocarea plăcilor STM32H7 afectate de o eroare a bootloader-ului ROM al cipului (c5ce0ae1a, e7cde1ec1).Configurare automată și silențioasă a serverului LSP Python. Serverul de limbaj Python se instalează și se actualizează acum automat, fără solicitări în bara de informații sau spam de mesaje în consolă (d89f5985f), iar sistemul de autocompletare/documentație la trecerea cursorului pentru Python a fost reproiectat într-un motor de documentație OpenMV dedicat care analizează documentația HTML a bibliotecii inclusă pentru a alimenta evidențierea cuvintelor-cheie și indiciile (47e02873b, 4f9853f21, 82cefc931).
Detectarea interpretorului Python pe Linux. Detectarea interpretorului pe Linux este acum automată, luând în considerare doar interpretoarele Python 3 din
PATHși selectându-l pe cel mai nou ca implicit unic (214fdc758).Curățarea setărilor Python. Grupul de gestionare per interpretor și pagina Interpreters sunt ascunse, Language Server Configuration este plasată sub o categorie
Python, iar butoanele neutilizate din bara de instrumente pentru REPL și selectorul de interpretor sunt ascunse în editorul Python (d89f5985f). Pe Windows, IDE-ul înregistrează acum automatpython.exeîncorporat inclus ca interpretor implicit, cu serverul de limbaj inclus tratat ca deja instalat (1d9ca003e, d89f5985f).Director de profil mai curat. IDE-ul nu mai scrie fișiere de setări Qt Creator neutilizate (devices, kits, toolchains, versiuni Qt) și deschide fișierele direct în editor (3771b0107), nu mai scanează sistemul după versiuni qmake/Qt (42807f25f) și evită încărcarea mecanismelor neutilizate de device/toolchain/kit și a zgomotului de pornire (902a357de, b2666a35b).
Actualizări mai sigure. Actualizarea IDE-ului nu mai suprascrie resursele utilizatorului; doar folderele de resurse gestionate (examples, firmware, html, models) sunt eliminate și recopiate,
micropython-headersfiind suplimentar eliminat (este instalat separat în loc să fie recopiat pe această cale), plus o eroare mai clară dacăfirmware/settings.jsonlipsește sau este invalid (b4b8c208d, 3255ba4fb).Conectare DFU mai rapidă. Timpul de așteptare a conexiunii DFU a fost redus, astfel încât flashing-ul și conectarea sunt mai rapide (11d8c9fe3, 4700bf678).
Meniul OpenMV și personalizările UI restabilite. Aranjamentul simplificat al meniului OpenMV este reaplicat, ascunzând meniurile Build și Debug și eliminând acțiunile de gestionare a proiectului (7503f2bec); motorul de completare a codului recâștigă conștientizarea claselor/metodelor și domeniile cuvintelor-cheie public/private pentru autocompletarea MicroPython (55fc348ea); randarea culorilor ANSI ale terminalului este reaplicată cu valori bright/dim adaptate temei și suport pentru escape-ul cursor-back (c6787a27a); iar bara de instrumente a vizualizatorului de imagini este personalizată cu indicii pentru rezoluție/zoom și o acțiune Fit-to-Screen relocată (734fec693).
Resurse incluse restabilite. Instrumentele de flashing, driverele DFU, firmware-ul și întregul arbore de exemple/scripturi sunt restabilite în resursele partajate după reducerea aferentă rebazării (33c8354bc), iar logica personalizată de pornire a aplicației OpenMV este reaplicată: solicită obligatoriu pluginul
TextEditor(verificările pluginurilor OpenMV și TabbedEditor sunt prezente, dar dezactivate), instalează un handler de mesaje Qt personalizat, elimină opțiunile de linie de comandă-client/-pid/-blockși forțează comportamentul de instanță unică (06c788f3d).Eroare la lipsa unui plugin. Aplicația eșuează acum definitiv cu o eroare clară dacă pluginurile necesare lipsesc sau sunt dezactivate, pluginul OpenMV a primit o dependență de Copilot, iar mai multe opțiuni ale editorului de text (
Prefer single line commentsși selectorul de poziție a comentariilor din setările Behavior, precum șiHighlight selectiondin setările Display) sunt ascunse (1bc02b1f3).Timeout-uri seriale mai scurte. Timeout-urile protocolului serial au fost scurtate (citire de la 10000 la 5000 ms, scriere de la 6000 la 3000 ms) pentru un feedback mai rapid în caz de eșec, cu valoarea implicită documentată
-override_read_timeoutactualizată corespunzător (641385af4).Recuperarea porturilor blocate. Porturile seriale blocate la mijlocul unei comenzi sunt acum recuperate folosind o interogare
GET_STATE(configurabilă prin setarea get-state) în loc de o interogare de tip script-running (a8598f550).Ordinea dialogului de setări. Dialogul de setări ascunde caseta de bifare pentru sortarea alfabetică a categoriilor, astfel încât lista de pagini rămâne în ordinea intenționată de OpenMV (1cb967c5a).
Setări Copilot simplificate. Pagina de setări Copilot este redusă doar la controalele de autentificare/conectare și proxy, ascunzând opțiunile enable-Copilot, calea Node.js, dist-path și auto-complete (1cb967c5a).
Corecții de erori¶
S-au remediat probleme majore de comunicație serială prin creșterea de 10x a timeout-ului de blocare a citirii seriale și dezactivarea unei căi de deblocare bazate pe
GET_STATEcare corupea textul terminalului serial (caeba6a16).S-au remediat deconectările seriale aleatorii cu camerele bazate pe TinyUSB prin emiterea unei comenzi de deblocare frame-dump și reproiectarea gestionării blocării citirii în loc de deconectare (6cf122a3c).
S-a făcut gestionarea
get_statea camerei tolerantă la răspunsuri scurte/parțiale și s-a asigurat golirea textului terminalului serial din buffer în timpul recuperării după erori, astfel încât ieșirea de jurnal să nu se piardă (c8b4248a6, 247a779dd).S-au corectat numerele de partiție flash/alt-setting ale bootloader-ului DFU pentru încărcarea firmware-ului OpenMV Cam (a8700d12d).
S-au restabilit toate bootloader-ele prin onorarea unui nou flag de placă
hidden, comutarea filtrării numerelor de serie la filtre inverse și oferirea unei configurări picotool funcționale pentru intrarea UF2 Arduino Nano RP2040 Connect (63cee629b).S-a remediat memorarea valorii greșite de către dialogul de selecție a tipului de placă al bootloader-ului prin utilizarea unor chei de istoric separate pentru selecțiile de tip de placă lizibile de om și IMX (a3325af32).
S-a remediat calculul marcajului de timp/ratei de cadre la transcodarea video (Save Video) prin calcularea intervalului mediu dintre cadre în microsecunde, suportul pentru un nou format de timp v21
ImageWriterși protejarea împotriva pixmap-urilor nule în timpul conversiei (f5c75c749, f8f762b3e).S-a remediat o blocare în vizualizarea histogramă/framebuffer atunci când se primea un pixmap gol (nul), protejând
pixmapUpdate()împotriva datelor nule (622cf5ea8).S-au restabilit indiciile de adnotare la trecerea cursorului în editorul de text, astfel încât trecerea peste marcajele de text afișează din nou indiciul adnotării (1852d18e1).
S-a împiedicat apariția dialogurilor de informații GitHub Copilot și LED-colors în timp ce IDE-ul este ocupat cu conectarea sau flashing-ul (f8f762b3e).
S-a adăugat protecție împotriva blocărilor în clientul de limbaj, astfel încât gestionarea modificărilor conținutului documentului nu mai blochează IDE-ul în cazuri limită (7926ffe4c).
S-au remediat verificările serverului de limbaj Python care împiedicau o închidere curată a IDE-ului, făcând pluginul Python să aștepte asincron verificările în curs înainte de ieșire (9ff6c7936).
S-a remediat autocompletarea Python pe Linux: clientul de limbaj se ancorează la
micropython-headersinclus, iar acțiunea redundantă din bara de instrumente a editorului pentru fereastra pop-up de completare este ascunsă (d37f66a9a, 56e748f9d, 016fa73eb).S-a remediat gestionarea fișierelor temporare/nesalvate astfel încât Save As folosește directorul inițial al dialogului de fișiere, iar dialogul Save Items și editorul Diff nu mai afișează căile interne ale fișierelor temporare (b7f0bb378, c8e7b6b8f, 6b128c34c).
Salvarea unui buffer fără titlu/temporar setează acum implicit dialogul Save-As la un nume de fișier
.pycorespunzător în loc de un nume gol (3001fdfff).Documentele temporare/fără titlu sunt acum oferite pentru salvare când sunt modificate, excluse de la salvarea automată și direcționate corect prin Save-As (f87b71cf0).
S-a remediat ordinea meniului Recent Files astfel încât redeschiderea unui fișier deja listat nu îl mai reordonează, iar dialogul de fișiere setează acum implicit directorul de proiecte (d49c0c993).
S-a remediat randarea textului casetelor de mesaj prin renunțarea la forțarea formatului rich-text pe casetele de mesaj bifabile, astfel încât textul brut se afișează corect (0c565502f).
S-au remediat culorile indiciilor astfel încât indiciile se randează corect în tema deschisă (35cbf077b).
Corecții generale de stabilitate și curățare Qt Creator în setările de bază, clientul de limbaj, toolchain-ul MSVC, project explorer și pluginurile Python (836b163dc, 134f43cb8).
S-a corectat numele folderului de firmware inclus pentru Arduino Nano 33 BLE Sense (b1d8ac227) și s-a remediat regula udev Linux pentru ID-ul de produs al bootloader-ului DFU AE3, corectând
96E3în96e3cu litere mici, astfel încât potrivireaidProductsensibilă la majuscule a udev să funcționeze (2cd43c96b). Regula udev Linux a bootloader-ului DFU AE3 a fost de asemenea actualizată la ID-ul de produs37c5:afe3pentru link-ul simbolicopenmvdfu(b99555637).
Suport pentru platforme și instrumente¶
Bază Qt Creator: 14.0.2 (rebazată de la 10.0.1).
OpenMV Cam N6 este acum suportată (VID:PID 37C5:1206, bootloader DFU 37C5:9206), inclusiv setări de firmware, un driver DFU Windows și o regulă udev Linux (000ed8a87, 1b950c8c6).
OpenMV Cam RT1062 este acum suportată sub un nou VID/PID USB personalizat (37C5:1060), inclusiv drivere DFU, reguli udev și intrările legacy păstrate 1209:ABD1 pentru unitățile mai vechi (f453bc945, d55d6441f).
OpenMV Cam AE3 este acum suportată, inclusiv drivere DFU Windows, arborele său de imagini de firmware/configurare și VID/PID USB (actualizat la 37C5:16E3 runtime / 37C5:96E3 bootloader) (4a16e04c2, cc52e76f5, 3f75e7de4, 8eb80b129).
Nou sistem USB VID/PID: Camerele OpenMV trec la ID-ul de furnizor
37C5cu noi ID-uri de bootloader/DFU (de ex. 37C5:1202/9202 M4, 1203/9203 M7, 1204/9204 H7, 124A/924A H7 Plus, 1205/9205), reetichetând plăcile vechi 1209:ABD1 drept Legacy, suportând totodată atât firmware-ul vechi, cât și cel nou (6d78d6571, 6a6a9351d, 500b1a0bf).Senzorul de imagine PAG7936 a fost adăugat la lista de senzori recunoscuți (f9e3f3461).
Python 3.13 încorporat, interpretor inclus pentru macOS, Linux x86_64, Linux arm64 și Linux arm (9133b1516), cu bibliotecile partajate native
libpython3.13șiujson(d3aa663d8, a2cb24e74).Server de limbaj inclus:
pylspcu astroid 3.3.5 pe Windows, macOS și Linux x86_64 (257addee0). Build-ul Windows livrează un CPython încorporat cu python-lsp-server 1.12.0, jedi 0.17.2, docstring_to_markdown 0.15, pip 24.2 și distlib 0.3.9 (9b6434602, 069807cd3, 5f2e45196, 3b6c6c312).Node.js 20.18.0 inclus, runtime LTS „Iron” pentru Windows, macOS, Linux arm64, Linux x64 și Linux armv7 pentru a activa GitHub Copilot pe toate platformele (bb07d582b, 6db78bf45, 1cb967c5a).
Alif Security Toolkit, binare semnate de boot/system-package și ghid de utilizare incluse pentru Windows, macOS și Linux x86_64 pentru aprovizionarea camerelor OpenMV bazate pe Alif (de ex. AE3) (f63851be3).
Integrarea în desktop Linux este restabilită, instalând o intrare desktop de aplicație și metadate AppStream și înregistrând tipul MIME Python (
.py) (3fa25f571).
Breaking changes¶
Niciun API de scripting nu a fost modificat. Pot fi observate următoarele modificări de flux de lucru și comportament vizibile pentru utilizator:
Nou ID de furnizor USB. Camerele OpenMV migrează la ID-ul de furnizor
37C5cu noi ID-uri de produs și de bootloader DFU; plăcile pe vechiul VID1209:ABD1sunt acum etichetate „Legacy”. IDE-ul suportă simultan atât firmware-ul vechi, cât și cel nou, dar utilizatorii Linux trebuie să reinstaleze regulile udev actualizate pentru ca noile ID-uri să fie recunoscute.Intrările de plăci Legacy ascunse. Variantele legacy ale plăcilor OpenMV Cam M4/M7/H7/H7 Plus/Pure Thermal sunt acum suprimate din lista de selecție firmware/placă printr-un nou flag de placă
legacy(distinct de flag-ulhiddenpreexistent), astfel încât utilizatorii care au nevoie special de o intrare de placă legacy nu o vor mai vedea în lista derulantă (6d78d6571).Timeout-uri seriale mai scurte. Timeout-ul implicit de citire a răspunsului scade de la 10000 ms la 5000 ms, iar timeout-ul de scriere de la 6000 ms la 3000 ms (valoarea implicită
-override_read_timeouteste acum documentată ca 5000). Plăcile/legăturile lente care se bazau pe valorile implicite mai lungi pot expira mai devreme.
Rebazarea pe Qt Creator 14.0.2 este o modernizare internă amplă, dar nu afectează proiectele utilizatorilor.