v4.4.0

v4.4.0 je velika modernizacijska verzija koja prebazira OpenMV IDE s njegove dugotrajne osnove Qt Creator 10.0.1 na Qt Creator 14.0.2, ponovno primjenjujući cijeli OpenMV dodatak i sve prilagodbe forka povrh novije osnove. Povrh toga, ova verzija u paketu donosi ugrađeni Python jezični poslužitelj za izvanmrežno dovršavanje koda, omogućuje GitHub Copilot na svakoj platformi, uvodi novi prilagođeni OpenMV DFU pokretač (bootloader) i migrira OpenMV kamere na novi 37C5 USB ID proizvođača. Promjena osnove velika je interna modernizacija, ali ne narušava korisničke projekte; pogledajte Promjene koje narušavaju kompatibilnost za mali broj promjena tijeka rada vidljivih korisniku.

Istaknuto

  • Prebaziranje na Qt Creator 14.0.2. IDE prelazi s Qt Creator 10.0.1 na 14.0.2, uz cijeli OpenMV dodatak i sve // OPENMV-DIFF // prilagodbe ponovno primijenjene na modernoj osnovi (d6c895be8, 1fa75b397).

  • Ugrađeni Python jezični poslužitelj. IDE sada isporučuje i automatski koristi priloženi pylsp (s astroid 3.3.5), pružajući izvanmrežno dovršavanje Python/MicroPython koda bez zasebne pip instalacije na Windowsu, macOS-u i Linux x86_64 (257addee0, 5a2b3e72f, 94470798d).

  • GitHub Copilot na svim platformama. Copilot je integriran i omogućen prema zadanim postavkama, s priloženim Node.js 20.18.0 izvršnim okruženjem za Windows, macOS i Linux pa više nije ograničen na odabrane strojeve, uz dijalog pri pokretanju za njegovo uključivanje (bb07d582b, 1cb967c5a, b37e48040).

  • Novi OpenMV DFU pokretač (bootloader). Potpuno implementirani prilagođeni openmv_dfu tijek pokretača upravlja ažuriranjima ugrađenog programa (firmware) iz settings.json, uključujući dijalog „otkrivena ploča u DFU načinu rada” koji nudi instalaciju najnovijeg izdanja, učitavanje određenog firmwarea i brisanje datotečnog sustava, plus rezervni put pokretača za oporavak zaglavljenih kamera (08b9d0676, 6a6a9351d, 6d78d6571).

  • Podrška za nove kamere. Dodaje ploče OpenMV Cam N6, RT1062 i AE3 te migrira kamere na novi 37C5 USB ID proizvođača s ažuriranim DFU upravljačkim programima i udev pravilima (000ed8a87, f453bc945, 4a16e04c2, 6d78d6571).

  • Pouzdaniji serijski prijenos. Velike ispravke serijske komunikacije rješavaju iskrivljeni tekst u terminalu i nasumična prekidanja veze s kamerama temeljenima na TinyUSB-u (caeba6a16, 6cf122a3c).

Nove značajke

  • OpenMV DFU pokretač (bootloader). Novi openmv_dfu sustav pokretača s namjenskim DFU upravljačkim programima i mehanizmom rezervnog pokretača oporavlja zaglavljene kamere kroz različite vrste firmwarea (6a6a9351d, 6d78d6571). Tijek upravlja ažuriranjima firmwarea iz settings.json i prikazuje dijalog „otkrivena ploča u DFU načinu rada” s opcijama instalacije najnovijeg izdanja, učitavanja određenog firmwarea i brisanja datotečnog sustava (08b9d0676, ef19133b6, 9c59d113c).

  • Naziv ploče u biraču priključka. Dijalog za odabir serijskog priključka sada ispituje svaki priključak i prikazuje otkriveni naziv ploče pokraj priključka (npr. COM3: OpenMV Cam H7) umjesto golog naziva priključka (9837d6cb5).

  • Uređivač s karticama. Dodatak za uređivač s karticama vraćen je i dodaje red kartica dokumenata iznad područja uređivača za prebacivanje između otvorenih datoteka (c8519c09f), a sada zadržava i obnavlja raspored kartica između sesija (55ccfb207).

  • Isticanje Python sintakse. Dodaje namjensku definiciju za isticanje Python sintakse za uređivač s pravilima za oblikovanje nizova, brojeve s pomičnim zarezom i ključne riječi (9be46c0c3).

Ostale promjene i poboljšanja

  • Refaktoriranje učitavanja firmwarea. Kod za učitavanje firmwarea podijeljen je u zasebne rukovatelje pokretača po vrsti (OpenMV DFU, Arduino DFU, BOSSAC, i.MX, picotool), dodajući rukovanje touch-to-reset PID-om za Arduino DFU ploče i izričite „Legacy” varijante ploča za uređaje s alternativnim VID/PID-om (9f465f9f8).

  • Zaštite za STM32 ROM pokretač. IDE sada upozorava ili blokira učitavanje firmware.dfu/openmv.dfu na STM32 ROM pokretač za oporavak, preporučujući samo bootloader.dfu kako bi se izbjeglo zaglavljivanje STM32H7 ploča pogođenih greškom u ROM pokretaču čipa (c5ce0ae1a, e7cde1ec1).

  • Automatsko, tiho postavljanje Python LSP-a. Python jezični poslužitelj sada se instalira i ažurira automatski bez upita u informacijskoj traci ili zatrpavanja konzole porukama (d89f5985f), a sustav za Python automatsko dovršavanje/lebdeću dokumentaciju preoblikovan je u namjenski OpenMV dokumentacijski mehanizam koji raščlanjuje priloženu HTML dokumentaciju biblioteke radi isticanja ključnih riječi i oblačića (47e02873b, 4f9853f21, 82cefc931).

  • Otkrivanje Python interpretera na Linuxu. Otkrivanje interpretera na Linuxu sada je automatsko, razmatrajući samo Python 3 interpretere iz PATH i odabirući najnoviji kao jedini zadani (214fdc758).

  • Čišćenje Python postavki. Grupa za upravljanje po interpreteru i stranica Interpreters su skrivene, konfiguracija jezičnog poslužitelja smještena je u kategoriju Python, a nekorišteni gumbi alatne trake za REPL i odabir interpretera skriveni su u Python uređivaču (d89f5985f). Na Windowsu IDE sada automatski registrira priloženi ugrađeni python.exe kao zadani interpreter, pri čemu se priloženi jezični poslužitelj tretira kao već instaliran (1d9ca003e, d89f5985f).

  • Čišći direktorij profila. IDE više ne zapisuje nekorištene datoteke postavki Qt Creatora (uređaji, kitovi, lanci alata, Qt verzije) i otvara datoteke izravno u uređivaču (3771b0107), više ne pretražuje sustav za qmake/Qt verzijama (42807f25f) i izbjegava učitavanje nekorištene mehanike uređaja/lanaca alata/kitova te buke pri pokretanju (902a357de, b2666a35b).

  • Sigurnija ažuriranja. Ažuriranje IDE-a više ne prebrisuje korisničke resurse; uklanjaju se i ponovno kopiraju samo upravljane mape resursa (primjeri, firmware, html, modeli), uz dodatno uklanjanje micropython-headers (instaliraju se zasebno umjesto ponovnog kopiranja ovim putem), te jasnija greška ako firmware/settings.json nedostaje ili je nevaljan (b4b8c208d, 3255ba4fb).

  • Brže DFU povezivanje. Vrijeme čekanja za DFU vezu smanjeno je pa su flashanje i povezivanje brži (11d8c9fe3, 4700bf678).

  • Vraćeni OpenMV izbornik i prilagodbe sučelja. Pojednostavljeni raspored OpenMV izbornika ponovno je primijenjen, skrivajući izbornike Build i Debug te uklanjajući radnje upravljanja projektima (7503f2bec); mehanizam za dovršavanje koda ponovno dobiva svijest o klasama/metodama i opsege javnih/privatnih ključnih riječi za MicroPython automatsko dovršavanje (55fc348ea); prikazivanje ANSI boja u terminalu ponovno je primijenjeno s vrijednostima svijetlo/prigušeno svjesnima teme i podrškom za escape pomicanja kursora unatrag (c6787a27a); a alatna traka preglednika slika prilagođena je s oblačićima za razlučivost/uvećanje i premještenom radnjom Fit-to-Screen (734fec693).

  • Vraćeni priloženi resursi. Alati za flashanje, DFU upravljački programi, firmware i cijelo stablo primjera/skripti vraćeni su u zajedničke resurse nakon uklanjanja pri prebaziranju (33c8354bc), a OpenMV-ova prilagođena logika pokretanja aplikacije ponovno je primijenjena: tvrdo zahtijeva dodatak TextEditor (provjere OpenMV i TabbedEditor dodataka su prisutne, ali onemogućene), instalira prilagođeni Qt rukovatelj porukama, uklanja opcije naredbenog retka -client/-pid/-block i prisiljava ponašanje s jednom instancom (06c788f3d).

  • Neuspjeh kod nedostajućeg dodatka. Aplikacija sada tvrdo otkazuje uz jasnu grešku ako potrebni dodaci nedostaju ili su onemogućeni, OpenMV dodatak dobio je ovisnost o Copilotu, a nekoliko opcija uređivača teksta (Prefer single line comments i birač položaja komentara u postavkama Behavior te Highlight selection u postavkama Display) je skriveno (1bc02b1f3).

  • Kraći serijski istek vremena. Istek vremena serijskog protokola skraćen je (čitanje s 10000 na 5000 ms, pisanje s 6000 na 3000 ms) radi bržih povratnih informacija o neuspjehu, uz ažuriranu dokumentiranu zadanu vrijednost -override_read_timeout da se podudara (641385af4).

  • Oporavak zaglavljenog priključka. Serijski priključci zaglavljeni usred naredbe sada se oporavljaju pomoću upita GET_STATE (konfigurabilno putem postavke get-state) umjesto upita o pokretanju skripte (a8598f550).

  • Redoslijed dijaloga postavki. Dijalog postavki skriva potvrdni okvir za abecedno sortiranje kategorija pa popis stranica ostaje u OpenMV-ovom namjeravanom redoslijedu (1cb967c5a).

  • Pojednostavljene postavke Copilota. Stranica postavki Copilota svedena je samo na kontrole prijave/autentifikacije i proxyja, skrivajući opcije omogući-Copilot, Node.js-path, dist-path i automatsko dovršavanje (1cb967c5a).

Ispravke grešaka

  • Ispravljeni glavni problemi serijske komunikacije povećanjem isteka vremena zastoja serijskog čitanja 10 puta i onemogućavanjem puta za odglavljivanje temeljenog na GET_STATE koji je iskrivljavao tekst u serijskom terminalu (caeba6a16).

  • Ispravljena nasumična serijska prekidanja veze s kamerama temeljenima na TinyUSB-u izdavanjem naredbe za otključavanje frame-dumpa i preoblikovanjem rukovanja zastojem čitanja umjesto prekidanja veze (6cf122a3c).

  • Učinjeno da rukovanje get_state kamere bude tolerantno na kratke/djelomične odgovore i osigurano da se međuspremljeni tekst serijskog terminala isprazni tijekom oporavka od greške kako se izlaz zapisnika ne bi izgubio (c8b4248a6, 247a779dd).

  • Ispravljeni brojevi flash particije/alt-postavke DFU pokretača za učitavanje firmwarea OpenMV Cam (a8700d12d).

  • Vraćeni svi pokretači poštivanjem nove zastavice ploče hidden, prebacivanjem filtriranja serijskih brojeva na inverzne filtre i davanjem UF2 stavci Arduino Nano RP2040 Connect funkcionalne picotool konfiguracije (63cee629b).

  • Ispravljen dijalog za odabir vrste ploče pokretača koji je pamtio pogrešnu vrijednost korištenjem zasebnih ključeva povijesti za ljudski čitljive i IMX odabire vrste ploče (a3325af32).

  • Ispravljen izračun vremenske oznake/broja sličica pri transkodiranju videa (Save Video) izračunavanjem prosječnog intervala sličica u mikrosekundama, podržavanjem novog v21 ImageWriter formata vremena i zaštitom od null pixmapa tijekom konverzije (f5c75c749, f8f762b3e).

  • Ispravljeno rušenje u prikazu histograma/međuspremnika slike kada je primljen prazan (null) pixmap zaštitom pixmapUpdate() od null podataka (622cf5ea8).

  • Vraćeni oblačići napomena pri lebdenju u uređivaču teksta pa lebdenje iznad oznaka teksta ponovno prikazuje oblačić s napomenom (1852d18e1).

  • Spriječeno da se informacijski dijalozi GitHub Copilota i boja LED-ica pojavljuju dok je IDE zauzet povezivanjem ili flashanjem (f8f762b3e).

  • Dodana zaštita od rušenja u jezičnom klijentu pa rukovanje promjenom sadržaja dokumenta više ne ruši IDE u rubnim slučajevima (7926ffe4c).

  • Ispravljene provjere Python jezičnog poslužitelja koje su sprječavale čisto gašenje IDE-a tako da Python dodatak asinkrono čeka na provjere u tijeku prije izlaska (9ff6c7936).

  • Ispravljeno Python automatsko dovršavanje na Linuxu: jezični klijent ukorjenjuje se u priloženom micropython-headers, a suvišna radnja skočnog prozora za dovršavanje u alatnoj traci uređivača je skrivena (d37f66a9a, 56e748f9d, 016fa73eb).

  • Ispravljeno rukovanje privremenim/nespremljenim datotekama tako da Save As koristi početni direktorij dijaloga datoteka, a dijalog Save Items i Diff uređivač više ne prikazuju puteve internih privremenih datoteka (b7f0bb378, c8e7b6b8f, 6b128c34c).

  • Spremanje neimenovanog/privremenog međuspremnika sada postavlja zadani naziv datoteke s ispravnom .py ekstenzijom u dijalogu Save-As umjesto praznog naziva (3001fdfff).

  • Privremeni/neimenovani dokumenti sada se nude za spremanje kad su izmijenjeni, isključeni su iz automatskog spremanja i ispravno usmjereni kroz Save-As (f87b71cf0).

  • Ispravljen redoslijed izbornika Recent Files pa ponovno otvaranje već navedene datoteke više ne mijenja njezin redoslijed, a dijalog datoteka sada zadano koristi direktorij projekata (d49c0c993).

  • Ispravljeno prikazivanje teksta okvira s porukama tako da se više ne prisiljava format obogaćenog teksta na potvrdljivim okvirima s porukama pa se neobrađeni tekst ispravno prikazuje (0c565502f).

  • Ispravljene boje oblačića pa se oblačići ispravno prikazuju u svijetloj temi (35cbf077b).

  • Opće ispravke stabilnosti i čišćenja Qt Creatora kroz osnovne postavke, jezični klijent, MSVC lanac alata, project explorer i Python dodatke (836b163dc, 134f43cb8).

  • Ispravljen naziv mape priloženog firmwarea za Arduino Nano 33 BLE Sense (b1d8ac227) i ispravljeno Linux udev pravilo za product ID AE3 DFU pokretača, ispravljajući 96E3 u mala slova 96e3 kako bi udev-ovo na velika/mala slova osjetljivo podudaranje idProduct radilo (2cd43c96b). Linux udev pravilo za AE3 DFU pokretač također je ažurirano na product ID 37c5:afe3 za simboličku poveznicu openmvdfu (b99555637).

Podrška za platforme i alate

  • Osnova Qt Creatora: 14.0.2 (prebazirano s 10.0.1).

  • OpenMV Cam N6 sada je podržan (VID:PID 37C5:1206, DFU pokretač 37C5:9206), uključujući postavke firmwarea, Windows DFU upravljački program i Linux udev pravilo (000ed8a87, 1b950c8c6).

  • OpenMV Cam RT1062 sada je podržan pod novim prilagođenim USB VID/PID-om (37C5:1060), uključujući DFU upravljačke programe, udev pravila i zadržane naslijeđene 1209:ABD1 stavke za starije jedinice (f453bc945, d55d6441f).

  • OpenMV Cam AE3 sada je podržan, uključujući Windows DFU upravljačke programe, njegovo stablo firmware/config slika i USB VID/PID (ažurirano na 37C5:16E3 runtime / 37C5:96E3 pokretač) (4a16e04c2, cc52e76f5, 3f75e7de4, 8eb80b129).

  • Novi USB VID/PID sustav: OpenMV kamere prelaze na ID proizvođača 37C5 s novim ID-ovima pokretača/DFU-a (npr. 37C5:1202/9202 M4, 1203/9203 M7, 1204/9204 H7, 124A/924A H7 Plus, 1205/9205), preimenujući stare ploče 1209:ABD1 u Legacy uz i dalje podržavanje i starog i novog firmwarea (6d78d6571, 6a6a9351d, 500b1a0bf).

  • PAG7936 senzor slike dodan je na popis prepoznatih senzora (f9e3f3461).

  • Ugrađeni Python 3.13 interpreter priložen za macOS, Linux x86_64, Linux arm64 i Linux arm (9133b1516), s nativnim libpython3.13 i ujson dijeljenim bibliotekama (d3aa663d8, a2cb24e74).

  • Priloženi jezični poslužitelj: pylsp s astroid 3.3.5 na Windowsu, macOS-u i Linux x86_64 (257addee0). Windows build isporučuje ugrađeni CPython s 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).

  • Priloženo Node.js 20.18.0 „Iron” LTS izvršno okruženje za Windows, macOS, Linux arm64, Linux x64 i Linux armv7 radi omogućavanja GitHub Copilota na svim platformama (bb07d582b, 6db78bf45, 1cb967c5a).

  • Alif Security Toolkit potpisane binarne datoteke boot/system-package i korisnički vodič priloženi za Windows, macOS i Linux x86_64 za pripremu OpenMV kamera temeljenih na Alifu (npr. AE3) (f63851be3).

  • Linux integracija s radnom površinom je vraćena, instalirajući desktop stavku aplikacije i AppStream metapodatke te registrirajući Python (.py) MIME tip (3fa25f571).

Promjene koje narušavaju kompatibilnost

Nijedan API za skriptiranje nije se promijenio. Mogu se primijetiti sljedeće promjene tijeka rada i ponašanja vidljive korisniku:

  • Novi USB ID proizvođača. OpenMV kamere migriraju na ID proizvođača 37C5 s novim ID-ovima proizvoda i DFU pokretača; ploče na starom VID-u 1209:ABD1 sada su označene kao „Legacy”. IDE istovremeno podržava i stari i novi firmware, ali Linux korisnici moraju ponovno instalirati ažurirana udev pravila kako bi novi ID-ovi bili prepoznati.

  • Skrivene naslijeđene stavke ploča. Naslijeđene varijante ploča OpenMV Cam M4/M7/H7/H7 Plus/Pure Thermal sada su uklonjene s popisa za odabir firmwarea/ploča putem nove zastavice ploče legacy (različite od već postojeće zastavice hidden) pa ih korisnici kojima je posebno potrebna naslijeđena stavka ploče više neće vidjeti na padajućem izborniku (6d78d6571).

  • Kraći serijski istek vremena. Zadani istek vremena čitanja odgovora pada s 10000 ms na 5000 ms, a istek vremena pisanja sa 6000 ms na 3000 ms (zadana vrijednost -override_read_timeout sada je dokumentirana kao 5000). Spore ploče/veze koje su se oslanjale na duže zadane vrijednosti mogu prije isteći.

Prebaziranje na Qt Creator 14.0.2 velika je interna modernizacija, ali ne narušava kompatibilnost za korisničke projekte.