⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datapoolpro.h

📁 组态王驱动的实例,这个例子与亚控的例子有很大不同
💻 H
字号:
#include <winsock2.h>

#if !defined(AFX_DATAPOOLPRO_H__1116DC1D_7F73_48C4_80B9_39A25B702E37__INCLUDED_)
#define AFX_DATAPOOLPRO_H__1116DC1D_7F73_48C4_80B9_39A25B702E37__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DataPoolPro.h : header file
//

#include "IComPro.h"
#include "datatype.h"
#include "Reg.h"

#pragma comment( lib, "ws2_32.lib" )

#define SOCKET_VER_MAJOR	2
#define SOCKET_VER_MINOR	0

/////////////////////////////////////////////////////////////////////////////
// DataPoolPro command target

class DataPoolPro : public CCmdTarget
{
	DECLARE_DYNCREATE(DataPoolPro)

	DataPoolPro();           // protected constructor used by dynamic creation

// Attributes
public:
	DWORD       LIPAddr;
	DWORD       RIPAddr;
	WORD        LIPPort;
	WORD        RIPPort;
	SOCKET      sClient;
	WSAEVENT	Event;	
	
	int         m_nTimeOut;
	int         m_nLastErrorCode;

// Operations
public:
	bool		SocketError(); 
	bool		SocketInit(); 
	bool		SocketEnds(); 
	bool		SocketStart(); 
	bool		SocketStop(); 
	int         SocketSend(SOCKET, void *, int, DWORD  , WORD  );
	int         SocketRecv(SOCKET, void *, int, DWORD *, WORD *);
	bool        ParseIPAddr(char *sIP, DWORD *dwIP);
	WORD        MyConvert( LPVOID lpDbItem, LPVOID lpVar,LPVOID lRegInfos ,int reg_type_num);

	BOOL        PhysicalReceive( char *pReceive, int * nLen);
	BOOL        PhysicalSend(char * buf, int *nLen);

	BOOL        RequestPacket(PPACKET pPac);
	BOOL        UpdatePacket(PPACKET pPac);


public:
// Overrides
	// ClassWizard generated virtual function overrides
	virtual void OnFinalRelease();
	//{{AFX_VIRTUAL(DataPoolPro)
	//}}AFX_VIRTUAL

// Implementation
protected:
	virtual ~DataPoolPro();

	// Generated message map functions
	//{{AFX_MSG(DataPoolPro)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

	DECLARE_OLECREATE(DataPoolPro)
	// Generated OLE dispatch map functions
	//{{AFX_DISPATCH(DataPoolPro)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_DISPATCH
	DECLARE_DISPATCH_MAP()
	DECLARE_INTERFACE_MAP()

	BEGIN_INTERFACE_PART(ProtocolImp,IProtocolImp)
		STDMETHOD_(BOOL, GetRegisters)(char *szDeviceName,LPVOID *ppRegs, int *pRegNum);
		STDMETHOD_(BOOL, TryConnect)(char* devName,int nAddr,LPVOID lpDevAddr);
		STDMETHOD_(WORD, ConvertUserConfigToVar)(LPVOID lpDbItem, LPVOID lpVar);
		STDMETHOD_(int,  LoadDeviceInfo)(const char *sProd, const char *sDevName, int nType);
		STDMETHOD_(BOOL, OpenComDevice)(int nDevType,LPVOID lpInitData);
		STDMETHOD_(BOOL, CloseComDevice)();
		STDMETHOD_(BOOL, InitialDevice)(char* DevName,int nUnitAddr, LPVOID lpInitData);
		STDMETHOD_(BOOL, AddVarToPacket)(LPVOID lpVar, int nVarAccessType, LPVOID lpPacket);
		STDMETHOD_(int,  ProcessPacket)(LPVOID lpPacket);
		STDMETHOD_(BOOL, StrToDevAddr)(const char* str,LPVOID lpDevAddr);
		STDMETHOD_(char*,GetLastError)(void);
	END_INTERFACE_PART(ProtocolImp)		
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_DATAPOOLPRO_H__1116DC1D_7F73_48C4_80B9_39A25B702E37__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -