Microsoft.Azure.Sphere.DeviceAPIを動かしてみた

Azure Sphereの22.07新機能を見ていたところ、気になるものがありました。

早速、どんな感じに動くか試してみました。

Microsoft.Azure.Sphere.DeviceAPIとは?

開発PCとAzure Sphereバイスは(通常は)USBで接続しますが、論理的にはTCP/IPネットワークが張られて通信します。ネットワーク接続のところに表示される、これですね。

Azure Sphere MCUスライドから引用:

azsphereコマンドは(一部を除き)この通信路でAzure Sphereバイスとやりとりしますが、今回、この部分が「Microsoft Azure Sphere Device REST APIs」という名称で情報公開されました。

github.com

さらに、このMicrosoft Azure Sphere Device REST APIsを呼び出すnugetパッケージも公開されました。このnugetパッケージが「Microsoft.Azure.Sphere.DeviceAPI」です。

つまり、nugetパッケージ「Microsoft.Azure.Sphere.DeviceAPI」は、マイC#コードから、開発PCに接続したAzure Sphereバイスを確認したり設定できるというものです。

さあ、やってみよう!

.NET6のコンソールプロジェクトを新規作成して、

nugetパッケージ「Microsoft.Azure.Sphere.DeviceAPI」を追加します。

コードはこんな感じ。

using Microsoft.Azure.Sphere.DeviceAPI;

var attachedDevices = Devices.GetAttachedDevices();
Console.WriteLine(attachedDevices);

Console.WriteLine();

var deviceSecurityState = Device.GetDeviceSecurityState();
Console.WriteLine(deviceSecurityState);

実行すると、JSON形式の文字列で返ってくるようです。

[{"IpAddress":"192.168.35.2","DeviceConnectionPath":"21123"}]

{"securityState":"SECURE","deviceIdentifier":"961b0f3af5c4ea9581512975f8e21a81dfed93bef7a73854d802c8bdeff7f5a8516639b653e6f082009f5c660c9b96bb1b16f49a56d7de51a089ac01ae3376ec","deviceIdentityPublicKey":"961b0f3af5c4ea9581512975f8e21a81dfed93bef7a73854d802c8bdeff7f5a8516639b653e6f082009f5c660c9b96bb1b16f49a56d7de51a089ac01ae3376ec"}

まとめ

これは便利だ。
azsphereコマンドをいちいち叩くのが面倒なので、GUIツール作ろうかな。