【Androidでドローン(マルチコプター)を飛ばそう】 ドローンを操作するためのクラス
前回の【Androidでドローン(マルチコプター)を飛ばそう】 周囲のドローンを表示するではAndroid端末周辺に存在するドローンをリスト表示しました。
今回は取得したARDiscoveryDeviceServiceをもとにドローンを操作するための準備を行います。
ARDiscoveryDeviceServiceのインスタンスをもとにたくさんのクラスをインスタンス化するので混乱しないようにしましょう。
1-Drone操作の実装に使うクラス
実装に使うクラスは3つです、各クラスのインスタンスは次のクラスのインスタンスを作成・初期化するために使用します。
ARDiscoveryDeviceService | ARDiscoveryServiceの探査機能から取得できるドローンの情報が詰まったクラスです。 ARDiscoveryService#getProductIDは製品を識別するためのIDを返却します。 このIDをARDiscoveryService.getProductFromProductIDに渡すことで、製品の列挙型ARDISCOVERY_PRODUCT_ENUMに変換することができます。 この列挙型をARDiscoveryService#getProductFamilyに渡すことで、製品種別の列挙型ARDISCOVERY_PRODUCT_FAMILY_ENUMに変換することができます。 ARDiscoveryDeviceService#getDeviceメソッドはObjectを返却しますが、そのインスタンスはドローンにWiFi,BLEで接続するためのクラスである、 ARDiscoveryDeviceBLEServiceまたはARDiscoveryDeviceNetServiceのインスタンスを取得できます。 今回はBLE接続を行うのでARDiscoveryDeviceBLEServiceにキャストして使用します。 このインスタンスを使うことでARDiscoveryDeviceを初期化することができます。 |
ARDiscoveryDevice | ARDiscoveryDeviceはドローンとのWi-FiまたはBLE経由の接続を管理するクラスです。 Wi-Fi経由の場合はARDiscoveryDevice#initWifiを使い、BLE経由の場合はARDiscoveryDevice#initBLEを使います。 今回はBLE経由なのでARDiscoveryDevice#initBLEを使います。 このメソッドはARDISCOVERY_PRODUCT_ENUM,Context,ARDiscoveryDeviceBLEServiceを引数にとります。 このクラスのインスタンスからARDeviceControllerを作ることができます。 |
ARDeviceController | ARDeviceControllerはドローンを制御するクラスです。 接続や切断、飛行や撮影などはこのクラスを経由して制御していきます。 今後このクラスを頻繁に使うので後ほど詳しく説明します。 |
2-ARDeviceControllerについて
ARDeviceControllerの主要メソッドを説明します。
メソッド名 | 説明 |
---|---|
start | ドローンへの接続を行う。 コールバックは後述のaddListenerで追加したARDeviceControllerListener経由で受け取ります。 |
stop | ドローンの切断を行う。 |
getFeatureMiniDrone | MiniDrone専用の命令を出すためのクラスARFeatureMiniDroneを返却する。 離陸や着陸、飛行の命令を出す。 |
addListener | ドローンからの様々なコールバックを受け取るため、ARDeviceControllerListenerを設定します。 ARDeviceControllerListenerの詳細は後述します。 |
3-ARDeviceControllerListenerについて
ドローンからの様々なコールバックを受け取るためのARDeviceControllerListenerの主要メソッドを説明します。
メソッド名 | 引数 | 説明 |
---|---|---|
onStateChanged |
|
ドローンの状態が変化したときに呼ばれるコールバックメソッド 第二引数のARCONTROLLER_DEVICE_STATE_ENUMが実際のドローンの状態を表す列挙型です。
|
onExtensionStateChanged |
|
拡張状態が変更されたときに呼ばれるコールバックメソッド |
onCommandReceived |
|
ドローンからコマンド来たときに呼ばれるコールバックメソッド ドローンから送られてくるコマンドはドローンの種類によって異なるため、たくさんのコマンドが存在します。
コマンドに対応するキーを使い取り出して使用します。 |
4-まとめ
今回は実装に使うクラスを説明しました、次回は実際にこのクラスを使ってドローンに接続しましょう。
|
|
||||
|
|
||||