v1.7.0

v1.7.0 では、大きなフレームをデバッグ用シリアルリンク経由で転送できるよう、シリアルフレームバッファのチャンク分割と再構成を追加し、カメラの USB マスストレージドライブをフラッシュ(さらに Windows ではイジェクト)することでリセット付き切断をより安全にし、サンプルセットをリフレッシュしました。このリリースは Qt Creator 4.0.2(前リリースと同じベース)をベースにしており、Raspberry Pi などのクロスコンパイルされた組み込み Linux ターゲットのビルドサポートを追加しています。互換性を損なう変更はありません。

ハイライト

  • シリアルフレームバッファのチャンク分割 — 大きなフレームバッファ転送が MTU サイズのチャンクに分割されてピクセルバッファ内で再構成されるため、大きなフレームをデバッグ用シリアルリンク経由で移動できます。

  • より安全なリセット付き切断 — リセット前にカメラの USB マスストレージドライブがフラッシュされる(さらに Windows では強制イジェクトされる)ため、ファイルシステムが先に同期されます。

  • アトミックなファイル保存main.py とキーポイントファイルがアトミックに書き込まれるようになり、破損を防止するとともに、main.py が誤った場所に書き込まれるパスのバグを修正しました。

  • Raspberry Pi / 組み込み Linux — クロスコンパイルのビルドサポートが含まれるようになりました。

  • リフレッシュされたサンプル — Servo Shield セット、新しい特徴検出デモ、Image Reader/Writer のビデオサンプル。

新機能

  • シリアルフレームバッファのチャンク分割と再構成。 フレームバッファ転送が MTU サイズのチャンクに分割されてピクセルバッファ内で再構成されるため、デフォルトの MTU を使って大きなフレームをデバッグ用シリアルリンク経由で移動できます。ランタイムの MTU 自動ネゴシエーションハンドシェイクが追加され、そのファームウェアバージョンゲートは、同じコミットで同梱された 2.5.0 ファームウェアに合わせて 2.5.0 に設定されました (96458ccef)。その後、リリース向けにゲートが 9.9.9 に引き上げられました。これはどの出荷済みファームウェアも報告しない値であるため、カメラはデフォルトの MTU を使用し、ネゴシエーションは行われません (abd1dacb9)。

  • リセット付き切断時のフラッシュ/イジェクト。 リセット付き切断で、リセット前にカメラの USB マスストレージドライブがフラッシュされるようになりました。Windows ではドライブが強制イジェクトされ、Linux と macOS ではドライブのファイルシステムが同期されます(syncfs / sync_volume_np)。失敗した場合、3 つのプラットフォームすべてで Failed to eject エラーが報告されます (243618791, ff6b15aff, 1865ffd31, 4fd4e89cf)。

  • Servo Shield サンプル。 PCA9685 駆動のサーボを実演する 15-Servo-Shield サンプルセットを追加しました。pca9685.py ドライバと servo.py ヘルパーが含まれます (abd1dacb9)。

  • 新しい特徴検出サンプル。 09-Feature-Detection の下に find_circles(Hough)、find_rects(クワッドしきい値)、find_numbers(LeNet 数字認識)、および高速で堅牢な線形回帰のサンプルを追加しました (abd1dacb9)。

  • ビデオおよびボード制御サンプル。 SD カードからスナップショットストリームを記録および再生する Image Reader/Writer サンプル、RTC ボード制御サンプル、カメラ上で動作するユニットテストランナーを追加しました (abd1dacb9)。

その他の変更および改善

  • 99-Tests サンプルフォルダ(旧 15-Tests)を名称変更し、unittests.py ランナーを追加しました (abd1dacb9)。

バグ修正

  • main.py とキーポイントファイルの保存を強化しました。書き込みはアトミックな FileSaver 書き込み(書き込み後にファイナライズ)に切り替えられ (4fd4e89cf)、main.py を誤った場所に書き込んでいたパスセパレータの欠落を修正しました (1865ffd31)。

  • すべてのポートでシリアル読み取りバッファを 1MB に拡大し、読み取りストールのタイムアウトを延ばすことでシリアルの信頼性を向上させ、QSerialPort でのデータ欠落に対処しました (7f68368dc)。

  • MainWindow をエクスポートし、show イベントシグナルを発行することで、メインウィンドウが表示されたときに OpenMV プラグインがレイアウトを復元できるようにし、ウィンドウスプリッターのレイアウトの不具合を修正しました (4895e20b7)。

プラットフォームおよびツールのサポート

  • Qt Creator ベース: 4.0.2。

  • Raspberry Pi などのクロスコンパイルされた組み込み Linux ターゲットのビルドサポートを追加しました。Qt フォントをデプロイし、chrpath/RPATH の処理を修正し、ホストバイナリで翻訳をビルドし、欠けていた qml 依存関係を追加します (73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a)。

  • 同梱 OpenMV ファームウェアを 2.4.1 から 2.5.0 に更新しました (96458ccef)。

  • ファームウェアフォルダ OMV2/OMV3OPENMV2/OPENMV3 に名称変更し、更新および再ビルドした STM32F427 (OPENMV2) と STM32F765 (OPENMV3) のファームウェアおよびブートローダーのバイナリを出荷しました (abd1dacb9)。

互換性を損なう変更

なし。このリリースでは、ユーザーに見えるワークフローや動作の変更はなく、既存のプロジェクトは変更なしで引き続き動作します。