Specification Plugin - TakayukiHoshi1984/DeviceConnect-Docs GitHub Wiki

プラグイン

Device Connect Managerと連携して周辺機器を操作、および、イベントを送信するアプリケーションになります。

プラグインは、以下の機能を提供します。

  • 周辺機器との接続
  • Device Connect Managerとの接続
  • Device Connect APIの機能提供

プラグインの登録

Device Connect Managerは、プラグインを発見するとプラグインIDを生成して、プラグインと紐付けて管理します。

プラグインIDは、プラグインのパッケージ名をMD5でハッシュした値を使用します。
アンインストールした後にインストールしても、プラグインIDは変わりません。

注意: iOSは、別アプリケーションを使用することはできませんので、同梱することになります。

プラグインの解除

Device Connect Managerは、プラグインがアンインストールされた時に、紐づけていたプラグインIDを削除して、管理から解除します。

注意: iOSは、別アプリケーションを使用することはできませんので、同梱することになります。

サービス

GotAPIでは、プラグインが接続した周辺機器やWebサービスなどを総じてサービスと呼びます。

Sequence of Streaming data

サービスの接続

プラグインは、周辺機器と接続を行い、接続した機器にIDを生成し、サービスとして管理します。
各プラグインの中で、ユニークになるようにIDを生成します。
このIDをサービスIDとします。

サービスの探索

プラグインは、Device Connect ManagerからService Discoveryの要求が行われた時に管理しているサービスの一覧を返却します。

Device Connect Managerは、各プラグインから取得したサービス一覧をまとめて、アプリケーションに返却します。
また、返却する時に各プラグインのサービスに、プラグインIDを付加します。

アプリケーションに返却されるサービスIDは以下のようになります。

サービスID(アプリケーションに返却される) = プラグインID + サービスID(プラグイン)
構成図

サービスへのリクエスト配送

アプリケーションは、Service Discoveryで取得したサービスIDを指定してDevice Connect Managerにリクエストを送信します。

Device Connect Managerは、送られてきたリクエストからサービスIDを取得し、配送先のプラグインを見つけます。

配送先のプラグインが存在していた場合は、サービスIDからプラグインIDを削除したサービスID(プラグイン)をリクエストに設定して、プラグインに配送します。

プラグインは、送られてきたリクエストからサービスIDを取得して、各デバイスの操作を行います。

構成図

アプリケーション開発者は、サービスIDの中は気にする必要はなく、取得したサービスIDに対して命令を送信することでデバイスを操作することができます。

また、プラグイン開発者もプラグイン内で定義したサービスIDでリクエストが送られてきますので、途中のサービスIDの変換は気にする必要はありません。

⚠️ **GitHub.com Fallback** ⚠️