NMEAデータを送信する

付属デバイスコネクターdevice-connector-intdashを使用してNMEAデータを取得し、リアルタイム送信するための設定例です。

../../_images/nmea-sample.svg

図 28 NMEAデータを送信するための設定例

アップストリームの設定

以下のコマンドを実行して、 recoverable というIDを持つアップストリームを作成します。 指定しているのはIDのみのため、他の設定値はデフォルトのとおりになります。

$ intdash-agentctl config up --create '
    id: recoverable
  '

デバイスコネクターの設定

intdash Edge Agent 2にデバイスコネクターを追加します。以下のコマンドを実行して設定を行ってください。

$ intdash-agentctl config device-connector up --create '
    id: up-nmea
    data_name_prefix: nmea
    dest_ids:
      - recoverable
    format: iscp-v2-compat
    ipc:
      type: fifo
      path: /var/run/intdash/nmea.fifo
    launch:
      cmd: device-connector-intdash
      args:
      - --config
      - /etc/dc_conf/nmea-up.yml
      environment:
      - DC_NMEA_PACKET_SRC_CONF_PATH=/dev/ttyTHS1
      - DC_NMEA_PACKET_SRC_CONF_BAUDRATE=57600
      - DC_PRINT_LOG_FILTER_CONF_TAG=nmea
      - DC_FILE_SINK_CONF_PATH=/var/run/intdash/nmea.fifo
'
  • launch で、device-connector-intdashを起動するように設定しています。

  • device-connector-intdashを実行するための設定は、パイプライン設定ファイル /etc/dc_conf/nmea-up.yml として与えています(このファイルは次の手順で作成します)。 また、パイプライン設定ファイルで使用するための環境変数を与えています( environment ) 。

  • 特に、 DC_NMEA_PACKET_SRC_CONF_PATH はGPSデバイスのデバイスパス、 DC_NMEA_PACKET_SRC_CONF_BAUDRATE は使用されるボーレートです。使用するデバイスに合った値を設定してください。

  • device-connector-intdashから /var/run/intdash/nmea.fifo を介して得られたデータは、 nmea というデータ名称プリフィックスを与えられて、 recoverable というIDを持つアップストリームに送信されます。

device-connector-intdashのパイプライン設定

次にdevice-connector-intdashのパイプライン設定ファイルを /etc/dc_conf/nmea-up.yml として作成します。

tasks:
  - id: 1
    element: nmea-packet-src
    conf:
      path: $(DC_NMEA_PACKET_SRC_CONF_PATH)
      baudrate: $(DC_NMEA_PACKET_SRC_CONF_BAUDRATE)

  - id: 2
    element: iscp-v2-compat-filter
    from: [ [1] ]
    conf:
      timestamp:
        stamp:
          clock_id: CLOCK_MONOTONIC
      convert_rule: nmea

  - id: 3
    element: print-log-filter
    from: [ [2] ]
    conf:
      interval_ms: 10000
      tag: $(DC_PRINT_LOG_FILTER_CONF_TAG)
      output: stderr

  - id: 4
    element: file-sink
    from: [ [3] ]
    conf:
      path: $(DC_FILE_SINK_CONF_PATH)
  • nmea-packet-srcエレメントでは、環境変数として与えられた値を使ってNMEAメッセージを取得します。(参考: nmea-packet-src

  • iscp-v2-compat-filterではそれをFIFO用データフォーマットに変換するとともに、タイムスタンプを与えます。(参考: iscp-v2-compat-filter

  • print-log-filterでは標準エラー出力にログを出力します。(参考: print-log-filter

  • file-sinkでは、$(DC_FILE_SINK_CONF_PATH)にFIFO用データフォーマットのデータが書き出されます。これをintdash Edge Agent 2が読み取ります。(参考: file-sink

注釈

nmea-packet-srcはGPSデバイスの初期化は行いません。詳細については、 nmea-packet-src の注釈を参照してください。

ストリーマーの起動

以上の設定ができたらストリーマーを起動します。

$ intdash-agentctl run