SDC C-Project CF Review 프로그램
LYW
2021-06-07 b785acb6a38b295544c03f83caccf99368d1b598
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#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;
};