#pragma once #include "CHAutoDrsConnector/AutoDrsConnectorInfo.h" #include "CHThreadPools/WorkThreadPools.h" class CReceiveMessageData : public CWorkThreadData { public: CReceiveMessageData(PVOID pPtr) : CWorkThreadData(pPtr) { strReceiveMessage.Format(_T("")); } virtual ~CReceiveMessageData() { strReceiveMessage.Format(_T("")); } public: CString strReceiveMessage; }; class AFX_EXT_CLASS CAutoDrsConnector:public CWorkThreadPools { public: CAutoDrsConnector(int nIndex); virtual ~CAutoDrsConnector(void); // setter void SetIADC2P(IAutoDrsConnector2Parent* pADC2P) { m_pADC2P = pADC2P; } void SetIndex(int nIndex) { m_nIndex = nIndex; } // getter virtual BOOL GetConnected() const { return m_bConnected; } // pure virtual func virtual int Connect(const CAutoDrsConnectorInfo& connectorInfo) = 0; virtual void Disconnect() = 0; virtual BOOL SendCommand(const CAutoDrsCommandData* pCommandData ) = 0; virtual BOOL ReceiveResult(CAutoDrsResultData* pResultData) = 0; virtual BOOL ParsingData(const CString strResultPath,VectorAutoDrsResultData& vecAutoDrsResultData ) = 0; // Control Info CAutoDrsConnectorInfo GetConnectionInfo(); void SetConnectionInfo(CAutoDrsConnectorInfo connectorInfo); // TransferData const SDrsTransferData* GetTransferData(); void SetTransferData(SDrsTransferData &TransferData); virtual BOOL ParsingAutoDrsResult(char* strLineData, CAutoDrsResultData* pResultData) = 0; protected: // Make String CString GetLocationData( int nLocationIdx, int nSubTypeIdx ); CString GetStackData( int nStackIdx ); CString GetScanDirData( int nScanIdx ); virtual int AddReceiveResult(const CString& strReceiveMessage ); virtual void WorkThreadProcess(PVOID pParameter); protected: IAutoDrsConnector2Parent* m_pADC2P; CCriticalSection m_csSendData; CCriticalSection m_csReceiveData; int m_nIndex; BOOL m_bConnected; CAutoDrsCommandData* m_pCommandData; CAutoDrsResultData* m_pResultData; CAutoDrsConnectorInfo m_ConnectionInfo; SDrsTransferData m_TransferData; };