v4.4.0

v4.4.0 on merkittävä uudistusjulkaisu, joka siirtää OpenMV IDE:n pohjan pitkäaikaisesta Qt Creator 10.0.1:stä Qt Creator 14.0.2:een soveltaen koko OpenMV-laajennuksen ja kaikki forkin mukautukset uudemman pohjan päälle. Tämän lisäksi julkaisu sisältää sulautetun Python-kielipalvelimen offline-koodintäydennystä varten, ottaa GitHub Copilotin käyttöön kaikilla alustoilla, esittelee uuden mukautetun OpenMV DFU -käynnistyslataimen ja siirtää OpenMV-kamerat uuteen 37C5 USB-valmistajatunnukseen. Pohjan vaihto on suuri sisäinen uudistus, mutta se ei riko käyttäjien projekteja; katso Breaking changes niistä harvoista käyttäjälle näkyvistä työnkulun muutoksista.

Kohokohdat

  • Qt Creator 14.0.2 -rebase. IDE siirtyy Qt Creator 10.0.1:stä versioon 14.0.2, ja koko OpenMV-laajennus sekä kaikki // OPENMV-DIFF // -mukautukset on sovellettu uudelleen modernin pohjan päälle (d6c895be8, 1fa75b397).

  • Sulautettu Python-kielipalvelin. IDE toimittaa nyt mukana ja käyttää automaattisesti pakettiin sisältyvää pylsp-palvelinta (astroid 3.3.5:n kanssa), mikä tarjoaa offline-tilan Python/MicroPython-koodintäydennyksen ilman erillistä pip-asennusta Windowsissa, macOS:ssä ja Linux x86_64:ssä (257addee0, 5a2b3e72f, 94470798d).

  • GitHub Copilot kaikilla alustoilla. Copilot on integroitu ja oletuksena käytössä, mukana toimitetaan Node.js 20.18.0 -ajoympäristö Windowsille, macOS:lle ja Linuxille, joten se ei ole enää rajoitettu vain tiettyihin koneisiin. Lisäksi käynnistysvalintaikkuna antaa ottaa sen käyttöön (bb07d582b, 1cb967c5a, b37e48040).

  • Uusi OpenMV DFU -käynnistyslatain. Täysin toteutettu mukautettu openmv_dfu-käynnistyslataimen kulku ohjaa laiteohjelmiston päivityksiä settings.json-tiedostosta, mukaan lukien ”board in DFU mode detected” -valintaikkuna, joka tarjoaa vaihtoehdot uusimman julkaisun asentamiseen, tietyn laiteohjelmiston lataamiseen ja tiedostojärjestelmän tyhjentämiseen, sekä varakäynnistyslataimen polku tiilattujen kameroiden palauttamiseen (08b9d0676, 6a6a9351d, 6d78d6571).

  • Uusi kameratuki. Lisää OpenMV Cam N6-, RT1062- ja AE3-kortit ja siirtää kamerat uuteen 37C5 USB-valmistajatunnukseen päivitetyillä DFU-ajureilla ja udev-säännöillä (000ed8a87, f453bc945, 4a16e04c2, 6d78d6571).

  • Luotettavampi sarjaliikenne. Merkittävät sarjaliikennekorjaukset ratkaisevat sekoittuneen terminaalitekstin ja satunnaiset yhteyskatkokset TinyUSB-pohjaisilla kameroilla (caeba6a16, 6cf122a3c).

Uudet ominaisuudet

  • OpenMV DFU -käynnistyslatain. Uusi openmv_dfu-käynnistyslatainjärjestelmä omistettuine DFU-ajureineen ja varakäynnistyslainmekanismeineen palauttaa tiilatut kamerat eri laiteohjelmistotyyppien välillä (6a6a9351d, 6d78d6571). Kulku ohjaa laiteohjelmiston päivityksiä settings.json-tiedostosta ja esittää ”board in DFU mode detected” -valintaikkunan, jossa on vaihtoehdot uusimman julkaisun asentamiseen, tietyn laiteohjelmiston lataamiseen ja tiedostojärjestelmän tyhjentämiseen (08b9d0676, ef19133b6, 9c59d113c).

  • Kortin nimi porttivalitsimessa. Sarjaportin valintaikkuna tunnustelee nyt jokaisen portin ja näyttää tunnistetun kortin nimen portin vieressä (esim. COM3: OpenMV Cam H7) pelkän portin nimen sijaan (9837d6cb5).

  • Välilehtipohjainen editori. Välilehtipohjaisen editorin laajennus on palautettu, mikä lisää editorialueen yläpuolelle rivin dokumenttivälilehtiä avointen tiedostojen välillä vaihtamiseen (c8519c09f), ja se säilyttää nyt välilehtien järjestyksen ja palauttaa sen istuntojen välillä (55ccfb207).

  • Pythonin syntaksikorostus. Lisää editoriin omistetun Pythonin syntaksikorostusmäärittelyn merkkijonomuotoilun, liukuluvun ja avainsanojen säännöillä (9be46c0c3).

Muut muutokset ja parannukset

  • Laiteohjelmiston latauksen refaktorointi. Laiteohjelmiston latauskoodi jaettiin erillisiin tyyppikohtaisiin käynnistyslatainkäsittelijöihin (OpenMV DFU, Arduino DFU, BOSSAC, i.MX, picotool), mikä lisää touch-to-reset PID -käsittelyn Arduino DFU -korteille ja erilliset ”Legacy”-korttivariantit vaihtoehtoisille VID/PID-laitteille (9f465f9f8).

  • STM32 ROM-käynnistyslataimen suojaukset. IDE varoittaa nyt tai estää firmware.dfu/openmv.dfu -tiedostojen lataamisen STM32 ROM -palautuskäynnistyslataimeen ja suosittelee vain bootloader.dfu-tiedostoa, jotta vältetään sirun ROM-käynnistyslaitebugista kärsivien STM32H7-korttien tiilautuminen (c5ce0ae1a, e7cde1ec1).

  • Automaattinen, hiljainen Python-LSP:n asennus. Python-kielipalvelin asentuu ja päivittyy nyt automaattisesti ilman tietopalkin kehotteita tai konsoliviestien tulvaa (d89f5985f), ja Pythonin automaattitäydennys- ja dokumentaation osoitinvihjejärjestelmä on muotoiltu omistetuksi OpenMV-dokumentaatiomoottoriksi, joka jäsentää pakettiin sisältyvän HTML-kirjastodokumentaation ohjatakseen avainsanojen korostusta ja työkaluvihjeitä (47e02873b, 4f9853f21, 82cefc931).

  • Linuxin Python-tulkin tunnistus. Tulkin tunnistus Linuxissa on nyt automaattinen: se huomioi vain PATH-polulta löytyvät Python 3 -tulkit ja valitsee uusimman ainoaksi oletukseksi (214fdc758).

  • Python-asetusten siivous. Tulkki­kohtainen hallintaryhmä ja Interpreters-sivu piilotetaan, Language Server Configuration sijoitetaan Python-kategorian alle, ja käyttämättömät REPL- ja tulkkivalitsimen työkalupalkkipainikkeet piilotetaan Python-editorissa (d89f5985f). Windowsissa IDE rekisteröi nyt automaattisesti pakettiin sisältyvän sulautetun python.exe-tulkin oletustulkiksi, ja mukana toimitettu kielipalvelin käsitellään jo asennettuna (1d9ca003e, d89f5985f).

  • Siistimpi profiilihakemisto. IDE ei enää kirjoita käyttämättömiä Qt Creator -asetustiedostoja (laitteet, kitit, työkaluketjut, Qt-versiot) ja avaa tiedostot suoraan editorissa (3771b0107), ei enää skannaa järjestelmästä qmake/Qt-versioita (42807f25f), ja välttää käyttämättömän laite-/työkaluketju-/kit-koneiston ja käynnistysmelun lataamisen (902a357de, b2666a35b).

  • Turvallisemmat päivitykset. IDE:n päivittäminen ei enää ylikirjoita käyttäjän resursseja; vain hallitut resurssikansiot (examples, firmware, html, models) poistetaan ja kopioidaan uudelleen, ja lisäksi micropython-headers poistetaan (se asennetaan erikseen sen sijaan, että se kopioitaisiin uudelleen tätä polkua pitkin), sekä selkeämpi virheilmoitus, jos firmware/settings.json puuttuu tai on virheellinen (b4b8c208d, 3255ba4fb).

  • Nopeampi DFU-yhteys. DFU-yhteyden odotusaikaa lyhennettiin, joten flashaus ja yhteyden muodostaminen ovat nopeampia (11d8c9fe3, 4700bf678).

  • Palautetut OpenMV-valikko ja käyttöliittymämukautukset. Virtaviivaistettu OpenMV-valikkoasettelu on sovellettu uudelleen piilottaen Build- ja Debug-valikot ja poistaen projektinhallintatoiminnot (7503f2bec); koodintäydennysmoottori saa takaisin luokka-/metoditietoisuuden ja julkisten/yksityisten avainsanojen vaikutusalueet MicroPython-automaattitäydennystä varten (55fc348ea); terminaalin ANSI-värirenderöinti on sovellettu uudelleen teematietoisilla kirkas-/himmeäarvoilla ja kohdistimen taakse -escape-tuella (c6787a27a); ja kuvankatselun työkalupalkkia on mukautettu resoluutio-/zoom-työkaluvihjeillä ja siirretyllä Fit-to-Screen-toiminnolla (734fec693).

  • Palautetut pakettiin sisältyvät resurssit. Flashaustyökalut, DFU-ajurit, laiteohjelmisto ja koko esimerkki-/skriptipuu on palautettu jaettuihin resursseihin rebasen karsinnan jälkeen (33c8354bc), ja OpenMV:n mukautettu sovelluksen käynnistyslogiikka on sovellettu uudelleen: se vaatii ehdottomasti TextEditor-laajennuksen (OpenMV- ja TabbedEditor-laajennustarkistukset ovat olemassa mutta poissa käytöstä), asentaa mukautetun Qt-viestinkäsittelijän, poistaa -client/-pid/-block-komentoriviparametrit ja pakottaa yhden instanssin toiminnan (06c788f3d).

  • Puuttuvan laajennuksen virhe. Sovellus epäonnistuu nyt ehdottomasti selkeällä virheellä, jos vaaditut laajennukset puuttuvat tai ovat poissa käytöstä, OpenMV-laajennus sai Copilot-riippuvuuden, ja useita tekstieditorin asetuksia (Prefer single line comments ja kommentin sijaintivalitsin Behavior-asetuksissa sekä Highlight selection Display-asetuksissa) on piilotettu (1bc02b1f3).

  • Lyhyemmät sarjaliikenteen aikakatkaisut. Sarjaprotokollan aikakatkaisuja lyhennettiin (luku 10000:sta 5000 ms:iin, kirjoitus 6000:sta 3000 ms:iin) nopeampaa virhepalautetta varten, ja dokumentoitu -override_read_timeout-oletus päivitettiin vastaavaksi (641385af4).

  • Jumiutuneen portin palautus. Komennon keskellä jumiutuneet sarjaportit palautetaan nyt GET_STATE-kyselyllä (säädettävissä get-state-asetuksella) skriptin suorituskyselyn sijaan (a8598f550).

  • Asetusvalintaikkunan järjestys. Asetusvalintaikkuna piilottaa aakkosellisen kategorialajittelun valintaruudun, jotta sivulista pysyy OpenMV:n tarkoittamassa järjestyksessä (1cb967c5a).

  • Yksinkertaistetut Copilot-asetukset. Copilot-asetussivu on supistettu pelkkiin kirjautumis-/todennus- ja välityspalvelinhallintoihin piilottaen Copilotin käyttöönotto-, Node.js-polku-, dist-polku- ja automaattitäydennysvaihtoehdot (1cb967c5a).

Virheenkorjaukset

  • Korjattiin merkittävät sarjaliikenneongelmat kasvattamalla sarjaliikenteen lukupysähdyksen aikakatkaisua 10-kertaiseksi ja poistamalla käytöstä GET_STATE-pohjainen jumin purku, joka sotki sarjaterminaalin tekstiä (caeba6a16).

  • Korjattiin satunnaiset sarjayhteyden katkokset TinyUSB-pohjaisilla kameroilla lähettämällä kehyksenvedon avauskomento ja muotoilemalla lukupysähdyksen käsittely uudelleen yhteyden katkaisemisen sijaan (6cf122a3c).

  • Tehtiin kameran get_state-käsittelystä sietokykyinen lyhyille/osittaisille vastauksille ja varmistettiin, että puskuroitu sarjaterminaalin teksti tyhjennetään virhepalautuksen aikana, jotta lokitulostetta ei menetetä (c8b4248a6, 247a779dd).

  • Korjattiin DFU-käynnistyslataimen flash-osion/alt-asetuksen numerot OpenMV Cam -laiteohjelmiston lataamista varten (a8700d12d).

  • Palautettiin kaikki käynnistyslataimet noudattamalla uutta hidden-korttilippua, vaihtamalla sarjanumerosuodatus käänteisiin suodattimiin ja antamalla Arduino Nano RP2040 Connect UF2 -merkinnälle toimiva picotool-määritys (63cee629b).

  • Korjattiin käynnistyslataimen korttityypin valintaikkuna, joka muisti väärän arvon, käyttämällä erillisiä historia-avaimia ihmisluettavalle ja IMX-korttityyppivalinnalle (a3325af32).

  • Korjattiin videon transkoodauksen (Save Video) aikaleima-/kuvataajuuslaskenta laskemalla keskimääräinen kehysväli mikrosekunneissa, tukemalla uutta v21 ImageWriter-aikamuotoa ja suojautumalla null-pixmappeja vastaan muunnoksen aikana (f5c75c749, f8f762b3e).

  • Korjattiin kaatuminen histogrammi-/kehyspuskurinäkymässä, kun vastaanotettiin tyhjä (null) pixmap, suojaamalla pixmapUpdate() null-dataa vastaan (622cf5ea8).

  • Palautettiin osoitinvihjeiden annotaatiotyökaluvihjeet tekstieditorissa, joten tekstimerkkien päälle vieminen näyttää jälleen annotaatiotyökaluvihjeen (1852d18e1).

  • Estettiin GitHub Copilot- ja LED-värit-tietovalintaikkunoita ponnahtamasta esiin, kun IDE on kiireinen yhteyden muodostamisen tai flashauksen kanssa (f8f762b3e).

  • Lisättiin kaatumissuojaus kieliasiakkaaseen, joten dokumentin sisällön muutosten käsittely ei enää kaada IDE:tä erikoistapauksissa (7926ffe4c).

  • Korjattiin Python-kielipalvelimen tarkistukset, jotka estivät IDE:n siistin sulkemisen, saamalla Python-laajennus odottamaan asynkronisesti käynnissä olevia tarkistuksia ennen poistumista (9ff6c7936).

  • Korjattiin Pythonin automaattitäydennys Linuxissa: kieliasiakas juurtuu pakettiin sisältyvään micropython-headers-hakemistoon ja editorin työkalupalkin tarpeeton täydennysponnahdustoiminto on piilotettu (d37f66a9a, 56e748f9d, 016fa73eb).

  • Korjattiin väliaikaisten/tallentamattomien tiedostojen käsittely siten, että Save As käyttää tiedostovalintaikkunan aloitushakemistoa, eivätkä Save Items -valintaikkuna ja Diff-editori enää näytä sisäisiä väliaikaistiedostojen polkuja (b7f0bb378, c8e7b6b8f, 6b128c34c).

  • Nimettömän/väliaikaisen puskurin tallentaminen asettaa nyt Save-As-valintaikkunan oletukseksi kelvollisen .py-tiedostonimen tyhjän nimen sijaan (3001fdfff).

  • Väliaikaiset/nimettömät dokumentit tarjotaan nyt tallennettaviksi muokattaessa, jätetään pois automaattitallennuksesta ja ohjataan oikein Save-As-toiminnon kautta (f87b71cf0).

  • Korjattiin Recent Files -valikon järjestys siten, että jo listatun tiedoston uudelleenavaaminen ei enää järjestä sitä uudelleen, ja tiedostovalintaikkuna asettaa nyt oletukseksi projektihakemiston (d49c0c993).

  • Korjattiin viestiruudun tekstin renderöinti siten, että valittavissa oleviin viestiruutuihin ei enää pakoteta rikastetekstimuotoa, joten raakateksti näytetään oikein (0c565502f).

  • Korjattiin työkaluvihjeiden värit siten, että työkaluvihjeet renderöityvät oikein vaaleassa teemassa (35cbf077b).

  • Yleisiä Qt Creatorin vakaus- ja siistimiskorjauksia ydinasetuksiin, kieliasiakkaaseen, MSVC-työkaluketjuun, projektitutkijaan ja Python-laajennuksiin (836b163dc, 134f43cb8).

  • Korjattiin Arduino Nano 33 BLE Sense -laitteen pakettiin sisältyvän laiteohjelmiston kansion nimi (b1d8ac227) ja korjattiin Linuxin udev-sääntö AE3 DFU -käynnistyslataimen tuotetunnukselle muuttamalla 96E3 pienaakkosiseksi 96e3-muotoon, jotta udevin kirjainkoolle herkkä idProduct-vastaavuus toimii (2cd43c96b). AE3 DFU -käynnistyslataimen Linuxin udev-sääntö päivitettiin myös tuotetunnukseen 37c5:afe3 openmvdfu-symlinkkiä varten (b99555637).

Alusta- ja työkalutuki

  • Qt Creator -pohja: 14.0.2 (rebattu versiosta 10.0.1).

  • OpenMV Cam N6 on nyt tuettu (VID:PID 37C5:1206, DFU-käynnistyslatain 37C5:9206), mukaan lukien laiteohjelmistoasetukset, Windowsin DFU-ajuri ja Linuxin udev-sääntö (000ed8a87, 1b950c8c6).

  • OpenMV Cam RT1062 on nyt tuettu uuden mukautetun USB VID/PID:n alla (37C5:1060), mukaan lukien DFU-ajurit, udev-säännöt ja säilytetyt vanhat 1209:ABD1-merkinnät vanhemmille yksiköille (f453bc945, d55d6441f).

  • OpenMV Cam AE3 on nyt tuettu, mukaan lukien Windowsin DFU-ajurit, sen laiteohjelmisto-/konfiguraatiokuvapuu ja USB VID/PID (päivitetty muotoon 37C5:16E3 runtime / 37C5:96E3 käynnistyslatain) (4a16e04c2, cc52e76f5, 3f75e7de4, 8eb80b129).

  • Uusi USB VID/PID -järjestelmä: OpenMV-kamerat siirtyvät valmistajatunnukseen 37C5 uusilla käynnistyslatain-/DFU-tunnuksilla (esim. 37C5:1202/9202 M4, 1203/9203 M7, 1204/9204 H7, 124A/924A H7 Plus, 1205/9205), mikä uudelleennimeää vanhat 1209:ABD1-kortit Legacyiksi tukien edelleen sekä vanhaa että uutta laiteohjelmistoa (6d78d6571, 6a6a9351d, 500b1a0bf).

  • PAG7936-kuvasensori lisätty tunnistettujen sensorien listaan (f9e3f3461).

  • Sulautettu Python 3.13 -tulkki pakettiin sisältyvänä macOS:lle, Linux x86_64:lle, Linux arm64:lle ja Linux armille (9133b1516), mukana natiivit libpython3.13- ja ujson-jaetut kirjastot (d3aa663d8, a2cb24e74).

  • Pakettiin sisältyvä kielipalvelin: pylsp astroid 3.3.5:n kanssa Windowsissa, macOS:ssä ja Linux x86_64:ssä (257addee0). Windows-versio toimittaa sulautetun CPythonin, jossa on python-lsp-server 1.12.0, jedi 0.17.2, docstring_to_markdown 0.15, pip 24.2 ja distlib 0.3.9 (9b6434602, 069807cd3, 5f2e45196, 3b6c6c312).

  • Pakettiin sisältyvä Node.js 20.18.0 ”Iron” LTS -ajoympäristö Windowsille, macOS:lle, Linux arm64:lle, Linux x64:lle ja Linux armv7:lle GitHub Copilotin mahdollistamiseksi kaikilla alustoilla (bb07d582b, 6db78bf45, 1cb967c5a).

  • Alif Security Toolkit -allekirjoitetut boot-/system-package-binäärit ja käyttöopas pakettiin sisältyvänä Windowsille, macOS:lle ja Linux x86_64:lle Alif-pohjaisten OpenMV-kameroiden (esim. AE3) provisiointia varten (f63851be3).

  • Linuxin työpöytäintegraatio on palautettu, mikä asentaa sovelluksen työpöytämerkinnän ja AppStream-metatiedot ja rekisteröi Pythonin (.py) MIME-tyypin (3fa25f571).

Yhteensopivuutta rikkovat muutokset

Skriptaus-API:hin ei tullut muutoksia. Seuraavat käyttäjälle näkyvät työnkulun ja toiminnan muutokset voidaan huomata:

  • Uusi USB-valmistajatunnus. OpenMV-kamerat siirtyvät valmistajatunnukseen 37C5 uusilla tuote- ja DFU-käynnistyslataintunnuksilla; vanhalla 1209:ABD1 VID:llä olevat kortit on nyt merkitty ”Legacy”. IDE tukee sekä vanhaa että uutta laiteohjelmistoa samanaikaisesti, mutta Linux-käyttäjien on asennettava päivitetyt udev-säännöt uudelleen, jotta uudet tunnukset tunnistetaan.

  • Legacy-korttimerkinnät piilotettu. OpenMV Cam M4/M7/H7/H7 Plus/Pure Thermal -korttien legacy-variantit on nyt poistettu laiteohjelmisto-/korttivalintalistasta uudella legacy-korttilipulla (eri kuin aiemmin olemassa ollut hidden-lippu), joten käyttäjät, jotka erityisesti tarvitsevat legacy-korttimerkinnän, eivät enää näe sitä pudotusvalikossa (6d78d6571).

  • Lyhyemmät sarjaliikenteen aikakatkaisut. Oletusarvoinen vastauksen lukuaikakatkaisu laskee 10000 ms:stä 5000 ms:iin ja kirjoitusaikakatkaisu 6000 ms:stä 3000 ms:iin (-override_read_timeout-oletus on nyt dokumentoitu arvoksi 5000). Hitaat kortit/yhteydet, jotka luottivat pidempiin oletusarvoihin, voivat aikakatkaista aiemmin.

Qt Creator 14.0.2 -rebase on suuri sisäinen uudistus, mutta se ei riko käyttäjien projekteja.