|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#define ACTION_OPENFILE (CString)"OPEN_FILE;"//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
#define ACTION_TANSPRODUCTINFO (CString)"TRANS_PRODUCT;" //<2F><>Product
|
|
|
|
|
#define ACTION_COLLECT (CString)"COLLECT_DATA;" //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define ACTION_STARTWORK (CString)"START_WORK;" //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define ACTION_PAUSEWORK (CString)"PAUSE_WORK;" //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define ACTION_RESUMEWORK (CString)"RESUME_WORK;" //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define ACTION_EXITWORK (CString)"EXIT_WORK;" //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//#define ACTION_TRANSFILE (CString)"TRANS_FILE;"//<2F><><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
#define ACTION_SETSPECAILOBJ (CString)"SET_SPECAILOBJ;"//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define ACTION_BMARKSELOBJMODE (CString)"MARK_SELOBJMODE;"//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ӹ<EFBFBD>ģʽ
|
|
|
|
|
#define ACTION_SELECTOBJ (CString)"SELECT_OBJ;"//ѡ<><D1A1>OBJ
|
|
|
|
|
|
|
|
|
|
#define TRACK_1 (CString)"TRACK1;"
|
|
|
|
|
#define TRACK_2 (CString)"TRACK2;"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define NetData_MaxLen 1024*1024
|
|
|
|
|
|
|
|
|
|
enum CurRcvDataType//<2F><>ǰҪ<C7B0><D2AA><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
DataType_String = 1, //<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
|
|
|
|
|
DataType_DXF, //<2F><><EFBFBD><EFBFBD>DXF<58>ļ<EFBFBD>
|
|
|
|
|
DataType_MAK, //<2F><><EFBFBD><EFBFBD>MAK<41>ļ<EFBFBD>
|
|
|
|
|
DataType_PAR, //<2F><><EFBFBD><EFBFBD>MAK<41>ļ<EFBFBD>
|
|
|
|
|
DataType_CPRODUCT//<2F><><EFBFBD><EFBFBD>Product<63><74><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 <20><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>
|
|
|
|
|
#include "DlgSW_XL_Flow.h"
|
|
|
|
|
#include "Product.h"
|
|
|
|
|
#include <vector>
|
|
|
|
|
#include <thread>
|
|
|
|
|
using namespace std;
|
|
|
|
|
class CServerMgr : public CSocket
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
CServerMgr();
|
|
|
|
|
virtual ~CServerMgr();
|
|
|
|
|
bool StartServer(int ListenPort = 2404);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool StopServer();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void SetDlg(CDlgSW_XL_Flow * pdlg) { m_Dlg = pdlg; };
|
|
|
|
|
void BroadCast(CString msg);//<2F>㲥,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>Ϣ
|
|
|
|
|
CString m_RcvFileName=NULL; //<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|
|
|
|
CProduct m_RcvProduct; //<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>CProduct<63><74><EFBFBD><EFBFBD>
|
|
|
|
|
int m_RcvAreaIndex; //<2F><><EFBFBD>յ<EFBFBD><D5B5>ĵ<EFBFBD>ǰ<EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int m_RcvCurTrackIndex; //<2F><><EFBFBD>յ<EFBFBD><D5B5>ĵ<EFBFBD>ǰ<EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int m_curAreaDataCnt = 0; //<2F><>ǰ<EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
static vector<CServerMgr*> ServerVec;//<2F><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool m_bLogicErr = true;
|
|
|
|
|
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;//<2F><>ǰҪ<C7B0><D2AA><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CDlgSW_XL_Flow * m_Dlg;
|
|
|
|
|
|
|
|
|
|
thread m_workThread;
|
|
|
|
|
void StartMarkArea();
|
|
|
|
|
void PauseMark();
|
|
|
|
|
void ResumeMark();
|
|
|
|
|
void ExitMark();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern CServerMgr * gServer;
|