独自エレメントの開発

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

注釈

クレートのバージョンは crates.io で検索できます。 クレートによっては、クレートのバージョンでサポートするRustバージョンを確認できます。 (例: time