2. デバイスコネクターをビルドし、動かしてみる¶
この章では、Device Connector Frameworkを使用してデバイスコネクターをビルドし、動作確認します。 ここでビルドされるデバイスコネクターには、基本エレメントが含まれます。基本エレメントについては、 Device Connector Frameworkに含まれる基本エレメント を参照してください。
2.1. 開発環境を準備する¶
Device Connector Frameworkを使ってデバイスコネクターをビルドするには、Rustの開発環境が必要です。 Rustの開発環境をインストールしてください。
2.2. 基本エレメントのみのデバイスコネクターをビルドする¶
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
という実行ファイルが、基本エレメントを含むデバイスコネクターです。
2.3. パイプライン設定ファイルを作成する¶
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"
2.4. デバイスコネクターを実行する¶
以下のコマンドでデバイスコネクターを実行します。
./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から読み取るようにすることでデータを渡すことができます。