3.10. REST API#

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

3.10.1. 概要#

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

  • プロトコル: http

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

  • ポート: 3000

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

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

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

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

説明:

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

リクエスト:

POST /setup-cam1

パラメータ:

パラメータは有りません

:

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

3.10.2.2. C2カメラの設定#

説明:

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

リクエスト:

POST /setup-cam2

パラメータ:

パラメータは有りません

:

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

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

説明:

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

リクエスト:

POST /apply-timestamp

パラメータ:
  • timestamp: カスタムタイムスタンプを適用するかどうか

    • 0: 適用しない

    • 1: 適用する

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

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

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

:

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

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

説明:

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

リクエスト:

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として保存されていると仮定します

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

説明:

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

リクエスト:

POST /save-single

パラメータ:

{index, frequency, duty_cycle, offset, fsync_source}

:

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

説明:

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

リクエスト:

POST /streaming-cam1-des1

パラメータ:

パラメータは有りません

:

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

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

説明:

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

リクエスト:

POST /streaming-cam1-des2

パラメータ:

パラメータは有りません

:

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

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

説明:

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

リクエスト:

POST /streaming-cam1-des12

パラメータ:

パラメータは有りません

:

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

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

説明:

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

リクエスト:

POST /streaming-cam1-des2

パラメータ:

パラメータは有りません

:

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

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

説明:

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

リクエスト:

POST /stop-streaming

パラメータ:

パラメータは有りません

:

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

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

説明:

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

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

リクエスト:

POST /update-time

パラメータ:

パラメータは有りません

:

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

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

説明:

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

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

リクエスト:

POST /sync-ptp

パラメータ:

パラメータは有りません

:

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

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

説明:

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

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

リクエスト:

POST /sync-phc

パラメータ:

パラメータは有りません

:

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

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

説明:

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

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

リクエスト:

POST /stop-ptp4l

パラメータ:

パラメータは有りません

:

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

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

説明:

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

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

リクエスト:

POST /stop-phc2sys

パラメータ:

パラメータは有りません

:

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

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

説明:

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

このエンドポイントは対応する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 ミリ秒に設定されます。

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

説明:

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

このエンドポイントは対応する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の自動露出が有効になります

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

説明:

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

このエンドポイントは対応する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の歪み補正が有効になります。