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

USB I/O のPWM出力処理を行うクラス。 [詳解]

#include <UsbIOPwmOutput.h>

公開メンバ関数

 UsbIOPwmOutput (InnerIndexHolder)
 コンストラクタ。 [詳解]
 
std::size_t getSlotCount () const
 PWM出力スロット数を取得する。 [詳解]
 
RequestState setDuties (const std::uint8_t *duties, std::size_t slotCount, bool forceUpdate=false)
 出力するデューティ値配列を設定する。 [詳解]
 
RequestState setDuties (const std::vector< std::uint8_t > &duties, std::size_t slotCount=SIZE_MAX, bool forceUpdate=false)
 出力するデューティ値配列を設定する。 [詳解]
 
template<std::size_t Count>
RequestState setDuties (const std::uint8_t(&duties)[Count], bool forceUpdate=false)
 出力するデューティ値配列を設定する。 [詳解]
 
RequestState resetDuties (bool forceUpdate=false)
 全デューティ値を 0 に設定する。 [詳解]
 
RequestState setDuty (std::size_t slotIndex, std::uint8_t duty, bool forceUpdate=false)
 出力するデューティ値を設定する。 [詳解]
 
const std::uint8_t * getCurrentDuties () const
 現在設定されているデューティ値配列を取得する。 [詳解]
 
std::uint8_t getCurrentDuty (std::size_t slotIndex) const
 現在設定されているデューティ値を取得する。 [詳解]
 

詳解

USB I/O のPWM出力処理を行うクラス。

参照
UsbIO, UsbIONode

このクラスのインスタンスをアプリ側で直接生成することはできない。 UsbIONode クラスのメンバ関数 UsbIONode::getPwmOutput から取得すること。

USB I/O のPWM(Pulse Width Modulation)出力を行う。

AM Daemon が標準でサポートするPWM出力は、PWM出力専用ポートに対するものである。 PWM出力と汎用出力の切替ができるポートに対する出力はユニークコマンド扱いとなるため、 このクラスではなく UsbIOUniqueOutput クラスを用いて処理すること。

構築子と解体子

amdaemon::UsbIOPwmOutput::UsbIOPwmOutput ( InnerIndexHolder  )
explicit

コンストラクタ。

覚え書き
アプリ側からは利用できない。

関数詳解

std::size_t amdaemon::UsbIOPwmOutput::getSlotCount ( ) const

PWM出力スロット数を取得する。

戻り値
PWM出力スロット数。
RequestState amdaemon::UsbIOPwmOutput::setDuties ( const std::uint8_t *  duties,
std::size_t  slotCount,
bool  forceUpdate = false 
)

出力するデューティ値配列を設定する。

引数
[in]duties出力するデューティ値配列。
[in]slotCountデューティ値配列の要素数。
[in]forceUpdate値が変化しない場合も更新要求するならば true 。既定値は false 。
戻り値
要求状態値。更新不要ならば無効値。
例外
Exception
  • 引数 duties に nullptr を指定した場合。
  • 引数 slotCount にPWM出力スロット数より大きな値を指定した場合。 PWM出力スロット数はメンバ関数 getSlotCount で取得できる。

この関数を呼び出しても即座に出力されるわけではない。 反映状況は戻り値の要求状態値で確認できる。

引数 forceUpdate が false かつ値が変化しない場合、更新不要と判断される。 その場合、戻り値の要求状態値は無効値となる。

この関数を同一フレーム内で複数回呼びだした場合、 最後の呼び出し時に指定した値のみが反映される。

RequestState amdaemon::UsbIOPwmOutput::setDuties ( const std::vector< std::uint8_t > &  duties,
std::size_t  slotCount = SIZE_MAX,
bool  forceUpdate = false 
)
inline

出力するデューティ値配列を設定する。

引数
[in]duties出力するデューティ値配列。
[in]slotCountデューティ値配列の要素数。既定値は SIZE_MAX (std::size_t 型の最大値)。 この値と duties.size() のうち小さい方の値が実際のサイズとして利用される。
[in]forceUpdate値が変化しない場合も更新要求するならば true 。既定値は false 。
戻り値
要求状態値。更新不要ならば無効値。
例外
Exception引数 slotCount にPWM出力スロット数より大きい値を指定し、 かつ引数 duties の要素数もPWM出力スロット数より大きい場合。 PWM出力スロット数はメンバ関数 getSlotCount で取得できる。

デューティ値を可変長配列型で指定するオーバロード。 挙動は setDuties(const std::uint8_t*, std::size_t, bool) オーバロードに準ずる。

template<std::size_t Count>
RequestState amdaemon::UsbIOPwmOutput::setDuties ( const std::uint8_t(&)  duties[Count],
bool  forceUpdate = false 
)
inline

出力するデューティ値配列を設定する。

テンプレート引数
Countデューティ値配列の要素数。
引数
[in]duties出力するデューティ値配列。
[in]forceUpdate値が変化しない場合も更新要求するならば true 。既定値は false 。
戻り値
要求状態値。更新不要ならば無効値。
例外
Exception引数 duties の要素数がPWM出力スロット数より大きい場合。 PWM出力スロット数はメンバ関数 getSlotCount で取得できる。

デューティ値を固定長配列型で指定するオーバロード。 挙動は setDuties(const std::uint8_t*, std::size_t, bool) オーバロードに準ずる。

RequestState amdaemon::UsbIOPwmOutput::resetDuties ( bool  forceUpdate = false)

全デューティ値を 0 に設定する。

引数
[in]forceUpdate値が変化しない場合も更新要求するならば true 。既定値は false 。
戻り値
要求状態値。更新不要ならば無効値。

メンバ関数 setDuties に全要素が 0 のデューティ値配列を渡すことと同義。

RequestState amdaemon::UsbIOPwmOutput::setDuty ( std::size_t  slotIndex,
std::uint8_t  duty,
bool  forceUpdate = false 
)

出力するデューティ値を設定する。

引数
[in]slotIndexスロットインデックス。
[in]dutyデューティ値。
[in]forceUpdate値が変化しない場合も更新要求するならば true 。既定値は false 。
戻り値
要求状態値。更新不要ならば無効値。
例外
Exception引数 slotIndex にPWM出力スロット数以上の値を指定した場合。 PWM出力スロット数はメンバ関数 getSlotCount で取得できる。

この関数を呼び出しても即座に出力されるわけではない。 反映状況は戻り値の要求状態値で確認できる。

引数 forceUpdate が false かつ値が変化しない場合、更新不要と判断される。 その場合、戻り値の要求状態値は無効値となる。

この関数を同一フレーム内で同一スロットインデックスに対して複数回呼びだした場合、 最後の呼び出し時に指定した値のみが反映される。 異なるスロットインデックスに対して呼びだした場合はマージされる。

const std::uint8_t* amdaemon::UsbIOPwmOutput::getCurrentDuties ( ) const

現在設定されているデューティ値配列を取得する。

戻り値
現在設定されているデューティ値配列。

現在ライブラリ内で保持しているデューティ値配列を返す。 起動直後などは、実デバイスにこの値が設定されているとは限らない。

std::uint8_t amdaemon::UsbIOPwmOutput::getCurrentDuty ( std::size_t  slotIndex) const

現在設定されているデューティ値を取得する。

引数
[in]slotIndexスロットインデックス。
戻り値
現在設定されているデューティ値。
例外
Exception引数 slotIndex にPWM出力スロット数以上の値を指定した場合。 PWM出力スロット数はメンバ関数 getSlotCount で取得できる。

現在ライブラリ内で保持しているデューティ値を返す。 起動直後などは、実デバイスにこの値が設定されているとは限らない。


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