AM Daemon ライブラリリファレンス
総合概要
諸情報
モジュール
名前空間
クラス
ファイル
ファイル一覧
ファイルメンバ
include
amdaemon
AnalogInput.h
[詳解]
1
/// @file
2
/// @brief InputUnit クラスからアナログ入力を取得するラッパクラス AnalogInput のヘッダ。
3
///
4
/// Copyright(C)SEGA
5
6
#ifndef AMDAEMON_ANALOGINPUT_H
7
#define AMDAEMON_ANALOGINPUT_H
8
9
#include "
amdaemon/env.h
"
10
#include "
amdaemon/InputId.h
"
11
12
namespace
amdaemon
13
{
14
/// @addtogroup g_io
15
/// @{
16
17
// InputUnit クラスの前方宣言
18
class
InputUnit;
19
20
/// @brief InputUnit クラスからアナログ入力を取得するラッパクラス。
21
/// @see Input, InputUnit
22
///
23
/// I/Oボードアナログ入力等、入力値の線形変換を行いたい入力に対して用いる。
24
///
25
/// @code
26
/// #include "amdaemon/Input.h"
27
///
28
/// namespace inputs
29
/// {
30
/// // 定数宣言(実値は任意のソースファイルで定義する)
31
/// extern const amdaemon::InputId AnalogX;
32
/// extern const amdaemon::InputId AnalogY;
33
/// extern const amdaemon::InputId AnalogZ;
34
/// }
35
///
36
/// void foo()
37
/// {
38
/// amdaemon::Input input;
39
///
40
/// // InputUnit インスタンスから取得
41
/// // 0.0 以上 1.0 以下に線形変換する
42
/// const auto x = input.getPlayer(0).getAnalog(inputs::AnalogX);
43
///
44
/// // AnalogX のアナログ値を取得
45
/// double valueX = x.getValue();
46
///
47
/// // InputUnit インスタンスから取得
48
/// // -100.0 以上 100.0 以下に線形変換する
49
/// const auto y = input.getPlayer(0).getAnalog(inputs::AnalogY, -100, 100);
50
///
51
/// // AnalogY のアナログ差分値を取得
52
/// double deltaY = y.getDelta();
53
///
54
/// // InputUnit インスタンスから直接構築
55
/// // 0.0 以上 10.0 以下に線形変換する
56
/// const amdaemon::AnalogInput z(input.getPlayer(0), inputs::AnalogZ, 10);
57
///
58
/// // AnalogZ のアナログ値を取得
59
/// double valueZ = z.getValue();
60
/// }
61
/// @endcode
62
class
AnalogInput
63
{
64
public
:
65
/// @brief コンストラクタ。
66
/// @param[in] unit InputUnit インスタンス参照。
67
/// @param[in] id 入力識別ID。
68
/// @param[in] minValue 最小値を線形変換した時の値。
69
/// @param[in] maxValue 最大値を線形変換した時の値。
70
///
71
/// @exception Exception
72
/// 引数 minValue または maxValue に非数値(NAN等)を指定した場合。
73
///
74
/// 引数 id に存在しない入力識別IDを指定した場合でも例外は発生しない。
75
/// ただしメンバ関数 #exists は false を返す。
76
///
77
/// (minValue >= maxValue) となるような値も指定可能である。
78
/// その場合、元の値の単調増加に比例して単調減少するような線形変換が行われる。
79
AnalogInput
(
80
const
InputUnit
& unit,
81
const
InputId
&
id
,
82
double
minValue,
83
double
maxValue);
84
85
/// @brief コンストラクタ。
86
/// @param[in] unit InputUnit インスタンス参照。
87
/// @param[in] id 入力識別ID。
88
/// @param[in] maxValue 最大値を線形変換した時の値。既定値は 1.0 。
89
///
90
/// @exception Exception
91
/// 引数 maxValue に非数値(NAN等)を指定した場合。
92
///
93
/// @ref #AnalogInput "AnalogInput(unit, id, 0, maxValue)" と同義。
94
AnalogInput
(
const
InputUnit
& unit,
const
InputId
&
id
,
double
maxValue = 1);
95
96
// 下記は暗黙の定義を用いる。
97
//AnalogInput(const AnalogInput&) = default;
98
//‾AnalogInput() = default;
99
//AnalogInput& operator=(const AnalogInput&) = default;
100
101
/// @brief 入力が存在するか否かを取得する。
102
/// @retval true 存在する場合。
103
/// @retval false 存在しない場合。
104
bool
exists
()
const
;
105
106
/// @brief 線形変換された入力値を取得する。
107
/// @return 線形変換された入力値。入力が存在しない場合は最小値。
108
double
getValue
()
const
;
109
110
/// @brief 線形変換された入力差分値を取得する。
111
/// @return 線形変換された入力差分値。入力が存在しない場合は 0.0 。
112
double
getDelta
()
const
;
113
114
/// @brief 最小値を線形変換した時の値を取得する。
115
/// @return 最小値を線形変換した時の値。
116
///
117
/// メンバ関数 #getMaxValue の戻り値より大きい値になりうる。
118
double
getMinValue
()
const
119
{
120
return
_minValue;
121
}
122
123
/// @brief 最大値を線形変換した時の値を取得する。
124
/// @return 最大値を線形変換した時の値。
125
///
126
/// メンバ関数 #getMinValue の戻り値より小さい値になりうる。
127
double
getMaxValue
()
const
128
{
129
return
_maxValue;
130
}
131
132
private
:
133
const
InputUnit
* _unit;
///< InputUnit インスタンス参照。
134
InputId
_id;
///< 入力識別ID。
135
double
_minValue;
///< 最小値を線形変換した時の値。
136
double
_maxValue;
///< 最大値を線形変換した時の値。
137
};
138
139
/// @}
140
}
// namespace amdaemon
141
142
#endif // AMDAEMON_ANALOGINPUT_H
InputId.h
抽象入力の識別ID型 InputId のヘッダ。
env.h
Daemonライブラリの環境定義を行うヘッダ。
amdaemon
AM Daemon ライブラリクラス群の基底名前空間。
Definition:
Log.h:13
amdaemon::AnalogInput::getValue
double getValue() const
線形変換された入力値を取得する。
amdaemon::AnalogInput::getDelta
double getDelta() const
線形変換された入力差分値を取得する。
amdaemon::InputOutputId< InputIdTag >
amdaemon::AnalogInput::exists
bool exists() const
入力が存在するか否かを取得する。
amdaemon::AnalogInput::getMaxValue
double getMaxValue() const
最大値を線形変換した時の値を取得する。
Definition:
AnalogInput.h:127
amdaemon::AnalogInput
InputUnit クラスからアナログ入力を取得するラッパクラス。
Definition:
AnalogInput.h:62
amdaemon::InputUnit
カテゴリ単位のID付けされた入力情報を提供するクラス。
Definition:
InputUnit.h:50
amdaemon::AnalogInput::getMinValue
double getMinValue() const
最小値を線形変換した時の値を取得する。
Definition:
AnalogInput.h:118
amdaemon::AnalogInput::AnalogInput
AnalogInput(const InputUnit &unit, const InputId &id, double minValue, double maxValue)
コンストラクタ。
2018年07月31日(火) 15時54分14秒作成 - AM Daemon ライブラリリファレンス / 構成:
1.8.11