v1.3.0¶
v1.3.0 herschrijft de communicatielaag met de camera rond een gestructureerd commando/antwoord-protocol en voegt automatische updates binnen de IDE toe voor zowel de IDE als de meegeleverde bronnen. Het is gebouwd op Qt Creator 4.0.2 en bevat OpenMV camerafirmware 2.0.0. Op macOS en Linux vereist het flashen van firmware via DFU nu een eenmalige installatie van Python plus libusb en pyusb; zie Ingrijpende wijzigingen.
Hoogtepunten¶
Herschreven communicatielaag. De serial/USB-debug-code is herbouwd rond een gestructureerd commando/antwoord-protocol met antwoordlengtes per commando en wachtvertragingen aan begin en einde, voor betrouwbaardere verbindings-, script-uitvoer-, framebuffer- en bootloaderbewerkingen.
Automatische updater in de IDE. De IDE controleert nu
openmv.ioop een nieuwere versie en biedt een Download-knop, en downloadt en installeert daarnaast bijgewerkte bronpakketten (voorbeelden, firmware, documentatie) en vraagt vervolgens om opnieuw op te starten.Firmware-update met één klik. De firmwareversie in de statusbalk is nu een aanklikbare knop die de aangesloten camera vergelijkt met de meegeleverde firmware en een update met één klik aanbiedt wanneer er een nieuwere versie beschikbaar is.
DFU-firmware flashen op elk platform. Firmware kan nu via DFU worden geflasht op Windows, macOS, Linux x86 en Linux x86_64, en de firmwarekiezer accepteert naast
.binook.dfu-bestanden.Automatische DFU-terugval. Wanneer de seriële bootloader tijdens een firmware-update niet bereikbaar is, biedt de IDE nu aan om in plaats daarvan via de DFU-bootloader van de camera te upgraden, waarbij je wordt begeleid bij het plaatsen van een
BOOT/RST-jumper.
Nieuwe functies¶
Updater in de IDE. Controleert
openmv.ioop een nieuwere IDE-versie en biedt een Download-knop dieopenmv.io/downloadopent, en downloadt, pakt uit en installeertopenmv-ide-resources-X.Y.Z.zip-bronpakketten rechtstreeks in de IDE voordat om opnieuw opstarten wordt gevraagd (8a1f92bb1, 194acd828, b0be97e3e).Aanklikbare firmwareversie-knop. Het versielabel in de statusbalk werd een
QToolButtongekoppeld aan eenupdateCam()-flow die de meegeleverdefirmware/firmware.txtleest, deze vergelijkt met de aangesloten camera, en een Firmware Update aanbiedt met optioneel wissen van het interne bestandssysteem wanneer er een nieuwere is (b2ac8defe).Ondersteuning voor DFU-bestanden. Het bootloader/firmware-flash-dialoogvenster accepteert nu naast
.binook.dfu-bestanden en forceert een volledige wissing van het interne bestandssysteem bij het flashen van een.dfu. Het filter van de firmwarekiezer werd verbreed naarFirmware Binary (*.bin *.dfu)en de geforceerde wis-flow voor.dfuwerd geïntroduceerd in4ad2be5f9, met het altijd aangevinkte uitgeschakelde wis-keuzevakje dat automatisch schakelt op basis van de gekozen bestandsextensie, toegevoegd inb2ac8defe(4ad2be5f9, b2ac8defe).Automatische DFU-terugval bij bootloaderfout. Wanneer een
.bin-firmware-update de seriële bootloader niet kan starten, meldt de IDE nuUnable to connect to the bootloader!en biedt vervolgens aan om in plaats daarvan te upgraden via de DFU-bootloader van de camera, met de waarschuwing dat DFU het interne flashgeheugen-bestandssysteem wist, en begeleidt je bij het plaatsen van eenBOOT/RST-jumperdraad en het opnieuw verbinden voordatDfuSeCommand.exe(Windows) wordt uitgevoerd (4ad2be5f9).HoG-voorbeeld. Een visualisatievoorbeeld voor Histogram of Oriented Gradients toegevoegd (
09-Feature-Detection/hog.py) datimg.find_hog()gebruikt (b03a707f7).
Overige wijzigingen en verbeteringen¶
De oude ad-hoc baudrate/pakketcode vervangen door
OpenMVPluginSerialPortCommand/Result-klassen,__USBDBG_*- en__BOOTLDR_*-opcodes encommand()/commandResult()-helpers in plaats vanwrite()/readAll()/isOpen()(b03a707f7, 141122e21, b2ac8defe, 1d72fe4bf, b4cf2fe43, c60936d5f).De installatie van het seriële-poortstuurprogramma op Windows is nu stil/onbeheerd, waarbij de stuurprogrammascripts
openmv.cmd/pybcdc.cmdzijn omgezet naardpinst-gebaseerde installatieprogramma’s in plaats van het interactieveInfDefaultInstall, en het installatieprogramma voor de Visual C++ Redistributable (vcr.cmd, datvcredist_x86.exeenvcredist_x64.exestil uitvoert) werd toegevoegd en gerepareerd (a5a6e0590, 754d0776d, b0be97e3e, 452a29f0d, c051c6e30, ad1b674ef, 565f1eccd).
Bugfixes¶
Het flashen en communiceren van firmware binnen virtuele machines, dat eerder vastliep, is gerepareerd, en diverse commando-timeouts en frame-buffer/tx-buffer-polling zijn versoepeld zodat verbinden en uitvoeren robuuster zijn. Het herprogrammeerdialoogvenster vermeldt nu dat het “may take up to 5 minutes” en de DFU-proces-timeout werd verhoogd van 240s naar 300s in
324f243f9(c051c6e30, b0be97e3e, 1d72fe4bf, b4cf2fe43, 324f243f9, c60936d5f).De vergelijking voor beschikbare firmware-/IDE-updates is gerepareerd zodat een nieuwere minor- of patchversie niet langer ten onrechte wordt geactiveerd wanneer een hoger veld gelijk is, en het bootloader-dialoogvenster vereist nu een geldig geselecteerd bestand vóór het flashen (4ad2be5f9).
Bestandshandles (kaartenlijst, firmware-/versiebestanden) worden nu gesloten na het lezen en de vulling van de firmware-flash-chunks is gecorrigeerd zodat tot
FLASH_WRITE_CHUNK_SIZEwordt opgevuld, wat gelekte handles en verkeerd opgevulde laatste chunks tijdens firmware-updates voorkomt (4ad2be5f9).Het OpenMV
Help-menu en de uitvoerpanelen gerepareerd: het item About OpenMV Cam botst niet langer met de platform-About-rol (AboutRole→ApplicationSpecificRole), en de uitvoerpanelen kapen niet langerAlt/Cmd+ cijfer-sneltoetsen (a0694eac7).Het openen van externe OpenMV-weblinks (forums, download, ondersteuning) toont nu een “Failed to open”-foutdialoogvenster wanneer de URL niet kan worden geopend, in plaats van stilletjes niets te doen (b0be97e3e).
Platform- en toolondersteuning¶
Qt Creator-basis: 4.0.2.
Meegeleverde camerafirmware: bijgewerkt naar 2.0.0, met nieuwe
firmware.bin/openmv.binen nieuw toegevoegdefirmware.dfu/bootloader.dfu/firmware.elf/bootloader.elfvoor OMV2 en OMV7.Windows DFU-flashen toegevoegd met een meegeleverde ST
DfuSeCommand.exe, het ST DfuSe USB-stuurprogrammapakket (DfuSe v3.0.4.0 op Win7/Win8, v3.0.5.0 op Win8.1) en eendfuse.cmd-stuurprogramma-installatieprogramma (4ad2be5f9).macOS- en Linux DFU-flashen verplaatst van vooraf gebouwde
dfu-util-binaries naar een meegeleverdepydfu.py-flasher, waarbij de IDE de vereiste libusb/pyusb-installatiecommando’s toont.ac248c0ecvoegde kortstondig Linux x86_64dfu-util/dfu-prefix/dfu-suffix-binaries toe, maar324f243f9verwijderde ze vervolgens allemaal ten gunste vanpydfu.py. In de uiteindelijke release worden geendfu-util-binaries meegeleverd;static.probundelt depydfu-datamap voor alle niet-Windows-hosts, terwijl Windows de meegeleverde DfuSe-flow gebruikt (ac248c0ec, 324f243f9, 7837a07da).Linux udev-regels bijgewerkt om
SUBSYSTEM-matching te gebruiken (cam VID 1209/PID abd1 tty en STM DFU 0483/df11) zodat de apparaat- en DFU-symlinks werken op 32-bits Linux, en netwerkverzoeken die redirects volgen werden afgeschermd voor oudere Qt (194acd828).
Ingrijpende wijzigingen¶
De meegeleverde standalone dfu-util-binaries voor macOS en Linux zijn verwijderd en vervangen door een Python pydfu.py-flasher. Op macOS en Linux vereist het flashen van firmware via DFU nu een eenmalige installatie van Python plus libusb en pyusb (de IDE toont de exacte MacPorts/HomeBrew/apt-get-commando’s). Windows blijft de meegeleverde DfuSe-gebaseerde flow gebruiken. Er zijn geen breuken in de scripting-API en de Qt Creator 4.0.2-basis is ongewijzigd.