SDC C-Project CF Review 프로그램
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#pragma once
 
class CNetClient;
#include "IOCPNetwork/NetClient.h"
#include "CHSignalControls_Network/MessageProcessor.h"
 
namespace CHSignalControls_Network
{
    interface ISignalControl_NetClient2Parent
    {
        // Connected
        virtual int        ISCNC2P_Connected(int nModuleIndex, BOOL bConnect) = 0;
        // status
        virtual int        ISCNC2P_StatusCamera(int nModuleIndex, int nControl) = 0;
        virtual int        ISCNC2P_StatusLight(int nModuleIndex, int nLight) = 0;
        virtual int        ISCNC2P_StatusLens(int nModuleIndex, int nLens) = 0;
        virtual int        ISCNC2P_StatusModulePos(int nModuleIndex, int nMotorUmX, int nMotorUmY, int nGlassUmX, int nGlassUmY) = 0;
        virtual int        ISCNC2P_StatusJogSpeed(int nModuleIndex, double dJogSpeed) = 0;
        virtual int        ISCNC2P_StatusAfm(int nModuleIndex, int nAfm) = 0;
 
        // command
        virtual int        ISCNC2P_Command_Loading(int nModuleIndex, const char *pTransferData) = 0;
        virtual int        ISCNC2P_Command_ReviewResult(int nModuleIndex,int nReviewModuleIndex, int nPlanIndex, int nResultCount,const char *pResultData, int nMagLevel =0, int nDrsEtcCount = 100) = 0;
        virtual int        ISCNC2P_Command_PlanStart(int nModuleIndex, int nPlanIndex) = 0;
        virtual int        ISCNC2P_Command_PlanEnd(int nModuleIndex, int nPlanIndex) = 0;
 
        // ack
        virtual void    ISCNC2P_AckCommandCamera(int nModuleIndex) = 0;
        virtual void    ISCNC2P_AckCommandLight(int nModuleIndex) = 0;
        virtual void    ISCNC2P_AckCommandLens(int nModuleIndex) = 0;
        virtual void    ISCNC2P_AckCommandMotorGo(int nModuleIndex) = 0;
        virtual void    ISCNC2P_AckCommandGlassGo(int nModuleIndex) = 0;
        virtual void    ISCNC2P_AckCommandJog(int nModuleIndex) = 0;
        virtual void    ISCNC2P_AckCommandJogSpeed(int nModuleIndex) = 0;
        virtual void    ISCNC2P_AckCommandAfm(int nModuleIndex) = 0;
        virtual void    ISCNC2P_AckCommandAfmJog(int nModuleIndex) = 0;
        virtual void    ISCNC2P_AckCommandAfmJogSpeed(int nModuleIndex) = 0;
        virtual void    ISCNC2P_AckCommandAfmHome(int nModuleIndex) = 0;
 
        virtual void    ISCNC2P_DisplayMessage(const TCHAR* lpstrFormat, ...) = 0;
    };
 
    class AFX_EXT_CLASS CSignalControl_NetClient :    public IIOCPNetwork2Parent, 
                                                    public IMessageProcessor2Parent
    {
    public:
        CSignalControl_NetClient(int nIndex, ISignalControl_NetClient2Parent* pISCNC2P);
        virtual ~CSignalControl_NetClient(void);
 
        // func
        int Connect( const CString& strIPAddress );
        int Disconnect();
 
        // command
        virtual int Send_CommandLight(int nLight);
        virtual int Send_CommandLens(int nLens);
        virtual int Send_CommandMotorGo(int nPosUmX, int nPosUmY);
        virtual int Send_CommandGlassGo(int nPosUmX, int nPosUmY);
        virtual int Send_CommandJog(int nJog);
        virtual int Send_CommandJogSpeed(int nJogSpeed);
        virtual int Send_CommandAfm(int nAfm);
        virtual int Send_CommandAfmJog(int nJog);
        virtual int Send_CommandAfmJogSpeed(int nJogSpeed);
        virtual int Send_CommandAfmHome();
        virtual int    Send_StatusReviewResult(int nModuleIndex, int nPlanIndex, int nResultCount, char* pResultData);
        
 
    protected:
        // net 2 parent
        virtual void IOCPNet2P_Connected(int Type);
        virtual void IOCPNet2P_Disconnected(int Type, int nModuleNo = -1);
        virtual BOOL IOCPNet2P_Received(int Type, CNetPacket* pPacket, int nContext = -1);
 
        // message processor 2 parent
        virtual void IMP2P_ProcessMessageData(CMessageProcessData* pData);
    
        BOOL    InitNetwork( const CString& strIPAddress );
        void    DeinitNetwork();
 
        // status
        void    Process_StatusLight(int nModuleIndex, CNetPacket* pPacket);
        void    Process_StatusLens(int nModuleIndex, CNetPacket* pPacket);
        void    Process_StatusModulePos(int nModuleIndex, CNetPacket* pPacket);
        void    Process_StatusJogSpeed(int nModuleIndex, CNetPacket* pPacket);
        void    Process_StatusAfm(int nModuleIndex, CNetPacket* pPacket);
 
        // Command
        void    Process_CommandLoading(int nModuleIndex, CNetPacket* pPacket);
        void    Process_CommandReviewResult(int nModuleIndex, CNetPacket* pPacket);
        void    Process_CommandPlanStart(int nModuleIndex, CNetPacket* pPacket);
        void    Process_CommandPlanEnd(int nModuleIndex, CNetPacket* pPacket);
 
        // ack
        void    Process_AckModuleIndex(int nModuleIndex, int nContext);
        void    Process_AckCommandLight(int nModuleIndex, CNetPacket* pPacket);
        void    Process_AckCommandLens(int nModuleIndex, CNetPacket* pPacket);
        void    Process_AckCommandMotorGo(int nModuleIndex, CNetPacket* pPacket);
        void    Process_AckCommandGlassGo(int nModuleIndex, CNetPacket* pPacket);
        void    Process_AckCommandJog(int nModuleIndex, CNetPacket* pPacket);
        void    Process_AckCommandJogSpeed(int nModuleIndex, CNetPacket* pPacket);
        void    Process_AckCommandAfm(int nModuleIndex, CNetPacket* pPacket);
        void    Process_AckCommandAfmJog(int nModuleIndex, CNetPacket* pPacket);
        void    Process_AckCommandAfmJogSpeed(int nModuleIndex, CNetPacket* pPacket);
        void    Process_AckCommandAfmHome(int nModuleIndex, CNetPacket* pPacket);
            
    protected:
        int                                    m_nIndex;
        ISignalControl_NetClient2Parent*    m_pISCNC2P;
        CMessageProcessor*                    m_pMessageProcessor;
        CNetClient*                            m_pNetClient;
    };
};