v4.8.9

v4.8.9 is een release gericht op efficiëntie in rusttoestand en betrouwbaarheid bij verbreken, gebouwd op Qt Creator 14.0.2. Het herziet de manier waarop de IDE op hardware let, zodat polling stopt wanneer er niets gebeurt, scherpt het pad voor verbinden/verbreken aan en snoeit de meegeleverde model zoo. Er is in dit bereik geen Qt Creator-rebase, maar enkele standaardgedragingen en namen van meegeleverde modellen zijn gewijzigd, dus bekijk de brekende wijzigingen hieronder.

Hoogtepunten

  • Gebeurtenisgestuurde hardwarebewaking vervangt de continue polling van apparaten: de IDE stopt nu zijn scantimers wanneer hij inactief is en scant seriële poorten en schijven alleen opnieuw in reactie op echte USB-aansluit-/loskoppelgebeurtenissen en het aankoppelen/loskoppelen van schijven, wat het CPU- en resourcegebruik in rusttoestand drastisch vermindert.

  • Timers in rusttoestand afhankelijk van activiteit: de timer voor framebuffergebeurtenissen (die voorheen elke 1ms afging) draait nu alleen wanneer er verbinding is, en de timer voor het knipperen van de terminalcursor (500ms) draait nu alleen wanneer de terminal de focus heeft.

  • Synchronisatie van import op de achtergrond standaard uitgeschakeld: automatische synchronisatie van de importmappen Examples en Documents/OpenMV is nu uitgeschakeld en de bijbehorende menuschakelaar is verborgen, zodat de IDE die mappen niet langer voortdurend opnieuw scant.

  • Sneller en betrouwbaarder verbreken: de seriële poort wordt direct gesloten en de camera direct vrijgegeven, protocoltime-outs zijn verlaagd, en een vastgelopen camera herstelt nu in plaats van te blijven hangen.

  • Duidelijkere knop voor de framebuffermodus die JPG Mode of RAW Mode toont om de huidige compressiestatus in één oogopslag duidelijk te maken.

Nieuwe functies

  • Native bewaking van hardwaregebeurtenissen via een nieuwe HardwareMonitor die hardwareEventDetected uitzendt met behulp van IOKit en DiskArbitration op macOS, een WM_DEVICECHANGE-venster (message-only) op Windows, en een NETLINK_KOBJECT_UEVENT-netlinksocket op Linux. De timers voor het scannen van seriële poorten en schijven worden nu beperkt tot een scanvenster van 10s dat bij elke gebeurtenis opnieuw start (a6612fec9, 462b55f7b, 17c2e93c7).

Overige wijzigingen en verbeteringen

  • De timer voor de verwerking van framebuffergebeurtenissen (die voorheen elke 1ms afging) wordt nu bij het verbinden gestart en bij het verbreken gestopt, en de timer voor het knipperen van de terminalcursor (500ms) start en stopt nu bij het krijgen en verliezen van de focus van de terminal in plaats van altijd te draaien (a02afea53).

  • Automatische synchronisatie van de importmappen Examples en Documents/OpenMV is standaard uitgeschakeld en de schakelaar is verborgen; de timers voor het scannen van mappen starten niet langer bij de initialisatie en draaien alleen wanneer de (nu verborgen) actie is ingeschakeld (478f83e97).

  • De schakelknop voor de framebufferindeling toont nu JPG Mode wanneer JPEG-compressie aan staat en RAW Mode wanneer deze uit staat (c48831224).

  • Bij het verbinden past de IDE nu altijd de JPEG-voorkeursstandaard van het board toe op de frame buffer in plaats van de eerder opgeslagen JPG/RAW-keuze per board te herstellen (c48831224).

Bugfixes

  • Bij het verbreken van de verbinding wordt de seriële poort nu gesloten en de camera (en poort) inline vrijgegeven in close(), wat het verbreken sneller en betrouwbaarder maakt (1e8941080, 9d31bcf80).

  • De seriële idle-timer wordt nu gestopt en de v2-protocolvlag gewist wanneer de poort wordt gesloten, wat verouderd idle-timergedrag na het verbreken van de verbinding verhelpt (4bd2fd9ea).

  • De time-outs voor protocolcommando’s zijn afgesteld (de open-time-out verlaagd van 5s naar 2s, resync en CHANNEL_SIZE gebruiken een korte time-out van 1s) en elk serieel commando geeft nu het camera-object vrij bij een fout, zodat een vastgelopen camera sneller herstelt en de verbinding verbreekt in plaats van te blijven hangen (04aa6aea3).

  • Een vergrendelings-/vastloopprobleem bij het stoppen van een script hersteld: een script-stopped-gebeurtenis wist nu ook de framegebeurtenisstatus en reset de frame-ready-timers (3695b0704).

  • Het protocol verdraagt nu korte reads van de camera en geeft de gedeeltelijke payload of tekst terug in plaats van die te negeren of een fout te geven (0c8ccd58e).

Platform- en toolondersteuning

  • Qt Creator-basis: 14.0.2.

  • Boards die een AE3- of N6-module combineren met een PAG7936- of PS5520-sensor krijgen nu de hogere QVGA-standaard (voorheen alleen AE3 + PAG7936), zodat betrokken voorbeelden automatisch worden opgewaardeerd van QQVGA naar QVGA (fcc0c3227).

  • De meegeleverde ST MoveNet pose-estimation-model zoo is opgeschoond: overbodige per-tensor (_pt)- en dubbele singlepose-/st_movenet-varianten zijn verwijderd, en de overgebleven per-channel heatmapmodellen zijn hernoemd naar movenet_singlepose_192, movenet_singlepose_224 en movenet_singlepose_256 (18f66c4c1).

  • Het meegeleverde DeepLabV3 semantische-segmentatiemodel en de bijbehorende voorbeeldassets zijn uit de model zoo verwijderd (a929e0dc1).

Brekende wijzigingen

Voor de gebruiker zichtbare gedrags- en meegeleverde-assetwijzigingen tussen v4.8.8 en v4.8.9.

  • Bij het verbinden gebruikt de frame buffer nu altijd de JPEG-voorkeursstandaard van het board en negeert elke eerder opgeslagen JPG/RAW-keuze per board (c48831224).

  • Synchronisatie op de achtergrond van de importmappen Examples en Documents/OpenMV is standaard uitgeschakeld en de bijbehorende schakelaar is verborgen (478f83e97).

  • Verschillende meegeleverde modellen zijn verwijderd of hernoemd: het DeepLabV3 semantische-segmentatiemodel is weg, en de ST MoveNet-modellen zijn gesnoeid en hernoemd naar movenet_singlepose_192/224/256. Scripts die naar de oude modelbestandsnamen verwijzen, moeten worden bijgewerkt (a929e0dc1, 18f66c4c1).