AM Daemon ライブラリリファレンス
|
CANボードから送信されたアクノリッジパケット情報を提供するクラス。 [詳解]
#include <CanAck.h>
公開メンバ関数 | |
CanAck (InnerIndexHolder, InnerIndexHolder, std::uint8_t) | |
コンストラクタ。 [詳解] | |
bool | exists () const |
パケットが存在するか否かを取得する。 [詳解] | |
std::uint8_t | getCommand () const |
命令コードを取得する。 [詳解] | |
bool | isError () const |
このインスタンスがコマンド処理結果ではなく エラーレポート情報を保持しているか否かを取得する。 [詳解] | |
CanErrorReport | getErrorReport () const |
エラーレポート種別を取得する。 [詳解] | |
const void * | getData () const |
パケットデータを取得する。 [詳解] | |
template<class Data > | |
auto | getDataAs () const -> typename std::enable_if< ::amdaemon::util::IsBinaryCopyable< Data >::value, const typename std::remove_cv< Data >::type & >::type |
パケットデータを指定した型の参照として取得する。 [詳解] | |
std::size_t | getDataSize () const |
パケットデータサイズを取得する。 [詳解] | |
CANボードから送信されたアクノリッジパケット情報を提供するクラス。
このクラスのインスタンスをアプリ側で直接生成することはできない。 CanTarget クラスのメンバ関数 CanTarget::getAck から取得すること。
CanTarget クラスから同じ命令コードのリクエストパケットを送信したり、 Core クラスのメンバ関数 Core::execute 呼び出しによって新しいアクノリッジパケットを 受け取った時点で、インスタンスの各メンバ関数が返す情報は更新される。 ある時点における情報を保持したい場合、各メンバ関数の戻り値をコピーしておくこと。
メンバ関数 isError が true を返す場合、 そのインスタンスは当該コマンドのアクノリッジパケット情報ではなく、 エラーレポート取得コマンド(命令コード値は CanErrorReportCommand)の アクノリッジパケット情報を返す。
amdaemon::CanAck::CanAck | ( | InnerIndexHolder | , |
InnerIndexHolder | , | ||
std::uint8_t | |||
) |
コンストラクタ。
|
inline |
パケットが存在するか否かを取得する。
true | 存在する場合。 |
false | 存在しない場合。 |
この関数が false を返す場合、他のメンバ関数の返す値を利用してはならない。
|
inline |
命令コードを取得する。
|
inline |
このインスタンスがコマンド処理結果ではなく エラーレポート情報を保持しているか否かを取得する。
true | エラーレポート情報を保持している場合。 |
false | コマンド処理結果を保持している場合。(正常時) |
CanErrorReport amdaemon::CanAck::getErrorReport | ( | ) | const |
エラーレポート種別を取得する。
const void* amdaemon::CanAck::getData | ( | ) | const |
パケットデータを取得する。
|
inline |
パケットデータを指定した型の参照として取得する。
Data | パケットデータ型。後述の要件を満たす型でなければならない。 |
Exception | パケットが存在しない場合。 |
メンバ関数 getData の戻り値を単純にキャストし、 const Data& 型として返す。 型 Data の const 修飾および volatile 修飾は取り除かれる。
型 Data は下記の要件をすべて満たす必要がある。
要するに、安全に std::memcpy によるコピーが可能な型である必要がある。 1つでも満たしていない場合はコンパイルエラーとなる。
std::size_t amdaemon::CanAck::getDataSize | ( | ) | const |
パケットデータサイズを取得する。