|
|
#pragma once
|
|
|
|
|
|
// CCientMgr 命令目标
|
|
|
#include "Product.h"
|
|
|
|
|
|
#define ACTION_OPENFILE (CString)"OPEN_FILE;"//打开文件
|
|
|
#define ACTION_TANSPRODUCTINFO (CString)"TRANS_PRODUCT;" //传Product
|
|
|
#define ACTION_STARTWORK (CString)"START_WORK;" //标刻指定区域
|
|
|
#define ACTION_TRANSFILE (CString)"TRANS_FILE;"//传文件
|
|
|
#define ACTION_SETSPECAILOBJ (CString)"SET_SPECAILOBJ;"//设置特殊对象
|
|
|
#define ACTION_BMARKSELOBJMODE (CString)"MARK_SELOBJMODE;"//设置选择加工模式
|
|
|
#define ACTION_SELECTOBJ (CString)"SELECT_OBJ;"//选择OBJ
|
|
|
|
|
|
|
|
|
#define TRACK_1 (CString)"TRACK1;"
|
|
|
#define TRACK_2 (CString)"TRACK2;"
|
|
|
|
|
|
class CClientMgr : public CSocket
|
|
|
{
|
|
|
public:
|
|
|
CClientMgr();
|
|
|
virtual ~CClientMgr();
|
|
|
bool Connect2Server();
|
|
|
void DisConnectServer();
|
|
|
|
|
|
void SendCmd_OpenFile(CString filePath); //发指令给副机,打开文件
|
|
|
|
|
|
void SendCmd_CollectData(); //发命令给副机,收集原始数据
|
|
|
|
|
|
void SendCmd_ProductInfo(CProduct product); //发Product变换内容给客户端(仿射参数)
|
|
|
|
|
|
void SendCmd_SetSpecialObj(); //发指令给副机,设置特殊对象
|
|
|
|
|
|
void SendCmd_SelObj(); //发指令给副机,使之选中本机已选择的Obj
|
|
|
|
|
|
void SendCmd_bMarkSelMode(int bMarkSel); //发指令给副机,设置是否为选择加工模式1是,0否
|
|
|
|
|
|
void SendCmd_StartLaserMark(int AreaIndex); //发指令给副机,标刻指定区域的数据
|
|
|
|
|
|
//void SendCmd_PauseLaserMark( ); //发指令给副机,标刻指定区域的数据
|
|
|
//void SendCmd_ResumeLaserMark( ); //发指令给副机,标刻指定区域的数据
|
|
|
//void SendCmd_AbortLaserMark(); //发指令给副机,标刻指定区域的数据
|
|
|
|
|
|
bool CheckServerDoneCmd(); //检测服务端是否完成上一条指令(必须完成才能发下一条)
|
|
|
|
|
|
|
|
|
void SetbDisableServer(bool bDis) { m_bDisableServer = bDis; }; //设置屏蔽副机
|
|
|
bool IsbDisableServer(){ return m_bDisableServer; }; //查询是否屏蔽副机
|
|
|
|
|
|
CString m_ClientIP ;
|
|
|
int m_ClientPort ;
|
|
|
bool m_bLastCmdFinished=true;//上一条指令,客户端是否完成.完成才能发下一条指令.
|
|
|
vector<int> m_SelObjIndexVec; //当前所有选中的Obj索引Vec
|
|
|
bool m_bDisableServer = false;//是否屏蔽副机
|
|
|
|
|
|
bool m_bAreaMarkDone= true;//上一条mark指令,客户端是否完成
|
|
|
bool m_bServerReady = false;//上一条指令,客户端是否完成
|
|
|
private:
|
|
|
|
|
|
virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0 );
|
|
|
virtual void OnReceive(int nErrorCode);
|
|
|
virtual void OnClose(int nErrorCode);
|
|
|
virtual void OnConnect(int nErrorCode);
|
|
|
|
|
|
//start--------------设定发送超时---------------------
|
|
|
private:
|
|
|
//virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0) override; //重写 加入超时
|
|
|
virtual BOOL Connect(LPCTSTR lpszHostAddress, UINT nHostPort); //重写 加入超时
|
|
|
BOOL SetTimeOut(UINT uTimeOut = 500);//ms级延时
|
|
|
BOOL KillTimeOut();
|
|
|
virtual BOOL OnMessagePending() override;
|
|
|
LONGLONG m_llDtStart;
|
|
|
UINT m_uTimeOut;
|
|
|
|
|
|
//end--------------设定读写超时相关---------------------
|
|
|
|
|
|
void SendCmd_TransFile(CString filePath);//给伺服端传文件(复制到共享盘,无通信)
|
|
|
void DoEvents();
|
|
|
bool m_bOnline = false;
|
|
|
};
|
|
|
|
|
|
extern CClientMgr * gClientMgr;
|