このページでは

C

Qt Quick ウルトラライト自動車用クラスターのデモ

QMLとC++を統合し、サードパーティのライブラリを使用するデモ。

概要

これは、Qt Quick Ultraliteで構築されたアプリケーションの多くの側面を示す複雑なアプリケーションです:

  • C++ビジネスロジックとQMLアプリケーションの統合
  • 複数のQMLコンポーネントに分割することによる複雑なユーザーインターフェースの処理
  • パフォーマンスを犠牲にすることなく、複雑なアニメーションを使用して最高のユーザーエクスペリエンスを実現する

画面中央部では、4つの異なるページを切り替えることができます:

  • メディアプレーヤー
  • 電話
  • ターンバイターンナビゲーション
  • 設定

ページとメニューは、デスクトップコンピュータのキーボードを使ったキー入力で制御できます。また、Renesas Mangoメインボード上の物理的なHMIノブと4方向スイッチを使用して制御することもできます:

アクションデスクトップRH850-D1M1A
上へ移動アップキー上に移動
下に移動ダウンキー下に移動
左へ移動左キー左へ移動
右へ移動右キー右へ移動
次へ移動スペースキー中央を押す
次のページに移動ページアップキーノブ右
前のページページダウンキーノブ左
有効エンターキーノブプレス

シミュレーションコントローラーを使ったデモのコントロール

デモは、automotive/src/simulationcontroller.h からの C linkage API を使用して制御することもできます。

各キーには、qul_application_control_ 接頭辞を持つ対応する API 関数があります。pressedtrue として関数を呼び出し、pressedfalse として関数を呼び出すと、アプリケーションのキー押下がトリガーされます。

自動ページ切り替え、メニュー切り替え、モード切り替えを無効にするには、force_interactive_modetrue としてqul_application_force_interactive_mode を呼び出します。

シミュレートされたドライブ・データを無効にするには、simulated_drive_datafalse として、qul_application_show_simulated_drive_data を一度呼び出します。この後、例えば速度値を設定するにはqul_application_set_speed のように、セッター機能を呼び出します。

レーンアシスタントアニメーションを無効にするには、enabledfalse としてqul_application_set_lane_assistant_enabled を呼び出します。

ライト・インジケータのシミュレーションを無効にするには、simulated_light_indicatorsfalse としてqul_application_show_simulated_light_indicators を 1 回呼び出します。この後、セッター関数、例えばleft_blinker_ontrue としてqul_application_set_left_blinker_on を呼び出し、左ウィンカーをオンに設定します。

ファイルのバリエーション

オートモーティブ・デモでは、ファイル・バリアントとセレクタを使用して、アプリケーションをさまざまなデモ地域にカスタマイズします。

セレクタが適用されていない場合、デモ地域はドイツに設定され、メートル単位とドイツの道路名と標識が使用されます。インペリアル単位および/または米国ローカライズされた道路名と速度制限標識を表示するファイルバリアントでデモを構築することも可能です。インペリアル単位には"imperial" ファイルセレクタを、米国ローカライズされた道路名と標識には"usa" セレクタを適用してください。

qmlprojectexporter demos/automotive/qmlproject/automotive.qmlproject --outdir=<output_dir> --selector=imperial,usa

CMakeを使用してデモをビルドする場合、DEMO_REGION 変数を"usa" に設定すると、"imperial" セレクタも追加され、米国向けのアプリケーションのビルドが簡単になります:

cmake -DDEMO_REGION="usa" <additional args>

対象プラットフォーム

スクリーンショット

ノーマルモード

デジタルクラスターデモのノーマルモード。

スポーツモード

デジタルクラスターデモのスポーツモード。

ベンチマークモード

ベンチマーク・モードでは、アプリケーションはあらかじめ定義された 30 秒間実行され、30 秒のインターバルが終わると画面上にパ フォーマンス・メトリクスが表示されます。Qt Quick Ultralite Core ライブラリがQUL_ENABLE_PERFORMANCE_CONSOLE_OUTPUT=ON でビルドされている場合、同じ結果がシリアルコンソールにも表示されます。

テスト終了時に表示されるパフォーマンス指標は以下のとおりです:

パラメータパラメータ
1合計フレーム数記録間隔の総フレーム数。
2平均FPS記録インターバル中に測定された1秒あたりの平均フレーム数。
3最小FPS録画中にキャプチャされた1秒あたりの最小フレーム数。
4最大ヒープ使用量アプリケーションが起動してから記録された最大ヒープ使用量(バイト)。
5最大スタック使用量アプリケーション起動時から記録されている最大スタック使用量(バイト)。
6平均CPU負荷記録間隔を平均したパーセント値でのCPU負荷。

ベンチマークモードは、automotive_benchmark という名前の独立した CMake ターゲットとして提供されます。ベンチマークモードを実行するには、ターゲットautomotive_benchmark をビルドしてフラッシュします。

automotive_benchmark ターゲットは、コンパイル定義QUL_DEMO_BENCHMARK_MODE を追加する必要があります。

target_compile_definitions(automotive_benchmark PRIVATE
    QUL_DEMO_BENCHMARK_MODE
)

automotive.qmlproject ファイルには、以下に示すようにbenchmark_module.qmlproject ファイルが含まれています:

ModuleFiles {
  files: [
  "benchmark/benchmark_module.qmlproject"
  ]
}

ルートQMLファイルに以下のモジュールをインポートしてください。

import QtQuickUltralite.Extras 2.0
import Benchmark 1.0
import QtQuickUltralite.Profiling
  • Qt Quick Ultralite ExtrasモジュールはQulPerf オブジェクトを提供し、計測の開始と停止を可能にします。
  • Benchmark モジュールはbenchmark_module.qmlproject ファイルから提供されます。フリック操作のためのタッチジェスチャーをシミュレートするメソッドを提供します。
  • Qt Quick Ultralite Profilingモジュールは、アプリケーション・ユーザー・インターフェースの上にパフォーマンス・メトリクスを表示するためのスクリーン・オーバーレイQulPerfOverlay を提供します。

ルートqmlにベンチマーク結果用のQulPerfOverlay QMLオブジェクトを追加します。このオーバーレイは、benchmarkTimer が 30 秒後にトリガーされると表示されるようになります。

QulPerfOverlay {
    id: benchmarkResult
    anchors.horizontalCenter: parent.horizontalCenter;
    anchors.verticalCenter: parent.verticalCenter;
    visible: false
}

ルートオブジェクトがインスタンス化され、Component.onCompleted シグナルがトリガーされると、ルート QML 項目で録画を開始します。

Component.onCompleted: {
    QulPerf.recording = true
}

アプリケーションは30秒間実行されます。30秒後に録画を停止し、ベンチマーク結果のオーバーレイ画面を表示します。

Timer {
    id: benchmarkTimer
    interval: 30000
    running: true
    repeat: false
    onTriggered: {
        QulPerf.recording = false;
        benchmarkResult.visible = true
    }
}

注: ベンチマーク・モードでは、Qt Quick Ultralite Core および Platform ライブラリをQUL_ENABLE_PERFORMANCE_LOGGING=ON およびQUL_ENABLE_HARDWARE_PERFORMANCE_LOGGING=ON でビルドする必要があります。

ファイル

画像


詳細はこちら。