WindowsDevicePortalWrapper
HoloLens関連はいくつかのMS公式リポジトリがありますが、WindowsDevicePortalWrapperという知らないリポジトリありました。
こちらはWindows Device Portal REST APIをラップするライブラリのようです。
詳細についてはGettingStarted.mdが参考になりそうで調べてみようかと思ったのですが、そもそもHoloLensのREST APIを触ったことがないのでそちらを少しだけ触りました。
HoloLens Device Portal API reference
リポジトリのREADMEにHoloLens向けのAPIリファレンスへのリンクがあり、APIをざっと見た感じ一例として、以下のようなことができそうです。(日本語のページもありましたがなんか見にくい。。)
- アプリの自動デプロイ、削除
- インストールされているアプリの一覧取得
- クラッシュログの取得
- IPDの設定、取得
- デバイスの温度状態取得(0 normal, 1 warm, 2 critical)
- キャプチャ関連の処理
- OS情報の取得
- 起動中のプロセス確認
- シャットダウン、再起動
- WiFi管理
Windows Device Portalでできることはすべてできることは言うまでもないですが、実際どのようなAPIをどのようなパラメータで実行しているのかは、Chromeのデベロッパーツールを利用すると確認できます。
実行例
ここからはいくつかの実行例です。IPアドレスは適宜読み替えて下さい。
IPDの取得(GET)
https://192.168.0.19/api/holographic/os/settings/ipd
{"ipd" : 62645}
OSバージョンの取得(GET)
https://192.168.0.19/api/os/info
{
"ComputerName": "HoloLens-Cat",
"Language": "en-us",
"OsEdition": "WindowsHolographic",
"OsEditionId": 135,
"OsVersion": "14393.1593.x86fre.rs1_release.170731-1934",
"Platform": "HoloLens"
}
電源情報の取得(GET)
https://192.168.0.19/api/power/battery
{
"AcOnline": 1,
"BatteryPresent": 1,
"Charging": 0,
"DefaultAlert1": 0,
"DefaultAlert2": 1560,
"EstimatedTime": 4294967295,
"MaximumCapacity": 15596,
"RemainingCapacity": 13646
}
プレビュー表示(GET)
https://192.168.0.19/api/holographic/stream/live_high.mp4?holo=true&pv=true&mic=true&loopback=true
POSTのAPIはAdvanced REST clientというChrome拡張を利用しました。
ただ、以下のようなエラーが出たのでARC cookie exchangeもインストールして右上のUse XHRをONにし、HTTPのヘッダーに認証情報(AuthorizationとX-CSRF-Token)を入れることで動作確認できました。認証情報はChromeのデベロッパーツールで確認できます。
動画の録画開始(POST)
動画の録画停止(POST)
https://192.168.0.19/api/holographic/mrc/video/control/stop
WindowsDevicePortalWrapperについてはまた別の機会に。