v1.3.0¶
v1.3.0 rescrie stratul de comunicare cu camera în jurul unui protocol structurat de comandă/răspuns și adaugă actualizarea automată în IDE atât pentru IDE, cât și pentru resursele incluse. Este construit pe Qt Creator 4.0.2 și include firmware-ul camerei OpenMV 2.0.0. Pe macOS și Linux, scrierea firmware-ului prin DFU necesită acum o instalare unică a Python plus libusb și pyusb; consultați Modificări incompatibile.
Puncte importante¶
Strat de comunicare rescris. Codul de depanare serial/USB a fost reconstruit în jurul unui protocol structurat de comandă/răspuns cu lungimi de răspuns per comandă și întârzieri de așteptare la început/sfârșit, pentru operațiuni mai fiabile de conectare, rulare de script, frame buffer și bootloader.
Actualizare automată în IDE. IDE-ul verifică acum
openmv.iopentru o versiune mai nouă și oferă un buton Download, iar separat descarcă și instalează pachete de resurse actualizate (exemple, firmware, documentație), apoi solicită repornirea.Actualizare firmware printr-un singur clic. Versiunea firmware-ului din bara de stare este acum un buton pe care se poate face clic, ce compară camera conectată cu firmware-ul inclus și oferă o actualizare printr-un singur clic atunci când este disponibilă o versiune mai nouă.
Scriere firmware prin DFU pe fiecare platformă. Firmware-ul poate fi scris acum prin DFU pe Windows, macOS, Linux x86 și Linux x86_64, iar selectorul de firmware acceptă fișiere
.dfupe lângă.bin.Revenire automată la DFU. Când bootloader-ul serial nu poate fi accesat în timpul unei actualizări de firmware, IDE-ul oferă acum posibilitatea de a face upgrade prin bootloader-ul DFU al camerei, ghidându-vă prin adăugarea unui jumper
BOOT/RST.
Funcții noi¶
Actualizator în IDE. Verifică
openmv.iopentru o versiune mai nouă a IDE-ului și oferă un buton Download care deschideopenmv.io/download, și descarcă, dezarhivează și instalează pachetele de resurseopenmv-ide-resources-X.Y.Z.zipdirect în IDE înainte de a solicita repornirea (8a1f92bb1, 194acd828, b0be97e3e).Buton de versiune firmware pe care se poate face clic. Eticheta de versiune din bara de stare a devenit un
QToolButtonconectat la un fluxupdateCam()care citește fișierul inclusfirmware/firmware.txt, îl compară cu camera conectată și oferă o Firmware Update cu ștergere opțională a sistemului de fișiere intern atunci când există o versiune mai nouă (b2ac8defe).Suport pentru fișiere DFU. Dialogul de scriere bootloader/firmware acceptă acum fișiere
.dfupe lângă.binși forțează o ștergere completă a sistemului de fișiere intern la scrierea unui.dfu. Filtrul selectorului de firmware a fost extins laFirmware Binary (*.bin *.dfu), iar fluxul de ștergere forțată pentru.dfua fost introdus în4ad2be5f9, împreună cu caseta de bifare a ștergerii, dezactivată și mereu bifată, care se comută automat în funcție de extensia fișierului ales, adăugată înb2ac8defe(4ad2be5f9, b2ac8defe).Revenire automată la DFU în caz de eșec al bootloader-ului. Când o actualizare de firmware
.binnu poate porni bootloader-ul serial, IDE-ul raportează acumUnable to connect to the bootloader!și apoi oferă posibilitatea de a face upgrade folosind bootloader-ul DFU al camerei, avertizând că DFU șterge sistemul de fișiere din memoria flash internă și ghidându-vă prin adăugarea unui fir jumperBOOT/RSTși reconectarea înainte de a rulaDfuSeCommand.exe(Windows) (4ad2be5f9).Exemplu HoG. A fost adăugat un exemplu de vizualizare Histogram of Oriented Gradients (
09-Feature-Detection/hog.py) folosindimg.find_hog()(b03a707f7).
Alte modificări și îmbunătățiri¶
A înlocuit vechiul cod ad-hoc de rată baud/pachete cu clasele
OpenMVPluginSerialPortCommand/Result, codurile de operație__USBDBG_*și__BOOTLDR_*și funcțiile ajutătoarecommand()/commandResult()în loculwrite()/readAll()/isOpen()(b03a707f7, 141122e21, b2ac8defe, 1d72fe4bf, b4cf2fe43, c60936d5f).Instalarea driverului de port serial pe Windows este acum silențioasă/nesupravegheată, trecând scripturile de driver
openmv.cmd/pybcdc.cmdla instalatoare bazate pedpinstîn loc deInfDefaultInstallinteractiv, iar instalatorul Visual C++ Redistributable (vcr.cmd, care ruleazăvcredist_x86.exeșivcredist_x64.exeîn mod silențios) a fost adăugat și corectat (a5a6e0590, 754d0776d, b0be97e3e, 452a29f0d, c051c6e30, ad1b674ef, 565f1eccd).
Corectări de erori¶
A fost remediată întreruperea scrierii firmware-ului și a comunicării în interiorul mașinilor virtuale și au fost relaxate diverse timeout-uri de comandă și interogarea frame buffer/tx-buffer, astfel încât conectarea și rularea să fie mai robuste. Dialogul de reprogramare menționează acum că „poate dura până la 5 minute”, iar timeout-ul procesului DFU a fost ridicat de la 240s la 300s în
324f243f9(c051c6e30, b0be97e3e, 1d72fe4bf, b4cf2fe43, 324f243f9, c60936d5f).A fost corectată comparația de disponibilitate a actualizării firmware/IDE astfel încât o versiune minoră sau patch mai nouă să nu mai declanșeze fals atunci când un câmp superior este egal, și s-a impus ca dialogul bootloader-ului să aibă un fișier valid selectat înainte de scriere (4ad2be5f9).
Au fost închise descriptorii de fișiere (lista de plăci, fișierele de firmware/versiune) după citire și a fost corectată completarea (padding) blocurilor de scriere a firmware-ului pentru a completa până la
FLASH_WRITE_CHUNK_SIZE, prevenind scurgerile de descriptori și blocurile finale completate greșit în timpul actualizărilor de firmware (4ad2be5f9).Au fost remediate meniul OpenMV
Helpși panourile de ieșire: intrarea About OpenMV Cam nu mai intră în conflict cu rolul About al platformei (AboutRole→ApplicationSpecificRole), iar panourile de ieșire nu mai captează scurtăturileAlt/Cmd+ cifră (a0694eac7).Deschiderea linkurilor web externe OpenMV (forumuri, descărcare, suport) raportează acum un dialog de eroare „Failed to open” atunci când URL-ul nu poate fi lansat, în loc să nu facă nimic în mod silențios (b0be97e3e).
Suport pentru platforme și instrumente¶
Baza Qt Creator: 4.0.2.
Firmware-ul de cameră inclus: actualizat la 2.0.0, cu noile
firmware.bin/openmv.binși noile fișiere adăugatefirmware.dfu/bootloader.dfu/firmware.elf/bootloader.elfpentru OMV2 și OMV7.Scrierea firmware-ului prin DFU pe Windows a fost adăugată folosind un
DfuSeCommand.exeST inclus, pachetul de driver USB ST DfuSe (DfuSe v3.0.4.0 pe Win7/Win8, v3.0.5.0 pe Win8.1) și un instalator de driverdfuse.cmd(4ad2be5f9).Scrierea firmware-ului prin DFU pe macOS și Linux a trecut de la binarele
dfu-utilprecompilate la un flasherpydfu.pyinclus, IDE-ul afișând comenzile de instalare libusb/pyusb necesare.ac248c0eca adăugat pe scurt binarele Linux x86_64dfu-util/dfu-prefix/dfu-suffix, dar324f243f9le-a eliminat apoi pe toate în favoareapydfu.py. Niciun binardfu-utilnu este livrat în versiunea finală;static.proinclude directorul de datepydfupentru toate gazdele non-Windows, în timp ce Windows folosește fluxul DfuSe inclus (ac248c0ec, 324f243f9, 7837a07da).Regulile udev pentru Linux au fost actualizate pentru a folosi potrivirea
SUBSYSTEM(cam VID 1209/PID abd1 tty și STM DFU 0483/df11) astfel încât legăturile simbolice pentru dispozitiv și DFU să funcționeze pe Linux pe 32 de biți, iar cererile de rețea care urmăresc redirecționările au fost protejate pentru versiunile mai vechi de Qt (194acd828).
Modificări incompatibile¶
Binarele autonome dfu-util incluse pentru macOS și Linux au fost eliminate și înlocuite cu un flasher Python pydfu.py. Pe macOS și Linux, scrierea firmware-ului prin DFU necesită acum o instalare unică a Python plus libusb și pyusb (IDE-ul afișează comenzile exacte MacPorts/HomeBrew/apt-get). Windows continuă să folosească fluxul bazat pe DfuSe inclus. Nu există incompatibilități la nivelul API-ului de scripting, iar baza Qt Creator 4.0.2 rămâne neschimbată.