SDK での API の構成
モバイルアプリでは、ゲートウェイやエンドノードにアクセスするため、以下の 2 つの SDK を使用します。
Kii Cloud SDK
ユーザーやグループなど、ゲートウェイやエンドノードのオーナーのアクセストークンを取得するために使用します。
Thing-IF SDK
ゲートウェイやエンドノードの初期登録を行ったり、コマンドやステートを扱ったりするために使用します。
この SDK では、API を以下の 2 つのクラスによって定義しています。
ThingIFAPI
モバイルアプリから Thing Interaction Framework にアクセスするための API クラスです。
この API クラスには、Thing Interaction Framework を操作するためのメソッドが用意されています。たとえば、初期登録を実行したり、機能モデル に従ってエンドノードにコマンドを送信したりする場合は、この API クラスを使用します。
GatewayAPI
モバイルアプリからゲートウェイエージェントにアクセスするための API クラスです。Wi-Fi などのローカルネットワーク経由でアクセスします。
この API クラスには、ゲートウェイを管理するためのメソッドが用意されています。たとえば、初期化待ちのエンドノードを取得したり、エンドノードの初期化完了を通知したりするものがあります。
インスタンスの管理
モバイルアプリからエンドノードを操作する場合、ThingIFAPI
と GatewayAPI
のインスタンスが必要です。
ゲートウェイへのアクセス
ゲートウェイにアクセスするため、ゲートウェイ 1 台に対して 1 個ずつ
ThingIFAPI
とGatewayAPI
のインスタンスを扱います。エンドノードへのアクセス
操作対象のエンドノードの数だけ
ThingIFAPI
のインスタンスを扱います。特定のエンドノードを操作するときは、そのエンドノードを初期登録したThingIFAPI
インスタンスのメソッドを呼び出します。
以下は、エンドノード 2 点を扱う場合の API クラスの例です。各エンドノードに対して 1 件の ThingIFAPI
が、ゲートウェイに対して 1 件ずつの ThingIFAPI
と GatewayAPI
が初期化されています。
たとえば、LED2
にコマンドを送りたい場合、それにつながっている上から 2 番目の ThingIFAPI
インスタンスに対して、コマンド送信のメソッドを呼び出すことになります。