📄 asdu.h
字号:
#ifndef ASDU_H#define ASDU_H#include "103Function.h"class CAsdu{ public: CAsdu(); virtual ~CAsdu(); public: virtual void BulidArray(CByteArray& Data) = 0; virtual void ExplainAsdu(int iProcessType = 0) = 0; void SaveAsdu(CByteArray& Data); public: BYTE m_TYP; //ASDU 类型标示 VSQ m_VSQ; //ASDU 可变结构限定词 BYTE m_COT; //ASDU 传送原因 BYTE m_Addr; //ASDU 应用服务数据单元公共地址 BYTE m_FUN; //ASDU 功能类型 BYTE m_INF; //ASDU 信息序号 CByteArray m_ASDUData;//ASDU 原始数据 int m_iResult;};class CAsdu01 : public CAsdu{ public: CAsdu01(); virtual void BulidArray(CByteArray& Data){Data.SetSize(0);} virtual void ExplainAsdu(int iProcessType = 0); public: DPI m_Dpi; CP32Time2a m_Cp32Time; BYTE m_SIN;//仅当总查询(总召唤)的情况下,附加信息才有关};class CAsdu02 : public CAsdu{ public: CAsdu02(); virtual void BulidArray(CByteArray& Data){Data.SetSize(0);} virtual void ExplainAsdu(int iProcessType = 0); public: DPI m_Dpi; CP32Time2a m_Cp32TimeRET;//相对时间(RET),在总查询(总召唤)的情况下,相对时间和故障序号无关 WORD m_FAN; CP32Time2a m_Cp32Time; BYTE m_SIN;//仅当总查询(总召唤)的情况下,附加信息才有关};class CAsdu03 : public CAsdu{ public: CAsdu03(); virtual void BulidArray(CByteArray& Data){Data.SetSize(0);} virtual void ExplainAsdu(int iProcessType = 0); public: MEA m_BPhaseCurrent;//B相电流 MEA m_ABPhaseLineVoltage;//AB相线电压 MEA m_PPower;//有功功率 MEA m_QPower;//无功功率};class CAsdu04 : public CAsdu{ public: CAsdu04(); virtual void BulidArray(CByteArray& Data){Data.SetSize(0);} virtual void ExplainAsdu(int iProcessType = 0); public: float m_SCL;//短路位置 CP32Time2a m_Cp32TimeRET;//相对时间(RET),在总查询(总召唤)的情况下,相对时间和故障序号无关 WORD m_FAN; CP32Time2a m_Cp32Time;};/*class CAsdu05 : public CAsdu{};*/class CAsdu06 : public CAsdu{ public: CAsdu06(); virtual void BulidArray(CByteArray& Data); virtual void ExplainAsdu(int iProcessType = 0); public: CP56Time2a m_Cp56Time2a;};class CAsdu07 : public CAsdu{ public: CAsdu07(); virtual void ExplainAsdu(int iProcessType = 0){iProcessType = 0;} virtual void BulidArray(CByteArray &Data); public: BYTE m_SCN;};class CAsdu08 : public CAsdu{ public: CAsdu08(); virtual void BulidArray(CByteArray& Data){Data.SetSize(0);} virtual void ExplainAsdu(int iProcessType = 0); public: BYTE m_SCN;};class CAsdu09 : public CAsdu{ public: CAsdu09(); virtual void BulidArray(CByteArray& Data){Data.SetSize(0);} virtual void ExplainAsdu(int iProcessType = 0); public: MEA m_APhaseCurrent;//A相电流 MEA m_BPhaseCurrent;//B相电流 MEA m_CPhaseCurrent;//C相电流 MEA m_APhaseVoltage;//A相电压 MEA m_BPhaseVoltage;//B相电压 MEA m_CPhaseVoltage;//C相电压 MEA m_PPower;//有功功率 MEA m_QPower;//无功功率 MEA m_Frequency;//频率};class CAsdu10 : public CAsdu{ public: CAsdu10(); ~CAsdu10(); virtual void ExplainAsdu(int iProcessType = 0); virtual void BulidArray(CByteArray& Data); void Init(); void ExplainAsdu(CFaultExplain& FExplain); public: BYTE m_RII; NGD m_NGD; QPtrList<DataSet> m_DataSets;};/*class CAsdu11 : public CAsdu{};class CAsdu20 : public CAsdu{};*/class CAsdu21 : public CAsdu{ public: CAsdu21(); ~CAsdu21(); virtual void ExplainAsdu(int iProcessType = 0){iProcessType = 0;} virtual void BulidArray(CByteArray& Data); public: BYTE m_RII; BYTE m_NOG; QPtrList<DataSet> m_DataSets;};class CAsdu23 : public CAsdu{ public: virtual void BulidArray(CByteArray& Data){Data.SetSize(0);} virtual void ExplainAsdu(int iProcessType = 0); public: CMyArray<DistrubDataTable, DistrubDataTable>m_DDTables;};class CAsdu24 : public CAsdu{ public: CAsdu24(); virtual void ExplainAsdu(int iProcessType = 0){iProcessType = 0;} virtual void BulidArray(CByteArray& Data); public: BYTE m_TOO; BYTE m_TOV; WORD m_FAN; BYTE m_ACC;};class CAsdu25 : public CAsdu{ public: CAsdu25(); virtual void ExplainAsdu(int iProcessType = 0){iProcessType = 0;} virtual void BulidArray(CByteArray& Data); public: BYTE m_TOO; BYTE m_TOV; WORD m_FAN; BYTE m_ACC;};class CAsdu26 : public CAsdu{ public: CAsdu26(); virtual void BulidArray(CByteArray& Data){Data.SetSize(0);} virtual void ExplainAsdu(int iProcessType = 0); public: BYTE m_TOV; WORD m_FAN; WORD m_NOF; BYTE m_NOC; WORD m_NOE; WORD m_INT; CP32Time2a m_Cp32Time;};class CAsdu27 : public CAsdu{ public: CAsdu27(); virtual void BulidArray(CByteArray& Data){Data.SetSize(0);} virtual void ExplainAsdu(int iProcessType = 0); public: BYTE m_TOV; WORD m_FAN; BYTE m_ACC; float m_RPV;//一次额定值 float m_RSV;//二次额定值 float m_RFA;//参比因子};class CAsdu28 : public CAsdu{ public: CAsdu28(); virtual void BulidArray(CByteArray& Data){Data.SetSize(0);} virtual void ExplainAsdu(int iProcessType = 0); public: WORD m_FAN;};class CAsdu29 : public CAsdu{ public: CAsdu29(); virtual void BulidArray(CByteArray& Data){Data.SetSize(0);} virtual void ExplainAsdu(int iProcessType = 0); public: WORD m_FAN;};class CAsdu30 : public CAsdu{ public: CAsdu30(); virtual void BulidArray(CByteArray& Data){Data.SetSize(0);} virtual void ExplainAsdu(int iProcessType = 0); public: BYTE m_TOV; WORD m_FAN;};class CAsdu31 : public CAsdu{ public: CAsdu31(); virtual void BulidArray(CByteArray& Data){Data.SetSize(0);} virtual void ExplainAsdu(int iProcessType = 0); public: BYTE m_TOO; BYTE m_TOV; WORD m_FAN; BYTE m_ACC;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -