uint8_t
型に限り別名定義があります。push_back()
メソッドを定義しています。末尾にデータを追記するタイプのアルゴリズムが使用可能になります。T
でサイズN
のコンテナを宣言します。宣言後に初期化のメソッドを呼び出します。smplbuf_local
は、内部に固定配列により領域を確保します。コンストラクタによる初期化も可能です。smplbuf_attach
では、使用するバッファの先頭ポインタT* buf
と配列の初期サイズsize
と最大サイズN
を指定します。コンストラクタによる初期化も可能です。smplbuf_heap
は、HEAP領域(解放は不可能だが随時確保可能なメモリ領域)にメモリを確保します。一度確保したら開放できない領域ですので通常はグローバル領域に定義します。領域確保はinit_heap()
で行います。コンストラクタによるメモリ確保はできません。必ずinit_heap()
を呼び出して利用してください。setup()
を推奨)に初期化関数init_local()
,attach()
,init_heap()
を呼び出すようにしてください。{ ... }
によるメンバーの初期化をできます。smplbuf_local
のローカル宣言でのコンストラクタでの利用を除き、初期化のメソッドを呼び出した後に有効です。smplbuf_local
, smplbuf_attach
, smplbuf_heap
)smplbuf_local
のローカル宣言、グローバル宣言は不可)c
を追加します。append()
の戻り値はbool
で、バッファが一杯で追加できないときにfalse
が返ります。pop_back()
は末尾のエントリを抹消します。ただしエントリのクリアはしません。empty()
は配列に要素が格納されていない場合にtrue
を戻します。is_end()
は反対に配列サイズ一杯まで要素が格納されているときにtrue
を戻します。size()
は配列の要素数を返します。capacity()
は配列の最大格納数を返します。reserve()
は配列のサイズを拡張します。配列が格納されていない領域はデフォルトで初期化されます。reserve_hear()
は配列の先頭部に指定したサイズの領域を確保します。コンテナオブジェクトからは参照できない領域となります。例えばパケットペイロードのヘッダ部分を読み飛ばした部分配列にアクセスするようなコンテナとして利用できるようにします。確保した領域を戻しすべてアクセスできるようにコンテナを戻すには確保時と同じ負の値を与えます。redim()
は利用領域のサイズを変更します。reserve()
と違い、未使用領域の初期化を行いません。i
に負の値を与えるとバッファー末尾からの要素となります。-1
の場合は末尾の要素、-2
は末尾から一つ手前となります。uint8_t
型の配列オブジェクト(smplbuf<uint8_t, *>
)は、mwx::stream
の派生オブジェクトに対して、そのまま出力できます。Serial
などmwx::stream
の派生オブジェクトに対して、バイト列を出力します。mwx::stream
では<<
演算子やprintfmt()
メソッドと行ったストリームに対してバイト列を出力するための関数・演算子が定義されています。uint8_t
型のsmplbufの配列を出力先と見立ててストリーム出力手続きを行えます。