デバイスコネクターのビルド
この章は、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から読み取るようにすることでデータを渡すことができます。