1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #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
- };
- // 全局唯一实例
- // 数据越限报警
- // CREATE TABLE IF NOT EXISTS lanpengdb.mokuai2(ts timestamp, dim1 double);
- // create topic mokuai2 as select * from lanpengdb.mokuai2;
- // delete from lanpengdb.mokuai2;
- // insert into lanpengdb.mokuai2 values(NOW,12.345);
- class ALARMRECOGNITION_EXPORT Module : public BaseModule
- {
- public:
- Module();
- private:
- struct tagRange{
- QString szName; // data name
- double dbMax = __DBL_MAX__;
- double dbMin = __DBL_MIN__;
- uint uWinSize = 5;
- int nStatus = EAS_Normal;
- std::string alarmRuleId; // 节点-标识码
- int alarmRuleVersion;
- int level;
- int status;
- std::string object;
- tagRange()
- {
- szName.clear();
- dbMax = __DBL_MAX__;
- dbMin = __DBL_MIN__;
- uWinSize = 5;
- 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; // 数据范围:data name - confit
- 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*);
- }
|