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

InputUnit クラスからアナログ入力を取得するラッパクラス。 [詳解]

#include <AnalogInput.h>

公開メンバ関数

 AnalogInput (const InputUnit &unit, const InputId &id, double minValue, double maxValue)
 コンストラクタ。 [詳解]
 
 AnalogInput (const InputUnit &unit, const InputId &id, double maxValue=1)
 コンストラクタ。 [詳解]
 
bool exists () const
 入力が存在するか否かを取得する。 [詳解]
 
double getValue () const
 線形変換された入力値を取得する。 [詳解]
 
double getDelta () const
 線形変換された入力差分値を取得する。 [詳解]
 
double getMinValue () const
 最小値を線形変換した時の値を取得する。 [詳解]
 
double getMaxValue () const
 最大値を線形変換した時の値を取得する。 [詳解]
 

詳解

InputUnit クラスからアナログ入力を取得するラッパクラス。

参照
Input, InputUnit

I/Oボードアナログ入力等、入力値の線形変換を行いたい入力に対して用いる。

#include "amdaemon/Input.h"
namespace inputs
{
// 定数宣言(実値は任意のソースファイルで定義する)
extern const amdaemon::InputId AnalogX;
extern const amdaemon::InputId AnalogY;
extern const amdaemon::InputId AnalogZ;
}
void foo()
{
// InputUnit インスタンスから取得
// 0.0 以上 1.0 以下に線形変換する
const auto x = input.getPlayer(0).getAnalog(inputs::AnalogX);
// AnalogX のアナログ値を取得
double valueX = x.getValue();
// InputUnit インスタンスから取得
// -100.0 以上 100.0 以下に線形変換する
const auto y = input.getPlayer(0).getAnalog(inputs::AnalogY, -100, 100);
// AnalogY のアナログ差分値を取得
double deltaY = y.getDelta();
// InputUnit インスタンスから直接構築
// 0.0 以上 10.0 以下に線形変換する
const amdaemon::AnalogInput z(input.getPlayer(0), inputs::AnalogZ, 10);
// AnalogZ のアナログ値を取得
double valueZ = z.getValue();
}

構築子と解体子

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

コンストラクタ。

引数
[in]unitInputUnit インスタンス参照。
[in]id入力識別ID。
[in]minValue最小値を線形変換した時の値。
[in]maxValue最大値を線形変換した時の値。
例外
Exception引数 minValue または maxValue に非数値(NAN等)を指定した場合。

引数 id に存在しない入力識別IDを指定した場合でも例外は発生しない。 ただしメンバ関数 exists は false を返す。

(minValue >= maxValue) となるような値も指定可能である。 その場合、元の値の単調増加に比例して単調減少するような線形変換が行われる。

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

コンストラクタ。

引数
[in]unitInputUnit インスタンス参照。
[in]id入力識別ID。
[in]maxValue最大値を線形変換した時の値。既定値は 1.0 。
例外
Exception引数 maxValue に非数値(NAN等)を指定した場合。

AnalogInput(unit, id, 0, maxValue) と同義。

関数詳解

bool amdaemon::AnalogInput::exists ( ) const

入力が存在するか否かを取得する。

戻り値
true存在する場合。
false存在しない場合。
double amdaemon::AnalogInput::getValue ( ) const

線形変換された入力値を取得する。

戻り値
線形変換された入力値。入力が存在しない場合は最小値。
double amdaemon::AnalogInput::getDelta ( ) const

線形変換された入力差分値を取得する。

戻り値
線形変換された入力差分値。入力が存在しない場合は 0.0 。
double amdaemon::AnalogInput::getMinValue ( ) const
inline

最小値を線形変換した時の値を取得する。

戻り値
最小値を線形変換した時の値。

メンバ関数 getMaxValue の戻り値より大きい値になりうる。

double amdaemon::AnalogInput::getMaxValue ( ) const
inline

最大値を線形変換した時の値を取得する。

戻り値
最大値を線形変換した時の値。

メンバ関数 getMinValue の戻り値より小さい値になりうる。


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