センサー
Sensor behaviors
センサーの手続きを定型化したクラスを用意しています。
センサー取り扱いのための手続き
センサーの取り扱い前にWire.begin()
を実施しておいてください。スリープ復帰後は、Wireの再初期化は自動で行われるため特別な記述は必要ありません(注:ユーザコード上から明示的に Wire.end()
を呼び出した場合は、再初期化を wakeup()
に記述します)
読み出し開始後の手続きはセンサーの種類ごとに違いますが例えば<PAL_AMB>
のセンサーは2つとも時間経過を管理します。時間経過をセンサーオブジェクトに伝えるには process_ev()
メソッドを用います。
上記の例では1msおきのTickTimerを起点にして時間経過を伝えています。E_EVENT_TICK_TIMER
はセンサーオブジェクトに1msの経過を伝えるものです。
スリープ復帰などで十分な時間が経過したときは替わりにE_EVENT_START_UP
を渡します。センサーオブジェクトは速やかに読み出し可能として処理されます。
いずれの処理も現実世界の時間の経過と一致することを保証しているわけではありません。実際の経過時間が不足している場合は、センサーがエラーを返したり、期待しない値を返すことになります。
共通メソッド
setup()
センサーの初期化を行います。
begin(), end()
センサーの取得を開始, 終了する。
process_ev()
待ち時間処理のセンサーの場合はarg1
にE_EVENT_TICK_TIMER
またはE_EVENT_START_UP
を与え時間の経過を知らせます。このメソッド呼出し後に、必要な時間が経過していればavailableになり、センサー値の読み出しが可能になります。
available()
センサーが読み出し条件を満足したときにtrue
を返します。
probe()
(対応しているセンサーのみ)センサーが接続されているときにtrue
を返します。
probe()
直後の初回の通信が失敗することがある。
最終更新