2025-03-13 11:10:01 +08:00

46 lines
1.6 KiB
C++

#pragma once
#include <vector>
#include "Export.h"
#include "FesDef.h"
#include "FesBase.h"
#include "ProtocolBase.h"
#include "DNP3MasterDataProcThread.h"
#include "pub_utility_api/CommonConfigParse.h"
#include "DNP3MasterCommon.h"
extern "C" PROTOCOLBASE_API int EX_SetBaseAddr(void *Address);
extern "C" PROTOCOLBASE_API int EX_SetProperty(int FesStatus);
extern "C" PROTOCOLBASE_API int EX_OpenChan(int MainChanNo,int ChanNo,int OpenFlag);
extern "C" PROTOCOLBASE_API int EX_CloseChan(int MainChanNo,int ChanNo,int CloseFlag);
extern "C" PROTOCOLBASE_API int EX_ChanTimer(int MainChanNo);
extern "C" PROTOCOLBASE_API int EX_ExitSystem(int flag);
class PROTOCOLBASE_API DNP3Master : public CProtocolBase
{
public:
DNP3Master();
virtual ~DNP3Master();
int SetBaseAddr(void *address);
int SetProperty(int IsMainFes);
int OpenChan(int MainChanNo,int ChanNo,int OpenFlag);
int CloseChan(int MainChanNo,int ChanNo,int CloseFlag);
int ChanTimer(int MainChanNo);
private:
int ReadConfigParam();
int parseRtuConfig(CCommonConfigParse &configParse, const std::string &strRtuName, SDNP3MASTERAppConfParam &stParam);
void ClearDataProcThreadByChanNo(int nChanNo);
private:
int m_ProtocolId; //本协议的ID
CFesBase* m_ptrCFesBase; //CProtocolBase类中定义
DNP3MasterDataProcThreadPtrSeq m_vecDataThreadPtr; //存放所有本协议的线程处理指针
boost::unordered_map<int,SDNP3MASTERAppConfParam> m_mapConfMap; //存储RTU对应的配置参数
};