デバイスコネクターのビルド

この章は、Device Connector Frameworkを使用してデバイスコネクターをビルドし、動作確認するチュートリアルです。 ここでビルドされるデバイスコネクターには、基本エレメントが含まれます。基本エレメントについては、 エレメント一覧 (Device Connector Framework) を参照してください。

開発環境を準備する

Device Connector Frameworkを使ってデバイスコネクターをビルドするには、Rustの開発環境が必要です。 Rustの開発環境をインストールしてください。

基本エレメントのみでビルドする

Device Connector Frameworkには基本エレメントのソースコードが付属しています。

以下のコマンドを実行することにより、Device Connector Frameworkを取得し、基本エレメントを内部に含んだデバイスコネクターをビルドすることができます。

git clone https://github.com/aptpod/device-connector-framework.git
cd device-connector-framework
cargo build --release

生成された、 ./target/release/device-connector-run という実行ファイルが、基本エレメントを含むデバイスコネクターです。

パイプライン設定を作成する

Device Connector Frameworkにより作成されたデバイスコネクターを使用するには、行いたい処理をパイプラインとして定義する必要があります。

例として、以下のパイプライン設定ファイル conf.yml をカレントディレクトリに用意します。ここでは、文字列を100msごとに送出するエレメント(text-src)に、受信内容を標準出力に書き出すエレメント(stdout-sink)をつないで、パイプラインを作成しています。

tasks:
  - id: 1
    element: text-src
    conf:
      text: "Hello, World!"
      interval_ms: 100

  - id: 2
    element: stdout-sink
    from: [[ 1 ]]
    conf:
      separator: "\n"

デバイスコネクターを実行する

以下のコマンドでデバイスコネクターを実行します。

./target/release/device-connector-run --config conf.yml

すると、パイプライン設定ファイルで指定した文字列が100msごとに出力されます。

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

終了するにはCtrl-Cを押してください。

以上で、デバイスコネクターの動作確認は終了です。

この例では文字列を標準出力に出力しましたが、代わりに、intdash Edge Agent用のバイナリフォーマットでFIFOに出力し、intdash Edge AgentがそのFIFOから読み取るようにすることでデータを渡すことができます。