2. 機能

2.1. パイプライン設定ファイルの環境変数

device-connector-intdashでは、パイプライン設定ファイルの設定値において、環境変数を展開して使用することができます。 環境変数を展開するには、パイプライン設定ファイル内で $(VARIABLE_NAME) の形式で記述します。

例として、以下のような設定ファイル(conf.yaml)を考えます。 path$(MY_FIFO_NAME) が含まれています。

...

- id: 3
  element: file-sink
  from: [[2]]
  conf:
    flush_size: 10
    path: /var/run/intdash/$(MY_FIFO_NAME).fifo

その上で、この設定ファイルを使ってデバイスコネクターを実行する際に環境変数を与えます。

$ MY_FIFO_NAME=device123 device-connector-intdash --config conf.yaml

そうすると、この場合、 path の値が /var/run/intdash/device123.fifo となります。

2.2. パイプライン設定ファイルのサンプル

付属デバイスコネクターにはパイプライン設定ファイルのサンプルが付属しています。 サンプルは /etc/dc_conf ディレクトリにインストールされます。

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

説明

apt_analog.yml

ANALOG-USB Interface のデータを送信する

apt_cantrx.yml

CAN-USB Interface のデータを送受信する

device_inventory.yml

エッジデバイスのステータス情報(CPU、メモリ、ストレージ、ネットワークなど)を送信する ( 詳細 )

gstreamer_h264.yml

GStreamerから出力されるH.264の動画を送信する

gstreamer_h264_nalunit.yml

GStreamerから出力されるH.264の動画を、iSCPで定義されているH.264 NAL Unitデータ型を使って送信する

gstreamer_jpeg.yml

GStreamerから出力されるMJPEG形式の動画を送信する

gstreamer_pcm.yml

GStreamerから出力される音声を送信する

jpeg.yml

V4L2(Video for Linux 2)経由で取得したMJPEG形式の動画を送信する

nmea.yml

TTYデバイスから取得したNMEAデータを送信する

repeat_process_json.yml

プロセスから標準出力されたJSON文字列を送信する

repeat_process_string.yml

プロセスから標準出力された文字列を送信する

ubx.yml

u-blox GNSSモジュールからの情報(UBXプロトコルのメッセージ)を送信する

v4lh264.yml

V4L2(Video for Linux 2)経由で取得したH.264の動画を送信する

2.2.1. device_inventory.yml

パイプライン設定ファイル device_inventory.yml は、エッジデバイスのステータス情報を以下のコマンドを利用して取得します。

コマンド

説明

df

ストレージ情報

ip

ネットワーク統計情報

lsusb

USBデバイス情報

mmcli

モバイル回線情報 1

ping

RTT(Round Trip Time)情報

vmstat

システムの統計情報

1

現在接続しているバンド情報(active-band)の取得には非対応です。

警告

このデバイスコネクターでは、dfやmmcliなどのコマンドによりステータス情報が取得され、送信されます。ただし、以下に該当する古いバージョンのディストリビューションでは、いくつかのコマンドのデータが送信されません。

ディストリビューション

情報を送信できないコマンド

Debian:9

mmcli、ip

Debian:10

mmcli

Ubuntu:18.04

mmcli

警告

以下条件に該当する場合、送信する情報が多くなりデータの取得に時間がかかることがあります。

条件

ipコマンドで送信するネットワークインターフェースが多い場合

Dockerを利用している

lsusbコマンドで送信するデバイス情報が多い場合

多数のUSBデバイスが接続されている

dfコマンドで送信するストレージ情報が多い場合

多数のストレージが接続されている

注釈

Docker環境で利用する場合、以下の点に注意してください。

  • mmcliの情報を取得するために /var/run/dbus のバインドマウントが必要です。

  • dfのマウントポイント / の情報は、Dockerのストレージドライバの情報となります。通常はホストの /var/lib/docker/overlay2 が存在するパーティションの情報となります。

  • ipで取得できる情報はコンテナからアクセスできるネットワークインターフェースの情報のみとなります。ホストの情報も取得したい場合は、コンテナ実行時に --net=host を指定してください。