#pragma once #include #include "akCore/akFileUtil.h" struct _StackDefect { int m_nDefectID ; char m_strCellID[32] ; int m_nPosX ; int m_nPosY ; int m_nSize ; char m_strJudge[16] ; char m_strCode[16] ; }; class CStackResultCSOT { public: CStackResultCSOT(void); virtual ~CStackResultCSOT(void); protected: enum emStackProcessState { SPS_StateIdle = 0, SPS_StateFileRead, //Àб⠼öÇà Áß SPS_ResultReadOK, SPS_ResultReadFail, SPS_CmdFileRead, //Àб⠸í·É ¼öÇà SPS_CmdFileStop, //Àб⠸í·É ¼öÇà ÁßÁö SPS_Num }; public: void clear() { m_vecMacroDefect.clear(); } BOOL StackFileReadStart(char* pGlassID); BOOL StackFileReadStop(BOOL bWait=TRUE); BOOL IsRead() { return m_nProcessState == SPS_ResultReadOK?TRUE:FALSE; } int GetDefectNum() { return (int)m_vecMacroDefect.size();} _StackDefect* GetDefect(int i) { return &m_vecMacroDefect[i]; } BOOL readOptionFile(char* pFileName = NULL); BOOL getStackUse(){return m_bStackUse;}; char* getStackEquipID(){return m_strEquipID;}; char* getStackOperID(){return m_strParam1;}; char* getStackLocalPath(){return m_strLocalPath;}; protected: BOOL openFile( char* pGlassID ); static void threadStackFileRead(void* pArg); int m_nThreadStackFileReadFlag; protected: char m_strConfigFile[MAX_PATH]; BOOL m_bStackUse; char m_strLocalPath[MAX_PATH]; char m_strEquipID[32]; char m_strParam1[32]; //operid emStackProcessState m_nProcessState;//-1:Àбâ½ÇÆÐ,0:Idle, 1:Àб⼺°ø, 2:Àбâ½Ãµµ(ÀбâÁß) std::vector<_StackDefect> m_vecMacroDefect; CString m_strGlassID; protected: char* getParsingData(char* pBuf, int nLen, CString* pOutData); char* getParsingData(char* pBuf, int nLen, int* pOutData); };