www.pudn.com > RPort.rar > PortThread.h


#if !defined(AFX_PORTTHREAD_H__739BA0CA_34F6_42EC_B046_B7AB4D9C7AF2__INCLUDED_) 
#define AFX_PORTTHREAD_H__739BA0CA_34F6_42EC_B046_B7AB4D9C7AF2__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
// PortThread.h : header file 
// 
 
#define	INTERNALTIMER	50 
#define	SERVERPORTBASE	960 
 
class	CPortThread; 
struct	RPortState 
{ 
	int		bOpened; 
	int		nPort; 
	CString	strClientIp; 
	UINT	nClientPort; 
	int		nBaud; 
	CString strParity,strData,strStop,strDtr,strRts; 
	CString GetInfo(); 
}; 
 
#include  
#include  
 
extern	CArray	g_arrPortState; 
extern	CCriticalSection	g_csPortState; 
///////////////////////////////////////////////////////////////////////////// 
// CServerSocket command target 
 
class CServerSocket : public CSocket 
{ 
// Attributes 
public: 
 
// Operations 
public: 
	CServerSocket(); 
	virtual ~CServerSocket(); 
 
// Overrides 
public: 
	CPortThread * m_pThread; 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CServerSocket) 
	public: 
	virtual void OnAccept(int nErrorCode); 
	//}}AFX_VIRTUAL 
 
	// Generated message map functions 
	//{{AFX_MSG(CServerSocket) 
		// NOTE - the ClassWizard will add and remove member functions here. 
	//}}AFX_MSG 
 
// Implementation 
protected: 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
 
 
///////////////////////////////////////////////////////////////////////////// 
// CConnectSocket command target 
 
class CConnectSocket : public CSocket 
{ 
// Attributes 
public: 
 
// Operations 
public: 
	CConnectSocket(); 
	virtual ~CConnectSocket(); 
 
// Overrides 
public: 
	CPortThread * m_pThread; 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CConnectSocket) 
	public: 
	virtual void OnClose(int nErrorCode); 
	//}}AFX_VIRTUAL 
 
	// Generated message map functions 
	//{{AFX_MSG(CConnectSocket) 
		// NOTE - the ClassWizard will add and remove member functions here. 
	//}}AFX_MSG 
 
// Implementation 
protected: 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
// CPortThread thread 
 
class CPortThread : public CWinThread 
{ 
	DECLARE_DYNCREATE(CPortThread) 
protected: 
	CPortThread();           // protected constructor used by dynamic creation 
	BYTE	m_Buffer[18]; 
	int		m_nbufCount, m_nBufDesired; 
	BOOL	m_bCommandReceiving, m_bPreIsFF; 
	int		m_nTimerCount; 
// Attributes 
public: 
 
// Operations 
public: 
	void ReportState(DWORD dwError); 
	void CommandProc(); 
	BOOL OpenPort(); 
	void ClosePort(); 
	UINT m_hTimer,m_nIndex; 
	CString	m_strPort; 
	HWND m_hWnd; 
	HANDLE m_hFile; 
	CServerSocket m_sServer; 
	CConnectSocket	*m_pConnect; 
 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CPortThread) 
	public: 
	virtual BOOL InitInstance(); 
	virtual int ExitInstance(); 
	virtual BOOL PreTranslateMessage(MSG* pMsg); 
	//}}AFX_VIRTUAL 
 
// Implementation 
protected: 
	virtual ~CPortThread(); 
 
	// Generated message map functions 
	//{{AFX_MSG(CPortThread) 
		// 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_PORTTHREAD_H__739BA0CA_34F6_42EC_B046_B7AB4D9C7AF2__INCLUDED_)