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

DipSwitch、PushSwitch、LEDの情報を提供するMonostateクラス。 [詳解]

#include <BoardIO.h>

公開メンバ関数

std::uint16_t getDipSwitchBits () const
 DipSwitchのON/OFF状態ビット列を取得する。 [詳解]
 
std::uint16_t getDipSwitchAppValue () const
 DipSwitchのアプリ定義値を取得する。 [詳解]
 
bool isDipSwitchOn (std::size_t index) const
 DipSwitchのON/OFF状態を取得する。 [詳解]
 
bool isDipSwitchOn (DipSwitchPos pos) const
 DipSwitchのON/OFF状態を取得する。 [詳解]
 
std::uint16_t getPushSwitchBits () const
 PushSwitchのON/OFF状態ビット列を取得する。 [詳解]
 
bool isPushSwitchOn (std::size_t index) const
 PushSwitchのON/OFF状態を取得する。 [詳解]
 
void setLedState (std::size_t index, bool on, bool forceUpdate=false)
 LEDの状態を設定する。 [詳解]
 
std::uint16_t getCurrentLedStateBits () const
 現在設定されているLED状態ビット列を取得する。 [詳解]
 
bool isCurrentLedStateOn (std::size_t index) const
 現在設定されているLED状態が点灯状態であるか否かを取得する。 [詳解]
 

詳解

DipSwitch、PushSwitch、LEDの情報を提供するMonostateクラス。

参照
Input, Output

Core クラスのメンバ関数 Core::execute 呼び出しによって内容が更新される。

DipSwitchやPushSwitchの生入力値を取得したり、LEDを直接操作したい場合に用いる。 ID付けされた入出力処理を行う場合はこのクラスではなく Input クラスや Output クラスを用いること。

Output クラスとはLED出力値を共有しており、 どちらか一方で設定した出力値はもう一方にも反映される。

ライブラリ利用アプリで実装すべきこと(Nuシリーズタイトルのみ)
  • isPushSwitchOn(0) が true を返した場合、 Sequence クラスのメンバ関数 Sequence::beginTest を呼び出し、 ゲームテストモードへ遷移すること。
    • BoardIO クラス単体では「ちょうど押した時」の判定ができない。 また、I/Oボードが接続されている場合、 そのTESTスイッチがON状態になった場合にも同様の処理を行う必要がある。 これらを解決・一元化するために、 Input クラスの利用を推奨する。
プラットフォーム情報
  • ALLSシリーズにはPushSwitch、LEDが搭載されておらず、下記のように扱われる。
    • すべてのPushSwitchは常にOFF状態として扱われる。
    • すべてのLEDは常に消灯状態として扱われ、状態設定は必ず失敗する。
  • ALLSシリーズにおけるDipSwitchは、 システムテストモードで設定できる汎用フラグ値のビット列を表す。

関数詳解

std::uint16_t amdaemon::BoardIO::getDipSwitchBits ( ) const

DipSwitchのON/OFF状態ビット列を取得する。

戻り値
DipSwitchのON/OFF状態ビット列。

ON状態の場合、対応するビットは 1 になる。 OFF状態の場合、対応するビットは 0 となる。 各ビットはDipSwitchのインデックスに対応している。

iostream との親和性のために戻り値の型を std::uint16_t としているが、 実際に値が入るのは下位 amdaemon::DipSwitchCount ビットまでとなる。

ビット演算を行いたくない場合、メンバ関数 isDipSwitchOn で各DipSwitchの 状態を個別に取得するか、 std::bitset クラスで戻り値をラップするとよい。

// メンバ関数 getDipSwitchBits の戻り値を bitset に変換
std::bitset<amdaemon::DipSwitchCount> bits(system.getDipSwitchBits());
プラットフォーム情報
  • Nuシリーズの場合、この値はDaemonプロセスの起動時に取得され、 以降DipSwitchを操作しても変化しない。
    • 変更したDipSwitch状態を反映するためにはDaemonプロセスを再起動する必要がある。
  • ALLSシリーズの場合、 この値はシステムテストモードで設定できる汎用フラグ値のビット列を表す。
std::uint16_t amdaemon::BoardIO::getDipSwitchAppValue ( ) const

DipSwitchのアプリ定義値を取得する。

戻り値
DipSwitchのアプリ定義値。
プラットフォーム情報
  • Nuシリーズの場合、インデックス 0, 1, 2 のDipSwitch状態により表される値を返す。
  • ALLSシリーズの場合、メンバ関数 getDipSwitchBits と同じ値を返す。
bool amdaemon::BoardIO::isDipSwitchOn ( std::size_t  index) const

DipSwitchのON/OFF状態を取得する。

引数
[in]indexDipSwitchインデックス。
戻り値
trueON状態である場合。
falseOFF状態である場合。
例外
Exception引数 index に amdaemon::DipSwitchCount 以上の値を指定した場合。
bool amdaemon::BoardIO::isDipSwitchOn ( DipSwitchPos  pos) const
inline

DipSwitchのON/OFF状態を取得する。

引数
[in]posDipSwitch位置。
戻り値
trueON状態である場合。
falseOFF状態である場合。
例外
Exception引数 pos に不正な値を指定した場合。
std::uint16_t amdaemon::BoardIO::getPushSwitchBits ( ) const

PushSwitchのON/OFF状態ビット列を取得する。

戻り値
PushSwitchのON/OFF状態ビット列。

ON状態の場合、対応するビットは 1 になる。 それ以外の場合、対応するビットは 0 となる。 各ビットはPushSwitchのインデックスに対応している。

iostream との親和性のために戻り値の型を std::uint16_t としているが、 実際に値が入るのは下位 amdaemon::PushSwitchCount ビットまでとなる。

ビット演算を行いたくない場合、メンバ関数 isPushSwitchOn で各PushSwitchの 状態を個別に取得するか、 std::bitset クラスで戻り値をラップするとよい。

bool amdaemon::BoardIO::isPushSwitchOn ( std::size_t  index) const

PushSwitchのON/OFF状態を取得する。

引数
[in]indexPushSwitchインデックス。
戻り値
trueON状態である場合。
falseOFF状態である場合。
例外
Exception引数 index に amdaemon::PushSwitchCount 以上の値を指定した場合。
void amdaemon::BoardIO::setLedState ( std::size_t  index,
bool  on,
bool  forceUpdate = false 
)

LEDの状態を設定する。

引数
[in]indexLEDインデックス。
[in]on点灯状態にするならば true 、消灯状態にするならば false 。
[in]forceUpdate値が変化しない場合も更新要求するならば true 。既定値は false 。
例外
Exception引数 index に amdaemon::BoardLedCount 以上の値を指定した場合。

この関数で指定しても即座に更新されるわけではなく、 Core クラスのメンバ関数 Core::execute 呼び出しによって更新される。

std::uint16_t amdaemon::BoardIO::getCurrentLedStateBits ( ) const

現在設定されているLED状態ビット列を取得する。

戻り値
現在設定されているLED状態ビット列。

現在ライブラリ内で保持しているLED状態を返す。 起動直後などは、実際のLEDがこの状態になっているとは限らない。

点灯状態の場合、対応するビットは 1 になる。 消灯状態の場合、対応するビットは 0 となる。 各ビットはLEDのインデックスに対応している。

iostream との親和性のために戻り値の型を std::uint16_t としているが、 実際に値が入るのは下位 amdaemon::BoardLedCount ビットまでとなる。

ビット演算を行いたくない場合、メンバ関数 isCurrentLedStateOn で各LED状態を 個別に取得するか、 std::bitset クラスで戻り値をラップするとよい。

bool amdaemon::BoardIO::isCurrentLedStateOn ( std::size_t  index) const

現在設定されているLED状態が点灯状態であるか否かを取得する。

引数
[in]indexLEDインデックス。
戻り値
true点灯状態である場合。
false消灯状態である場合。
例外
Exception引数 index に amdaemon::BoardLedCount 以上の値を指定した場合。

現在ライブラリ内で保持しているLED状態を返す。 起動直後などは、実際のLEDがこの状態になっているとは限らない。


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