You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
TwoLaserHead-PushJig/LaiPuLaser/ClientMgr.h

83 lines
2.9 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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