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

📄 103device.h

📁 电力故障信息采集,主要是针对南自的保护装置,这个程序用在Linux操作系统下
💻 H
字号:
#ifndef DEVICE103_H#define DEVICE103_H#include "ASDU.h"// #include <qfile.h>#include "baseclass/Communicate.h"// #include <qdatetime.h>// #include <qvaluelist.h>typedef  QValueList<CommParam> COMMPARAM;class C103Device{public:    C103Device(st_deviceinfo DevInfo);//顶级设备    ~C103Device();public:    bool InitClass();//初始化类信息    bool SendCommand(BYTE* pData, int iSize);    bool GI();//总召唤(总查询)    bool GGI();//通用分类总召唤(总查询)    bool XunJian();//巡检    bool GetDingZhi();//申请定值    bool GetSector();//申请定值区号    bool GetAnalog();//申请模拟量    bool GetSwitch();//申请开关量    bool GetYaBan();//申请软压板    bool CheckTime();//申请校时    bool RequireDistrubt();//申请扰动波形列表    void SendMsgToMain(int iResult, CString szMsg = "");    void SendCommStateToMain(int istate);    bool RequestLinkStatus();//请求链路状态    bool ResetFCB();//复位帧计数位    bool ResetCU();//复位通信单元private:    void ProcessData();//处理接收到的数据数据    void ProcessAsdu1();    void ProcessAsdu2();    void ProcessAsdu3();    void ProcessAsdu4();    void ProcessAsdu6();    void ProcessAsdu8();    void ProcessAsdu9();    void ProcessAsdu10();    void ProcessAsdu23();    void ProcessAsdu26();    void ProcessAsdu27();    void ProcessAsdu28();    void ProcessAsdu29();    void ProcessAsdu30();    void ProcessAsdu31();    void ProcessWave(WORD wNof, CString szFileName);    bool SendAsdu21(BYTE iGroup, BYTE iEntry, BYTE iKod);    bool SendAsdu24(WORD iFAN, BYTE iTOO, BYTE iTOV, BYTE iACC);    bool SendAsdu25(WORD iFAN, BYTE iTOO, BYTE iTOV, BYTE iACC);    bool GetGroupData(CAsdu10& a10, BYTE iGroup, BYTE iEntry, BYTE iKod);    void ExplainGroupData(CAsdu10& a10);    bool RequestL1UserData();//请求一级用户数据    bool RequestL2UserData();//请求二级用户数据    bool SendConfirm(CByteArray& sData);//发送确认    bool SendNoConfirm(CByteArray& sData);//发送无确认    bool SendData(CByteArray& sData);    bool ReceData(CByteArray& rData);    BYTE CalCheckSum(const CByteArray& Data, bool bSend = false);    void FlibFCB();    bool GetDistrubData();    void SortDDTable();    bool BuildDistrubtData();    int TimeSpan(CP56Time2a FaultTime, CP56Time2a LastTime);    void BuildCfgFile(CString szFileName, int& iNoe, int& iInt);    void BuildDatFile(CString szFileName, int iFirstTime, int iNoe, int iInt);    void BuildHdrFile(CString szFileName, CWordArray& FanArray);    void printData(QString prifix,BYTE* addr,int length);public:    int m_iCpuNum;    bool m_bCommError;    bool m_bSendState3;    bool m_bSendState0;    st_nodeinfo m_CmdInfo;    long m_iThreadId;    Communicate* m_pComm;    QDateTime m_GITime;    CString m_szConFile;    CXMLReader* m_pxml;private:    QFile m_File;//存储通信报文    st_deviceinfo m_DevInfo;    int m_iWaveFlag;    int m_iSaveFlag;//是否把串口的数据存成文件    DWORD m_iTimesOut;    DWORD m_iWaitTime;    CString m_szSysPath;    bool m_bHaveL1UserData;//是否有一级用户数据    bool m_bGIFinished;    CByteArray m_ReceData;    BYTE m_SendAddress;    BYTE m_AsduAddress;    BYTE m_FrameHead;    BYTE m_FrameLength;    BYTE m_ReceAddress;    BYTE m_FrameCS;    BYTE m_FrameEnd;    CString m_szDpi1;    CString m_szDpi2;    CString m_szSDpi1;    CString m_szSDpi2;    CMyArray<st_paramvalue, st_paramvalue> m_SwitchValue;    bool m_bSwitch;    int m_iFaultNo;//算法待考虑    int m_iFixTime;    CString m_szLastWaveTime;    CString m_szWaveFileName;    CMyArray<DistrubDataTable, DistrubDataTable&> m_DDTable;    CMyArray<CFaultExplain, CFaultExplain> m_FaultExplain;    CDistrubData m_DistrubData;    int m_DDStatus;//一个扰动数据传输状态    int m_ACCNum;//扰动数据通道数    BYTE m_iTOV;//扰动数据类型    int m_iHaveWaveFile;    CP56Time2a m_LastTimeFTime;    CP56Time2a m_ThisTimeFTime;    CP56Time2a m_LastFaultTime;    int m_iWavType;    int m_iPrimary;    COMMPARAM m_CommParam;    COMMPARAM::iterator it;};inline void C103Device::FlibFCB(){    (*it).CCD.CtrlToDev.FCB = !(*it).CCD.CtrlToDev.FCB;};#endif

⌨️ 快捷键说明

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