このモジュールは、Vitcon IOTサーバーとの通信に使用されるIOTアイテムを定義したもので、
1つの抽象クラスと、ここから継承されている4つの派生クラスで構成されています。
Class
・IOTItem:基本抽象クラス
・IOTItemBin:binaryデータを扱う
・IOTItemInt:int32_t型のデータを扱う
・IOTItemFlo:float型のデータを扱う
・IOTItemStr:文字列データを扱う
・IOTItemPsh:Push通知の呼び出し時に使用
各派生クラスは、生成時に呼び出されるコンストラクタによって、データの転送方向が変化します。
Public Memeber Function
Common
抽象クラスで提供される仮想関数です。
・virtual const uint8_t * GetData():サーバーから取得した値をreturnする。
・virtual void SetData(const uint8_t *):サーバーに転送する値を設定する。
・virtual void Written():サーバーで値が書かれたときに実行される関数
Specific
派生クラスごとにそれぞれ存在するメンバー関数です。
・[type] Get():サーバーから取得した値をreturnする。クラスごとにreturnタイプが異
なる。
・void Set([type]):サーバーに転送する値を設定する。クラスごとに引数の型が異な
る。
Usage
各派生クラスは、引数がない形態、関数を引数として受け取る二つの形態のコンスト
ラクタを持ち、呼び出しコンストラクタによって、データの転送方向が変化します。
class IOTItemBin: public IOTItem
{
public:
IOTItemBin();
IOTItemBin(void (* func)(bool));
.
.
.
サーバーにデータを転送するように設定するためには、
IOTItemBin item; // Like this、transfer「item」data to server
サーバーに転送するデータを設定するためには、Set()関数を使用します。
void loop()
{
.
.
item.Set([data]);
.
.
アイテムを、サーバーからデータを持ってくるように設定するためには、
IOTItemBin item(callback_function); // This way、request「item」data from the
server
データを持ってくると、引数として渡されたcallback関数が呼び出され、該当関数からデータ処理が可能になります。
void callback_function(bool val)
{
.
.
blah blah
.
.
}
他のメンバー関数はVitconBrokerCommモジュールで使用するためのもので、ユーザーが
Set()
以外のメンバー関数を呼び出すことはありません。