|
@@ -83,19 +83,19 @@ void Module::Setup(ModuleInfo mi)
|
|
|
dbOperator2 = json["Operator2"].toDouble();
|
|
|
}
|
|
|
|
|
|
- std::string szOp = json["Operator"].toString().toLocal8Bit().toStdString();
|
|
|
- if( strcasecmp(szOp.c_str(), "range") == 0)
|
|
|
+ tr.szOperator = json["Operator"].toString().toLocal8Bit().toStdString();
|
|
|
+ if( strcasecmp(tr.szOperator.c_str(), "range") == 0)
|
|
|
{
|
|
|
tr.dbMin = dbOperator1;
|
|
|
tr.dbMax = dbOperator2;
|
|
|
}
|
|
|
- else if( strcasecmp(szOp.c_str(), "above") == 0)
|
|
|
+ else if( strcasecmp(tr.szOperator.c_str(), "above") == 0)
|
|
|
{
|
|
|
- tr.dbMax = dbOperator1;
|
|
|
+ tr.dbMin = dbOperator1;
|
|
|
}
|
|
|
- else if( strcasecmp(szOp.c_str(), "below") == 0)
|
|
|
+ else if( strcasecmp(tr.szOperator.c_str(), "below") == 0)
|
|
|
{
|
|
|
- tr.dbMin = dbOperator1;
|
|
|
+ tr.dbMax = dbOperator1;
|
|
|
}
|
|
|
m_mpRangeConfig[tr.szName.toLocal8Bit().toStdString()] = tr;
|
|
|
}
|
|
@@ -151,58 +151,42 @@ void Module::OnSubData(std::string table,std::string val)
|
|
|
{
|
|
|
std::string szDataName = itr->first;
|
|
|
|
|
|
- m_mpRangeConfig[szDataName].nStatus = EAS_Normal;
|
|
|
+ // set current status
|
|
|
+ int nStatus = 0;
|
|
|
std::list<tagKeyValue>::iterator itrV;
|
|
|
for( itrV = m_mpDataValue[szDataName].begin(); itrV != m_mpDataValue[szDataName].end(); ++itrV)
|
|
|
{
|
|
|
tagKeyValue tKV = *itrV;
|
|
|
-
|
|
|
- if( itrV->value > m_mpRangeConfig[szDataName].dbMax )
|
|
|
+ if( itrV->value >= m_mpRangeConfig[szDataName].dbMin &&
|
|
|
+ itrV->value <= m_mpRangeConfig[szDataName].dbMax )
|
|
|
{
|
|
|
- m_mpRangeConfig[szDataName].nStatus |= 0x01;
|
|
|
- }
|
|
|
- else if( itrV->value < m_mpRangeConfig[szDataName].dbMin )
|
|
|
- {
|
|
|
- m_mpRangeConfig[szDataName].nStatus |= 0x02;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- m_mpRangeConfig[szDataName].nStatus = EAS_Normal;
|
|
|
+ nStatus |= 1;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //qDebug() << __FILE__ << __LINE__ << name.c_str() << m_mpRangeConfig[name].nStatus;
|
|
|
- std::vector<std::string>::iterator itr;
|
|
|
- for( itr = m_szOutputs.begin(); itr != m_szOutputs.end(); ++itr )
|
|
|
+ // new alarm
|
|
|
+ if( nStatus == 1 && m_mpRangeConfig[szDataName].nStatus == 0)
|
|
|
{
|
|
|
- QString szStatus;
|
|
|
- switch( m_mpRangeConfig[szDataName].nStatus )
|
|
|
+ m_mpRangeConfig[szDataName].nStatus = 1;
|
|
|
+
|
|
|
+ std::vector<std::string>::iterator itr;
|
|
|
+ for( itr = m_szOutputs.begin(); itr != m_szOutputs.end(); ++itr )
|
|
|
{
|
|
|
- case EAS_Normal:
|
|
|
- szStatus = "[]";
|
|
|
- break;
|
|
|
- case EAS_OverThan:
|
|
|
- szStatus = ">";
|
|
|
- break;
|
|
|
- case EAS_UnderThan:
|
|
|
- szStatus = "<";
|
|
|
- break;
|
|
|
- case EAS_Both:
|
|
|
- szStatus = "><";
|
|
|
- break;
|
|
|
+ if( m_mpRangeConfig[szDataName].nStatus != 0)
|
|
|
+ {
|
|
|
+ QString szJson;
|
|
|
+ szJson += "{";
|
|
|
+ szJson += QString("\"occurTime\":\"%1\",").arg(QDateTime::currentDateTime().toString("hh:mm:ss.zzz"));
|
|
|
+ szJson += QString("\"status\":0,");
|
|
|
+ szJson += QString("\"content\":\"%1 %2\",").arg(szDataName.c_str()).arg(m_mpRangeConfig[szDataName].szOperator.c_str());
|
|
|
+ szJson += QString("\"alarmRuleId\":\"%1\",").arg(m_mpRangeConfig[szDataName].alarmRuleId.c_str());
|
|
|
+ szJson += QString("\"alarmRuleVersion\":%1,").arg(m_mpRangeConfig[szDataName].alarmRuleVersion);
|
|
|
+ szJson += QString("\"level\":%1,").arg(m_mpRangeConfig[szDataName].level);
|
|
|
+ szJson += QString("\"object\":\"%1\"").arg(m_mpRangeConfig[szDataName].object.c_str());
|
|
|
+ szJson += "}";
|
|
|
+ m_pDataConsumer->OnData(*itr,QVariant(szJson));
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- QString szJson;
|
|
|
- szJson += "{";
|
|
|
- szJson += QString("\"occurTime\":\"%1\",").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss:zzz"));
|
|
|
- szJson += QString("\"status\":%1,").arg(m_mpRangeConfig[szDataName].status);
|
|
|
- szJson += QString("\"content\":\"%1 %2\",").arg(szDataName.c_str()).arg(szStatus);
|
|
|
- szJson += QString("\"alarmRuleId\":\"%1\",").arg(m_mpRangeConfig[szDataName].alarmRuleId.c_str());
|
|
|
- szJson += QString("\"alarmRuleVersion\":%1,").arg(m_mpRangeConfig[szDataName].alarmRuleVersion);
|
|
|
- szJson += QString("\"level\":%1,").arg(m_mpRangeConfig[szDataName].level);
|
|
|
- szJson += QString("\"object\":\"%1\"").arg(m_mpRangeConfig[szDataName].object.c_str());
|
|
|
- szJson += "}";
|
|
|
- m_pDataConsumer->OnData(*itr,QVariant(szJson));
|
|
|
}
|
|
|
}
|
|
|
m_objDataLock.unlock();
|