TWEFMT
パケット定義
書式を解釈して得られたデータ列は、受信したパケット情報が含まれます。ここでは、このデータ列のことをパケットデータと呼びます。
パケットデータはTwePacket
クラスで表現されます。TwePacket
クラスのデータを解釈することで、その種別を判定し、各アプリケーションや接続ハードウェアに応じたデータ構造となります。TwePacket
クラスは基底クラスでさらにパケット種別ごとの派生クラスとなります。
このオブジェクトは無線パケットのデータ量に準じたメモリ領域を消費し、また、アプリケーションでは多数のパケットを保持することも考えられます。メモリ管理を簡略化するためTwePacket
をスマートポインタstd:shared_ptr<TwePacket>
にて管理します。このスマートポインタをspTwePacket
にtypedef
しています。
以下に、TWELITE PALのパケットデータの場合のクラス関係を示します。TwePacketPal
の基底クラスの一つDataPal
はTWELITE PAL特有のデータを格納しています。TWELITE PALには、さらに接続されるセンサーパルによって格納すべきデータが異なります。TwePacketPal
からさらにPalAmb
やPalMot
を生成します。例えばPalAmb
には温室センサーの値や照度センサーの値が格納されます。このTwePacketPal
をスマートポインタspTwePacket
という形に生成するのがnewTwePacket()
です。
spTwePacket
型はスマートポインタですので、オブジェクトのコピー渡しによる記述を行うことで、コピーのオーバーヘッドを最小にしつつ、メモリーの管理を自動化できます。以下の例はパケットの履歴を管理する単純なクラスです。
最終更新