#pragma once
//SerialSupport.h
//copyright 2022 https://robot-creation-diary.com/
#define START_FLAG (0xFF)
#define END_FLAG (0xFE)
class CSerialSupport{
public:
CSerialSupport();
~CSerialSupport();
void SetSize(unsigned int dsize); // データサイズ変更:データは初期化される
void StretchSize(unsigned int dsize); // データサイズ変更:データは維持される。新たなデータサイズが小さくてもメモリは開放しない。大きいと確保後元データをコピーしたのち開放。
unsigned char GetIndexData(unsigned int i); // 指定番号のデータを取得
unsigned char* GetData(); // データの生データを取得
void ResetDataPosition(); // データ位置を0にする。
void SetDataPosition(unsigned int pos); // データ位置の設定
int GetDataPosition(); // データ位置の取得
bool AddData(unsigned char d); // データ位置にデータを追加。データ位置をインクリメントする
int GetLatestError(); // エラーコード取得
bool CheckPositionisChecksum(int position); // 指定の位置がチェックサムかどうか
bool CheckPositionisEnd(int position); // 指定の位置が、データの終了位置かどうか
int __GetDataDataSize(); //デバッグ用 入っているデータを返す
private:
unsigned char* mData; //データ
unsigned int mSize; //データ領域のの大きさ
int mDataPosition; //データの位置
int mError;
///////////////////////
public:
bool CheckDataError();//データにエラーがないか確認
private:
bool __CheckChecksum();//チェックサムを確認
};