v1.3.0

v1.3.0 bygger om kommunikationslagret mot kameran kring ett strukturerat kommando/svar-protokoll och lägger till automatisk uppdatering i IDE:n för både IDE:n och dess medföljande resurser. Den är byggd på Qt Creator 4.0.2 och levereras med OpenMV-kamerans fasta programvara 2.0.0. På macOS och Linux kräver DFU-flashning av fast programvara nu en engångsinstallation av Python plus libusb och pyusb; se Brytande ändringar.

Höjdpunkter

  • Omskrivet kommunikationslager. Den seriella/USB-felsökningskoden byggdes om kring ett strukturerat kommando/svar-protokoll med svarslängder per kommando och vänteförseningar i början/slutet, för mer tillförlitliga operationer för anslutning, skriptkörning, bildbuffert och startladdare.

  • Automatisk uppdaterare i IDE:n. IDE:n kontrollerar nu openmv.io efter en nyare version och erbjuder en Download-knapp, och hämtar och installerar separat uppdaterade resurspaket (exempel, fast programvara, dokumentation) och uppmanar sedan till omstart.

  • Uppdatering av fast programvara med ett klick. Versionen av fast programvara i statusfältet är nu en klickbar knapp som jämför den anslutna kameran med den medföljande fasta programvaran och erbjuder en uppdatering med ett klick när en nyare version är tillgänglig.

  • DFU-flashning av fast programvara på varje plattform. Fast programvara kan nu flashas över DFU på Windows, macOS, Linux x86 och Linux x86_64, och väljaren för fast programvara accepterar .dfu-filer förutom .bin.

  • Automatisk DFU-reserv. När den seriella startladdaren inte kan nås under en uppdatering av fast programvara erbjuder IDE:n nu att uppgradera via kamerans DFU-startladdare i stället och vägleder dig genom att lägga till en BOOT/RST-bygel.

Nya funktioner

  • Uppdaterare i IDE:n. Kontrollerar openmv.io efter en nyare IDE-version och erbjuder en Download-knapp som öppnar openmv.io/download, samt hämtar, packar upp och installerar openmv-ide-resources-X.Y.Z.zip-resurspaket direkt i IDE:n innan den uppmanar till omstart (8a1f92bb1, 194acd828, b0be97e3e).

  • Klickbar knapp för version av fast programvara. Versionsetiketten i statusfältet blev en QToolButton kopplad till ett updateCam()-flöde som läser den medföljande firmware/firmware.txt, jämför den med den anslutna kameran och erbjuder en Firmware Update med valfri radering av det interna filsystemet när den är nyare (b2ac8defe).

  • Stöd för DFU-filer. Dialogrutan för startladdare/flashning av fast programvara accepterar nu .dfu-filer förutom .bin och framtvingar en fullständig radering av det interna filsystemet vid flashning av en .dfu. Filtret i väljaren för fast programvara breddades till Firmware Binary (*.bin *.dfu) och det framtvingade raderingsflödet för .dfu infördes i 4ad2be5f9, med den alltid markerade men inaktiverade raderingskryssrutan som växlar automatiskt baserat på den valda filändelsen som lades till i b2ac8defe (4ad2be5f9, b2ac8defe).

  • Automatisk DFU-reserv vid fel i startladdaren. När en .bin-uppdatering av fast programvara inte kan starta den seriella startladdaren rapporterar IDE:n nu Unable to connect to the bootloader! och erbjuder sedan att uppgradera med kamerans DFU-startladdare i stället, med en varning om att DFU raderar det interna flashfilsystemet, och vägleder dig genom att lägga till en BOOT/RST-bygeltråd och återansluta innan den kör DfuSeCommand.exe (Windows) (4ad2be5f9).

  • HoG-exempel. Lade till ett visualiseringsexempel för Histogram of Oriented Gradients (09-Feature-Detection/hog.py) som använder img.find_hog() (b03a707f7).

Övriga ändringar och förbättringar

  • Ersatte den gamla ad hoc-koden för baudhastighet/paket med klasserna OpenMVPluginSerialPortCommand/Result, opkoderna __USBDBG_* och __BOOTLDR_* samt hjälpfunktionerna command()/commandResult() i stället för write()/readAll()/isOpen() (b03a707f7, 141122e21, b2ac8defe, 1d72fe4bf, b4cf2fe43, c60936d5f).

  • Installationen av drivrutinen för seriell port på Windows är nu tyst/obevakad, genom att drivrutinsskripten openmv.cmd/pybcdc.cmd byttes till dpinst-baserade installerare i stället för interaktiv InfDefaultInstall, och installeraren för Visual C++ Redistributable (vcr.cmd, som kör vcredist_x86.exe och vcredist_x64.exe tyst) lades till och rättades (a5a6e0590, 754d0776d, b0be97e3e, 452a29f0d, c051c6e30, ad1b674ef, 565f1eccd).

Buggfixar

  • Rättade att flashning av fast programvara och kommunikation slutade fungera inuti virtuella maskiner, och luckrade upp olika kommandotidsgränser och polling av bildbuffert/tx-buffert så att anslutning och körning blir mer robusta. Omprogrammeringsdialogen anger nu att den ”may take up to 5 minutes” och tidsgränsen för DFU-processen höjdes från 240 s till 300 s i 324f243f9 (c051c6e30, b0be97e3e, 1d72fe4bf, b4cf2fe43, 324f243f9, c60936d5f).

  • Rättade jämförelsen av tillgänglig uppdatering för fast programvara/IDE så att en nyare delversion eller patch inte längre utlöses felaktigt när ett högre fält är lika, och krävde att startladdardialogen har en giltig vald fil innan flashning (4ad2be5f9).

  • Stängde filhandtag (kortlista, filer för fast programvara/version) efter läsning och korrigerade utfyllnaden av flashchunkar för fast programvara så att den fylls ut till FLASH_WRITE_CHUNK_SIZE, vilket förhindrar läckta handtag och felaktigt utfyllda slutchunkar under uppdateringar av fast programvara (4ad2be5f9).

  • Rättade OpenMV-menyn Help och utmatningsrutorna: posten About OpenMV Cam krockar inte längre med plattformens About-roll (AboutRoleApplicationSpecificRole), och utmatningsrutorna fångar inte längre Alt/Cmd + sifferkortkommandon (a0694eac7).

  • Att öppna externa OpenMV-webblänkar (forum, nedladdning, support) rapporterar nu en ”Failed to open”-felruta när URL:en inte kan startas i stället för att tyst inte göra något (b0be97e3e).

Plattforms- och verktygsstöd

  • Qt Creator-bas: 4.0.2.

  • Medföljande kamerafast programvara: uppdaterad till 2.0.0, med nya firmware.bin/openmv.bin och nytillkomna firmware.dfu/bootloader.dfu/firmware.elf/bootloader.elf för OMV2 och OMV7.

  • DFU-flashning på Windows lades till med en medföljande ST DfuSeCommand.exe, ST DfuSe USB-drivrutinspaketet (DfuSe v3.0.4.0 på Win7/Win8, v3.0.5.0 på Win8.1) och en dfuse.cmd-drivrutinsinstallerare (4ad2be5f9).

  • DFU-flashning på macOS och Linux flyttades från förbyggda dfu-util-binärer till en medföljande pydfu.py-flashare, där IDE:n visar de nödvändiga installationskommandona för libusb/pyusb. ac248c0ec lade kortvarigt till Linux x86_64-binärerna dfu-util/dfu-prefix/dfu-suffix, men 324f243f9 tog sedan bort alla till förmån för pydfu.py. Inga dfu-util-binärer levereras i den slutliga utgåvan; static.pro levererar datakatalogen pydfu för alla värdar som inte är Windows, medan Windows använder det medföljande DfuSe-flödet (ac248c0ec, 324f243f9, 7837a07da).

  • Linux udev-regler uppdaterades till att använda SUBSYSTEM-matchning (kamera VID 1209/PID abd1 tty och STM DFU 0483/df11) så att enhets- och DFU-symlänkarna fungerar på 32-bitars Linux, och nätverksbegäranden som följer omdirigeringar skyddades för äldre Qt (194acd828).

Brytande ändringar

De medföljande fristående dfu-util-binärerna för macOS och Linux togs bort och ersattes av en Python-pydfu.py-flashare. På macOS och Linux kräver DFU-flashning av fast programvara nu en engångsinstallation av Python plus libusb och pyusb (IDE:n visar de exakta kommandona för MacPorts/HomeBrew/apt-get). Windows fortsätter att använda det medföljande DfuSe-baserade flödet. Det finns inga brott i skript-API:et, och Qt Creator 4.0.2-basen är oförändrad.