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

📄 appservice.h

📁 一个通讯管理机的源代码。比较好用。推荐
💻 H
字号:
#ifndef APPSERVICE_H#define APPSERVICE_H#include "msystem.h"#include "DevMgr.h"#include "channelmgr.h"#include "dlservice.h"#include "cdtframe.h"#include "TAFrame.h"//#include "101frame.h"#include "channelmgr.h"/**  *@author   */class CSAppService{public:	virtual void ProtInfo(BYTE* pBuf, WORD wSize) {};	virtual void YC(YCData* pYCValue,WORD wCount)=0;	virtual void YX(YXData* pYXValue,WORD wCount)=0;	virtual void DD(DDData* pDDValue,WORD wCount)=0;	virtual void SOE(SOEData* pSOEValue,WORD wCount)=0;//	void SetPRM(bool bIsPRM){m_bPRM = bIsPRM;}//主动;被动//	bool GetPRM() {return m_bPRM;}//	void SetDIR(bool bDIR) {m_bDIR = bDIR;}//	bool GetDIR() {return m_bDIR}	virtual ~CSAppService();	virtual bool Init() = 0;protected://	bool	m_bDIR;	bool	m_bBalance;	CAllMgr* m_pAllMgr;	CSAppService(CAllMgr* pAllMgr,bool bBalance);	pthread_mutex_t	m_mutex;	BYTE m_byAddr;//	void Spont(); //突发//	void Init();//	void Req();/*	void Act();	void ActConfirm();	void Deact();	void DecatConfirm();	void ActTerm();	void RetRemote();	void RetLocate();	void File();	void Introl(BYTE byReason);//group No that index with 0 + 20-41	timeval	m_tv;*/};class CMAppService{public:	virtual bool Init() = 0;	void Destroy();	//virtual bool YK(WORD wDevNo,BYTE byRoute,bool bIsOn) = 0;	virtual bool YK(WORD wDevNo,BYTE byRoute,bool bIsOn) = 0;	virtual bool GetFV(WORD wDevNo,BYTE*& pbyData,WORD& wLength,WORD wFuncCode=0) = 0;	virtual bool PutFV(WORD wDevNo,BYTE* pFixVal,WORD bySize,WORD wFuncCode=0) = 0;	virtual bool GetStreamNode(CDataNode*& pdnStream) {pdnStream = NULL; return false;}//	void SetPRM(bool bIsPRM){m_bPRM = bIsPRM;}//主动;被动//	bool GetPRM() {return m_bPRM;}//	void SetDIR(bool bDIR) {m_bDIR = bDIR;}//	bool GetDIR() {return m_bDIR}	bool IsMyDev(WORD wDevNo)	{		bool bRet = false;		if (m_subdevmgr.Has(wDevNo))			bRet = true;		return bRet;	}	string& GetName() {return m_strName;}	virtual ~CMAppService();	bool IsRun()	{		bool bRet = true;		CTimeVal tv;		CTimeValSpan tvs = tv - m_tvXXX;		if ((tvs.GetASecs() > 10) && (m_dwLast == m_dwPrev)) 			bRet = false;		if (m_dwLast != m_dwPrev)		{			m_dwLast = m_dwPrev;			m_tvXXX = tv;		}		return bRet;	}protected://	bool	m_bDIR;	bool	m_bBalance;	CMAppService(CAllMgr* pAllMgr,WORD wChannelNo,string strName = string(""),int nOverTime = 2000);	pthread_t m_hThread;	pthread_mutex_t	m_mutex;	CAllMgr*		m_pAllMgr;	CSubdevMgr		m_subdevmgr;	string			m_strName;	void SendYCData(WORD wDevNo,double* pData,WORD wCount);	void SendYXData(WORD wDevNo,BYTE* pData,BYTE byDSize);	void SendDDData(WORD wDevNo,DWORD* pData,WORD wCount);	void SendSOEData(SOEData* pData,WORD wCount);	void SendFVData(WORD wDevNo,FVData* pData,WORD wCount);		//	void Spont(); //突发//	void Init();//	void Req();/*	void Act();	void ActConfirm();	void Deact();	void DecatConfirm();	void ActTerm();	void RetRemote();	void RetLocate();	void File();	void Introl(BYTE byReason);//group No that index with 0 + 20-41	timeval	m_tv;*/protected:	DWORD m_dwLast,m_dwPrev;	CTimeVal m_tvXXX;};#endif

⌨️ 快捷键说明

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