#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;
|
};
|
};
|