Hiromuブログ

最近はこちら(https://zenn.dev/hiromu)が本体

REST API

holo_device_portal 

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デベロッパーツールを利用すると確認できます。

参考:HoloLensのスリープ時間を変更する

実行例

ここからはいくつかの実行例です。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のAPIAdvanced REST clientというChrome拡張を利用しました。

ただ、以下のようなエラーが出たのでARC cookie exchangeもインストールして右上のUse XHRをONにし、HTTPのヘッダーに認証情報(AuthorizationとX-CSRF-Token)を入れることで動作確認できました。認証情報はChromeデベロッパーツールで確認できます。

arc_error


動画の録画開始(POST)

https://192.168.0.19/api/holographic/mrc/video/control/start?holo=true&pv=true&mic=true&loopback=true

動画の録画停止(POST)

https://192.168.0.19/api/holographic/mrc/video/control/stop

arc_rec

 

 

WindowsDevicePortalWrapperについてはまた別の機会に。