📄 infoserver.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 + -