SDC C-Project CF Review 프로그램
LYW
2021-07-09 6bb39b058bce38f80645e1e54d03a172f74dba3b
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
#pragma once
 
class CNetServer;
 
#include "IOCPNetwork/NetServer.h"
#include "CHSignalControls_Network/MessageProcessor.h"
#include "CHSignalControls_Network/SignalControlProcessor.h"
 
namespace CHSignalControls_Network
{
    interface ISignalControl_NetServer2Parent
    {
        // command
        virtual int        ISCNS2P_CommandLight(int nModuleIndex, int nLevel) = 0;
        virtual int        ISCNS2P_CommandLens(int nModuleIndex, int nLevel) = 0;
        virtual int        ISCNS2P_CommandMotorGo(int nModuleIndex, int nPosUmX, int nPosUmY) = 0;
        virtual int        ISCNS2P_CommandGlassGo(int nModuleIndex, int nPosUmX, int nPosUmY) = 0;
        virtual int        ISCNS2P_CommandJog(int nModuleIndex, int nJog) = 0;
        virtual int        ISCNS2P_CommandJogSpeed(int nModuleIndex, int nSpeed) = 0;
        virtual int        ISCNS2P_CommandAfm(int nModuleIndex, int nAfm) = 0;
        virtual int        ISCNS2P_CommandAfmJog(int nModuleIndex, int nJog) = 0;
        virtual int        ISCNS2P_CommandAfmJogSpeed(int nModuleIndex, int nSpeed) = 0;
        virtual int        ISCNS2P_CommandAfmHome(int nModuleIndex) = 0;
 
        // status
        virtual int        ISCNS2P_StatusReviewResult(int nModuleIndex, int nPlanIndex, int nResultCount, CSignalControlResultData* pResultData) = 0;
 
        // ack
        virtual void    ISCNS2P_AckStatusLight(int nModuleIndex) = 0;
        virtual void    ISCNS2P_AckStatusLens(int nModuleIndex) = 0;
        virtual void    ISCNS2P_AckStatusModulePos(int nModuleIndex) = 0;
        virtual void    ISCNS2P_AckStatusJogSpeed(int nModuleIndex) = 0;
        virtual void    ISCNS2P_AckStatusAfm(int nModuleIndex) = 0;
 
        virtual void    ISCNS2P_AckCommandLoading(int nModuleIndex) = 0;
        virtual void    ISCNS2P_AckCommandReviewResult(int nModuleIndex) = 0;
        virtual void    ISCNS2P_AckCommandPlanStart(int nModuleIndex) = 0;
        virtual void    ISCNS2P_AckCommandPlanEnd(int nModuleIndex) = 0;
 
        virtual void ISCNS2P_DisplayMessage(const TCHAR* lpstrFormat, ...) = 0;
    };
 
    class AFX_EXT_CLASS CSignalControl_NetServer :    public IIOCPNetwork2Parent,
                                                    public IMessageProcessor2Parent
    {
    public:
        CSignalControl_NetServer(ISignalControl_NetServer2Parent* pISCNS2P);
        virtual ~CSignalControl_NetServer(void);
 
        // 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);
 
        // command
        virtual int Send_StatusLight(int nModuleIndex, int nLight);
        virtual int Send_StatusLens(int nModuleIndex, int nLens);
        virtual int Send_StatusModulePos(int nModuleIndex, int nPosUmX, int nPosUmY);
        virtual int Send_StatusJogSpeed(int nModuleIndex, double dJogSpeed);
        virtual int Send_StatusAfm(int nModuleIndex, int nAfm);
 
        virtual int Send_CommandLoading(char* pTrasferData);
        virtual int Send_CommandReviewResult(int nModuleIndex, int nPlanIndex, int nResultCount, char* pResultData, int nMagLevel = 0,int nDrsEtcCount = 100);
        virtual int Send_CommandPlanStart(int nPlanIndex);
        virtual int Send_CommandPlanEnd(int nPlanIndex);
 
        BOOL    InitNetwork();
        void    DeinitNetwork();
 
    protected:
        // message processor 2 parent
        virtual void IMP2P_ProcessMessageData(CMessageProcessData* pData);
 
 
        // command
        void    Process_ModuleIndex(int nModuleIndex, int nContext);
        void    Process_CommandLight(int nModuleIndex, CNetPacket *pPacket);
        void    Process_CommandLens(int nModuleIndex, CNetPacket *pPacket);
        void    Process_CommandMotorGo(int nModuleIndex, CNetPacket *pPacket);
        void    Process_CommandGlassGo(int nModuleIndex, CNetPacket *pPacket);
        void    Process_CommandJog(int nModuleIndex, CNetPacket *pPacket);
        void    Process_CommandJogSpeed(int nModuleIndex, CNetPacket *pPacket);
        void    Process_CommandAfm(int nModuleIndex, CNetPacket *pPacket);
        void    Process_CommandAfmJog(int nModuleIndex, CNetPacket *pPacket);
        void    Process_CommandAfmJogSpeed(int nModuleIndex, CNetPacket *pPacket);
        void    Process_CommandAfmHome(int nModuleIndex, CNetPacket *pPacket);
 
        // status
        void    Process_StatusReviewResult(int nModuleIndex, CNetPacket *pPacket);
 
        // ack
        void    Process_AckStatusLight(int nModuleIndex, CNetPacket *pPacket);
        void    Process_AckStatusLens(int nModuleIndex, CNetPacket *pPacket);
        void    Process_AckStatusModulePos(int nModuleIndex, CNetPacket *pPacket);
        void    Process_AckStatusJogSpeed(int nModuleIndex, CNetPacket *pPacket);
        void    Process_AckStatusAfm(int nModuleIndex, CNetPacket *pPacket);
 
        void    Process_AckCommandLoading(int nModuleIndex, CNetPacket *pPacket);
        void    Process_AckCommandReviewResult(int nModuleIndex, CNetPacket *pPacket);
        void    Process_AckCommandPlanStart(int nModuleIndex, CNetPacket *pPacket);
        void    Process_AckCommandPlanEnd(int nModuleIndex, CNetPacket *pPacket);
 
    protected:
        ISignalControl_NetServer2Parent*    m_pISCNS2P;
        CMessageProcessor*                    m_pMessageProcessor;
        CNetServer*                            m_pNetServer;
        CCriticalSection                    m_csReceivePacket;
    };
};