AM Daemon ライブラリリファレンス
公開メンバ関数 | 全メンバ一覧
amdaemon::InputUnit クラス

カテゴリ単位のID付けされた入力情報を提供するクラス。 [詳解]

#include <InputUnit.h>

公開メンバ関数

 InputUnit (InnerIndexHolder)
 コンストラクタ。 [詳解]
 
bool exists (const InputId &id) const
 指定した識別IDの入力が存在するか否かを取得する。 [詳解]
 
std::int64_t getValue (const InputId &id) const
 入力値を取得する。 [詳解]
 
std::int64_t getDelta (const InputId &id) const
 前フレームとの入力値の差分値を取得する。 [詳解]
 
std::int64_t getMinValue (const InputId &id) const
 入力値の取りうる最小値を取得する。 [詳解]
 
std::int64_t getMaxValue (const InputId &id) const
 入力値の取りうる最大値を取得する。 [詳解]
 
std::int64_t getDirectValue (const InputId &id) const
 入力の直値を取得する。 [詳解]
 
SwitchInput getSwitch (const InputId &id) const
 スイッチ入力ラッパを取得する。 [詳解]
 
AnalogInput getAnalog (const InputId &id, double minValue, double maxValue) const
 アナログ入力ラッパを取得する。 [詳解]
 
AnalogInput getAnalog (const InputId &id, double maxValue=1) const
 アナログ入力ラッパを取得する。 [詳解]
 

詳解

カテゴリ単位のID付けされた入力情報を提供するクラス。

参照
Input, Player

このクラスのインスタンスをアプリ側で直接生成することはできない。 Input クラスのメンバ関数 Input::getSystem および Input::getPlayer から取得すること。

入力識別ID値は文字列から作成できる。 アプリ実装においては、定数を定義してそれを用いることを推奨する。

namespace inputs
{
}

有効な入力識別IDそのものはDaemonプロセスの設定ファイルで定義する。

スイッチ入力は SwitchInput クラス、アナログ入力は AnalogInput クラスで それぞれラップして入力値を取得することを推奨する。 メンバ関数 getSwitch および getAnalog で各ラッパを取得できる。

構築子と解体子

amdaemon::InputUnit::InputUnit ( InnerIndexHolder  )
explicit

コンストラクタ。

覚え書き
アプリ側からは利用できない。

関数詳解

bool amdaemon::InputUnit::exists ( const InputId id) const

指定した識別IDの入力が存在するか否かを取得する。

引数
[in]id入力識別ID。
戻り値
true存在する場合。
false存在しない場合。
std::int64_t amdaemon::InputUnit::getValue ( const InputId id) const

入力値を取得する。

引数
[in]id入力識別ID。
戻り値
入力値。入力元デバイスにより値の意味は異なる。
例外
Exception引数 id に存在しない入力識別IDを指定した場合。
  • PushSwitchおよびI/Oボードスイッチ入力の場合、 ON状態ならば 1 、OFF状態ならば 0 を返す。
  • I/Oボードアナログ入力の場合、有効ビット数分になるよう直値を右シフトした値を返す。 値の最小値は 1 となる。
  • I/Oボードロータリ入力の場合、前フレームとの差分値を返す。 値の範囲は -32768 以上 +32768 以下となる。
std::int64_t amdaemon::InputUnit::getDelta ( const InputId id) const

前フレームとの入力値の差分値を取得する。

引数
[in]id入力識別ID。
戻り値
前フレームとの入力値の差分値。
例外
Exception引数 id に存在しない入力識別IDを指定した場合。

入力値がどのような意味を持っていようと関係なく一律で 前フレームの入力値と現在フレームの入力値との差分値を返す。

std::int64_t amdaemon::InputUnit::getMinValue ( const InputId id) const

入力値の取りうる最小値を取得する。

引数
[in]id入力識別ID。
戻り値
入力値の取りうる最小値。
例外
Exception引数 id に存在しない入力識別IDを指定した場合。
std::int64_t amdaemon::InputUnit::getMaxValue ( const InputId id) const

入力値の取りうる最大値を取得する。

引数
[in]id入力識別ID。
戻り値
入力値の取りうる最大値。
例外
Exception引数 id に存在しない入力識別IDを指定した場合。
std::int64_t amdaemon::InputUnit::getDirectValue ( const InputId id) const

入力の直値を取得する。

引数
[in]id入力識別ID。
戻り値
入力の直値。入力元デバイスにより値の意味は異なる。
例外
Exception引数 id に存在しない入力識別IDを指定した場合。

ゲームテストモード等で直値の表示が必要となる場合に用いる。 通常はこちらではなくメンバ関数 getValue を用いること。

  • I/Oボードアナログ入力の場合、 0 以上 UINT16_MAX 以下の直値を返す。
  • I/Oボードロータリ入力の場合、 0 以上 UINT16_MAX 以下の直値を返す。
  • 上記以外の入力の場合、メンバ関数 getValue と同じ値を返す。
SwitchInput amdaemon::InputUnit::getSwitch ( const InputId id) const
inline

スイッチ入力ラッパを取得する。

引数
[in]id入力識別ID。
戻り値
スイッチ入力ラッパ。

引数 id に存在しない入力識別IDを指定した場合でもラッパを取得できる。 ただしラッパのメンバ関数 SwitchInput::exists は false を返す。

AnalogInput amdaemon::InputUnit::getAnalog ( const InputId id,
double  minValue,
double  maxValue 
) const
inline

アナログ入力ラッパを取得する。

引数
[in]id入力識別ID。
[in]minValue最小値を線形変換した時の値。
[in]maxValue最大値を線形変換した時の値。
戻り値
アナログ入力ラッパ。
例外
Exception引数 minValue または maxValue に非数値(NAN等)を指定した場合。

引数 id に存在しない入力識別IDを指定した場合でもラッパを取得できる。 ただしラッパのメンバ関数 AnalogInput::exists は false を返す。

AnalogInput amdaemon::InputUnit::getAnalog ( const InputId id,
double  maxValue = 1 
) const
inline

アナログ入力ラッパを取得する。

引数
[in]id入力識別ID。
[in]maxValue最大値を線形変換した時の値。既定値は 1.0 。
戻り値
アナログ入力ラッパ。
例外
Exception引数 maxValue に非数値(NAN等)を指定した場合。

最小値を線形変換した時の値は 0.0 となる。

引数 id に存在しない入力識別IDを指定した場合でもラッパを取得できる。 ただしラッパのメンバ関数 AnalogInput::exists は false を返す。


このクラス詳解は次のファイルから抽出されました: