123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #pragma once
- #include "RunnableModule.h"
- #include "libaray_symbols.h"
- #include "LockFreeQueue.h"
- #include <QtCore/QDateTime>
- #include <QtCore/QReadWriteLock>
- 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<std::string> m_szOutputs; // 数据名称
- std::map<std::string,tagParam> m_mpParamConfig; // 数据参数
- uint m_nLoopIntervalMS; // 检测周期
- private:
- std::map<std::string,QDateTime> 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*);
- }
|