/*
* 作成日: 2008/05/07
*/
package jp.ac.fit.asura.nao;
/**
* @author $Author: sey $
*
* @version $Id: Sensor.java 717 2008-12-31 18:16:20Z sey $
* @param <T>
*
*/
public interface Sensor {
public enum Function {
ACCEL, GYRO, GPS, JOINT_ANGLE, JOINT_FORCE, FORCE, SWITCH, INERTIAL
}
/**
* センサーバッファを作成します.
*
* @return
*/
public SensorContext create();
/**
* センサーバッファの内容を現在のセンサー値でアップデートします.
*
* 与えられるセンサーバッファは{@link #create()}によって作成されたものでなければなりません.
*
* @param context
*/
public void update(SensorContext context);
/**
* 新たなセンサー値が得られるまで待機します.
*/
public void poll();
/**
* funcで示される機能がこのセンサーで利用可能かどうかを問い合わせます.
*
* @param func
* 問い合わせるセンサーの機能
* @return 機能が利用可能かどうか. 利用可能であればtrue,そうでなければfalse.
* @see Function
*/
public boolean isSupported(Function func);
public void init();
public void before();
public void after();
}