EDGEPLANT ANALOG-USB Interfaceのデータを送信する¶
付属デバイスコネクターdevice-connector-intdashを使用してEDGEPLANT ANALOG-USB Interfaceからアナログデータを取得し、リアルタイム送信するための設定例です。
ストリームの設定¶
以下のコマンドを実行して、 recoverable
というIDを持つアップストリームを作成します。 指定しているのはIDのみのため、他の設定値はデフォルトのとおりになります。
$ intdash-agentctl config up --create '
id: recoverable
'
デバイスコネクターの設定¶
intdash Edge Agent 2にデバイスコネクターを追加します。以下のコマンドを実行して設定を行ってください。
$ intdash-agentctl config device-connector up --create '
id: analog
data_name_prefix: v1/101/
dest_ids:
- recoverable
format: iscp-v2-compat
ipc:
type: fifo
path: /var/run/intdash/analog.fifo
launch:
cmd: device-connector-intdash
args:
- --config
- /etc/dc_conf/analog-up.yml
environment:
- DC_APT_ANALOGTRX_SRC_CONF_PATH=/dev/apt-usb/by-id/usb-xxx
- DC_APT_ANALOGTRX_SRC_CONF_TIMESTAMP_MODE=device
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_SEND_RATE=1250000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_0=true
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_1=true
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_2=true
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_3=true
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_4=true
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_5=true
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_6=true
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_7=true
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_0=-5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_1=-5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_2=-5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_3=-5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_4=-5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_5=-5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_6=-5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_7=-5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_8=-5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_0=5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_1=5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_2=5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_3=5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_4=5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_5=5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_6=5000
- DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_7=5000
- DC_APT_ANALOGTRX_SRC_CONF_OUTPUT_ENABLED=false
- DC_APT_ANALOGTRX_SRC_CONF_OUTPUT_WAVEFORM_TYPE=0
- DC_APT_ANALOGTRX_SRC_CONF_OUTPUT_VOLTAGE=20
- DC_APT_ANALOGTRX_SRC_CONF_OUTPUT_FREQUENCY=1000
- DC_PRINT_LOG_FILTER_CONF_TAG=analog
- DC_FILE_SINK_CONF_PATH=/var/run/intdash/analog.fifo
'
launch
で、device-connector-intdashを起動するように設定しています。device-connector-intdashを実行するための設定は、パイプライン設定ファイル
/etc/dc_conf/analog-up.yml
として与えています(このファイルは次の手順で作成します)。 また、パイプライン設定ファイルで使用するための環境変数を与えています(environment
) 。device-connector-intdashから
/var/run/intdash/analog.fifo
を介して得られたデータは、v1/101/
というデータ名称プリフィックスを与えられて、recoverable
というIDを持つストリームに送信されます。
device-connector-intdashのパイプライン設定¶
次にdevice-connector-intdashのパイプライン設定ファイルを以下の内容で作成し、 /etc/dc_conf/analog-up.yml
として保存します。
before_task:
# sync timestamp
- mkdir -p /var/lock/intdash
- |
BASETIME_CLOCK_ID=$DC_CLOCK_ID
meas-hook --lockfile /var/lock/intdash/dc_apt_usbtrx.lock --command "
if command -v apt_usbtrx_timesync.sh > /dev/null 2>&1 ; then apt_usbtrx_timesync.sh; exit 0; fi;
if command -v apt_usbtrx_timesync_all.sh > /dev/null 2>&1 ; then apt_usbtrx_timesync_all.sh; exit 0; fi;
echo \"ERROR: timestamp script not found\";
exit 1;
"
after_task:
- rm -f /var/lock/intdash/dc_apt_usbtrx.lock
tasks:
- id: 1
element: apt-analogtrx-src
conf:
clock_id: CLOCK_MONOTONIC
path: $(DC_APT_ANALOGTRX_SRC_CONF_PATH)
timestamp_mode: $(DC_APT_ANALOGTRX_SRC_CONF_TIMESTAMP_MODE)
input_send_rate: $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_SEND_RATE)
input_enabled:
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_0)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_1)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_2)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_3)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_4)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_5)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_6)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_ENABLED_7)
input_voltage_min:
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_0)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_1)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_2)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_3)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_4)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_5)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_6)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MIN_7)
input_voltage_max:
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_0)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_1)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_2)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_3)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_4)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_5)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_6)
- $(DC_APT_ANALOGTRX_SRC_CONF_INPUT_VOLTAGE_MAX_7)
output_enabled: $(DC_APT_ANALOGTRX_SRC_CONF_OUTPUT_ENABLED)
output_waveform_type: $(DC_APT_ANALOGTRX_SRC_CONF_OUTPUT_WAVEFORM_TYPE)
output_voltage: $(DC_APT_ANALOGTRX_SRC_CONF_OUTPUT_VOLTAGE)
output_frequency: $(DC_APT_ANALOGTRX_SRC_CONF_OUTPUT_FREQUENCY)
- id: 2
element: print-log-filter
from: [[1]]
conf:
interval_ms: 10000
tag: $(DC_PRINT_LOG_FILTER_CONF_TAG)
output: stderr
- id: 3
element: file-sink
from: [[2]]
conf:
flush_size: 10
path: $(DC_FILE_SINK_CONF_PATH)
apt-analogtrx-srcエレメントでは、環境変数として与えられた値を使ってEDGEPLANT ANALOG-USB Interfaceからデータを取得します。(参考: apt-analogtrx-src )
print-log-filterでは標準エラー出力にログを出力します。 (参考: print-log-filter )
file-sinkでは、$(DC_FILE_SINK_CONF_PATH)にFIFO用データフォーマットのデータが書き出されます。これをintdash Edge Agent 2が読み取ります。 (参考: file-sink )