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