AM Daemon ライブラリリファレンス
AnalogOutput.h
[詳解]
1 /// @file
2 /// @brief OutputUnit クラスにアナログ出力値を設定するラッパクラス AnalogOutput のヘッダ。
3 ///
4 /// Copyright(C)SEGA
5 
6 #ifndef AMDAEMON_ANALOGOUTPUT_H
7 #define AMDAEMON_ANALOGOUTPUT_H
8 
9 #include "amdaemon/env.h"
10 #include "amdaemon/OutputId.h"
11 
12 namespace amdaemon
13 {
14 /// @addtogroup g_io
15 /// @{
16 
17  // OutputUnit クラスの前方宣言
18  class OutputUnit;
19 
20  /// @brief OutputUnit クラスにアナログ出力値を設定するラッパクラス。
21  /// @see Output, OutputUnit
22  ///
23  /// 出力を線形変換された値で行いたい場合等に用いる。
25  {
26  public:
27  /// @brief コンストラクタ。
28  /// @param[in] unit OutputUnit インスタンス参照。
29  /// @param[in] id 出力識別ID。
30  /// @param[in] minValue 線形変換された最小値として用いる値。
31  /// @param[in] maxValue 線形変換された最大値として用いる値。
32  ///
33  /// @exception Exception
34  /// 引数 minValue または maxValue に非数値(NAN等)を指定した場合。
35  ///
36  /// 引数 id に存在しない出力識別IDを指定した場合でも例外は発生しない。
37  /// ただしメンバ関数 #exists は false を返す。
38  ///
39  /// (minValue >= maxValue) となるような値も指定可能である。
40  /// その場合、アナログ出力設定値が単調増加すると直値が単調減少するような
41  /// 計算が行われる。
43  OutputUnit& unit,
44  const OutputId& id,
45  double minValue,
46  double maxValue);
47 
48  /// @brief コンストラクタ。
49  /// @param[in] unit OutputUnit インスタンス参照。
50  /// @param[in] id 出力識別ID。
51  /// @param[in] maxValue 線形変換された最大値として用いる値。既定値は 1.0 。
52  ///
53  /// @exception Exception
54  /// 引数 maxValue に非数値(NAN等)を指定した場合。
55  ///
56  /// @ref #AnalogOutput "AnalogOutput(unit, id, 0, maxValue)" と同義。
58  OutputUnit& unit,
59  const OutputId& id,
60  double maxValue = 1);
61 
62  // 下記は暗黙の定義を用いる。
63  //AnalogOutput(const AnalogOutput&) = default;
64  //‾AnalogOutput() = default;
65  //AnalogOutput& operator=(const AnalogOutput&) = default;
66 
67  /// @brief 出力が存在するか否かを取得する。
68  /// @retval true 存在する場合。
69  /// @retval false 存在しない場合。
70  bool exists() const;
71 
72  /// @brief 線形変換された出力値を設定する。
73  /// @param[in] value 線形変換された出力値。
74  /// @param[in] forceUpdate
75  /// 値が変化しない場合も更新要求するならば true 。既定値は false 。
76  ///
77  /// @exception Exception
78  /// 引数 value に有効範囲外の値を指定した場合。
79  ///
80  /// 出力が存在しない場合は何もしない。
81  void setValue(double value, bool forceUpdate = false);
82 
83  /// @brief 現在の出力値を線形変換した値を取得する。
84  /// @return 現在の出力値を線形変換した値。出力が存在しない場合は最小値。
85  ///
86  /// 現在ライブラリ内で保持している値を線形変換して返す。
87  /// 起動直後などは、実デバイスにこの値が設定されているとは限らない。
88  double getCurrentValue() const;
89 
90  /// @brief 線形変換された最小値として用いる値を取得する。
91  /// @return 線形変換された最小値として用いる値。
92  ///
93  /// メンバ関数 #getMaxValue の戻り値より大きい値になりうる。
94  double getMinValue() const
95  {
96  return _minValue;
97  }
98 
99  /// @brief 線形変換された最大値として用いる値を取得する。
100  /// @return 線形変換された最大値として用いる値。
101  ///
102  /// メンバ関数 #getMinValue の戻り値より小さい値になりうる。
103  double getMaxValue() const
104  {
105  return _maxValue;
106  }
107 
108  private:
109  OutputUnit* _unit; ///< OutputUnit インスタンス参照。
110  OutputId _id; ///< 出力識別ID。
111  double _minValue; ///< 線形変換された最小値として用いる値。
112  double _maxValue; ///< 線形変換された最大値として用いる値。
113  };
114 
115 /// @}
116 } // namespace amdaemon
117 
118 #endif // AMDAEMON_ANALOGOUTPUT_H
OutputUnit クラスにアナログ出力値を設定するラッパクラス。
Definition: AnalogOutput.h:24
double getMaxValue() const
線形変換された最大値として用いる値を取得する。
Definition: AnalogOutput.h:103
カテゴリ単位のID付けされた出力処理を行うクラス。
Definition: OutputUnit.h:52
抽象出力の識別ID型 OutputId のヘッダ。
Daemonライブラリの環境定義を行うヘッダ。
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
AnalogOutput(OutputUnit &unit, const OutputId &id, double minValue, double maxValue)
コンストラクタ。
double getMinValue() const
線形変換された最小値として用いる値を取得する。
Definition: AnalogOutput.h:94
bool exists() const
出力が存在するか否かを取得する。
double getCurrentValue() const
現在の出力値を線形変換した値を取得する。
void setValue(double value, bool forceUpdate=false)
線形変換された出力値を設定する。