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

📄 isamas.h

📁 一个通讯管理机的源代码。比较好用。推荐
💻 H
字号:
#ifndef ISAMAS_H#define ISAMAS_H#include "msystem.h"#include "appservice.h"#include "allmgr.h"/**  *@author   */class CFixValNode{public:	CFixValNode(BYTE byType,WORD wValue)	{		m_byType = byType;		m_wValue = wValue;		m_pNext = NULL;	}	CFixValNode* m_pNext;	BYTE m_byType;	WORD m_wValue;};class CFixVal{public:	CFixVal() {m_pFirst = NULL;}	~CFixVal() {RemoveAll();}	BOOL GetNode(BYTE byType,WORD& wValue)	{		CFixValNode* pNode = m_pFirst;		for (WORD w=0; pNode; w++)		{			if (byType == pNode->m_byType)			{				wValue = pNode->m_wValue;				return TRUE;			}			pNode = pNode->m_pNext;		}		return FALSE;	} 	void AddNode(BYTE byType, WORD wValue)	{		CFixValNode* pNewNode = new CFixValNode(byType,wValue);		if (m_pFirst == NULL) m_pFirst = pNewNode;		else		{			CFixValNode* pNode = m_pFirst;			while (pNode->m_pNext) pNode = pNode->m_pNext;			pNode->m_pNext = pNewNode;		}	}	void RemoveAll()	{		CFixValNode* pNode = m_pFirst,* pTemp;		while (pNode)		{			pTemp = pNode;			pNode = pNode->m_pNext;			delete pTemp;		}	}	WORD GetCount()	{		CFixValNode* pNode = m_pFirst;		WORD w;		for (w=0; pNode; w++)			pNode = pNode->m_pNext;		return w;	}public:	CFixValNode* m_pFirst;};struct SProtEventType{	BYTE	m_byCode;	char	m_szContent[48];};class CISAMAS : public CMAppService  {public: 	CISAMAS(CAllMgr* pAllMgr,bool bIsBlanane,BYTE byMaxReportTimes,CSerialPortDef* pChannel);	~CISAMAS();	bool Init();	int GetPeriod(CFrameNode& fn); //ret -1:no send data; 0:no echo frame; 1:have echo frame	bool ExplainRESP(CFrameNode* pFNRecv);	bool YK(WORD wDevNo,BYTE byRoute,bool bIsOn){return false;}	bool GetFV(WORD wDevNo,BYTE*& pbyData,WORD& wLength,WORD wFuncCode=0) {return false;}	bool PutFV(WORD wDevNo,BYTE* pFixVal,WORD bySize,WORD wFuncCode=0){return false;}//	virtual BOOL GetSendData(CMailNode& mn);//	void ExplainRecvData(BYTE* pbyInBuf,WORD wInSize);//	virtual CFrame* GetEchoFrame() {return &m_frmISAEcho;}protected:	//CISAFrame	m_frmISAEcho;//	CProtMgr	m_protmgr;	BOOL		m_bIsACK;	BOOL		m_bIsNAK;	BYTE		m_bySendOrder;	const char* GetDiagType(BYTE byID);	const char* GetEventPrompt(BYTE byID);	const char* GetTestName(BYTE byID);	const char* GetFaultType(BYTE byID);//	BOOL GetEventPrompt(BYTE byEventID,string& strPrompt);//	BOOL GetTestName(BYTE byID,string& strTestName);//	BOOL GetFaultType(BYTE byID,string& strFaultType);//	BOOL GetDiagType(BYTE byID,string& strDiagType);	CTimeVal	m_tmRectify;	CTimeVal	m_tmLast;	int g_bPortWarning ;	int g_nPortWarningCount;public://	WORD m_wCHKSUM;	bool GetFixVal(BYTE byNo,CFixVal* pFixVal);	bool PutFixVal(BYTE byNo,BYTE* pFixVal,BYTE bySize);	bool SReset(BYTE byProtNo);//	int SReset(WORD wDevNo,CFrameNode &FNSend);	void RectifyTime(CFrameNode& fn);	void GetYC(BYTE byAddr,BYTE byProtNo,CFrameNode& fn);	void Query(BYTE byAddr,CFrameNode& fn);		void ACK(BYTE byAddr,CFrameNode& fn);	void NAK(BYTE byAddr,CFrameNode& fn);protected:	CISADLS m_DLService;	void Run();protected://	BOOL ExpFixVal(CMailNode* pmn,CFixVal* pFixVal);	void ExpYCData(BYTE byProtNo,BYTE* pbyData,BYTE bySize);	void ExpDiagData(BYTE byProtNo,BYTE* pbyData,BYTE bySize);	void ExpEventData(BYTE byProtNo,BYTE* pbyData,BYTE bySize);friend void* ISAMaster(void* pVoid);};#endif

⌨️ 快捷键说明

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