Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

You can check the app operation as below. Below is an example of running skeleton_sample_app.

...

Controlling Container version Adamapp using Azure IoT Explorer

...

It is possible to control and check the Container version of Adamapp using Azure IoT Explorer published by Microsoft. The following describes the installation and initial settings of Azure IoT Exporlor.

Install

Follow Install and use Azure IoT explorer - Azure IoT | Microsoft Learn and install Azure IoT Explorer on your PC.

 

Initial setting

When you start Azure IoT Explorer, the following initial screen will appear, so select "Connect via IoT Hub connection string".

...

Select “Add connection”.

...

Visit “Cloud Computing Services | Microsoft Azure” and select the IoT Hub you want to connect to. In the example below, CV5xIoTHub2 is selected.

...

Select Security Settings - Shared Access Policies from the left menu.

Click “iothubowner” from the Manage “Shared Access Policies” list.

...

Press the copy button to the right of Primary Connection String to copy the string to your clipboard.

...

Paste it into the Connection string frame of Azure IoT Explorer and press the Save button.

...

 

The IoT Hub information will be loaded and a device list will be displayed.

...

Select the device you want to check from the displayed device (camera) list.

 

Checking the setting values with ModuleTwin

The settings values listed in the app settings (AppPrefs.json) can be checked from the cloud using Azure IoT's ModuleTwin mechanism.

Please refer to Understand Azure IoT Hub module twins | Microsoft Learn for ModuleTwin.

 

Select the device (camera) you want to check in Azure IoT Explorer. Select “Module identities” from the left menu.

...

A list of containers (Modules) currently running on the camera is displayed. Click the container name whose settings you want to check.

Info

$edgeAgent and $edgeHub are the default containers for operating as an Azure IoT Edge Device.
Please refer to Learn how the runtime manages devices - Azure IoT Edge | Microsoft Learn for details.

The page for the target container will be displayed. Select “Module twin” from the left menu again.

Information about the target container is displayed in json format. The information written in appPrefs.json will be displayed in “properties”.”reported”.”aplField”.”preference”.

Info

Setting values are read-only.

 

動作スケジュールの設定

アプリケーションを動作する時間帯を ModuleTwinを使用して設定します。

Info

Container版AdamAppは カメラ本体のスケジュール設定では制御できません。

「ModuleTwinによる設定値の確認」章と同様、対象のコンテナのModule Twin情報を表示します。

“properties”.”desired”.“scheduleField” に以下フォーマットに従ってスケジュールを設定します。

フォーマットは以下です。 三つのフィールドで一つの設定を表します。

Code Block
曜日設定1,推論開始時間1,推論終了時間1,曜日設定2,推論開始時間2,推論終了時間2,・・・

各項目の仕様は以下となります。

項目

意味

フォーマット

備考

曜日設定

アプリが動作する曜日を指定する。

以下のいずれかとなる。

“every-day” : 毎日

“Sun”: 日曜日

“Mon”: 月曜日

“Tue”: 火曜日

“Wed”: 水曜日

“Thu”: 木曜日

“Fri”: 金曜日

“Sat”: 土曜日

推論開始時刻を”00:00”、推論終了時刻を”23:59”に設定することで、指定した日内の24時間動作が可能となる。

推論開始時間

アプリの動作が開始する時間を指定する。

“hh:mm”

00:00 ~ 23:59まで設定できる。

推論終了時間

アプリの動作が終了する時刻を指定する。

hh.mm

00:00 ~ 23:59まで設定できる。終了タイミングはこの時刻外になったタイミングで判断される。

(例 02:15に設定されていた場合、2時16分0秒以降に停止する。)

設定例を以下に示します。

...

この場合、 日曜日~木曜日、土曜日は08:00:00 ~ 20:00:59 の間、金曜日は 03:00 ~ 23:59:59 の間動作する設定となります。

  • 入力後は画面上部の「Save」を押すことでカメラに設定が反映されます。

  • 最大8個まで設定可能です。

  • 設定されたいずれかの時間内である場合、Container AdamAppが動作します。

  • 推論終了時間が推論開始時間よりも後の場合、推論終了時間は次の日を表します。

  • scheduleFieldが空の場合は常時動作となります。

  • 記載内容が不正の場合、アプリケーションは起動しません。

  • 停止・開始の判断は15秒間隔で実施されます。したがって、開始・停止時刻は最大15秒の遅延が発生します。

 

デバイスからクラウド通信によるテレメトリデータの送信

テレメトリデータの送信

  • Container AdamAppのみ有効な ADAM_SendTelemetry() 関数を呼び出すことでデバイスtoクラウド通信によるテレメトリデータを送信することができます。

  • このAPIの引数にはJSON形式で値を指定してください。詳細はAPI仕様書をご覧ください。

  • デバイスtoクラウド通信はAzure IoT Hubの設定により通信回数に制限があります。詳細は、Azure IoT Hub クォータと調整について | Microsoft Learn をご確認ください。

  • 通信を制御するために、デフォルトでは送信をOFFに設定しています。クラウドに送信するためにはまず送信機能をONにする必要があります。

  • 送信機能をONにする方法は Module direct method 及び Module twin desired property の二つの方法があります。以下をご参照ください。

 

Module direct methodでONにする方法

Azure IoT Explorerで対象の Container Adamappを選択します。

左側メニューから「Module direct method」を選択します。以下の画面でダイレクトメソッドが送信できます。

...

 
Method name欄にメソッド名”setTelemetry” を入力します。
Payload欄に送信データをJSON形式で以下のように入力します。

Code Block
{"telemetry": true}

 

「Invoke method」を押下すると、カメラに対してダイレクトメソッドが実行されます。

結果はポップアップ表示される。statusが200になっていれば成功です。

...

 

Module twin desired propertyで設定する方法

Azure IoT Explorerで対象のContainer AdamappのModule twinを表示します。

“properties”.”desired”.”aplFileld” 内に以下のように設定します。

Code Block
"aplField": {
  "telemetry": true
}

 

画面上部の 「Save」を押下すると反映されます。

Info
  • 送信をやめる場合は、”telemetry” に false を設定してください。

  • Module twin では設定が反映されるまで数秒~10秒程度かかります。

  • Module twin はカメラとの設定値を常に同期させるように動作します。このため、desiredプロパティにtelemetry設定が残っている場合、2.3.1の Module direct methodの設定を上書きします。 Module direct methodの設定を有効にするためには、 “telemetry”: ““ を設定して項目を削除してください。

 

設定値を確認する方法

設定値は、Module twinで確認できます。”properties”.”reported”.”aplField”.”azureSettings”.”telemetry” の値を確認してください。

...

 

受信したテレメトリデータの確認

Azure IoT Explorerで対象のContainer Adamappを選択します。

左側のメニューから「Telemetry」を選択します。

「Start」ボタンを押下します。テレメトリデータの受信待ち状態となります。X

アプリのADAM_SendTelemetry()で送信されたテレメトリを受信すると、ウィンドウ内に表示されます。ADAM_SendTelemetryに設定した文字列は、payloadキーの値として設定されます。

...

 

ログの確認方法

...

アプリのログ

アプリ内でADAM_DEBUG_PRINT()によって出力されるメッセージや、アプリからリンクしているライブラリが出力するログを見ることができます。エラーとなった場合も確認が可能です。

  • ホーム - Microsoft Azure にアクセスします。

  • 対象のIoT Hubを選択します。

  • 左側の「デバイス管理」「IoT Edge」から対象のカメラを選択します。

  • 下のモジュールのリストからログを見たいアプリ名の「ランタイムの状態」のリンクをクリックします。

...

Note

Container AdamappのログはUDPLog - Technology Partner - Confluence (atlassian.net)で確認することはできません。

 

カメラのpflog

カメラ内のログを確認することで、Container Adamappが正しく動作していない場合の動作解析を行うこともできます。ログ取得方法は下記の実行ボタンより取得可能です。

...

複数あるログファイルのうち、Container Adamappに関連の高いログファイルを紹介します。

  • cadam (ファイル名が pf_cadam, pf_cadamCgi から始まるファイル)
    cadamはContainer Adamappの管理をするプロセスとなります。

  • Azure IoT Edgeランタイム (ファイル名が pf_aziot-certd, pf_aziot-edged, pf_aziot-identityd, pf_aziot-keyd から始まるファイル)
    Azure IoT EdgeランタイムはAzure IoT Hubとの通信を行います。

  • Docker (ファイル名が pf_docker, pf_containerd, pf_opa から始まるファイル)
    Dockerの動作に関するログとなります。opaはセキュリティチェックのために使用しており、作成した配置マニフェストに、カメラのセキュリティポリシーに違反する内容が記載されていた場合、このファイルにログが出力されます。

Checkpoints if things don't work in the WSL environment

...