#pragma once #include "RunnableModule.h" #include "libaray_symbols.h" #include "LockFreeQueue.h" #include #include enum EAlarmStatus { EAS_Normal = 0, EAS_Breaked = 1, EAS_Recover = 2 }; // 全局唯一实例 // 数据通断告警 class COMMRECOGNITION_EXPORT Module : public RunnableModule { public: Module(); private: struct tagParam{ uint uWinSize = 3; uint uIntervalMS = 1000; int nStatus = EAS_Breaked; bool bChanged = false; }; private: DataConsumer* m_pDataConsumer = nullptr; std::vector m_szOutputs; // 数据名称 std::map m_mpParamConfig; // 数据参数 uint m_nLoopIntervalMS; // 检测周期 private: std::map m_mpDataValue; // 测量数据 QReadWriteLock m_objDataLock; private: void pubStatus(std::string,int); void Check(); virtual void Run(); public: virtual void Setup(ModuleInfo mi); virtual void regConsumer(DataConsumer* pDC) ; virtual bool isInheritedFrom(std::string tp); virtual void OnSubData(std::string name,std::string val); }; extern "C" {//一定要添加上 COMMRECOGNITION_EXPORT BaseModule* instance(); COMMRECOGNITION_EXPORT void destroy(BaseModule*); }