#pragma once #include "DitGlassRawStruct.h" #include #include "akCore/akFileUtil.h" class CRawResultReader { public: CRawResultReader(void); virtual ~CRawResultReader(void); protected: enum emReadProcessState { RPS_StateIdle = 0, RPS_StateFileRead, //Àб⠼öÇà Áß RPS_ResultReadOK, RPS_ResultReadFail, RPS_CmdFileRead, //Àб⠸í·É ¼öÇà RPS_CmdFileStop, //Àб⠸í·É ¼öÇà ÁßÁö RPS_Num }; public: void clear() { m_vecStackDefect.clear(); } BOOL RawMergeFileReadStart(char* pGlassID); BOOL RawMergeFileReadStop(BOOL bWait = TRUE); BOOL IsRead() { return m_nProcessState == RPS_ResultReadOK ? TRUE : FALSE; } int GetDefectNum() { return (int)m_vecStackDefect.size(); } _grmDefectData* GetDefect(int i) { return &m_vecStackDefect[i]; } BOOL readOptionFile(char* pFileName = NULL); BOOL getRawMergeUse() { return m_bStackUse; }; char* getRawMergeLocalPath() { return m_strLocalPath; }; protected: BOOL openFile(char* pGlassID); static void threadResultFileRead(void* pArg); int m_nThreadStackFileReadFlag; protected: char m_strConfigFile[MAX_PATH]; BOOL m_bStackUse; char m_strLocalPath[MAX_PATH]; emReadProcessState m_nProcessState;//-1:Àбâ½ÇÆÐ,0:Idle, 1:Àб⼺°ø, 2:Àбâ½Ãµµ(ÀбâÁß) std::vector<_grmDefectData> m_vecStackDefect; CString m_strGlassID; protected: char* getParsingData(char* pBuf, int nLen, CString* pOutData); char* getParsingData(char* pBuf, int nLen, int* pOutData); char* getParsingData(char* pBuf, int nLen, short* pOutData); };