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