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.
94 lines
2.4 KiB
C++
94 lines
2.4 KiB
C++
#pragma once
|
|
|
|
#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;"
|
|
|
|
|
|
#define NetData_MaxLen 1024*1024
|
|
|
|
enum CurRcvDataType//当前要接收的数据类型
|
|
{
|
|
DataType_String = 1, //接收文本
|
|
DataType_DXF, //接收DXF文件
|
|
DataType_MAK, //接收MAK文件
|
|
DataType_PAR, //接收MAK文件
|
|
DataType_CPRODUCT//接收Product对象
|
|
};
|
|
|
|
|
|
|
|
class CNetData
|
|
{
|
|
public:
|
|
CNetData ();
|
|
~CNetData ();
|
|
CurRcvDataType m_dataType;
|
|
bool SetData(CurRcvDataType DataType, int datalen, void* data);
|
|
char* m_Realdata;
|
|
int m_dataLen;
|
|
};
|
|
|
|
CNetData ::CNetData ()
|
|
{
|
|
m_Realdata = new char[NetData_MaxLen];
|
|
memset(m_Realdata, 0, NetData_MaxLen);
|
|
}
|
|
bool CNetData::SetData(CurRcvDataType DataType, int datalen,void* data)
|
|
{
|
|
m_dataType = DataType;
|
|
if (datalen>NetData_MaxLen)
|
|
{
|
|
return false;
|
|
}
|
|
memcpy(m_Realdata, data, datalen);
|
|
return true;
|
|
}
|
|
CNetData ::~CNetData ()
|
|
{
|
|
if (m_Realdata!=NULL)
|
|
{
|
|
delete[]m_Realdata;
|
|
m_Realdata = NULL;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// CServerMgr 命令目标
|
|
#include "DlgSW_XL_Flow.h"
|
|
#include "Product.h"
|
|
#include <vector>
|
|
using namespace std;
|
|
class CServerMgr : public CSocket
|
|
{
|
|
public:
|
|
CServerMgr();
|
|
virtual ~CServerMgr();
|
|
bool StartServer(int ListenPort = 2404);//启动服务
|
|
bool StopServer();//启动服务
|
|
void SetDlg(CDlgSW_XL_Flow * pdlg) { m_Dlg = pdlg; };
|
|
void BroadCast(CString msg);//广播,向所有连接对象发送此消息
|
|
CString m_RcvFileName=NULL; //接收到的文件名
|
|
CProduct m_RcvProduct; //接收到的CProduct对象
|
|
int m_RcvAreaIndex; //接收到的当前加工区域
|
|
int m_RcvCurTrackIndex; //接收到的当前加工轨道
|
|
int m_curAreaDataCnt = 0; //当前加工区域数据量.
|
|
static vector<CServerMgr*> ServerVec;//服务员的容器
|
|
private:
|
|
virtual void OnAccept(int nErrorCode);
|
|
virtual void OnClose(int nErrorCode);
|
|
virtual void OnReceive(int nErrorCode);
|
|
static void DeleteClientObject(CServerMgr* pConn);
|
|
CurRcvDataType m_CurRcvDataType = DataType_String;//当前要接收的数据类型
|
|
CDlgSW_XL_Flow * m_Dlg;
|
|
};
|
|
|
|
extern CServerMgr * gServer; |