12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #pragma once
- #include "BaseModule.h"
- #include "libaray_symbols.h"
- #include "LockFreeQueue.h"
- #include <QtCore/QDateTime>
- #include <QtCore/QReadWriteLock>
- enum EAlarmStatus
- {
- EAS_Normal = 0,
- EAS_OverThan = 1,
- EAS_UnderThan = 2,
- EAS_Both = 3
- };
- // 全局唯一实例
- // 数据越限报警
- class ALARMRECOGNITION_EXPORT Module : public BaseModule
- {
- public:
- Module();
- private:
- struct tagRange{
- double dbMax = __DBL_MAX__;
- double dbMin = __DBL_MIN__;
- uint uWinSize = 5;
- int nStatus = EAS_Normal;
- };
- struct tagKeyValue{
- std::string name = "";
- double value = 0;
- QDateTime tm;
- tagKeyValue()
- {
- tm = QDateTime::currentDateTime();
- }
- tagKeyValue(std::string n,double v)
- {
- name = n;
- value = v;
- tm = QDateTime::currentDateTime();
- }
- };
- private:
- DataConsumer* m_pDataConsumer = nullptr;
- std::vector<std::string> m_szOutputs; // 数据名称
- std::map<std::string,tagRange> m_mpRangeConfig; // 数据范围
- private:
- std::map<std::string,std::list<tagKeyValue>>
- m_mpDataValue; // 测量数据
- QReadWriteLock m_objDataLock;
- //void Verify();
- 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" {//一定要添加上
- ALARMRECOGNITION_EXPORT BaseModule* instance();
- ALARMRECOGNITION_EXPORT void destroy(BaseModule*);
- }
|