#pragma once #include "HexRecord.h" #include #include #include class CHexFile { enum eHexFileStatus { STATUS_OK, STATUS_OK_LAST_INDEX, ERR_INDEX_OUT_OF_BOUND }; public: CHexFile(void); ~CHexFile(void); int OpenDataFile(QString FilePath, bool CloseIfAlreadyParsed = true); int CloseOpenedHexFile(); int ParseData(void); unsigned int GetNBRecords(void); unsigned long GetFileSize(void); unsigned long GetFirmwareSize(void){return mFirmwareDataSize;} bool HexFileLoaded(void){return mFileOpened;} bool HexDataValid(void){return mFileParsed;} unsigned long GetTotalParsedRecords(void){return mTotalParsedRecords;} CHexRecord * GetRecord(int RecordIndex, int &Status); unsigned long mDiscardedRecords; unsigned long mTotalParsedRecords; private: QFile *mHexfileHandle; bool mFileOpened; bool mFileParsed; bool mRecordsListValid; //CArray mRecordsList; QList mRecordsList; // CHexRecord* mRecordsTable[0x3000]; unsigned int mRecordsTableSize; unsigned int mHighAddress; unsigned long mHexFileSize; unsigned long mFirmwareDataSize; };