v1.8.0

v1.8.0 ist ein großes Funktionsrelease mit Schwerpunkt auf Netzwerk und Video: Es fügt die WiFi-Programmierung von OpenMV Cams, einen Frame Buffer-Videorecorder sowie ein Menü Tools > Video Tools hinzu, das auf einem mitgelieferten ffmpeg/ffplay basiert. Außerdem unterstützt es das neue Board OpenMV Cam H7 (OMV4) und erweitert die IDE auf Raspberry Pi (Linux ARM). Dieses Release bleibt auf der Basis von Qt Creator 4.0.2 und enthält keine breaking changes für bestehende Projekte.

Highlights

  • WiFi-Programmierung. Die IDE lauscht nun auf UDP-Broadcast-Ankündigungen von OpenMV Cams, die mit einem WiFi-Shield ausgestattet sind, listet erkannte Kameras (Name plus IP:port) im Verbindungsdialog auf und kommuniziert über TCP als Alternative zum seriellen Port mit ihnen (69dc7dfbf).

  • Frame Buffer-Videorecorder. Neue Toolbar-Schaltflächen Record/Stop erfassen den Live-Bildstrom in eine OpenMV-ImageWriter-Datei und zeigen dabei eine Statusanzeige mit verstrichener Zeit/Größe/FPS (39142ef70, 5aceab31a).

  • Video Tools-Menü. Tools > Video Tools fügt Convert Video File und Play Video File hinzu und nutzt ein mitgeliefertes ffmpeg/ffplay, um Videos zu transkodieren und abzuspielen, wobei ImageWriter-.bin-Aufnahmen transparent zunächst in MJPEG AVI konvertiert werden; Play Video File ist nur unter Windows und macOS verfügbar, da ffplay für Linux/Raspberry Pi nicht mitgeliefert wird (d35f8d1ca, 8a99c994f).

  • OpenMV Cam H7 (OMV4). Das neue STM32H743-Board wird nun erkannt und wird mit einem eigenen mitgelieferten Bootloader und Firmware ausgeliefert (e14810382).

  • Raspberry Pi-Unterstützung. Linux ARM-IDE-Builds sind nun aktiviert und bringen OpenMV IDE auf den Raspberry Pi (f551b5f97).

Neue Funktionen

  • OpenMV Cam-Einstellungsdatei konfigurieren. Tools fügt einen Dialog hinzu, um die Boot-/WiFi-Einstellungen der Kamera in main.ini zu schreiben, einschließlich der Aktivierung von WiFi, der Wahl zwischen Client- und Access-Point-Modus, SSID/Passwort/Sicherheitstyp, dem Board-Namen sowie einer Option Duplicate REPL on the UART on startup, die unter den main.ini-Boot-Einstellungen gespeichert wird (69dc7dfbf, 39142ef70).

  • Befehlszeilenoptionen für vernetzte Terminals. Es wurden -open_udp_client_terminal, -open_udp_server_terminal, -open_tcp_client_terminal und -open_tcp_server_terminal neben der bestehenden Option für das serielle Terminal hinzugefügt (6362066a8, d75209269).

  • Zusätzliche Befehlszeilenoptionen. Es wurden -update_resources, -open_serial_terminal (port_name:baud_rate), -override_read_timeout und -override_read_stall_timeout zugänglich gemacht (061aacf15).

  • Terminal-Servermodus. UDP/TCP-Terminalverbindungen können nun im Servermodus laufen und an einen lokalen Port binden (Port 0 wählt einen beliebigen), anstatt nur zu einem Host hinaus zu verbinden (956e8a2f5).

  • Neue Beispielskripte. Es wurden Beispiele für Linsenkorrektur, 3D-Rotationskorrektur und stromsparenden Sensor-Schlafmodus hinzugefügt und das Beispiel zur Liniensegmenterkennung auf die neue API find_line_segments(merge_distance, max_theta_diff) umgeschrieben (061aacf15).

Weitere Änderungen und Verbesserungen

  • Calltips für Funktionsargumente und Syntaxhervorhebung erstrecken sich nun korrekt über mehrere Zeilen, sodass mehrzeilige Funktionsaufrufe ihre Argumenthinweise und Hervorhebung behalten (6535e9fdd, 4638bdd18).

  • Die Auflösungs-/ROI-Statusleiste des Terminals meldet nun auch die Anzahl der ROI-Pixel (956e8a2f5).

  • Der Registrierungsdialog der OpenMV Cam zeigt nun das Board/die ID und eine Support-E-Mail-Adresse an, und der Fortschrittsdialog Connecting... rät dazu, nach 5 Sekunden auf Cancel zu klicken (4638bdd18, e14810382).

  • Das Panel Search Results gestaltet seine Zeilennummern-Spalte und seinen Ergebnistext nun mit expliziten Farben für das dunkle Design um, sodass sie vor der dunklen UI lesbar sind (b2599f9ea).

  • Die Schreibschleifen der seriellen/UDP/TCP-Terminals geben nun zwischen den Schreibvorgängen kurz die Kontrolle ab, um die UI reaktionsfähig zu halten und den Durchsatz zu verbessern (c4700e2b0).

  • Die Wertefelder der Histogramm-Statistik reservieren nun eine feste Mindestbreite, sodass das Panel nicht mehr umbricht, wenn sich die Zahlen ändern, und die Schubladen-Schaltflächen des Modus-Umschalters dehnen sich aus, anstatt eine feste Breite von 160px zu verwenden (5aceab31a).

  • Die störende Warnung JIT is disabled for QML beim Start wurde über einen benutzerdefinierten Qt-Nachrichtenhandler unterdrückt (954220e39).

Fehlerbehebungen

  • Dokumentations-Tooltips und Hervorhebung erkennen nun Python-Ausnahmetypen (werden wie Daten behandelt), und mehrere Modul-/Index-Dokumentationseinträge wurden korrigiert, sodass sie korrekt angezeigt werden (4638bdd18, 3613a7867, 897b9b0e2, e3e41c56e).

  • Der Paket-Update-Prüfer und das Parsen von Kamera-Broadcast/-Registrierung wurden mit verankerten, getrimmten Regex-Ausdrücken und strengerem Abgleich von HTML-Antworten gehärtet, um Fehltreffer zu vermeiden (461af1148, 4638bdd18).

  • Die für die Alt-Firmware-API-Erkennung verwendete Board-Kennung der OpenMV Cam M4 (OpenMV2) wurde von OMV2 auf OPENMV2 korrigiert (449024fe8).

  • Die Kamera-E/A und der Video-Transkoder wurden mit strengeren Grenzprüfungen für Breite/Höhe/bpp/Dauer gegen beschädigte/überdimensionierte Einzelbilddaten gehärtet, und eine Division durch Null bei der Berechnung der Video-FPS wurde vermieden (08248f208, d0cbc27e5).

  • Die Werkzeuge zum Konvertieren/Abspielen von Videos funktionieren nun unter macOS, 32-Bit und Linux-ARM, indem ffmpeg/ffplay über ein generiertes Shell-Skript oder einen cmd.exe-Wrapper gestartet werden und Linux-ffmpeg-Binärdateien mitgeliefert werden (b9644e859, 9f0520bbe, 35eb69bce, c4700e2b0).

Plattform- und Werkzeugunterstützung

  • Qt Creator-Basis: 4.0.2.

  • OpenMV Cam H7 (OMV4, STM32H743): neues Board erkannt mit eigenem mitgeliefertem Bootloader und Firmware (e14810382).

  • Mitgelieferte OpenMV-Firmware: auf 2.6.0 für OPENMV2/OPENMV3/OPENMV4 angehoben (e14810382).

  • Mitgeliefertes ffmpeg/ffplay: statische 3.3.3-ffmpeg-Builds für Windows, macOS, Linux x86, Linux x86_64 und Linux ARM (Raspberry Pi) hinzugefügt; ffplay wird nur für Windows und macOS mitgeliefert (2193d7923, af92ad59e).

  • Raspberry Pi (Linux ARM): Builds aktiviert, indem der Offline-Hilfe-HelpManager deaktiviert und das bindist-Packaging auf eine tar.gz umgestellt wurde (f551b5f97).

Breaking changes

Keine. Dieses Release bleibt auf der Basis von Qt Creator 4.0.2, und bestehende Projekte und Workflows sind nicht betroffen.