リモコン移動作業ロボット:ソースコード:SerialSupport.h

#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();//チェックサムを確認
    
  };