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
を指定してください。