4.10. REST API#

GMSL2-10GbE 変換モジュールには REST API インターフェイスがあります。このセクションでは、使用可能な API について説明します。

4.10.1. 概要#

接続先は下記の通りです。

  • プロトコル: http

  • ホスト名: assigned-ip-address または kria-gmsl.local

  • ポート: 3000

したがって、REST APIのURIは http://kria-gmsl.local:3000/<URI-path>です。

パラメータが必要な場合は、JSON 形式にする必要があります。パラメータはcontent-type ヘッダーに含める必要があります。

4.10.2. 利用可能なエンドポイント#

4.10.2.1. GMSL10Gb Ethernetボードの再起動#

説明:

GMSL10Gb Ethernetボードの再起動

リクエスト:

POST /reboot-setup

パラメータ:

パラメータは有りません

:

curl -X POST http://kria-gmsl.local:3000/reboot-setup

4.10.2.2. カメラ接続台数の設定#

説明:

カメラ接続台数の設定

リクエスト:

POST /setup-cam-num

パラメータ:
  • cam_type: 接続されているカメラタイプ

    • isx021: C1

    • imx490: C2

  • num_p1: ポート1に接続されているカメラ台数(1~4, デフォルト: 4)

  • num_p2: ポート2に接続されているカメラ台数(1~4, デフォルト: 4)

:

curl  -d '{"cam_type": "isx021", "num_p1": 1, "num_p2": 1}' -H "Content-Type: application/json" -X POST http://kria-gmsl.local:3000/setup-cam-num

注釈

上記コマンドで設定したカメラ台数を適用するためには、GMSL10-Gb Ethernetボードの再起動が必要になります。

注意

There are some points to note about connecting the camera. Please check this page for details.

4.10.2.3. C1カメラのセットアップ#

説明:

C1カメラの画像出力設定の設定

リクエスト:

POST /setup-cam1

パラメータ:

パラメータは有りません

:

curl -X POST http://kria-gmsl.local:3000/setup-cam1

4.10.2.4. C2カメラの設定#

説明:

C2カメラの画像出力設定の設定

リクエスト:

POST /setup-cam2

パラメータ:

パラメータは有りません

:

curl -X POST http://kria-gmsl.local:3000/setup-cam2

4.10.2.5. タイムスタンプの適用#

説明:

タイムスタンプを設定する

リクエスト:

POST /apply-timestamp

パラメータ:
  • timestamp: カスタムタイムスタンプの有効/無効

    • 0: 無効

    • 1: 有効

  • frame: タイムスタンプの位置

    • 0: フレームの終了 (EoF)

    • 1: フレームの開始 (SoF)

  • timestamp_capture:

    • 0: RTPレベル

    • 1: トリガーレベル

:

curl -d '{"timestamp":"1","frame":"1"}' -H "Content-Type: application/json" -X POST http://kria-gmsl.local:3000/apply-timestamp

4.10.2.6. フレーム同期設定を構成する(すべてのカメラ)#

説明:

フレーム同期パルス設定(周波数、デューティ サイクル、オフセット)を構成します。これはすべてのカメラに適用されます。

リクエスト:

POST /command

パラメータ:
  • frequency: パルスの出力周波数。

  • duty_cycle: パルスのデューティサイクル。

  • offset: オフセット

    パラメータの例を以下に示します。

    {
    "data":{
        "trigger_mode":"triggered",
        "deserializers":{
            "p1":[
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"0"
                }
            ],
            "p2":[
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"10000000"
                },
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"20000000"
                },
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"25000000"
                },
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"30000000"
                }
            ]
        }
    }
    }
    

    カメラをフリーランモードに設定するには、以下のパラメータをセットして下さい。

    {
    "data":{
        "trigger_mode":"free-running",
        "deserializers":{
            "p1":[
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                }
            ],
            "p2":[
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                }
            ]
        }
    }
    }
    
:

curl -X POST http://kria-gmsl.local:3000/apply-timestamp -data-raw $(cat trigger.json)

上記のjsonがtrigger.jsonとして保存されていると仮定します

4.10.2.7. 単一カメラのフレーム同期パルスを設定する#

説明:

単一のカメラのフレーム同期パルス設定 (周波数、デューティ サイクル、オフセット) を構成します。

リクエスト:

POST /save-single

パラメータ:

{index, frequency, duty_cycle, offset, fsync_source}

:

4.10.2.8. P1からC1のストリーミングを開始する#

説明:

ボードの P1 ポートから C1 カメラの画像ストリーミングを開始します。

リクエスト:

POST /streaming-cam1-des1

パラメータ:

パラメータは有りません

:

curl -X POST http://kria-gmsl.local:3000/streaming-cam1-des1

4.10.2.9. P2からC1のストリーミングを開始する#

説明:

ボードのP2ポートからC1カメラの画像ストリーミングを開始します。

リクエスト:

POST /streaming-cam1-des2

パラメータ:

パラメータは有りません

:

curl -X POST http://kria-gmsl.local:3000/streaming-cam1-des2

4.10.2.10. 両方のデシリアライザプロトコルからC1のストリーミングを開始する#

説明:

ボードの P1 ポートと P2 ポートの両方から C1 カメラの画像ストリーミングを開始します。

リクエスト:

POST /streaming-cam1-des12

パラメータ:

パラメータは有りません

:

curl -X POST http://kria-gmsl.local:3000/streaming-cam1-des12

4.10.2.11. P1からC2のストリーミングを開始する#

説明:

ボードの P1 ポートから C2 カメラの画像ストリーミングを開始します。

リクエスト:

POST /streaming-cam1-des2

パラメータ:

パラメータは有りません

:

curl -X POST http://kria-gmsl.local:3000/streaming-cam2-des1

4.10.2.12. ストリーミングを停止#

説明:

すべてのポートからのカメラストリームのストリーミングを停止します

リクエスト:

POST /stop-streaming

パラメータ:

パラメータは有りません

:

curl -X POST http://kria-gmsl.local:3000/stop-streaming

4.10.2.13. システム時間の更新#

注釈

GMSL10GbEthernet boardがインターネットに接続されている必要があります。

説明:

HTTP リクエストを介してローカル時刻を取得し、システム時刻を更新します。

このエンドポイントは対応するGUIコントロールと同等です。

リクエスト:

POST /update-time

パラメータ:

パラメータは有りません

:

curl -X POST http://kria-gmsl.local:3000/update-time

4.10.2.14. PTPベースの同期を開始する#

説明:

eth0 で ptp4l スレーブ (クライアント) プログラムを起動します。

このエンドポイントは対応するGUIコントロールと同等です。

リクエスト:

POST /sync-ptp

パラメータ:

パラメータは有りません

:

curl -X POST http://kria-gmsl.local:3000/sync-ptp

4.10.2.15. システムクロックを PHC に同期する#

説明:

PHC 時間に基づいてシステム クロックを更新するプログラムを起動します。

このエンドポイントは対応するGUIコントロールと同等です。

リクエスト:

POST /sync-phc

パラメータ:

パラメータは有りません

:

curl -X POST http://kria-gmsl.local:3000/sync-phc

4.10.2.16. PTP ベースの同期を停止する stop-ptp4l#

説明:

ptp4l スレーブ プログラムを停止します。

このエンドポイントは対応するGUIコントロールと同等です。

リクエスト:

POST /stop-ptp4l

パラメータ:

パラメータは有りません

:

curl -X POST http://kria-gmsl.local:3000/stop-ptp4l

4.10.2.17. システムへのPHCを停止#

説明:

PHC ベースのシステムを停止します。

このエンドポイントは対応するGUIコントロールと同等です。

リクエスト:

POST /stop-phc2sys

パラメータ:

パラメータは有りません

:

curl -X POST http://kria-gmsl.local:3000/stop-phc2sys

4.10.2.18. カメラの露出設定の適用#

説明:

各カメラに露出時間設定を適用します。

このエンドポイントは対応するGUIコントロールと同等です。

リクエスト:

POST /apply-exposure-cam<X>

X は0 から 7 まで

パラメータ:

expCam<X>: 0 - 33000, [usec]

:

curl -d '{"expCam0":11000}' -H "Content-Type: application/json" -X POST http://kria-gmsl.local:3000/apply-exposure-cam0

これにより、カメラ 0 の露出時間が 10 ミリ秒に設定されます。

4.10.2.19. 自動露出の有効化/無効化#

説明:

各カメラの自動露出設定を有効/無効にします。

このエンドポイントは対応するGUIコントロールと同等です。

リクエスト:

POST /apply-auto-exposure-cam<X>

X は0 から 7 まで

パラメータ:

autoExpCam<X> :

  • 0: 無効

  • 1: 有効

:

curl -d '{"autoExpCam0":1}' -H "Content-Type: application/json" -X POST http://kria-gmsl.local:3000/apply-auto-exposure-cam0

これにより、カメラ0の自動露出が有効になります

4.10.2.20. 歪み補正の有効化/無効化#

説明:

各カメラの歪み補正設定を有効/無効にします。

このエンドポイントは対応するGUIコントロールと同等です。

リクエスト:

POST /apply-dist-corr-cam<X>

X は0 から 7 まで

パラメータ:

distCorrCam<X> :

  • 0: 無効

  • 1: 有効

:

curl -d '{"distCorrCam0":1}' -H "Content-Type: application/json" -X POST http://kria-gmsl.local:3000/apply-dist-corr-cam0

これにより、カメラ0の歪み補正が有効になります。