AM Daemon ライブラリリファレンス
JvsAnalogInput.h
[詳解]
1 /// @file
2 /// @brief JVSアナログ入力情報を提供するクラス JvsAnalogInput のヘッダ。
3 ///
4 /// Copyright(C)SEGA
5 
6 #ifndef AMDAEMON_JVSANALOGINPUT_H
7 #define AMDAEMON_JVSANALOGINPUT_H
8 
9 #include "amdaemon/env.h"
11 
12 #include <vector>
13 #include <cstdint>
14 #include <cstddef>
15 
16 namespace amdaemon
17 {
18 /// @addtogroup g_jvs
19 /// @{
20 
21  // 内部クラスの前方宣言
22  class InnerIndexHolder;
23 
24  /// @brief JVSアナログ入力情報を提供するクラス。
25  /// @see Jvs, JvsNode
26  ///
27  /// このクラスのインスタンスをアプリ側で直接生成することはできない。
28  /// JvsNode クラスのメンバ関数 JvsNode#getAnalogInput から取得すること。
30  {
31  public:
32  /// @brief コンストラクタ。
33  /// @note アプリ側からは利用できない。
34  explicit JvsAnalogInput(InnerIndexHolder);
35 
36  // 下記は暗黙の定義を用いる。
37  //‾JvsAnalogInput() = default;
38 
39  /// @brief チャンネル数を取得する。
40  /// @return チャンネル数。
41  std::size_t getChannelCount() const;
42 
43  /// @brief 有効ビット数を取得する。
44  /// @return 有効ビット数。
45  ///
46  /// メンバ関数 #getValue で取得するアナログ値が上位何ビットまで有効であるかを返す。
47  /// 例えばこの関数が 10 を返す場合、下位 6 ビットは常に 0 となる。
48  std::size_t getValidBitCount() const;
49 
50  /// @brief 指定チャンネルのアナログ入力値を取得する。
51  /// @param[in] channelIndex チャンネルインデックス。
52  /// @return アナログ入力値。
53  ///
54  /// @exception Exception
55  /// 引数 channelIndex にチャンネル数以上の値を指定した場合。
56  /// チャンネル数はメンバ関数 #getChannelCount で取得できる。
57  ///
58  /// 具体的な値の意味はデバイス依存である。
59  /// 多くのデバイスは 0x8000 が中点となるように設計されている。
60  std::uint16_t getValue(std::size_t channelIndex) const;
61 
62  /// @brief アナログ入力値配列を取得する。
63  /// @return アナログ入力値配列。
64  ///
65  /// 範囲for文や各種アルゴリズム関数に渡すことを想定している。
66  ///
67  /// - チャンネル数を知りたいだけならばメンバ関数 #getChannelCount を用いること。
68  /// - 特定チャンネルのアナログ入力値を取得したいだけならばメンバ関数
69  /// #getValue を用いること。
70  std::vector<std::uint16_t> getValues() const
71  {
72  return
73  ::amdaemon::util::toContainer<decltype(getValues())>(
75  [this](std::size_t i) { return getValue(i); });
76  }
77 
78  private:
79  std::size_t _nodeIndex; ///< ノードインデックス。
80 
81  private:
82  // コピー禁止
83  JvsAnalogInput(const JvsAnalogInput&); // 宣言のみ
84  JvsAnalogInput& operator=(const JvsAnalogInput&); // 宣言のみ
85  };
86 
87 /// @}
88 } // namespace amdaemon
89 
90 #endif // AMDAEMON_JVSANALOGINPUT_H
std::size_t getValidBitCount() const
有効ビット数を取得する。
std::size_t getChannelCount() const
チャンネル数を取得する。
Daemonライブラリの環境定義を行うヘッダ。
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
コンテナクラス関連の便利処理を提供するヘッダ。
JvsAnalogInput(InnerIndexHolder)
コンストラクタ。
std::uint16_t getValue(std::size_t channelIndex) const
指定チャンネルのアナログ入力値を取得する。
JVSアナログ入力情報を提供するクラス。
Definition: JvsAnalogInput.h:29
std::vector< std::uint16_t > getValues() const
アナログ入力値配列を取得する。
Definition: JvsAnalogInput.h:70