Data VisualizerはPCでしか動かないと思っているみなさん、
その通りです。
こんにちは、ソリューションアーキテクトの伊勢です。
こちらは aptpod Advent Calendar 2024 12月20日の記事です。
intdashのビューアーであるData Visualizerを
スマホやタブレットで利用したいというご要望をいただくことがあります。
今回はintdash SDKを使ってiPadでData Visualizerを"見る"方法をご紹介します。
はじめに
VM2M Data Visualizerとは
時系列データを可視化するダッシュボードアプリケーションです。
エッジからintdashサーバーに送られるデータのリアルタイムに可視化や、サーバーに保存された過去データのプレイバックができます。
ダッシュボードは可視化パーツを使ってユーザー自身でレイアウト可能です。
Data VisualizerはMicrosoft EdgeやGoogle Chromeなどのブラウザで動作します。
PCでの細かな設定操作が必要なため、スマホやタブレットには対応していません。
そこで今回はiOSアプリのVM2M Stream Videoを使います。
VM2M Stream Videoとは
iPhoneやiPadで利用できるintdashのビューアーです。
Data Visualizerほどのカスタマイズ性はありませんが、1つの動画と1つの音声を手軽にLIVE再生/プレイバック再生できます。
apps.apple.comやってみた
全体構成
Data Visualizerの画面自体を映像データとしてストリームします。
計測データをData Visualizerで再生し、PC画面をキャプチャしてリアルタイムAPI用intdash SDKでアップストリームします。
キャプチャ映像をStream Videoでダウンストリームします。
これでData Visualizerと同じレイアウトで計測データを見ることができます。1
あわせて、元計測の音声も再生します。
インストール
クライアントライブラリ
SDK入門③のリアルタイムAPI用クライアントライブラリを利用します。
サンプルプログラム用ライブラリ
SDK入門④の映像加工・エンコード用のライブラリを利用します。
- OpenCV
- Gstreamer
- PyGObject
画面キャプチャのため、MSS(multiple screenshots)をインストールします。
pip install mss
実行結果
エッジで計測を開始し、PCのData VisualizerでLIVE再生します。
今回は車載エッジのGPS、カメラ映像、CANデータをレイアウトしてみました。
サンプルプログラムを起動します。2
python lesson5/src/caputure_screen.py --api_url https://example.intdash.jp --api_token <YOUR_API_TOKEN> --project_uuid <YOUR_PROJECT_UUID> --edge_uuid <YOUR_EDGE_UUID>
edge_uuid
: 画面キャプチャをアップストリームするエッジ
Stream Videoで映像と音声を指定して再生を開始します。
- Video
- Edge: 画面キャプチャをアップストリームするエッジ
- Data Type:
h264_frame
- Data Name:
10/h264
- Audio
- Edge: 元計測のエッジ
- Data Type:
pcm
- Data Name:
150/pcm
Data Visualizer〜Stream Videoの遅延はどのぐらいでしょうか。
Data Visualizerスクリーンと再生映像の表示時刻を比較しました。
179ミリ秒でした。目視での遅延はほぼ感じられません。3
サンプルプログラム
intdash APIアクセス部分は前回と同じため、あまり説明するところはありません。
今回は計測を完了するタイミングをCtrl+Cのプログラム停止時にしています。
except asyncio.CancelledError: self.writer.complete_measurement(measurement.uuid) logging.info(f"Completed measurement: {measurement.uuid}")
おわりに
今回はAdvent Calendarということでやや軽めの内容です。
前回のリアルタイム送信を応用して、製品機能の利用範囲を広げてみました。
intdash以外のソフトウェア画面をアップストリームして計測データとあわせて可視化したり、活用の幅が色々と考えられそうです。
リンク
おかげさまでSDK入門シリーズも5つ目の記事となりました。
intdash SDKをもっと知りたい!という方はこちらからご覧ください。
- SDK入門①〜社用車で走ったとこ全部見せます〜 :REST APIでデータ取得
- SDK入門②〜データ移行ツールの作り方〜:REST APIでデータ送信
- SDK入門③〜RTSPで映像配信するぞ〜:リアルタイムAPIでデータ取得
- SDK入門④〜YOLOで物体検知しちゃう〜:リアルタイムAPIでデータ送信