|
@@ -37,7 +37,7 @@ Module::Module()
|
|
m_szOutputs.clear();
|
|
m_szOutputs.clear();
|
|
m_mpParamConfig.clear();
|
|
m_mpParamConfig.clear();
|
|
m_mpDataValue.clear();
|
|
m_mpDataValue.clear();
|
|
- m_nLoopIntervalMS = UINT_FAST32_MAX;
|
|
|
|
|
|
+ m_nLoopIntervalMS = 100;//UINT_FAST32_MAX;
|
|
}
|
|
}
|
|
|
|
|
|
bool Module::isInheritedFrom(std::string tp)
|
|
bool Module::isInheritedFrom(std::string tp)
|
|
@@ -57,7 +57,7 @@ void Module::Setup(ModuleInfo mi)
|
|
std::list<DataItem>::iterator itrO;
|
|
std::list<DataItem>::iterator itrO;
|
|
for( itrO = mi.Properties.begin(); itrO != mi.Properties.end(); ++itrO )
|
|
for( itrO = mi.Properties.begin(); itrO != mi.Properties.end(); ++itrO )
|
|
{
|
|
{
|
|
- m_szOutputs.push_back(mi.Code + "." + itrO->Code);
|
|
|
|
|
|
+ m_szOutputs.push_back(mi.Code + "_" + itrO->Code);
|
|
}
|
|
}
|
|
|
|
|
|
std::vector<Setting>::iterator itr;
|
|
std::vector<Setting>::iterator itr;
|
|
@@ -115,40 +115,41 @@ void Module::Check()
|
|
std::map<std::string,QDateTime>::iterator itrR;
|
|
std::map<std::string,QDateTime>::iterator itrR;
|
|
for( itrR = mpCache.begin(); itrR != mpCache.end(); ++itrR )
|
|
for( itrR = mpCache.begin(); itrR != mpCache.end(); ++itrR )
|
|
{
|
|
{
|
|
- if( m_mpParamConfig.find(itrR->first) == m_mpParamConfig.end())
|
|
|
|
|
|
+ std::string szTable = itrR->first;
|
|
|
|
+ if( m_mpParamConfig.find(szTable) == m_mpParamConfig.end())
|
|
{
|
|
{
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
- uint nIntervalMS = m_mpParamConfig[itrR->first].uIntervalMS;
|
|
|
|
|
|
+ uint nIntervalMS = m_mpParamConfig[szTable].uIntervalMS;
|
|
qint64 tDiff = itrR->second.msecsTo(dtNow);
|
|
qint64 tDiff = itrR->second.msecsTo(dtNow);
|
|
if( tDiff > nIntervalMS )
|
|
if( tDiff > nIntervalMS )
|
|
{
|
|
{
|
|
- if( m_mpParamConfig[itrR->first].nStatus != EAS_Breaked )
|
|
|
|
|
|
+ if( m_mpParamConfig[szTable].nStatus != EAS_Breaked )
|
|
{
|
|
{
|
|
- m_mpParamConfig[itrR->first].nStatus = EAS_Breaked;
|
|
|
|
- m_mpParamConfig[itrR->first].bChanged = true;
|
|
|
|
|
|
+ m_mpParamConfig[szTable].nStatus = EAS_Breaked;
|
|
|
|
+ m_mpParamConfig[szTable].bChanged = true;
|
|
|
|
|
|
- pubStatus(itrR->first,EAS_Breaked);
|
|
|
|
|
|
+ pubStatus(szTable,EAS_Breaked);
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- m_mpParamConfig[itrR->first].bChanged = false;
|
|
|
|
|
|
+ m_mpParamConfig[szTable].bChanged = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- if( m_mpParamConfig[itrR->first].nStatus == EAS_Breaked )
|
|
|
|
|
|
+ if( m_mpParamConfig[szTable].nStatus == EAS_Breaked )
|
|
{
|
|
{
|
|
- m_mpParamConfig[itrR->first].nStatus = EAS_Recover;
|
|
|
|
- m_mpParamConfig[itrR->first].bChanged = true;
|
|
|
|
|
|
+ m_mpParamConfig[szTable].nStatus = EAS_Recover;
|
|
|
|
+ m_mpParamConfig[szTable].bChanged = true;
|
|
|
|
|
|
- pubStatus(itrR->first,EAS_Breaked);
|
|
|
|
|
|
+ pubStatus(szTable,EAS_Recover);
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- m_mpParamConfig[itrR->first].nStatus = EAS_Normal;
|
|
|
|
- m_mpParamConfig[itrR->first].bChanged = false;
|
|
|
|
|
|
+ m_mpParamConfig[szTable].nStatus = EAS_Normal;
|
|
|
|
+ m_mpParamConfig[szTable].bChanged = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -162,31 +163,44 @@ void Module::pubStatus(std::string name,int nStatus)
|
|
std::vector<std::string>::iterator itr;
|
|
std::vector<std::string>::iterator itr;
|
|
for( itr = m_szOutputs.begin(); itr != m_szOutputs.end(); ++itr )
|
|
for( itr = m_szOutputs.begin(); itr != m_szOutputs.end(); ++itr )
|
|
{
|
|
{
|
|
|
|
+ std::string topic = *itr;
|
|
QString szStatus;
|
|
QString szStatus;
|
|
switch( nStatus )
|
|
switch( nStatus )
|
|
{
|
|
{
|
|
case EAS_Normal:
|
|
case EAS_Normal:
|
|
- szStatus = "Normal";
|
|
|
|
|
|
+ szStatus = "O";
|
|
break;
|
|
break;
|
|
case EAS_Breaked:
|
|
case EAS_Breaked:
|
|
- szStatus = "Breaked";
|
|
|
|
|
|
+ szStatus = "B";
|
|
break;
|
|
break;
|
|
case EAS_Recover:
|
|
case EAS_Recover:
|
|
- szStatus = "Recover";
|
|
|
|
|
|
+ szStatus = "R";
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
- QString szMSG = QString("{\"%1\":\"%2\"}").arg(name.c_str()).arg(szStatus);
|
|
|
|
- m_pDataConsumer->OnData(*itr,QVariant(szMSG));
|
|
|
|
|
|
+ QString szJson;
|
|
|
|
+ szJson += "{";
|
|
|
|
+ szJson += QString("\"%1\":\"%2\"").arg(name.c_str()).arg(szStatus);
|
|
|
|
+ szJson += "}";
|
|
|
|
+
|
|
|
|
+ emit sigMqttMsg(topic,szJson);
|
|
|
|
+ //qDebug() << __FILE__ << __LINE__ << QDateTime::currentDateTime().toString("hh:mm:ss.zzz ") << szMSG;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void Module::Run()
|
|
void Module::Run()
|
|
{
|
|
{
|
|
|
|
+ connect(this,SIGNAL(sigMqttMsg(std::string,QString)),this,SLOT(sltMqttMsg(std::string,QString)),Qt::QueuedConnection);
|
|
|
|
+
|
|
std::thread t(&Module::Check,this);
|
|
std::thread t(&Module::Check,this);
|
|
t.detach();
|
|
t.detach();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void Module::sltMqttMsg(std::string topic,QString szJson)
|
|
|
|
+{
|
|
|
|
+ m_pDataConsumer->OnData(topic,QVariant(szJson));
|
|
|
|
+}
|
|
|
|
+
|
|
BaseModule* instance()
|
|
BaseModule* instance()
|
|
{
|
|
{
|
|
return new Module();
|
|
return new Module();
|