3. 設定を変更する¶
Agentは、デバイスコネクターから受け取ったデータをintdashサーバーに送信します。その際、データをフィルタリングしたり、ネットワークの状態に応じてデータを再送したりできます。
基本の設定は、マネージャーの設定ファイル(例: manager.conf
)で行います。
デバイスコネクターを使用するには、1つのデバイスコネクターにつき1つのデバイスコネクター用設定ファイルが必要です。 使用するデバイスコネクターの設定ファイルは、マネージャーの設定ファイル内で指定します。
設定ファイルで指定できる項目の一覧については、 Agentの全設定 を参照してください。 ここでは、代表的な設定例を紹介します。
注釈
設定ファイル内の「logger」はデバイスコネクターを指します。
3.1. エッジ情報の設定¶
このAgentがintdashに接続する際に使用するエッジアカウントを設定します。設定は、intdashサーバーとの通信を担うクライアントごとに行います。以下の例のように、各クライアントの設定で、使用するエッジアカウントをUUIDで指定し、そのトークンを指定してください。
注釈
基本的に、1つのAgentのクライアントには同じエッジアカウントを使用してください。以下の例では、RealtimeクライアントとResendクライアントに同じエッジアカウントを設定しています。
エッジ情報の設定例
{
"clients": [
{
"my_id": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2", # (1)
"my_secret": "sEh9ZHPoKX8QYU-v0Noe0ZPzxGBF..........................iBn5fn_eFM", # (2)
"type": "realtime",
...
},
{
"my_id": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2", # (1)
"my_secret": "sEh9ZHPoKX8QYU-v0Noe0ZPzxGBF..........................iBn5fn_eFM", # (2)
"type": "resend",
...
}
],
...
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
|
このクライアントに割り当てるエッジUUID。 |
(2) |
|
認証用のクライアントシークレット。 |
注意
以前のバージョンのEdge Agentからアップデートした場合の注意
1.19.0よりも前のバージョンからアップデートした場合
Edge Agentバージョン1.19.0以降では、認証情報としてエッジUUIDとクライアントシークレットを使用することを基本としています。 クライアントシークレットを使うには、
manager.conf
のclients
にmy_secret
とauth_path
の設定が必要です。Edge Agent 1.19.0よりも前のバージョンで使っていた設定ファイル
manager.conf
を継続して使用する場合は、設定ファイルのひな型/opt/vm2m/etc/manager.conf
を参考にして、my_secret
とauth_path
を追加してください。auth_path
は、設定ファイルのひな型/opt/vm2m/etc/manager.conf
に含まれる設定をコピーして使用してください。なお、エッジトークンを使用した認証も引き続き使用可能です。 エッジトークンを使用する場合、
my_secret
の代わりに、旧来通りmy_token
としてエッジトークンを設定してください(Edge Agent 1.19.0よりも前のバージョンで使っていた設定ファイルmanager.conf
はそのまま使用できます)。
1.24.0よりも前のバージョンからアップデートした場合
Edge Agentバージョン1.24.0以降では、使用するプロジェクトを指定することができます。 プロジェクトを指定するには、
manager.conf
のclients
にproject_uuid
を設定してください。Edge Agent 1.24.0よりも前のバージョンで使っていた設定ファイル
manager.conf
を継続して使用する場合は、設定ファイルのひな型/opt/vm2m/etc/manager.conf
を参考にして、project_uuid
を追加してください。なお、プロジェクトUUIDを設定していない場合にはGlobal Projectが使用されます。 Global Projectは、そのintdashドメイン内のすべてのユーザーおよびエッジがアクセスできる特別なプロジェクトです。
3.2. プリインストールされたデバイスコネクターを使用するための設定¶
プリインストールされたデバイスコネクター intdash-edge-logger
を使用するには設定が必要です。
デバイスコネクターの設定は、マネージャーの設定ファイル(manager.conf)と、デバイスコネクターの設定ファイルの両方で行います。
起動するデバイスコネクターごとに設定ファイルを用意し、マネージャーの設定ファイルでも複数のデバイスコネクターを設定することで、 intdash-edge-logger
を複数のプロセスとしてそれぞれ起動し、複数のデバイスからデータを収集することができます。
注釈
カメラから動画データを取得する方法について
プリインストールされたデバイスコネクターを使って動画データを取得する場合、以下の3つの方法があります。
Motion JPEGを出力できるカメラから、mjpegタイプのデバイスコネクターを使って取得する
H.264を出力できるカメラから、v4lh264タイプのデバイスコネクターを使って取得する
GStreamerからのH.264出力を、gstreamer_h264タイプのデバイスコネクターを使って取得する (カメラからのRAWデータ出力をGStreamerでH.264に変換し、それを取得する場合など)
カメラが出力するデータのフォーマットに従って、適切な方法を選択してください。
カメラが出力できるデータのフォーマットは、 v4l2-ctl
コマンドをインストールすることにより確認することができます。
以下は、カメラデバイス /dev/video0
が出力できるフォーマットを確認するコマンドです。
$ v4l2-ctl -d /dev/video0 --list-formats
また、以下のコマンドにより、カメラが出力できる解像度とフレームレートも確認できます。
$ v4l2-ctl -d /dev/video0 --list-formats-ext
3.2.1. マネージャーの設定ファイル例(manager.conf)¶
マネージャーの設定ファイルでは、 loggers
に、使用するデバイスコネクターの設定を書き込みます。
{
"loggers": [
{ # (1)
"path": "/opt/vm2m/sbin/intdash-edge-logger", # (2)
"conf": "/etc/opt/intdash/logger.conf.mjpeg", # (3)
"connections": [{
"channel": 1, # (4)
"fifo_tx": "/var/run/intdash/logger_001.tx", # (5)
"fifo_rx": "/var/run/intdash/logger_001.rx" # (6)
}]
},
{ # (7)
"path": "/opt/vm2m/sbin/intdash-edge-logger",
"conf": "/etc/opt/intdash/logger.conf.nmea",
"connections": [{
"channel": 2,
"fifo_tx": "/var/run/intdash/logger_002.tx",
"fifo_rx": "/var/run/intdash/logger_002.rx"
}]
},
...
],
...
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
- |
1つのデバイスコネクターとの接続を、1つのJSONオブジェクトで表現します。 |
(2) |
|
プリインストールされたデバイスコネクターのフルパス。 |
(3) |
|
起動するデバイスコネクターの設定ファイル。ここでは例としてMotion JPEG用の設定 |
(4) |
|
このデバイスコネクターに設定するチャンネル(0-255)。デバイスコネクターから取得されたデータには、チャンネル番号が付加されます。チャンネル番号は他のデバイスコネクターと重複しないようにしてください。 |
(5) |
|
このデバイスコネクターが送信に使用するFIFOのパス。パスは他のデバイスコネクターと重複しないようにしてください。 |
(6) |
|
このデバイスコネクターが受信に使用するFIFOのパス。パスは他のデバイスコネクターと重複しないようにしてください。 |
(7) |
- |
2つ以上のデバイスコネクターを使用する場合は、ここから2つ目のデバイスコネクターの設定を行います。以下同様に設定します。 |
3.2.2. デバイスコネクターの設定ファイル例¶
3.2.2.1. mjpegタイプのデバイスコネクター設定例¶
mjpegタイプのデバイスコネクターは、Video4Linuxに対応したUVC(USB Video Class)カメラからMotion JPEGデータを取得します。 そのため、カメラがMotion JPEGを出力できる必要があります。
設定ファイル /etc/opt/intdash/logger.conf.mjpeg
{
"type": "mjpeg", # (1)
"data_handler": {
"path": "/dev/video0", # (2)
"baudrate": 15, # (3)
"camera_width": 320, # (4)
"camera_height": 240, # (5)
"camera_hwencodedelay_msec": 100 # (6)
},
"manager_client": {
"tx_path": "/var/run/intdash/logger_XXX.tx", # (7)
"rx_path": "/var/run/intdash/logger_XXX.rx" # (8)
},
"basetime": "/var/run/intdash/basetime", # (9)
"status": "/var/run/intdash/logger_XXX.stat" # (10)
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
|
デバイスコネクターのタイプ。mjpegタイプの場合は"mjpeg" とします。 |
(2) |
|
デバイスパス |
(3) |
|
フレームレート[fps]。フレームレート、画面幅、画面高さは、カメラが対応している組み合わせを設定してください。 |
(4) |
|
画面幅 |
(5) |
|
画面高さ |
(6) |
|
データ打刻のオフセット(カメラ処理時間) [msec]。例えば、 |
(7) |
|
デバイスコネクターが送信に使用するFIFOのパス。manager.confでこのデバイスコネクター用に設定したfifo_txと同じパスを設定してください。 |
(8) |
|
デバイスコネクターが受信に使用するFIFOのパス。manager.confでこのデバイスコネクター用に設定したfifo_rxと同じパスを設定してください。 |
(9) |
|
デバイスコネクターが時刻管理に使用するファイルのパス。manager.confで設定したmanager.basetimeと同じ値を設定してください。 |
(10) |
|
デバイスコネクターが状態を書き出すファイルのパス。 |
3.2.2.2. v4lh264タイプのデバイスコネクター設定例¶
v4lh264タイプのデバイスコネクターは、Video4Linuxに対応したUVC(USB Video Class)カメラからH.264データを取得します。 そのため、カメラがH.264を出力できる必要があります。
設定ファイル /etc/opt/intdash/logger.conf.v4lh264
{
"type": "v4lh264", # (1)
"data_handler": {
"path": "/dev/video0", # (2)
"baudrate": 15, # (3)
"camera_width": 1920, # (4)
"camera_height": 1080, # (5)
"camera_hwencodedelay_msec": 100 # (6)
},
"manager_client": {
"tx_path": "/var/run/intdash/logger_XXX.tx", # (7)
"rx_path": "/var/run/intdash/logger_XXX.rx" # (8)
},
"basetime": "/var/run/intdash/basetime", # (9)
"status": "/var/run/intdash/logger_XXX.stat" # (10)
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
|
デバイスコネクターのタイプ。v4lh264タイプの場合は"v4lh264" とします。 |
(2) |
|
デバイスパス |
(3) |
|
フレームレート[fps]。フレームレート、画面幅、画面高さは、カメラが対応している組み合わせを設定してください。 |
(4) |
|
画面幅 |
(5) |
|
画面高さ |
(6) |
|
データ打刻のオフセット(カメラ処理時間) [msec]。例えば、 |
(7) |
|
デバイスコネクターが送信に使用するFIFOのパス。manager.confでこのデバイスコネクター用に設定したfifo_txと同じパスを設定してください。 |
(8) |
|
デバイスコネクターが受信に使用するFIFOのパス。manager.confでこのデバイスコネクター用に設定したfifo_rxと同じパスを設定してください。 |
(9) |
|
デバイスコネクターが時刻管理に使用するファイルのパス。manager.confで設定したmanager.basetimeと同じ値を設定してください。 |
(10) |
|
プリインストールされたデバイスコネクターが状態を書き出すファイルのパス。 |
3.2.2.3. gstreamer_h264タイプのデバイスコネクター設定例¶
gstreamer_h264タイプのデバイスコネクターは、GStreamerからH.264動画を取得します。 そのため、GStreamerがH.264を出力する必要があります。
設定ファイル /etc/opt/intdash/logger.conf.gstreamer_h264
この例はVA-API(Video Acceleration API)を使っていますので、VA-API対応のハードウェアでしか使用できません。
{
"type": "gstreamer_h264", # (1)
"data_handler": {
"path": "/dev/video0", # (2)
"baudrate": 15, # (3)
"camera_width": 1920, # (4)
"camera_height": 1080, # (5)
"camera_keyperiod": 150, # (6)
"camera_hwencodedelay_msec": 100, # (7)
"command": "gst-launch-1.0 -q v4l2src device=$_PATH ! image/jpeg,width=$_WIDTH,height=$_HEIGHT,framerate=$_FPS/1 ! queue ! vaapijpegdec ! queue ! vaapipostproc ! queue ! vaapih264enc rate-control=1 bitrate=3072 max-bframes=0 keyframe-period=$_KEYPERIOD ! fdsink fd=1" # (8)
},
"manager_client": {
"tx_path": "/var/run/intdash/logger_XXX.tx", # (9)
"rx_path": "/var/run/intdash/logger_XXX.rx" # (10)
},
"basetime": "/var/run/intdash/basetime", # (11)
"status": "/var/run/intdash/logger_XXX.stat" # (12)
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
|
デバイスコネクターのタイプ。gstreamer_h264タイプの場合は、"gstreamer_h264"とします。 |
(2) |
|
デバイスパス |
(3) |
|
フレームレート[fps]。ここで設定した値は、GStreamerのコマンド |
(4) |
|
画面幅。ここで設定した値は、GStreamerのコマンド |
(5) |
|
画面高さ。ここで設定した値は、GStreamerのコマンド |
(6) |
|
キーフレーム間隔(フレームレート×10を設定する) |
(7) |
|
データ打刻のオフセット(カメラ処理時間) [msec]。例えば、 |
(8) |
|
GStreamerのコマンド。使用するカメラおよび実行環境に適したパイプラインを設定し、標準出力からH.264のデータが出力されるようにしてください。 |
(9) |
|
デバイスコネクターが送信に使用するFIFOのパス。manager.confでこのデバイスコネクター用に設定したfifo_txと同じパスを設定してください。 |
(10) |
|
デバイスコネクターが受信に使用するFIFOのパス。manager.confでこのデバイスコネクター用に設定したfifo_rxと同じパスを設定してください。 |
(11) |
|
デバイスコネクターが時刻管理に使用するファイルのパス。manager.confで設定したmanager.basetimeと同じ値を設定してください。 |
(12) |
|
プリインストールされたデバイスコネクターが状態を書き出すファイルのパス。 |
command
の設定値では、以下の変数を使用することにより他の設定値を参照することができます。
- $_PATH
path
に設定した値- $_FPS
baudrate
に設定した値- $_WIDTH
camera_width
に設定した値- $_HEIGHT
camera_height
に設定した値- $_KEYPERIOD
camera_keyperiod
に設定した値
3.2.2.4. nmeaタイプのデバイスコネクター設定例¶
nmeaタイプのデバイスコネクターは、GPSデバイスからNMEAデータを取得します
設定ファイル /etc/opt/intdash/logger.conf.nmea
{
"type": "nmea", # (1)
"data_handler": {
"path": "/dev/ttyXX", # (2)
"baudrate": 57600 # (3)
},
"manager_client": {
"tx_path": "/var/run/intdash/logger_XXX.tx", # (4)
"rx_path": "/var/run/intdash/logger_XXX.rx" # (5)
},
"basetime": "/var/run/intdash/basetime", # (6)
"status": "/var/run/intdash/logger_XXX.stat" # (7)
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
|
デバイスコネクターのタイプ。nmeaタイプの場合は"nmea"とします。 |
(2) |
|
デバイスパス |
(3) |
|
GPSモジュールとの通信ボーレート[bps] |
(4) |
|
デバイスコネクターが送信に使用するFIFOのパス。manager.confでこのデバイスコネクター用に設定したfifo_txと同じパスを設定してください。 |
(5) |
|
デバイスコネクターが受信に使用するFIFOのパス。manager.confでこのデバイスコネクター用に設定したfifo_rxと同じパスを設定してください。 |
(6) |
|
デバイスコネクターが時刻管理に使用するファイルのパス。manager.confで設定したmanager.basetimeと同じ値を設定してください。 |
(7) |
|
プリインストールされたデバイスコネクターが状態を書き出すファイルのパス。 |
3.2.2.5. socketcanタイプのデバイスコネクターの設定例¶
socketcanタイプのデバイスコネクターは、オープンソースのSocketCANドライバーからCANデータを取得します。
設定ファイル /etc/opt/intdash/logger.conf.socketcan
{
"type": "socketcan", # (1)
"data_handler": {
"path": "can0", # (2)
"baudrate": 500, # (3)
"listenonly": 0 # (4)
},
"manager_client": {
"tx_path": "/var/run/intdash/logger_XXX.tx", # (5)
"rx_path": "/var/run/intdash/logger_XXX.rx" # (6)
},
"basetime": "/var/run/intdash/basetime", # (7)
"status": "/var/run/intdash/logger_XXX.stat" # (8)
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
|
デバイスコネクターのタイプ。socketcanタイプの場合は"socketcan"とします。 |
(2) |
|
インターフェイス名 |
(3) |
|
CANバスのボーレート(125、250、500、1000)[Kbps] |
(4) |
|
(int) 0:ACKを返す、0以外:ACKを返さない |
(5) |
|
デバイスコネクターが送信に使用するFIFOのパス。manager.confでこのデバイスコネクター用に設定したfifo_txと同じパスを設定してください。 |
(6) |
|
デバイスコネクターが受信に使用するFIFOのパス。manager.confでこのデバイスコネクター用に設定したfifo_rxと同じパスを設定してください。 |
(7) |
|
デバイスコネクターが時刻管理に使用するファイルのパス。manager.confで設定したmanager.basetimeと同じ値を設定してください。 |
(8) |
|
プリインストールされたデバイスコネクターが状態を書き出すファイルのパス。 |
3.2.2.6. canopenタイプのデバイスコネクター設定例¶
canopenタイプのデバイスコネクターは、オープンソースのSocketCANドライバーからCANOpenデータを取得します。
設定ファイル /etc/opt/intdash/logger.conf.canopen
{
"type": "canopen", # (1)
"data_handler": {
"path": "can0", # (2)
"baudrate": 500, # (3)
"listenonly": 0 # (4)
},
"manager_client": {
"tx_path": "/var/run/intdash/logger_XXX.tx", # (5)
"rx_path": "/var/run/intdash/logger_XXX.rx" # (6)
},
"basetime": "/var/run/intdash/basetime", # (7)
"status": "/var/run/intdash/logger_XXX.stat" # (8)
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
|
デバイスコネクターのタイプ。canopenタイプの場合は"canopen"とします。 |
(2) |
|
インターフェイス名 |
(3) |
|
CANバスのボーレート(125、250、500、1000)[Kbps] |
(4) |
|
(int) 0:ACKを返す、0以外:ACKを返さない |
(5) |
|
デバイスコネクターが送信に使用するFIFOのパス。manager.confでこのデバイスコネクター用に設定したfifo_txと同じパスを設定してください。 |
(6) |
|
デバイスコネクターが受信に使用するFIFOのパス。manager.confでこのデバイスコネクター用に設定したfifo_rxと同じパスを設定してください。 |
(7) |
|
デバイスコネクターが時刻管理に使用するファイルのパス。manager.confで設定したmanager.basetimeと同じ値を設定してください。 |
(8) |
|
プリインストールされたデバイスコネクターが状態を書き出すファイルのパス。 |
3.3. データ送受信に関する設定¶
Agentは、intdashサーバーから受信したデータをデバイスコネクターに送ることもできます。
以下に、2つのAgentを使用してデータを送受信する設定の例を挙げます。
3.3.1. CANデータを送受信するための設定例(宛先指定なし)¶
以下の例は、送信側のAgentがintdashサーバーを介して受信側のAgentにCANデータを送信するための設定です。
この設定例では、送信側のAgentがチャンネル10で送信したCANデータを受信側のAgentが受信します。
3.3.1.1. CANデータ送信側エッジの設定例(宛先指定なし)¶
{
"clients": [{
...
"my_id": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2", # (1)
"my_secret": "sEh9ZHPoKX8QYU-v0Noe0ZPzxGBF..........................iBn5fn_eFM", # (2)
"type": "realtime", # (3)
...
}],
"loggers": [{ # (4)
"connections": [{
"channel": 10, # (5)
...
}],
...
}],
...
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
|
送信側エッジ(このエッジ)のUUID |
(2) |
|
送信側エッジ(このエッジ)の認証用クライアントシークレット。参考: エッジ情報の設定 |
(3) |
|
リアルタイム送信を行うためRealtimeクライアント |
(4) |
|
CANデータを取得するデバイスコネクターを設定します。 |
(5) |
|
送信するデータのチャンネル。 |
3.3.1.2. CANデータ受信側エッジの設定例¶
{
"clients": [{
...
"protocol": "mod_websocket.v2", # (1)
"my_id": "c35618bf-aa2c-4abc-8a4e-5b157b90c9ef", # (2)
"my_secret": "hsNxJhvDNHR2QcXbXl..........................Z0RWKvfPs_neAkjTNSO5", # (3)
"down_dst_id": "00000000-0000-0000-0000-000000000000", # (4)
"ctlr_id": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2", # (5)
"ctlr_flts":[ # (6)
{
"channel": 10, # (7)
"dtype": 1, # (8)
"ids": [1, 16] # (9)
}
],
"type": "control", # (10)
"connection": {
"path": "/api/v1/ws/measurements", # (11)
...
},
...
}],
"loggers": [{
"connections": [{
"channel": 10, # (12)
...
}],
...
}],
...
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
|
Controlクライアントを使用する場合は、 |
(2) |
|
受信側エッジ(このエッジ)のUUID |
(3) |
|
受信側エッジ(このエッジ)の認証用クライアントシークレット。参考: エッジ情報の設定 |
(4) |
|
ここで指定したUUID宛てのデータを受信します。 |
(5) |
|
受信するデータの、送信元エッジのUUID(指定したエッジから送信されたデータのみを受信します。) |
(6) |
|
受信するデータを指定するフィルター。チャンネル、iSCPデータタイプ、IDの組み合わせで指定を行います。複数のフィルターを設定可能(許可リスト)。(intdashサーバーから受信するデータをフィルタリングすることができます。受信データのフィルタリングについては、iSCPv1に関する資料を参照してください。) |
(7) |
|
受信するデータのチャンネル(この例ではチャンネル10のデータのみを受信します。) |
(8) |
|
受信するデータのタイプ。iSCPのデータタイプコードを十進表記で指定します(1はCANを表します。CANデータのみを受信します。) |
(9) |
|
受信するデータのCAN ID(CAN IDが |
(10) |
|
受信を行うためControlクライアント |
(11) |
|
Controlクライアントを使用する場合は |
(12) |
|
デバイスコネクターが受信するデータのチャンネル。この例ではチャンネル10とします。 |
注釈
2つのエッジからのデータを受信する場合は、 ctlr_id
ではなく、 ctlr_ids
で指定します。
3つ以上のエッジからのデータを受信することはできません。
重要
dtype
では、iSCPのデータタイプコードを十進表記で指定します。
iSCPのデータタイプコードは以下のとおりです。
データタイプコード(十進数) |
データタイプ名 |
---|---|
0x01 (1) |
CAN |
0x02 (2) |
NMEA |
0x03 (3) |
General Sensor(汎用センサー) |
0x04 (4) |
Controlpad(汎用コントロールパッド) |
0x05 (5) |
MAVLink 1 Packet(Micro Air Vehicle/ドローン用の通信プロトコル) |
0x09 (9) |
JPEG |
0x0A (10) |
String(文字列) |
0x0B (11) |
Float(倍精度浮動小数点数) |
0x0C (12) |
Int(64bit符号付き整数) |
0x0D (13) |
H.264 |
0x0E (14) |
Bytes(バイト列) |
0x0F (15) |
PCM(WAVE) |
0x10 (16) |
AAC(ADTS) |
0x7F (127) |
Generic(汎用バイナリデータ) |
上記のiSCPのデータタイプコードは、 Agentとデバイスコネクターの間で使われるFIFOのデータフォーマット (logger-msg) のデータタイプコードとは異なりますのでご注意ください。
3.4. 送信タイミングに関する設定(送信側でのフィルタリング)¶
送信側Agentでフィルターを設定することにより、intdashサーバーにデータを送信するRealtimeクライアントやBulkクライアントにデータを振り分け、データの送信タイミングを調整することができます。フィルターの詳細については、 送信側でのフィルタリング を参照してください。
3.4.1. 間引いて低頻度にしたデータをリアルタイムに送信し、残りのデータは後で送信する場合の設定例¶
ネットワーク帯域が狭い場合、サンプリングによりデータを間引いて一部のデータのみをRealtimeクライアントで送信し、残りのデータは帯域が回復した際にResendクライアントで送信することができます。
チャンネル1のデータを1秒間隔でサンプリングし、サンプリングしたデータをRealtimeクライアントで送信し、残りのデータはResendクライアントで送信する設定例
{
"manager": {
"filters": [
{
"name": "sampling", # (1)
"channel": "1", # (2)
"target": "realtime", # (3)
"setting": [
{
"key": "rate", # (4)
"value": "1000" # (5)
}
]
}
],
...
},
"clients": [
{
"my_id": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2", # (6)
"my_secret": "sEh9ZHPoKX8QYU-v0Noe0ZPzxGBF...........................iBn5fn_eFM", # (7)
"type": "realtime", # (8)
"protocol": "mod_websocket.v2", # (9)
...
},
{
"my_id": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2", # (6)
"my_secret": "sEh9ZHPoKX8QYU-v0Noe0ZPzxGBF...........................iBn5fn_eFM", # (7)
"type": "bulk", # (10)
"protocol": "mod_websocket.v2", # (9)
"store_cycle": 0, # (11)
...
},
{
"my_id": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2", # (6)
"my_secret": "sEh9ZHPoKX8QYU-v0Noe0ZPzxGBF...........................iBn5fn_eFM", # (7)
"type": "resend", # (12)
"protocol": "mod_http", # (13)
...
}
],
"loggers": [{
"connections": [{
"channel": 1, # (14)
...
}],
...
}],
...
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
|
フィルターの種類。 |
(2) |
|
フィルター対象のチャンネル。この例ではチャンネル1を設定しています。 |
(3) |
|
フィルター対象の送信方法。 |
(4) |
|
フィルターの詳細設定。サンプリング周期を設定するため |
(5) |
|
フィルターの詳細設定。サンプリング周期を設定します。この例では1000ミリ秒(1秒)とします。1秒に1個のデータを送信します。 |
(6) |
|
送信側エッジ(このエッジ)のUUID。 |
(7) |
|
送信側エッジ(このエッジ)の認証用クライアントシークレット。参考: エッジ情報の設定 |
(8) |
|
送信クライアントの種類。 |
(9) |
|
送信クライアントの通信方法。RealtimeクライアントとBulkクライアントはRealtime APIを使用するため、 |
(10) |
|
送信クライアントの種類。 |
(11) |
|
Bulkクライアントの送信間隔。Bulkクライアントからは送信せずにResendクライアントに委ねるため、0とします。 |
(12) |
|
送信クライアントの種類。 |
(13) |
|
送信クライアントの通信方法。この例ではResendクライアントはREST APIを使用するため、 |
(14) |
|
取得するデータに付加するチャンネル。この例では、このデバイスコネクター(logger)がチャンネル1です。 |
3.4.2. 一部のデータをリアルタイム送信し、その他のデータは後で送信する設定の例¶
ネットワーク帯域が狭い場合、小さいまたは頻度の少ないデータのみをRealtimeクライアントで送信し、残りのデータは帯域が回復した際にResendクライアントで送信することができます。
チャンネル1以外のデータをRealtimeクライアントで送信し、チャンネル1のデータはResendクライアントに委ねるための設定例
{
"manager": {
"filters": [
{
"name": "channel", # (1)
"channel": "1", # (2)
"target": "realtime", # (3)
"setting": [] # (4)
}
],
...
},
"clients": [
{
"my_id": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2", # (5)
"my_secret": "sEh9ZHPoKX8QYU-v0Noe0ZPzxGBF...........................iBn5fn_eFM", # (6)
"type": "realtime", # (7)
"protocol": "mod_websocket.v2", # (8)
...
},
{
"my_id": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2", # (5)
"my_secret": "sEh9ZHPoKX8QYU-v0Noe0ZPzxGBF...........................iBn5fn_eFM", # (6)
"type": "bulk", # (9)
"protocol": "mod_websocket.v2", # (8)
"store_cycle": 0, # (10)
...
},
{
"my_id": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2", # (5)
"my_secret": "sEh9ZHPoKX8QYU-v0Noe0ZPzxGBF...........................iBn5fn_eFM", # (6)
"type": "resend", # (11)
"protocol": "mod_http", # (12)
...
}
],
"loggers": [
{
"connections": [{
"channel": 1, # (13)
...
}],
...
},
{
"connections": [{
"channel": 2, # (14)
...
}],
...
}
],
...
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
|
フィルターの種類。 |
(2) |
|
フィルター対象のチャンネル。この例ではチャンネル1とします。 |
(3) |
|
フィルター対象の送信方法。 |
(4) |
|
フィルターの詳細設定。設定内容は空にします。 |
(5) |
|
送信側エッジ(このエッジ)のUUID。 |
(6) |
|
送信側エッジ(このエッジ)の認証用クライアントシークレット。参考: エッジ情報の設定 |
(7) |
|
送信クライアントの種類。 |
(8) |
|
送信クライアントの通信方法。RealtimeクライアントとBulkクライアントはRealtime APIを使用するため、 |
(9) |
|
送信クライアントの種類。 |
(10) |
|
Bulkクライアントの送信間隔。Bulkクライアントは送信せずにResendクライアントに委ねるため、0とします。 |
(11) |
|
送信クライアントの種類。 |
(12) |
|
送信クライアントの通信方法。この例ではResendクライアントはREST APIを使用するため、 |
(13) |
|
取得するデータに付加するチャンネル。この例では、1つ目のデバイスコネクター(logger)がチャンネル1です。 |
(14) |
|
取得するデータに付加するチャンネル。この例では、2つ目のデバイスコネクター(logger)がチャンネル2です。 |
3.4.3. 送信は行わずに全てのデータをRAWデータとして保存する場合の設定例¶
ネットワークの接続がまったく無いか、または帯域が狭すぎてデータを送信できない場合、intdashサーバーへのデータの送信はあきらめ、一旦すべてのデータをローカルストレージにダンプすることができます。ローカルストレージにダンプされたデータは、後で手動でintdashサーバーにアップロードする必要があります。
データをサーバーに送信しない設定の例
{
"manager": {
...
},
"clients": [], # (1)
"loggers": [
{
"connections": [{
"channel": 1, # (2)
...
}],
...
},
{
"connections": [{
"channel": 2, # (3)
...
}],
...
}
],
...
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
|
クライアントの設定。送信クライアントが設定されていない状態にします。 |
(2) |
|
取得するデータに付加するチャンネル。この例では、1つ目のデバイスコネクター(logger)がチャンネル1です。 |
(3) |
|
取得するデータに付加するチャンネル。この例では、2つ目のデバイスコネクター(logger)がチャンネル2です。 |
3.4.4. 全てのデータをResendクライアント用として蓄積する場合の設定例¶
ネットワークが不安定で、帯域に大きな変動がある場合、intdashサーバーへのリアルタイムでの転送はあきらめ、全てResendクライアント用のデータとして蓄積しておき、帯域が回復した際に一気に送信することができます。この再送処理は自動的に行われるため、手動でintdashサーバーにアップロードする必要はありません。
全てのチャンネルのデータを、リアルタイム送信せずにResendクライアントに委ねるための設定例
{
"manager": {
"filters": [
{
"name": "channel", # (1)
"channel": "-1", # (2)
"target": "realtime", # (3)
"setting": [] # (4)
}
],
...
},
"clients": [
{
"my_id": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2", # (5)
"my_secret": "sEh9ZHPoKX8QYU-v0Noe0ZPzxGBF...........................iBn5fn_eFM", # (6)
"type": "realtime", # (7)
"protocol": "mod_websocket.v2", # (8)
...
},
{
"my_id": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2", # (5)
"my_secret": "sEh9ZHPoKX8QYU-v0Noe0ZPzxGBF...........................iBn5fn_eFM", # (6)
"type": "bulk", # (9)
"protocol": "mod_websocket.v2", # (8)
"store_cycle": 0, # (10)
...
},
{
"my_id": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2", # (5)
"my_secret": "sEh9ZHPoKX8QYU-v0Noe0ZPzxGBF...........................iBn5fn_eFM", # (6)
"type": "resend", # (11)
"protocol": "mod_http", # (12)
...
}
],
"loggers": [
{
"connections": [{
"channel": 1, # (13)
...
}],
...
},
{
"connections": [{
"channel": 2, # (14)
...
}],
...
}
],
...
}
番号 |
フィールド |
説明 |
---|---|---|
(1) |
|
フィルターの種類。 |
(2) |
|
フィルター対象のチャンネル。全てのチャンネルを対象とする-1を設定します。 |
(3) |
|
フィルター対象の送信方法。 |
(4) |
|
フィルターの詳細設定。設定内容は空にしてください。 |
(5) |
|
送信側エッジ(このエッジ)のUUID。 |
(6) |
|
送信側エッジ(このエッジ)の認証用クライアントシークレット。参考: エッジ情報の設定 |
(7) |
|
送信クライアントの種類。 |
(8) |
|
送信クライアントの通信方法。RealtimeクライアントとBulkクライアントはRealtime APIを使用するため、 |
(9) |
|
送信クライアントの種類。 |
(10) |
|
Bulkクライアントの送信間隔。Bulkクライアントは送信せずにResendクライアントに委ねるため、0とします。 |
(11) |
|
送信クライアントの種類。 |
(12) |
|
送信クライアントの通信方法。この例ではResendクライアントはREST APIを使用するため、 |
(13) |
|
取得するデータに付加するチャンネル。この例では、このデバイスコネクター(logger)がチャンネル1です。 |
(14) |
|
取得するデータに付加するチャンネル。この例では、このデバイスコネクター(logger)がチャンネル2です。 |
3.5. RAWデータの保存に関する設定¶
RAWデータの詳細については、 RAWデータ を参照してください。
RAWデータの保存については、以下の設定ができます。
3.5.1. どのデータもRAWデータとして保存しない¶
どのデータもRAWデータとして保存しないように設定するには、 manager.rawdir
をnullにします。
例(RAWデータを保存しない) :
{
"manager": {
...
"rawdir": null,
...
},
...
}
3.5.2. 特定のチャンネルのRAWデータを保存しない¶
対象のチャンネルのデバイスコネクターの設定に loggers[].connections[].disable_raw
を追加し、値に 1
を設定します。
例(チャンネル0のRAWデータ保存を無効にする) :
{
"loggers": [{
"connections": [{
...
"disable_raw": 1,
"channel": 0,
...
}],
...
}],
...
}