com.docomostar.opt.device.location
クラス GyroSensor2

Object
  上位を拡張 com.docomostar.device.location.GyroSensor
      上位を拡張 com.docomostar.opt.device.location.GyroSensor2

public class GyroSensor2
extends com.docomostar.device.location.GyroSensor

ジャイロセンサクラスのオプション機能を定義します。

ジャイロセンサクラスのオプション機能をサポートしている場合には、 com.docomostar.device.location.GyroSensor.getGyroSensor() は常に GyroSensor2 インスタンスを返します。 オプションパッケージの com.docomostar.opt.device.GyroSensor.getGyroSensor() からGyroSensor2 インスタンスを返すことはありません。

導入されたバージョン:
Star-1.5 (2011年春以降発売モデル)
関連項目:
GyroSensor, GyroSensor

フィールドの概要
static int EVENT_CALIBRATION_COMPLETED
          イベント検知機能が検知可能なイベントの種類で、 キャリブレーションが完了したことを表します(=0x02)。
static int EVENT_CALIBRATION_INTERRUPTED
          イベント検知機能が検知可能なイベントの種類で、 キャリブレーションが中断したことを表します(=0x04)。
static int EVENT_CALIBRATION_REQUIRED
          イベント検知機能が検知可能なイベントの種類で、 キャリブレーションが必要であることを表します(=0x01)。
 
クラス com.docomostar.device.location.GyroSensor から継承されたフィールド
ANGULAR_VELOCITY_X, ANGULAR_VELOCITY_Y, ANGULAR_VELOCITY_Z
 
メソッドの概要
 void calibrate()
          ジャイロセンサ機能のキャリブレーションを行います。
 int[] getAvailableEvent()
          イベント検知機能 がサポートする検知イベントを返します。
 com.docomostar.device.location.GyroData getCurrentData()
          現在の角速度を計測し、結果を取得します(ワンショット計測)。
 void setEventListener(GyroSensor2EventListener listener)
          イベント検知機能で使用するイベントリスナを設定します。
 void start(int interval, boolean continuance)
           周期計測を開始します。
 void startEventDetection(int event)
          ジャイロセンサ機能にイベント検知を依頼します。
 void stopEventDetection()
          ジャイロセンサ機能によるイベント検知を停止します。
 
クラス com.docomostar.device.location.GyroSensor から継承されたメソッド
disposeData, getAvailableData, getData, getDataSize, getGyroSensor, getIntervalResolution, getMaxDataSize, getMaxDataValue, getMinDataValue, peekLatestData, setEnabled, stop
 
クラス Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

EVENT_CALIBRATION_REQUIRED

public static final int EVENT_CALIBRATION_REQUIRED
イベント検知機能が検知可能なイベントの種類で、 キャリブレーションが必要であることを表します(=0x01)。

端末の温度変化などにより、本来の角速度値との誤差が大きくなってきた場合に、 ジャイロセンサ(角速度センサ)のキャリブレーションが必要になります。

ジャイロセンサ機能が有効な状態 (setEnabled(true) 完了から、 setEnabled(false) 呼び出しまで) でキャリブレーションが必要となった場合にこのイベントが発生します。 このイベント発生後、実際にキャリブレーションを行うには、calibrate() を呼び出して下さい。

イベントが発生した場合、 リスナのactionPerformedメソッド が呼ばれます。 このとき、第 2 引数にこのフィールドの値が渡されます。第 3 引数は使用しません。

周期計測中にこのイベントが発生した場合は、 GyroSensor.stop() を実行し、キャリブレーションを行って下さい。

関連項目:
定数フィールド値

EVENT_CALIBRATION_COMPLETED

public static final int EVENT_CALIBRATION_COMPLETED
イベント検知機能が検知可能なイベントの種類で、 キャリブレーションが完了したことを表します(=0x02)。

イベントが発生した場合、 リスナのactionPerformedメソッド が呼ばれます。 このとき、第 2 引数にこのフィールドの値が渡されます。第 3 引数は使用しません。

関連項目:
定数フィールド値

EVENT_CALIBRATION_INTERRUPTED

public static final int EVENT_CALIBRATION_INTERRUPTED
イベント検知機能が検知可能なイベントの種類で、 キャリブレーションが中断したことを表します(=0x04)。

キャリブレーション実行中のタイマ監視でタイムアウトとなった場合もこのイベントが発生します。

イベントが発生した場合、 リスナのactionPerformedメソッド が呼ばれます。 このとき、第 2 引数にこのフィールドの値が渡されます。第 3 引数は使用しません。

このイベントが発生した場合は、 再度キャリブレーションの実施が必要です。 キャリブレーションが完了しない限りは、 計測値の誤差が解消されません。

関連項目:
定数フィールド値
メソッドの詳細

getAvailableEvent

public int[] getAvailableEvent()
イベント検知機能 がサポートする検知イベントを返します。

以下の値のうち、サポートするイベントの値を配列中に返します。

イベント検知機能をサポートしない場合、null が返ります。

戻り値:
サポートする検知イベントを返します。 返される配列は、このオブジェクトが内部で保持している配列のコピーです。

startEventDetection

public void startEventDetection(int event)
ジャイロセンサ機能にイベント検知を依頼します。

本メソッドの呼び出しに成功すると、 ジャイロセンサ機能にイベント検知を依頼し、メソッド呼び出しから戻ります。 ジャイロセンサ機能によりイベントが検知されると、 setEventListener() で指定したリスナにイベントが通知されます。

検知可能なイベントは、以下の通りです。

イベント検知中にサスペンドが発生した場合は、 イベント検知は自動的に停止します。イベント検知を再開する場合には、 レジュームイベント処理において、再度本メソッドを呼び出してください。

パラメータ:
event - 検知イベントを指定します。 複数のイベントを指定可能です。指定する場合は、OR ( "|" ) で繋げて指定します。
例外:
com.docomostar.device.DeviceException -
(ILLEGAL_STATE)
既にイベント検知中の場合に発生します。
com.docomostar.device.DeviceException -
(ILLEGAL_STATE)
リスナが設定されていない場合に発生します。
IllegalArgumentException -
サポートしない検知イベントを指定した場合に発生します。

stopEventDetection

public void stopEventDetection()
ジャイロセンサ機能によるイベント検知を停止します。
停止しているときに呼ばれた場合、何もしません。

複数のイベント検知を行っている場合は、すべてのイベント検知を停止します。


setEventListener

public void setEventListener(GyroSensor2EventListener listener)
イベント検知機能で使用するイベントリスナを設定します。
引数 listener に null を指定すると、設定されているリスナを解除します。

パラメータ:
listener - リスナを指定します。
例外:
com.docomostar.device.DeviceException -
(ILLEGAL_STATE)
イベント検知中の場合に発生します。

calibrate

public void calibrate()
ジャイロセンサ機能のキャリブレーションを行います。

このメソッドは非同期メソッドです。 キャリブレーション中にこのメソッドを呼び出した場合、 呼び出しは無視されます。

EVENT_CALIBRATION_REQUIRED イベントの発生によらず、 このメソッドを呼び出すことでキャリブレーションを実行します。 キャリブレーション中は、水平にした状態で静止させておくなど、 キャリブレーションに必要な操作をユーザが行う必要があります。 なお、キャリブレーション中にこのアプリが Suspended 状態になった場合でも、 キャリブレーションは継続されます。

周期計測中にこのメソッドを呼び出すと 周期計測中の場合であることを示す例外 DeviceException(ILLEGAL_STATE) が発生します。

キャリブレーションが必要な場合には、 setEventListener() で指定したリスナに EVENT_CALIBRATION_REQUIRED イベントが通知されます。

このメソッド呼び出しによるキャリブレーションが完了した場合には、 setEventListener() で指定したリスナに EVENT_CALIBRATION_COMPLETED イベントが通知されます。

このメソッド呼び出しによるキャリブレーションが中断した場合には、 setEventListener() で指定したリスナに EVENT_CALIBRATION_INTERRUPTED イベントが通知されます。

例外:
com.docomostar.lang.IllegalStateException -
ジャイロセンサ機能が無効化されている場合に発生します。
com.docomostar.device.DeviceException -
(ILLEGAL_STATE)
ワンショット計測中、周期計測中の場合に発生します。

getCurrentData

public com.docomostar.device.location.GyroData getCurrentData()
クラス com.docomostar.device.location.GyroSensor の記述:
現在の角速度を計測し、結果を取得します(ワンショット計測)。

GyroData オブジェクトが保持する配列の値を、 ワンショット計測結果で上書きします。 その後、この GyroData オブジェクトへの参照を返します。 常に同じオブジェクトへの参照を返します。 返されるオブジェクトは、 GyroSensor.getData(), GyroSensor.peekLatestData() とは異なります。

本メソッドの実行に成功すると、 周期計測用の計測結果蓄積バッファはクリアされます。

オーバーライド:
クラス com.docomostar.device.location.GyroSensor 内の getCurrentData
戻り値:
ワンショット計測結果を格納した GyroData オブジェクトを返します。
例外:
com.docomostar.lang.IllegalStateException -
ジャイロセンサ機能が無効化されている場合に発生します。
com.docomostar.device.DeviceException -
(ILLEGAL_STATE)
周期計測中の場合に発生します。
com.docomostar.device.DeviceException -
(ILLEGAL_STATE)
キャリブレーション中の場合に発生します。

start

public void start(int interval,
                  boolean continuance)
クラス com.docomostar.device.location.GyroSensor の記述:

周期計測を開始します。指定した間隔毎に周期計測を行います。 実装がサポートしている計測間隔は、GyroSensor.getIntervalResolution() で得られる解像度の倍数です。 実装サポート値以外の計測間隔を指定した場合、指定した値以上で最も実装サポート値に近い値が指定されたものとして扱われます。

周期計測中にアプリケーションがサスペンドした場合に、 周期計測を継続するかどうかを指定することができます。 引数 continuance に、周期計測を継続する場合は true、 周期計測を停止する場合は false を指定します。
サスペンド時に周期計測を停止する場合、周期計測を再開させるためにはレジューム処理において、 再度本メソッドを呼び出して下さい。 サスペンド前の計測値は GyroSensor.getData()により取得して下さい。
端末がサスペンド発生時における周期計測の継続をサポートしていない場合、 引数 continuance に true を指定して本メソッドを呼び出すと、 UnsupportedOperationException が発生します。

計測結果は、実装内部の計測結果蓄積バッファに蓄積されていきます。 蓄積可能な最大データ数は、GyroSensor.getMaxDataSize() により取得できます。 最大データ数を超えると、蓄積されたデータの古いものから上書きします。 計測結果は、 getData() により、周期計測中および周期計測後に取得できます。 蓄積された計測結果は、次にワンショット計測、周期計測を行った場合、また GyroSensor.disposeData() 、 getData() を呼び出した場合、アプリケーションを終了した場合にクリアされます。

周期計測を停止させるためには、GyroSensor.stop() メソッドを使用します。 サスペンド時に周期計測を継続している場合も含め、 アプリケーションが終了した場合、周期計測は停止します。 また、周期計測中にジャイロセンサ機能が無効化された場合、 周期計測は停止します。

GyroSensor.getCurrentData() メソッド呼び出し中に 別のスレッドからこのメソッドが呼び出された場合、 getCurrentData() 呼び出し終了までこの メソッドの実行は遅延されます。

本メソッドの実行に成功すると、周期計測用の蓄積バッファはクリアされます。

オーバーライド:
クラス com.docomostar.device.location.GyroSensor 内の start
パラメータ:
interval - 周期計測の間隔をミリ秒単位で指定します。
continuance - サスペンド時に周期計測を継続するかどうかを指定します。
例外:
com.docomostar.lang.UnsupportedOperationException -
サスペンド発生時における周期計測の継続をサポートしていない場合に発生します。
IllegalArgumentException -
引数 interval の値が 0 以下の場合に発生します。
com.docomostar.lang.IllegalStateException -
ジャイロセンサ機能が無効化されている場合に発生します。
com.docomostar.device.DeviceException -
(ILLEGAL_STATE)
周期計測中の場合に発生します。
com.docomostar.device.DeviceException -
(ILLEGAL_STATE)
キャリブレーション中の場合に発生します。


NTT DOCOMO,INC.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。

その他記載された会社名、製品名などは該当する各社の商標または登録商標です。