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

📄 infoserver.h

📁 此为Insight opc client InfoServerExplorer源程序
💻 H
字号:
/////////////////////////////////////////////////////////////////////////////
//
//  OPC DataAccess VC++ Client:	InfoServer.h
//								(Header File)
//
/////////////////////////////////////////////////////////////////////////////
//
//          Author: Raphael Imhof
//    Initial Date: 11/04/98
//       $Workfile: InfoServer.h $
//       $Revision: 1 $
//           $Date: 7/27/99 5:22p $
//   Target System: Microsoft Windows NT 4.0
//     Environment: Visual C++ 5.0 / OPC DataAccess 1.0/2.0
//         Remarks: 
//
/////////////////////////////////////////////////////////////////////////////
//
//     Description: interface of the CInfoServer class.
//					Encapsulation of OPC server related methods.
//					
//
/////////////////////////////////////////////////////////////////////////////
//
//  History of Changes     (Please remove very old comments and blank lines!)
//            $Log: /IDK/OPCServer/clients/VC++/InfoServerExplorer/InfoServer.h $
// 
// 1     7/27/99 5:22p Imhof
// 
// 1     7/27/99 5:18p Imhof
// 
// 12    2/24/99 2:02p Imhof
// Added ValidateItem option and support
// 
// 11    1/15/99 6:43p Imhof
// Updated legal notice.
// 
// 10    12/15/98 8:50a Imhof
// 
// 9     12/11/98 5:58p Imhof
// Made modifications for OPC 2.0.
// 
// 8     11/25/98 3:00p Betrisey
// Added menu item <OPC> <Print Statistic to log file>
// All the InfoServer statistic counters are printed out to the log file.
// Note that we do "misuse" the IPersist::Save() API to do that. This API
// returns "not implemented".
// 
// 7     11/10/98 2:20p Imhof
// Added file header's.
// 
// 
//  $Nokeywords:$ (To avoid useless search while checking in.)
/////////////////////////////////////////////////////////////////////////////
//  Copyright (C) 1998, Siemens Building Technologies, Inc. Landis Division
//
// SIEMENS BUILDING TECHNOLOGIES, INC. IS PROVIDING THE FOLLOWING
// EXAMPLES OF CODE AS SAMPLE ONLY.
//
// SIEMENS BUILDING TECHNOLOGIES, INC.  MAKES NO REPRESENTATIONS
// OR WARRANTIES OF ANY KIND  WITH RESPECT TO THE VALIDTY OF THE 
// CODES   OR   DESIRED   RESULTS   AND   DISCLAIMS   ALL   SUCH 
// REPRESENTATIONS   AND   WARRANTIES,  INCLUDING  FOR  EXAMPLE, 
// WARRANTIES  OF  MERCHANTABILITY  AND FITNESS FOR A PARTICULAR 
// PURPOSE.    SIEMENS  BUILIDNG  TECHNOLOGIES,  INC.  DOES  NOT 
// REPRESENT  OR  WARRANT  THAT  THE  FOLLOWING CODE SAMPLES ARE 
// ACCURATE, VALID, COMPLETE OR CURRENT.
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_INFOSERVER_H__4648BED9_2AEA_11D2_AD89_00104B2C9D06__INCLUDED_)
#define AFX_INFOSERVER_H__4648BED9_2AEA_11D2_AD89_00104B2C9D06__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include "group.h"
#include "IOPCServer.h"
#include "IAdviceSink.h"
#include "subscription.h"
#include "OpcShutDownRequest.h"

const float OPC_VERSION_10 = 1.0;
const float OPC_VERSION_20 = 2.0;

class CInfoServer : public CObject
{
protected:
	DECLARE_DYNCREATE(CInfoServer)

public:
	BOOL AddGroup(CGroup** group);
	BOOL ReCreateGroupOnServer(CGroup** group); //recreate group on server
	BOOL RemoveGroup(CGroup** group);
	BOOL EditGroup(CGroup** group);
	BOOL CloneGroup(CGroup* pCloneSourceGroup, CGroup** pNewGroup);
	BOOL GetStatus();
	BOOL DisplayError(HRESULT dwError);
	BOOL Disconnect();
	BOOL Connect();
	BOOL IsConnected();
	void SetConnected(BOOL bConnected);
	BOOL ChooseServer();
	BOOL GetErrorString(HRESULT hr, CString& sErrorText);
	BOOL GetSystemErrorString(HRESULT hr, CString& sErrorText);
	CInfoServer();
	virtual ~CInfoServer();

	unsigned int GetGroups(CArray<CGroup*, CGroup*>** groups);

	BOOL RecreateOnServer(); //recreates group and items on server

	BOOL ReloadFromServer();
	BOOL ReloadServer();
	BOOL PrintStatistic();

	CComPtr<IUnknown> GetInterface();

	CIAdviseSink** GetAdviseSink();
	CComObject<COPCConnectionPoint>** GetDataAccessConnectionPoint();

	//options
	float GetOPCVersion();
	void SetOPCVersion(float opc_version);
	int GetDataChangeType();
	void SetDataChangeType(int iDataChangeType);
	UINT GetReloadEnumNextElements();
	void SetReloadEnumNextElements(UINT	elements);
	int GetReloadEnumMethod();
	void SetReloadEnumMethod(int new_method);
	UINT GetReloadEnumAttributesNextElements();
	void SetReloadEnumAttributesNextElements(UINT elements);
	UINT GetBrowserEnumNextElements();
	void SetBrowserEnumNextElements(UINT elements);
	BOOL UseValidateItems();
	void SetUseValidateItems(BOOL bUseValidateItems);

	void SetOPCServer(CString sOPCServer);
	CString GetOPCServer();
	void SetOPCServerComputer(CString sOPCServerComputer);
	CString GetOPCServerComputer();
	CString GetOPCServerName();
	void SetOPCServerCLSID(CLSID clsidOPCServer);
	CLSID GetOPCServerCLSID();

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CInfoServer)
	public:
	virtual void Serialize(CArchive& ar);
	//}}AFX_VIRTUAL

	

private:
	BOOL							m_bConnected;
	CString							m_sOPCServerComputer; //remote node
	CString							m_sOPCServer; //opc server name
	CLSID							m_clsidOPCServer;


	CComPtr<IUnknown>				m_pUnkn;
	CArray<CGroup*, CGroup*>		m_Groups;

	CIAdviseSink*					m_pAdviseSink;
	CComObject<COPCConnectionPoint>* m_pDataAccessConnectionPoint;
	CComObject<COPCShutDownRequest>* m_pShutDownConnectionPoint;

	//options
	float							m_fOPCVersion;
	int								m_iDataChangeType; //0 = no timestamp; 1 = with timestamp
	UINT							m_iReloadEnumNextElements;
	int								m_iReloadEnumMethod;
	UINT							m_iBrowserEnumNextElements;
	UINT							m_iReloadEnumAttributesNextElements;
	BOOL							m_bUseValidateItems; //use ValidateItems before item add
};

#endif // !defined(AFX_INFOSERVER_H__4648BED9_2AEA_11D2_AD89_00104B2C9D06__INCLUDED_)

⌨️ 快捷键说明

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