亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? opcserver.h

?? opc client 工業自動化控制過程的客戶端
?? H
字號:
#ifndef H_OPCSERVER_H
#define H_OPCSERVER_H

#include "OPCWrap.h"
#include "IAdvsink.h"		//Class CAdviseSink

class COPCServer;
class COPCGroup;

//*************************************************
class Item : public CObject
{
DECLARE_SERIAL(Item)

public:
	Item() : quality(0), hServerHandle(0) 
	{
		CoFileTimeNow(&timestamp);	//獲取當前時間
		hServerHandle = 0;
		quality = OPC_QUALITY_UNCERTAIN;
		access_rights = OPC_READABLE;
		active = false;
		native_type = VT_EMPTY;
		value.vt = VT_EMPTY;
		description = _T("");

		server = 0;	//服務器指針為空
		group = 0;
	}

	~Item(){}
	

	void Serialize(CArchive& ar);

	Item& operator= (Item& item){
	}

public:
	CString		name;
	CString		access_path;
	CString		description;
	
	COleVariant	value;
	VARTYPE		native_type;
	WORD		quality;
	FILETIME	timestamp;
	OPCHANDLE	hServerHandle;
	
	WORD		access_rights;
	BOOL		active;

	COPCServer*	server;
	COPCGroup*	group;
};
typedef CTypedPtrList<CObList, Item*> ItemList;

//*************************************************
class COPCGroup : public CObject
{
DECLARE_SERIAL(COPCGroup)

public:
	COPCGroup(COPCServer* server = 0);
	COPCGroup(COPCServer* server, COPCGroup& group);
	
	~COPCGroup();

	virtual void	Serialize(CArchive& ar);

public:
	Item* add_item(Item* item);
	inline CString		get_name(){return group_name;}
	inline CString		set_name(CString name = _T("Group")){
		group_name = name;
		return group_name;
	}
	inline CString		set_name(LPCSTR name = NULL){
		if(name){
			group_name = name;
		}

		return group_name;
	}

	inline unsigned int	get_update_rate(){ return update_rate;}
	inline unsigned int	set_update_rate(unsigned int rate = 1000){
		update_rate = rate;
		return update_rate;
	}

	inline float		get_dead_band(){ return dead_band;}
	inline float		set_dead_band(float band = 0.0){
		dead_band = band;
		return dead_band;
	}

	inline unsigned int	get_time_bias(){return time_bias;}
	inline unsigned int	set_time_bias(unsigned int bias = 0){
		time_bias = bias;
		return time_bias;
	}

	inline BOOL		get_active(){ return active;}
	inline BOOL		set_active(BOOL act = FALSE){
		active = act;
		return active;
	}
	
	inline unsigned long	get_local_id(){ return local_id;}
	inline unsigned long	set_local_id(unsigned long id = 0){
		local_id = id;
		return local_id;
	}

	ItemList&	get_items(){ return items;}
	
	COPCGroup& operator= (COPCGroup& group){
		if(this != &group){
			group_name = group.get_name();
			update_rate = group.get_update_rate();
			dead_band = group.get_dead_band();
			time_bias = group.get_time_bias();
			active = group.get_active();
			local_id = group.get_local_id();
			group_handle = 0;

			while(!items.IsEmpty())
				delete items.RemoveHead();

			ItemList& item_list = group.get_items();
			POSITION item_pos = item_list.GetHeadPosition();
			while(item_pos){
				Item* item = item_list.GetNext(item_pos);
				Item* new_item = new Item;

				if(!new_item || !item)
					continue;
				
				CoFileTimeNow(&new_item->timestamp);
				new_item->name = item->name;
				new_item->access_path = item->access_path;
				new_item->description = item->description;
				new_item->hServerHandle = item->hServerHandle;
				new_item->quality = item->quality;
				new_item->access_rights = item->access_rights;
				new_item->active = item->active;
				new_item->native_type = item->native_type;
				new_item->value = item->value;
				new_item->server = parent;
				new_item->group = this;

				items.AddTail(new_item);
			}
		}
		
		return *this;
	}
	COPCServer* get_parent() const;

public:
	HTREEITEM	tree_item;
protected:
	CString		group_name;
	unsigned int	update_rate;
	float		dead_band;
	unsigned int	time_bias;
	unsigned long	local_id;
	BOOL		active;
	
public:
	COPCServer*	parent;
	Item*		current_item;
	ItemList	items;

	//OPC 1.0
	DWORD			connection1;
	DWORD			connection2;
	OPCCallback*		call_back;
	DWORD			call_back_connection;
	OPCHANDLE		group_handle;
	CAdviseSink*		advise_sink;
	bool			use_cp;			//uses connection point	

public:
	void SetItemValue(OPCHANDLE hItem, VARIANT *pVar, FILETIME timestamp, WORD quality);
	DWORD add_items(DWORD item_count, Item* items);
	void write_item(BOOL async, CString value, Item* item = NULL);
	void read_item(Item* item = NULL);
	void remove_item();
	
	OPCGroupStateMgt	opc_group;
};
typedef CTypedPtrList<CPtrList, COPCGroup*> GroupList;
//*************************************************
class OPCServerInfo
{
public:
	OPCServerInfo( LPOLESTR ProgID, LPOLESTR Description, CLSID& clsid )
		: m_ProgID(ProgID), m_Description(Description), m_clsid(clsid) 
	{
		m_NodeName = _T("127.0.0.1");
	}
	
	OPCServerInfo(OPCServerInfo& info){
		m_ProgID = info.m_ProgID;
		m_Description = info.m_Description;
		m_NodeName = info.m_NodeName;
		m_clsid = info.m_clsid;
	}
     
	OPCServerInfo(){
		m_NodeName = _T("127.0.0.1");
	}
	
	OPCServerInfo& operator= (OPCServerInfo& info){
		if(this != &info){
			m_ProgID = info.m_ProgID;
			m_Description = info.m_Description;
			m_NodeName = info.m_NodeName;
			m_clsid = info.m_clsid;
		}

		return *this;
	}

public:
	CString		m_NodeName;
	CString		m_ProgID;
	CString		m_Description;
	CLSID		m_clsid;
};
typedef CTypedPtrList<CPtrList, OPCServerInfo*> ServerInfoList;

//**************************************************
class COPCServer : public CObject
{
DECLARE_SERIAL(COPCServer)

public:
	COPCGroup* get_current_group();
	COPCGroup* add_group(COPCGroup* group);
	OPCServerInfo* const get_server_info();
	HRESULT GetErrorString(
		HRESULT		dwError,
		LCID		dwLocale,
		LPWSTR*		ppString);

	bool is_connected();
	bool disconnect();
	bool connect(OPCServerInfo* info = 0);
	OPCServerInfo* SetServerInfo(OPCServerInfo* info = 0);
	COPCServer();
	~COPCServer();

public:
	void SetItemValue(OPCHANDLE hGroup, OPCHANDLE hItem, VARIANT *pVar, FILETIME timestamp, WORD quality);
	void remove_group(COPCGroup* group = 0);
	void Serialize(CArchive& ar);
	COPCGroup* set_current_group(COPCGroup* group);
	OPCServer& get_opc_server();
	HTREEITEM		tree_item;
	GroupList		groups;

	//OPCHANDLE		group_handle;
	//OPCGroupStateMgt	opc_group;
	OPCServer		opc_server;
protected:
	OPCServerInfo*		server_info;

	COPCGroup*		current_group;

	
protected:
	//OPC 2.0
	OPCShutdown*		shut_down;
	DWORD			shut_down_connection;

	DWORD			transaction_id;
	

};
typedef CTypedPtrList<CPtrList, COPCServer*> ServerList;

#endif//H_OPCSERVER_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产综合一区二区 | 欧美猛男男办公室激情| 国产v综合v亚洲欧| 激情综合色播激情啊| 免费看精品久久片| 免费三级欧美电影| 裸体健美xxxx欧美裸体表演| 美腿丝袜亚洲一区| 精品无人区卡一卡二卡三乱码免费卡| 日韩极品在线观看| 久久91精品国产91久久小草| 国产精品影视在线观看| 成人a免费在线看| 在线观看亚洲专区| 日韩欧美国产小视频| 久久久噜噜噜久久人人看 | 成人激情动漫在线观看| 91麻豆蜜桃一区二区三区| 在线中文字幕一区二区| 欧美日韩卡一卡二| 精品日韩欧美在线| 国产欧美一区二区精品忘忧草| 久久久久久久久久久久电影 | 色狠狠av一区二区三区| 欧美日韩一区成人| 欧美va亚洲va香蕉在线| 国产精品国产三级国产a| 亚洲一区二区av电影| 免费一级片91| 91视视频在线直接观看在线看网页在线看 | 日韩三级在线观看| 国产精品久久久久天堂| 日韩有码一区二区三区| 高清在线不卡av| 欧美探花视频资源| 久久精品一区二区三区不卡| 亚洲男人的天堂一区二区| 日韩二区三区在线观看| 9色porny自拍视频一区二区| 欧美一区二区成人6969| 亚洲欧洲99久久| 国产一区二区福利视频| 欧美日本一区二区在线观看| 中文欧美字幕免费| 轻轻草成人在线| 99精品欧美一区二区蜜桃免费| 欧美乱妇一区二区三区不卡视频| 欧美极品另类videosde| 蜜臀久久久99精品久久久久久| 成人精品电影在线观看| 精品剧情v国产在线观看在线| 伊人色综合久久天天人手人婷| 国模大尺度一区二区三区| 欧美日韩亚洲另类| 综合激情成人伊人| 国产精品亚洲一区二区三区妖精| 在线不卡中文字幕| 一个色综合av| 91在线播放网址| 亚洲国产精华液网站w| 激情欧美一区二区| 在线播放日韩导航| 亚洲一区二区av在线| 99v久久综合狠狠综合久久| 国产婷婷一区二区| 久久99精品久久久久婷婷| 欧美区在线观看| 日韩精品亚洲一区| 欧美精品在线视频| 午夜视频一区二区三区| 91久久香蕉国产日韩欧美9色| 国产精品久久久久永久免费观看| 国产精品一卡二卡| 国产亚洲一二三区| 国产成人日日夜夜| 中文一区一区三区高中清不卡| 激情文学综合网| 久久久久成人黄色影片| 国产精品1024久久| 欧美激情一区二区| 99亚偷拍自图区亚洲| 亚洲色图视频网站| 精品视频1区2区| 日精品一区二区三区| 日韩视频一区二区三区| 久久成人久久爱| 国产欧美日韩久久| 91亚洲男人天堂| 亚洲成人午夜影院| 日韩小视频在线观看专区| 国产在线播放一区三区四| 久久久久国产精品厨房| 99re亚洲国产精品| 午夜电影久久久| 精品久久久久久无| 成人精品一区二区三区四区 | 国产高清不卡二三区| 国产日韩v精品一区二区| 不卡电影免费在线播放一区| 尤物视频一区二区| 日韩一级完整毛片| 成人一级片网址| 亚洲一区二区av在线| 日韩欧美中文字幕制服| 99国产精品一区| 全部av―极品视觉盛宴亚洲| 国产偷国产偷亚洲高清人白洁| 一本久久a久久精品亚洲| 欧美a级一区二区| 亚洲欧洲国产日韩| 欧美成人性福生活免费看| 成人av电影免费观看| 日韩精品三区四区| 综合色中文字幕| 日韩精品一区在线观看| 99视频超级精品| 久久se精品一区精品二区| 国产精品久久一级| 欧美不卡视频一区| 欧美综合一区二区| 国产98色在线|日韩| 日产国产高清一区二区三区| 《视频一区视频二区| 日韩一区二区三区视频在线| 色综合天天视频在线观看| 久久精品99久久久| 亚洲午夜久久久久久久久电影网| 国产日产欧美一区二区视频| 日韩天堂在线观看| 欧美剧在线免费观看网站| 99免费精品在线观看| 九九**精品视频免费播放| 亚洲第一av色| 一区av在线播放| 一区二区三区.www| 亚洲欧美另类小说视频| 中文字幕av一区 二区| 亚洲精品一线二线三线| 欧美精品tushy高清| 91黄色免费网站| 色综合天天综合网国产成人综合天 | 欧美精品久久久久久久久老牛影院| 99re这里只有精品首页| 波多野结衣中文字幕一区二区三区| 久久国产视频网| 久久国产精品99精品国产| 日本强好片久久久久久aaa| 天堂影院一区二区| 丝袜美腿成人在线| 天堂一区二区在线免费观看| 丝袜美腿亚洲综合| 天天色图综合网| 日韩高清一区在线| 日本欧美肥老太交大片| 久久国产精品色| 精品亚洲porn| 成人av网址在线观看| 99国产精品久| 欧美日韩成人在线| 日韩视频一区二区在线观看| 久久综合九色综合97婷婷女人| 国产亚洲精品精华液| 国产精品久久久久久久久晋中| 最近中文字幕一区二区三区| 一区二区三区国产精华| 日韩福利视频导航| 国产精品亚洲一区二区三区妖精| 成人美女视频在线观看| 在线免费观看日本一区| 欧美日韩久久久久久| 日韩视频一区二区三区 | 91免费观看视频| 欧美日韩一级二级| 日韩欧美久久一区| 中文字幕第一页久久| 樱花影视一区二区| 久久99九九99精品| a在线欧美一区| 91精品在线观看入口| 国产午夜亚洲精品午夜鲁丝片| 国产精品毛片大码女人| 视频一区在线播放| 国产成人免费视频网站 | 国产一区二区三区精品视频| 成人高清视频免费观看| 欧美日韩高清在线播放| 国产亚洲欧洲997久久综合| 亚洲综合精品自拍| 国产精品亚洲专一区二区三区| 色婷婷av一区二区三区gif| 日韩欧美色综合网站| 亚洲人成在线播放网站岛国| 免费观看91视频大全| 91同城在线观看| 久久青草国产手机看片福利盒子| 日韩一区中文字幕| 国产毛片精品国产一区二区三区| 欧美视频在线一区| 国产精品乱人伦一区二区| 蜜桃精品在线观看|