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

📄 hfopcclient.h

📁 opc 源码 opc 源码
💻 H
字号:
#ifndef HF_IMP_H
#define HF_IMP_H

#ifdef __cplusplus//
#define HFEXPORT extern "C" __declspec(dllexport) 
#else
#define HFEXPORT __declspec(dllexport)
#endif

// From OPC Foundation
typedef 
enum tagOPCBROWSETYPE
{	OPC_BRANCH	= 1,
	OPC_LEAF	= OPC_BRANCH + 1,
	OPC_FLAT	= OPC_LEAF + 1
} 	OPCBROWSETYPE;

typedef 
enum tagOPCNAMESPACETYPE
{	OPC_NS_HIERARCHIAL	= 1,
	OPC_NS_FLAT	= OPC_NS_HIERARCHIAL + 1
} 	OPCNAMESPACETYPE;

typedef 
enum tagOPCBROWSEDIRECTION
{	OPC_BROWSE_UP	= 1,
	OPC_BROWSE_DOWN	= OPC_BROWSE_UP + 1,
	OPC_BROWSE_TO	= OPC_BROWSE_DOWN + 1
} 	OPCBROWSEDIRECTION;

const WORD OPC_QUALITY_BAD			=	0;
const WORD OPC_QUALITY_UNCERTAIN	=	0x40;
const WORD OPC_QUALITY_GOOD			=	0xc0;

#define OPC_READABLE    1
#define OPC_WRITEABLE   2

//////////////////////////////////////////////////////////
typedef struct _SERVERINFORMATION
    {
    FILETIME ftStartTime;
    FILETIME ftCurrentTime;
    FILETIME ftLastUpdateTime;
    WORD dwServerState;
    DWORD dwGroupCount;
    DWORD dwBandWidth;
    WORD wMajorVersion;
    WORD wMinorVersion;
    WORD wBuildNumber;
    WORD wReserved;
    char* szVendorInfo;
	int BufSize;
    } 	SERVERINFORMATION;



typedef VOID (CALLBACK* DATACHANGEPROC)(HANDLE, HANDLE, HANDLE, VARIANT*, FILETIME, DWORD);
typedef VOID (CALLBACK* SHUTDOWNPROC)(HANDLE);
typedef VOID (CALLBACK* WRITEFINISHPROC)(HANDLE, HANDLE, HANDLE, BOOL);

HFEXPORT BOOL WINAPI SetDataChangeProc(HANDLE hConnect, DATACHANGEPROC lpCallback, WRITEFINISHPROC WriteFinishProc = NULL);
HFEXPORT BOOL WINAPI SetShutDownProc(HANDLE hConnect, SHUTDOWNPROC lpCallback);

HFEXPORT BOOL WINAPI ActiveCode(LPCSTR UserName, LPCSTR Password);
HFEXPORT BOOL WINAPI Init(void);
HFEXPORT void WINAPI Uninit(void);

HFEXPORT int WINAPI GetServerCount(LPCSTR MachineName, short Version = 2);
HFEXPORT BOOL WINAPI GetServerName(int index, char* pBuf, int BufSize);

HFEXPORT HANDLE WINAPI Connect(LPCSTR MachineName, LPCSTR ServerName, short Version = 2);
HFEXPORT void WINAPI Disconnect(HANDLE hConnect);
HFEXPORT BOOL WINAPI GetServerStatus(HANDLE hConnect, SERVERINFORMATION *pSvrStatus);

HFEXPORT HANDLE WINAPI AddGroup(HANDLE hConnect, LPCSTR Name, BOOL bActive, DWORD dwRate, 
								LONG* pTimeBias, float* pDeadBand, DWORD dwLCID);
HFEXPORT void WINAPI RemoveGroup(HANDLE hConnect, HANDLE hGroup);
HFEXPORT BOOL WINAPI SetGroupName(HANDLE hConnect, HANDLE hGroup, LPCSTR Name);
HFEXPORT BOOL WINAPI SetGroupState(HANDLE hConnect, HANDLE hGroup, DWORD Rate, BOOL bActive,
								LONG TimeBias, float DeadBand, DWORD dwLCID);
HFEXPORT BOOL WINAPI GetGroupState( HANDLE hConnect, HANDLE hGroup, char* Name, int BufSize, 
								DWORD* pRate,BOOL* bActive, LONG* pTimeBias, float* pDeadBand, DWORD* pLCID);


HFEXPORT HANDLE WINAPI AddItem(HANDLE hConnect, HANDLE hGroup, LPCSTR ItemName);
HFEXPORT void WINAPI RemoveItem(HANDLE hConnect, HANDLE hGroup, HANDLE hItem);
HFEXPORT BOOL WINAPI ReadItem(HANDLE hConnect, HANDLE hGroup, HANDLE hItem, VARIANT* pVar, 
					 FILETIME *pTimeStamp, DWORD* pQuality);
HFEXPORT BOOL WINAPI WriteItem(HANDLE hConnect, HANDLE hGroup, HANDLE hItem, VARIANT* pVar, BOOL DoAsync = FALSE);
HFEXPORT BOOL WINAPI ActiveItem(HANDLE hConnect, HANDLE hGroup, HANDLE hItem, BOOL bActive);
HFEXPORT BOOL WINAPI ValidateItem(HANDLE hConnect, HANDLE hGroup, LPCSTR Name, VARTYPE *pType, DWORD* pAccessRights);

HFEXPORT int WINAPI NumberOfItemProperties(HANDLE hConnect, LPCSTR ItemName);
HFEXPORT BOOL WINAPI GetItemPropertyDescription(HANDLE hConnect, int PropertyIndex, DWORD* pPropertyID, 
												VARTYPE *pVT, char *pBuf, int BufSize);
HFEXPORT BOOL WINAPI ReadPropertyValue(HANDLE hConnect,LPCSTR ItemName, DWORD PropertyID, VARIANT* pValue);

HFEXPORT BOOL WINAPI GetNameSpace(HANDLE hConnect, WORD* pNameSpace);
HFEXPORT BOOL WINAPI SetBrowseFilters(HANDLE hConnect,LPCSTR FilterString, VARTYPE DataType, DWORD AccessType);
HFEXPORT int WINAPI GetItemCount(HANDLE hConnect);
HFEXPORT int WINAPI BrowseItems (HANDLE hConnect, WORD FilterType);
HFEXPORT BOOL WINAPI GetItemName(HANDLE hConnect, int index, char *pBuf, int BufSize);
HFEXPORT BOOL WINAPI GetItemFullName (HANDLE hConnect, int index, char *pQualifiedName, int BufSize);
HFEXPORT BOOL WINAPI ChangeBrowsePosition (HANDLE hConnect, WORD Direction, LPCSTR NodeName);
HFEXPORT BOOL WINAPI BrowseToNode(HANDLE hConnect,LPCSTR NodeName);




#endif

⌨️ 快捷键说明

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