独自エレメントの開発
device-connector-intdashに独自のエレメントを追加したい場合、プラグイン形式で開発します。 プラグインの開発方法について、 デバイスコネクター開発フレームワークの説明 を参照してください。
device-connector-intdashはRustで開発されているため、プラグインの開発にはCargoビルドシステムを使用し、エレメントの実装はRustまたはCで行います。
プラグイン開発用プロジェクトの作成
device-connector-intdash向けプラグインを開発する場合、 以下の表を参照し、device-connector-intdashのパッケージバージョンに合ったテンプレートを使用してプロジェクトを作成してください。
device-connector-intdash パッケージのバージョン |
本体のRustバージョン |
|
---|---|---|
2.0.0 以降 |
1.65.0 |
v2.2.1 以降 |
プロジェクトは以下のコマンドで作成します。
cargo generate --git https://github.com/aptpod/device-connector-template.git --tag <テンプレートのタグ>
RustまたはCで開発を行い、作成したプロジェクトにあるDockerfileを使用してクロスビルドすることで、プラグインを生成できます。 詳細については、作成したプロジェクトのREADME.mdを参照してください。
重要
device-connector-intdashパッケージを利用してプラグイン開発を行う場合、 制限事項 により、 Rustのバージョンを本体とプラグインで合わせる必要があります。
依存クレートの追加時の注意点
Cargo.toml
の [dependecies]
にクレートを追加してビルドした際に、以下のようなエラーが出る場合があります。
error: package `time v0.3.29` cannot be built because it requires rustc 1.67.0 or newer, while the currently active rustc version is 1.65.0
Either upgrade to rustc 1.67.0 or newer, or use
cargo update -p time@0.3.29 --precise ver
where `ver` is the latest version of `time` supporting rustc 1.65.0
この場合、依存クレートのバージョンをクロスビルド環境のRustバージョンでビルド可能なものに更新する必要があります。 以下のコマンドでクレートのバージョンを更新してください。
例: timeクレートのバージョンを Rustバージョン 1.65.0 でビルド可能なバージョン 0.3.23 に更新する
cargo update -p time@0.3.29 --precise 0.3.23