パイプライン設定ファイル

パイプライン設定ファイルは、デバイスコネクターで行いたい処理をエレメントの組み合わせで定義したものです。

以下の設定例では、 text-src エレメントにより定義されたタスクから100msごとに“Hello, World!”という文字列を送出し、 stdout-sink エレメントにより定義されたタスクがそれを受け取って標準出力に出力します。

また、プラグインファイル libdc_my_plugin0.so をロードするように設定しています。

runner:
  channel_capacity: 16

plugin:
  plugin_files:
    - /path/to/my/plugin0/libdc_my_plugin0.so

tasks:
  - id: 1
    element: text-src
    conf:
      text: "Hello, World!"
      interval_ms: 100

  - id: 2
    element: stdout-sink
    from: [[ 1 ]]
    conf:
      separator: "\n"

設定項目の詳細は以下のとおりです。

runnerの設定

パイプライン設定ファイルの runner: には、デバイスコネクターの実行パラメータを記述します。

項目

設定値

説明

channel_capacity

整数値

スレッド間のメッセージ送信に用いるチャンネルの容量(メッセージの個数)です。 これを超える容量のメッセージを送信しようとすると、受信側でメッセージが処理されるまで送信側のスレッドは処理がブロックされます。 省略した場合デフォルトの値が使用されます。

bg_processesの設定

bg_processes:
  - command: /background/process/path args

バックグラウンドで実行するコマンドを指定します。タスクの開始時に before_task の前に起動されます。

before_taskの設定

before_task:
  - command1
  - command2

タスクの開始前に実行されるコマンドを指定します。 bg_processes と異なり、起動されたプロセスが終了するまでタスクの開始はブロックされます。

after_taskの設定

after_task:
  - command1
  - command2

デバイスコネクターの終了時、タスクの終了後に実行されるコマンドを指定します。

pluginの設定

パイプライン設定ファイルの plugin: には、実行時にロードするプラグインについて設定します。

独自エレメントをプラグイン形式で作成した場合、ここでそのファイルを指定します。 独自エレメントについては、 独自エレメントの開発 を参照してください。

項目

設定値

説明

plugin_files

文字列の配列

ロードしたいプライグインファイル(例:libdc_xxx.so)へのパスのリストです。

tasksの設定

タスクの設定は、 tasks: 内に並列に記述します。

項目

設定値

説明

id

整数値

タスクに割り当てるIDです。これはこのパイプライン上で一意でなくてはなりません。

element

文字列

このタスクに割り当てるエレメントを指定します。

from

文字列の二次元配列

このタスクが受け取るメッセージの送信元を指定します。

[["<送信元タスクID>:<送信元ポート番号>"], ... ]

メッセージは非同期に送られます。

例えば、 [[ "1:0" ], [ "2:1" ]] は、以下を意味します。

  • 0番ポートが「タスクID1の0番ポート」からメッセージを受け取る

  • 1番ポートが「タスクID2の1番ポート」からメッセージを受け取る

ポート番号が0の場合、ポート番号を省略して "1:0""1" のように記述することができます。 したがって、 [[ "1:0" ], [ "2:1" ]][[ "1" ], [ "2:1" ]] と同義です。

重要

from に設定する送信元のタスクIDは、自身のタスクIDより小さい数字である必要があります。

エレメントによっては、独自の設定項目も存在します。エレメント独自の設定項目は、 conf: に記述してください。