📄 hbackthread.h
字号:
#if !defined(AFX_BACKTHREAD_H__06F548B1_9296_48A6_B55D_AFE68C41EC93__INCLUDED_)
#define AFX_BACKTHREAD_H__06F548B1_9296_48A6_B55D_AFE68C41EC93__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// backthread.h : header file
//
#include "HADOSpirit.h"
#include "HSerialPort.h"
///////////////////////////////////////////////////////////////////////////
// CHBackThread thread
#define MAX_WAIT_TIME INFINITE //等待时间
#define UM_BACKTHREAD_MSG WM_USER+600 //
#define BK_THREAD_MSG_STATE_BEGIN 0 //测试前
#define BK_THREAD_MSG_STATE_RETURN 1 //测试后
#define BK_THREAD_OPERATION_TEST_NETBAR 0 //网吧测试
#define BK_THREAD_OPERATION_TEST_CLIENT 1 //终端测试
#define BK_THREAD_OPERATION_SND 0 //要发送的数据
#define BK_THREAD_OPERATION_RCV 1 //接收到的数据
class AFX_EXT_CLASS CDataPoint
{
public:
CDataPoint(int nPort,int nOperation=BK_THREAD_OPERATION_SND,int nLength=0,WORD wAppLogSerial=0,unsigned char *bufData=NULL){
m_nOperation=nOperation;
m_nPort=nPort;
m_nLength=nLength;
m_wAppLogSerial=(WORD)wAppLogSerial;
m_pData=new BYTE[m_nLength+10];
memset(m_pData,0,m_nLength+10);
if(bufData!=NULL)memcpy(m_pData,bufData,m_nLength);
}
virtual ~CDataPoint(){
delete []m_pData;
};
void operator=(CDataPoint& other)
{
m_nOperation=other.m_nOperation;
m_nPort=other.m_nPort;
m_nLength=other.m_nLength;
m_pData=new BYTE[other.m_nLength];
memcpy(m_pData,other.m_pData,m_nLength);
m_wAppLogSerial=other.m_wAppLogSerial;
}
int m_nOperation;
int m_nPort;
int m_nLength;
WORD m_wAppLogSerial;
unsigned char *m_pData;
};
class AFX_EXT_CLASS CHBackThreadMsg
{
public:
CHBackThreadMsg(){
m_strData="";
m_nState=BK_THREAD_MSG_STATE_BEGIN;
m_nOperation=BK_THREAD_OPERATION_TEST_NETBAR;
m_strTime=COleDateTime::GetCurrentTime().Format(STR_TIME_FORMAT);
m_nResult=0;
m_nLogSerial=0;
};
CHBackThreadMsg(CHBackThreadMsg& other){
(*this)=other;
}
CHBackThreadMsg(CString strData,
int nOperation,
int nResult,
int nLogSerial=0,
int nState=BK_THREAD_MSG_STATE_RETURN,
CString strTime=""){
m_strData=strData;
m_nState=nState;
m_nOperation=nOperation;
if(strTime=="")strTime=COleDateTime::GetCurrentTime().Format(STR_TIME_FORMAT);
m_strTime=strTime;
m_nResult=nResult;
m_nLogSerial=nLogSerial;
}
~CHBackThreadMsg(){};
CHBackThreadMsg& operator=(CHBackThreadMsg& other){
m_strData=other.m_strData;
m_nState=other.m_nState;
m_nOperation=other.m_nOperation;
m_strTime=other.m_strTime;
m_nResult=other.m_nResult;
m_nLogSerial=other.m_nLogSerial;
return other;
}
int m_nState;
int m_nOperation;
int m_nResult;
int m_nLogSerial;
CString m_strData;
CString m_strTime;
};
class AFX_EXT_CLASS CHBackThreadData
{
public:
CHBackThreadData(){
m_nOperation=BK_THREAD_OPERATION_TEST_NETBAR;
m_strData="";
m_nLogSerial=0;
};
CHBackThreadData(CHBackThreadData& other){
(*this)=other;
};
~CHBackThreadData(){};
CHBackThreadData& operator=(CHBackThreadData& other){
m_nOperation=other.m_nOperation;
m_strData=other.m_strData;
m_nLogSerial=other.m_nLogSerial;
return other;
}
int m_nOperation;
int m_nLogSerial;
CString m_strData;
};
class AFX_EXT_CLASS CHBackThreadParam
{
public:
CHBackThreadParam(){
m_hSemphoreListHead=NULL;
m_hSemphoreList=NULL;
m_hAgentSemphoreArray=NULL;
m_pbNeedShowReceiveInfo=NULL;
m_pMainWnd=NULL;
m_pComArray=NULL;
m_plstHBackThreadData=NULL;
m_strConnection="";
}
CHBackThreadParam(CHBackThreadParam& other){
(*this)=other;
};
~CHBackThreadParam(){};
CHBackThreadParam& operator=(CHBackThreadParam& other){
m_hSemphoreListHead=other.m_hSemphoreListHead;
m_hSemphoreList=other.m_hSemphoreList;
m_hAgentSemphoreArray=other.m_hAgentSemphoreArray;
m_pbNeedShowReceiveInfo=other.m_pbNeedShowReceiveInfo;
m_pMainWnd=other.m_pMainWnd;
m_pComArray=other.m_pComArray;
m_plstHBackThreadData=other.m_plstHBackThreadData;
m_strConnection=other.m_strConnection;
return other;
}
HANDLE m_hSemphoreListHead;
HANDLE m_hSemphoreList;
HANDLE *m_hAgentSemphoreArray;
BOOL *m_pbNeedShowReceiveInfo;
CWnd *m_pMainWnd;
CHSerialPort *m_pComArray;
CPtrList *m_plstHBackThreadData;
CString m_strConnection;
};
class AFX_EXT_CLASS CHBackThread : public CWinThread,public CHADOSpirit
{
DECLARE_DYNCREATE(CHBackThread)
protected:
public:
CHBackThread(); // protected constructor used by dynamic creation
// Attributes
public:
// Operations
public:
void StartTestThread(CHBackThreadParam *pParam);
protected:
static UINT Thread_Test(LPVOID lpHBackThreadParam);
static UINT DoBackWork(CHBackThreadData *pHBackThreadData,CWnd *pWnd);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CHBackThread)
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
//}}AFX_VIRTUAL
// Implementation
protected:
public:
virtual ~CHBackThread();
// Generated message map functions
//{{AFX_MSG(CHBackThread)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_BACKTHREAD_H__06F548B1_9296_48A6_B55D_AFE68C41EC93__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -