Commit 4943179f authored by Pavel Vainerman's avatar Pavel Vainerman

Добавил "синтаксический сахар" для логов (ucrit,uwarn,uinfo, и т.п.)

parent 81f5bf10
......@@ -446,9 +446,9 @@ int omap()
conf->oind->printMap(cout);
cout << "==========================================================================\n";
}
catch(Exception& ex)
catch( Exception& ex )
{
ulog.crit() << " configuration init FAILED!!! \n";
ucrit << " configuration init failed: " << ex << endl;
return 1;
}
return 0;
......
......@@ -381,7 +381,7 @@ ModbusRTU::mbErrCode MBSlave::fileTransfer( ModbusRTU::FileTransferMessage& quer
int fd = open(fname.c_str(), O_RDONLY | O_NONBLOCK );
if( fd <= 0 )
{
dlog.warn() << "(fileTransfer): open '" << fname << "' with error: " << strerror(errno) << endl;
dwarn << "(fileTransfer): open '" << fname << "' with error: " << strerror(errno) << endl;
return ModbusRTU::erOperationFailed;
}
......@@ -393,7 +393,7 @@ ModbusRTU::mbErrCode MBSlave::fileTransfer( ModbusRTU::FileTransferMessage& quer
int ret = ::read(fd,&buf,sizeof(buf));
if( ret < 0 )
{
dlog.warn() << "(fileTransfer): read from '" << fname << "' with error: " << strerror(errno) << endl;
dwarn << "(fileTransfer): read from '" << fname << "' with error: " << strerror(errno) << endl;
close(fd);
return ModbusRTU::erOperationFailed;
}
......@@ -407,7 +407,7 @@ ModbusRTU::mbErrCode MBSlave::fileTransfer( ModbusRTU::FileTransferMessage& quer
struct stat fs;
if( fstat(fd,&fs) < 0 )
{
dlog.warn() << "(fileTransfer): fstat for '" << fname << "' with error: " << strerror(errno) << endl;
dwarn << "(fileTransfer): fstat for '" << fname << "' with error: " << strerror(errno) << endl;
close(fd);
return ModbusRTU::erOperationFailed;
}
......@@ -422,7 +422,7 @@ ModbusRTU::mbErrCode MBSlave::fileTransfer( ModbusRTU::FileTransferMessage& quer
if( !reply.set(query.numfile,numpacks,query.numpacket,buf,ret) )
{
dlog.warn() << "(fileTransfer): set date failed..." << endl;
dwarn << "(fileTransfer): set date failed..." << endl;
return ModbusRTU::erOperationFailed;
}
......
......@@ -376,7 +376,7 @@ ModbusRTU::mbErrCode MBTCPServer::fileTransfer( ModbusRTU::FileTransferMessage&
int fd = open(fname.c_str(), O_RDONLY | O_NONBLOCK );
if( fd <= 0 )
{
dlog.warn() << "(fileTransfer): open '" << fname << "' with error: " << strerror(errno) << endl;
dwarn << "(fileTransfer): open '" << fname << "' with error: " << strerror(errno) << endl;
return ModbusRTU::erOperationFailed;
}
......@@ -388,7 +388,7 @@ ModbusRTU::mbErrCode MBTCPServer::fileTransfer( ModbusRTU::FileTransferMessage&
int ret = ::read(fd,&buf,sizeof(buf));
if( ret < 0 )
{
dlog.warn() << "(fileTransfer): read from '" << fname << "' with error: " << strerror(errno) << endl;
dwarn << "(fileTransfer): read from '" << fname << "' with error: " << strerror(errno) << endl;
close(fd);
return ModbusRTU::erOperationFailed;
}
......@@ -402,7 +402,7 @@ ModbusRTU::mbErrCode MBTCPServer::fileTransfer( ModbusRTU::FileTransferMessage&
struct stat fs;
if( fstat(fd,&fs) < 0 )
{
dlog.warn() << "(fileTransfer): fstat for '" << fname << "' with error: " << strerror(errno) << endl;
dwarn << "(fileTransfer): fstat for '" << fname << "' with error: " << strerror(errno) << endl;
close(fd);
return ModbusRTU::erOperationFailed;
}
......@@ -417,7 +417,7 @@ ModbusRTU::mbErrCode MBTCPServer::fileTransfer( ModbusRTU::FileTransferMessage&
if( !reply.set(query.numfile,numpacks,query.numpacket,buf,ret) )
{
dlog.warn() << "(fileTransfer): set date failed..." << endl;
dwarn << "(fileTransfer): set date failed..." << endl;
return ModbusRTU::erOperationFailed;
}
......
......@@ -89,19 +89,16 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback()
}
catch( Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(execute): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(execute): " &lt;&lt; ex &lt;&lt; endl;
}
catch(CORBA::SystemException&amp; ex)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(execute): СORBA::SystemException: "
ucrit &lt;&lt; myname &lt;&lt; "(execute): СORBA::SystemException: "
&lt;&lt; ex.NP_minorString() &lt;&lt; endl;
}
catch(...)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(execute): catch ..." &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(execute): catch ..." &lt;&lt; endl;
}
if( !active )
......@@ -124,7 +121,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::preSensorInfo( UniSetTypes::SensorM
if( _sm->id == <xsl:value-of select="../../@name"/> )
{
<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> = _sm->value;
dlog.level( Debug::type(_sm->value) );
mylog.level( Debug::type(_sm->value) );
}
</xsl:if>
</xsl:if>
......@@ -146,8 +143,8 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::preAskSensors( UniversalIO::UIOComm
break;
}
if( !activated &amp;&amp; ulog.is_crit() )
ulog.crit() &lt;&lt; myname
if( !activated )
ucrit &lt;&lt; myname
&lt;&lt; "(preAskSensors): ************* don`t activated?! ************" &lt;&lt; endl;
for( ;; )
......@@ -165,18 +162,15 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::preAskSensors( UniversalIO::UIOComm
}
catch(SystemError&amp; err)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(preAskSensors): " &lt;&lt; err &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(preAskSensors): " &lt;&lt; err &lt;&lt; endl;
}
catch(Exception&amp; ex)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(preAskSensors): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(preAskSensors): " &lt;&lt; ex &lt;&lt; endl;
}
catch(...)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(preAskSensors): catch(...)" &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(preAskSensors): catch(...)" &lt;&lt; endl;
}
msleep(askPause);
}
......@@ -191,8 +185,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setValue( UniSetTypes::ObjectId _si
<xsl:if test="normalize-space(@vartype)='out'">
if( _sid == <xsl:value-of select="../../@name"/> )
{
if( ulog.is_level2() )
ulog.level2() &lt;&lt; "(setValue): <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> = " &lt;&lt; _val &lt;&lt; endl;
ulog2 &lt;&lt; "(setValue): <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> = " &lt;&lt; _val &lt;&lt; endl;
<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> = _val;
<xsl:call-template name="setdata"/>
return;
......@@ -224,16 +217,14 @@ long <xsl:value-of select="$CLASSNAME"/>_SK::getValue( UniSetTypes::ObjectId _si
</xsl:if>
</xsl:if>
</xsl:for-each>
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(getValue): Обращение к неизвестному датчику sid="
ucrit &lt;&lt; myname &lt;&lt; "(getValue): Обращение к неизвестному датчику sid="
&lt;&lt; _sid &lt;&lt; endl;
return 0;
}
catch(Exception&amp; ex)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(getValue): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(getValue): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
}
......@@ -299,8 +290,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
}
catch(Exception&amp; ex)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(getdata): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(getdata): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
</xsl:template>
......@@ -335,8 +325,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
}
catch(Exception&amp; ex)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
</xsl:template>
......@@ -351,8 +340,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
}
catch(Exception&amp; ex)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
</xsl:template>
......
......@@ -94,19 +94,16 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback()
}
catch( Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(execute): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(execute): " &lt;&lt; ex &lt;&lt; endl;
}
catch(CORBA::SystemException&amp; ex)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(execute): СORBA::SystemException: "
ucrit &lt;&lt; myname &lt;&lt; "(execute): СORBA::SystemException: "
&lt;&lt; ex.NP_minorString() &lt;&lt; endl;
}
catch(...)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(execute): catch ..." &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(execute): catch ..." &lt;&lt; endl;
}
if( !active )
......@@ -157,8 +154,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setValue( UniSetTypes::ObjectId _si
<xsl:if test="normalize-space(@vartype)='out'">
if( _sid == <xsl:value-of select="../../@name"/> )
{
if( ulog.is_level2() )
ulog.level2() &lt;&lt; "(setValue): <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> = " &lt;&lt; _val &lt;&lt; endl;
ulog2 &lt;&lt; "(setValue): <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> = " &lt;&lt; _val &lt;&lt; endl;
<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> = _val;
return;
}
......@@ -180,8 +176,7 @@ long <xsl:value-of select="$CLASSNAME"/>_SK::getValue( UniSetTypes::ObjectId _si
</xsl:if>
</xsl:for-each>
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(getValue): Обращение к неизвестному датчику sid="
ucrit &lt;&lt; myname &lt;&lt; "(getValue): Обращение к неизвестному датчику sid="
&lt;&lt; _sid &lt;&lt; endl;
return 0;
......@@ -232,8 +227,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
}
catch( Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(getdata): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(getdata): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
</xsl:template>
......@@ -268,8 +262,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
}
catch( Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
</xsl:template>
......@@ -284,8 +277,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
}
catch( Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
......
......@@ -88,19 +88,16 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback()
}
catch( Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(execute): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(execute): " &lt;&lt; ex &lt;&lt; endl;
}
catch(CORBA::SystemException&amp; ex)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(execute): СORBA::SystemException: "
ucrit &lt;&lt; myname &lt;&lt; "(execute): СORBA::SystemException: "
&lt;&lt; ex.NP_minorString() &lt;&lt; endl;
}
catch(...)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(execute): catch ..." &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(execute): catch ..." &lt;&lt; endl;
}
if( !active )
......@@ -116,8 +113,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setValue( UniSetTypes::ObjectId _si
<xsl:if test="normalize-space(@vartype)='out'">
if( _sid == <xsl:value-of select="@name"/> )
{
if( ulog.is_level2() )
ulog.level2() &lt;&lt; "(setState): <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> = " &lt;&lt; _val &lt;&lt; endl;
ulog2 &lt;&lt; "(setState): <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> = " &lt;&lt; _val &lt;&lt; endl;
<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> = _val;
<xsl:call-template name="setdata"/>
return;
......@@ -163,7 +159,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::preSensorInfo( UniSetTypes::SensorM
if( _sm->id == <xsl:value-of select="@name"/> )
{
<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> = _sm->value;
dlog.level( Debug::type(_sm->value) );
mylog.level( Debug::type(_sm->value) );
}
</xsl:if>
</xsl:if>
......@@ -188,14 +184,12 @@ long <xsl:value-of select="$CLASSNAME"/>_SK::getValue( UniSetTypes::ObjectId _si
return <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>;
}
</xsl:for-each>
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(getValue): Обращение к неизвестному датчику sid="
ucrit &lt;&lt; myname &lt;&lt; "(getValue): Обращение к неизвестному датчику sid="
&lt;&lt; _sid &lt;&lt; endl;
}
catch(Exception&amp; ex)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(getValue): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(getValue): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
......@@ -214,8 +208,8 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::preAskSensors( UniversalIO::UIOComm
break;
}
if( !activated &amp;&amp; ulog.is_crit() )
ulog.crit() &lt;&lt; myname
if( !activated )
ucrit &lt;&lt; myname
&lt;&lt; "(preAskSensors): ************* don`t activated?! ************" &lt;&lt; endl;
for( ;; )
......@@ -232,18 +226,15 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::preAskSensors( UniversalIO::UIOComm
}
catch(SystemError&amp; err)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(preAskSensors): " &lt;&lt; err &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(preAskSensors): " &lt;&lt; err &lt;&lt; endl;
}
catch(Exception&amp; ex)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(preAskSensors): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(preAskSensors): " &lt;&lt; ex &lt;&lt; endl;
}
catch(...)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(preAskSensors): catch(...)" &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(preAskSensors): catch(...)" &lt;&lt; endl;
}
msleep(askPause);
}
......@@ -275,8 +266,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
}
catch( UniSetTypes::Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(getdata): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(getdata): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
}
......@@ -293,8 +283,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
}
catch( UniSetTypes::Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
}
......@@ -312,8 +301,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
}
catch( UniSetTypes::Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
}
......
......@@ -93,19 +93,16 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback()
}
catch( Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(execute): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(execute): " &lt;&lt; ex &lt;&lt; endl;
}
catch(CORBA::SystemException&amp; ex)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(execute): СORBA::SystemException: "
ucrit &lt;&lt; myname &lt;&lt; "(execute): СORBA::SystemException: "
&lt;&lt; ex.NP_minorString() &lt;&lt; endl;
}
catch(...)
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(execute): catch ..." &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(execute): catch ..." &lt;&lt; endl;
}
if( !active )
......@@ -121,8 +118,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setValue( UniSetTypes::ObjectId sid
<xsl:if test="normalize-space(@vartype)='out'">
if( sid == <xsl:value-of select="@name"/> )
{
if( ulog.is_level2() )
ulog.level2() &lt;&lt; "(setValue): <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> = " &lt;&lt; val &lt;&lt; endl;
ulog2 &lt;&lt; "(setValue): <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> = " &lt;&lt; val &lt;&lt; endl;
<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> = val;
return;
}
......@@ -178,8 +174,7 @@ long <xsl:value-of select="$CLASSNAME"/>_SK::getValue( UniSetTypes::ObjectId _si
return <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>;
</xsl:for-each>
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(getValue): Обращение к неизвестному датчику sid="
ucrit &lt;&lt; myname &lt;&lt; "(getValue): Обращение к неизвестному датчику sid="
&lt;&lt; _sid &lt;&lt; endl;
return 0;
}
......@@ -214,8 +209,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code,
}
catch( Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(getdata): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(getdata): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
</xsl:template>
......@@ -232,8 +226,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code,
}
catch( Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
</xsl:template>
......@@ -251,8 +244,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code,
}
catch( Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(setdata): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
</xsl:template>
......@@ -269,8 +261,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code,
}
catch( Exception&amp; ex )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; myname &lt;&lt; "(setmsg): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(setmsg): " &lt;&lt; ex &lt;&lt; endl;
throw;
}
</xsl:template>
......
......@@ -90,7 +90,7 @@
</xsl:when>
<xsl:when test="$GENTYPE='CHECK'">
<xsl:if test="normalize-space(@no_check_id)!='1'">
<xsl:if test="normalize-space(../../@id)=''">if( ulog.is_warn() ) ulog.warn() &lt;&lt; myname &lt;&lt; ": Not found (Message)OID for mid_<xsl:value-of select="normalize-space(../../@name)"/>" &lt;&lt; endl;
<xsl:if test="normalize-space(../../@id)=''">uwarn &lt;&lt; myname &lt;&lt; ": Not found (Message)OID for mid_<xsl:value-of select="normalize-space(../../@name)"/>" &lt;&lt; endl;
</xsl:if>
</xsl:if>
</xsl:when>
......@@ -101,8 +101,7 @@
<xsl:when test="$GENTYPE='A'">
if( _code == mid_<xsl:value-of select="../../@name"/> )
{
if( ulog.is_level8() )
ulog.level8() &lt;&lt; "<xsl:value-of select="../../@name"/>" &lt;&lt; endl;
ulog8 &lt;&lt; "<xsl:value-of select="../../@name"/>" &lt;&lt; endl;
m_<xsl:value-of select="../../@name"/> = _state;
try
{
......@@ -126,8 +125,7 @@
}
catch( UniSetTypes::Exception&amp; ex )
{
if( ulog.is_level1() )
ulog.level1() &lt;&lt; getName() &lt;&lt; ex &lt;&lt; endl;
ulog1 &lt;&lt; getName() &lt;&lt; ex &lt;&lt; endl;
}
}
</xsl:when>
......@@ -165,8 +163,22 @@
void updateValues();
void setMsg( UniSetTypes::ObjectId code, bool state );
DebugStream dlog;
void init_dlog(DebugStream&amp; dlog);
DebugStream mylog;
void init_dlog( DebugStream&amp; d );
// "синтаксический сахар"..для логов
#define myinfo if( mylog.debugging(Debug::INFO) ) mylog
#define mywarn if( mylog.debugging(Debug::WARN) ) mylog
#define mycrit if( mylog.debugging(Debug::CRIT) ) mylog
#define mylog1 if( mylog.debugging(Debug::LEVEL1) ) mylog
#define mylog2 if( mylog.debugging(Debug::LEVEL2) ) mylog
#define mylog3 if( mylog.debugging(Debug::LEVEL3) ) mylog
#define mylog4 if( mylog.debugging(Debug::LEVEL4) ) mylog
#define mylog5 if( mylog.debugging(Debug::LEVEL5) ) mylog
#define mylog6 if( mylog.debugging(Debug::LEVEL6) ) mylog
#define mylog7 if( mylog.debugging(Debug::LEVEL7) ) mylog
#define mylog8 if( mylog.debugging(Debug::LEVEL8) ) mylog
#define mylog9 if( mylog.debugging(Debug::LEVEL9) ) mylog
</xsl:template>
<xsl:template name="COMMON-HEAD-PROTECTED">
......@@ -238,7 +250,7 @@
// ------------------------------------------------------------------------------------------
void <xsl:value-of select="$CLASSNAME"/>_SK::init_dlog( DebugStream&amp; d )
{
<xsl:value-of select="$CLASSNAME"/>_SK::dlog = d;
<xsl:value-of select="$CLASSNAME"/>_SK::mylog = d;
}
// ------------------------------------------------------------------------------------------
void <xsl:value-of select="$CLASSNAME"/>_SK::processingMessage( UniSetTypes::VoidMessage* _msg )
......@@ -272,9 +284,9 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::processingMessage( UniSetTypes::Voi
break;
}
}
catch(Exception&amp; ex)
catch( Exception&amp; ex )
{
cout &lt;&lt; myname &lt;&lt; "(processingMessage): " &lt;&lt; ex &lt;&lt; endl;
ucrit &lt;&lt; myname &lt;&lt; "(processingMessage): " &lt;&lt; ex &lt;&lt; endl;
}
}
// -----------------------------------------------------------------------------
......@@ -286,8 +298,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::sysCommand( SystemMessage* _sm )
ulog &lt;&lt; myname &lt;&lt; "(sysCommand): WatchDog" &lt;&lt; endl;
if( !active || !ptStartUpTimeout.checkTime() )
{
if( ulog.is_warn() )
ulog.warn() &lt;&lt; myname &lt;&lt; "(sysCommand): игнорируем WatchDog, потому-что только-что стартанули" &lt;&lt; endl;
uwarn &lt;&lt; myname &lt;&lt; "(sysCommand): игнорируем WatchDog, потому-что только-что стартанули" &lt;&lt; endl;
break;
}
case SystemMessage::StartUp:
......@@ -313,12 +324,12 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::sysCommand( SystemMessage* _sm )
case SystemMessage::LogRotate:
{
// переоткрываем логи
ulog &lt;&lt; myname &lt;&lt; "(sysCommand): logRotate" &lt;&lt; endl;
string fname( ulog.getLogFile() );
mylog &lt;&lt; myname &lt;&lt; "(sysCommand): logRotate" &lt;&lt; endl;
string fname( mylog.getLogFile() );
if( !fname.empty() )
{
ulog.logFile(fname.c_str());
ulog &lt;&lt; myname &lt;&lt; "(sysCommand): ***************** ulog LOG ROTATE *****************" &lt;&lt; endl;
mylog.logFile(fname.c_str());
mylog &lt;&lt; myname &lt;&lt; "(sysCommand): ***************** mylog LOG ROTATE *****************" &lt;&lt; endl;
}
}
break;
......@@ -375,12 +386,9 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::waitSM( int wait_msec, ObjectId _te
if( _testID == DefaultObjectId )
return;
if( ulog.is_info() )
{
ulog.info() &lt;&lt; myname &lt;&lt; "(waitSM): waiting SM ready "
uinfo &lt;&lt; myname &lt;&lt; "(waitSM): waiting SM ready "
&lt;&lt; wait_msec &lt;&lt; " msec"
&lt;&lt; " testID=" &lt;&lt; _testID &lt;&lt; endl;
}
if( !ui.waitReady(_testID,wait_msec) )
{
......@@ -389,8 +397,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::waitSM( int wait_msec, ObjectId _te
&lt;&lt; "(waitSM): Не дождались готовности(exist) SharedMemory к работе в течение "
&lt;&lt; wait_msec &lt;&lt; " мсек";
if( ulog.is_crit() )
ulog.crit() &lt;&lt; err.str() &lt;&lt; endl;
ucrit &lt;&lt; err.str() &lt;&lt; endl;
terminate();
abort();
// kill(SIGTERM,getpid()); // прерываем (перезапускаем) процесс...
......@@ -407,8 +414,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::waitSM( int wait_msec, ObjectId _te
&lt;&lt; "(waitSM): Не дождались готовности(work) SharedMemory к работе в течение "
&lt;&lt; wait_msec &lt;&lt; " мсек";
if( ulog.is_crit() )
ulog.crit() &lt;&lt; err.str() &lt;&lt; endl;
ucrit &lt;&lt; err.str() &lt;&lt; endl;
terminate();
abort();
// kill(SIGTERM,getpid()); // прерываем (перезапускаем) процесс...
......@@ -534,7 +540,7 @@ askPause(2000),
</xsl:for-each>
end_private(false)
{
ulog.crit() &lt;&lt; "<xsl:value-of select="$CLASSNAME"/>: init failed!!!!!!!!!!!!!!!" &lt;&lt; endl;
ucrit &lt;&lt; "<xsl:value-of select="$CLASSNAME"/>: init failed!!!!!!!!!!!!!!!" &lt;&lt; endl;
throw Exception( string(myname+": init failed!!!") );
}
// -----------------------------------------------------------------------------
......@@ -710,16 +716,14 @@ end_private(false)
<xsl:if test="normalize-space(@min)!=''">
if( <xsl:value-of select="@name"/> &lt; <xsl:value-of select="@min"/> )
{
if( ulog.is_warn() )
ulog.warn() &lt;&lt; myname &lt;&lt; ": RANGE WARNING: <xsl:value-of select="@name"/>=" &lt;&lt; <xsl:value-of select="@name"/> &lt;&lt; " &lt; <xsl:value-of select="@min"/>" &lt;&lt; endl;
uwarn &lt;&lt; myname &lt;&lt; ": RANGE WARNING: <xsl:value-of select="@name"/>=" &lt;&lt; <xsl:value-of select="@name"/> &lt;&lt; " &lt; <xsl:value-of select="@min"/>" &lt;&lt; endl;
<xsl:if test="normalize-space(@no_range_exception)=''">throw UniSetTypes::SystemError(myname+"(init): <xsl:value-of select="@name"/> &lt; <xsl:value-of select="@min"/>");</xsl:if>
}
</xsl:if>
<xsl:if test="normalize-space(@max)!=''">
if( <xsl:value-of select="@name"/> &gt; <xsl:value-of select="@max"/> )
{
if( ulog.is_warn() )
ulog.warn() &lt;&lt; myname &lt;&lt; ": RANGE WARNING: <xsl:value-of select="@name"/>=" &lt;&lt; <xsl:value-of select="@name"/> &lt;&lt; " &gt; <xsl:value-of select="@max"/>" &lt;&lt; endl;
uwarn &lt;&lt; myname &lt;&lt; ": RANGE WARNING: <xsl:value-of select="@name"/>=" &lt;&lt; <xsl:value-of select="@name"/> &lt;&lt; " &gt; <xsl:value-of select="@max"/>" &lt;&lt; endl;
<xsl:if test="normalize-space(@no_range_exception)=''">throw UniSetTypes::SystemError(myname+"(init): <xsl:value-of select="@name"/> &gt; <xsl:value-of select="@max"/>");</xsl:if>
}
</xsl:if>
......@@ -777,29 +781,18 @@ bool <xsl:value-of select="$CLASSNAME"/>_SK::alarm( UniSetTypes::ObjectId _code,
{
if( _code == UniSetTypes::DefaultObjectId )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; getName()
ucrit &lt;&lt; getName()
&lt;&lt; "(alarm): попытка послать сообщение с DefaultObjectId"
&lt;&lt; endl;
return false;
}
if( ulog.is_level1() )
{
ulog.level1() &lt;&lt; getName() &lt;&lt; "(alarm): ";
if( _state )
ulog.level1(false) &lt;&lt; "SEND ";
else
ulog.level1(false) &lt;&lt; "RESET ";
ulog.level1(false) &lt;&lt; endl;
}
ulog1 &lt;&lt; getName() &lt;&lt; "(alarm): " &lt;&lt; ( _state ? "SEND " : "RESET " ) &lt;&lt; endl;
<xsl:for-each select="//msgmap/item">
if( _code == <xsl:value-of select="@name"/> )
{
if( ulog.is_level1() )
ulog.level1() &lt;&lt; "<xsl:value-of select="@name"/>" &lt;&lt; endl;
ulog1 &lt;&lt; "<xsl:value-of select="@name"/>" &lt;&lt; endl;
try
{
m_<xsl:value-of select="@name"/> = _state;
......@@ -814,8 +807,7 @@ bool <xsl:value-of select="$CLASSNAME"/>_SK::alarm( UniSetTypes::ObjectId _code,
}
</xsl:for-each>
if( ulog.is_level1() )
ulog.level1() &lt;&lt; " not found MessgeOID?!!" &lt;&lt; endl;
ulog1 &lt;&lt; " not found MessgeOID?!!" &lt;&lt; endl;
return false;
}
// -----------------------------------------------------------------------------
......@@ -834,8 +826,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::resetMsg()
}
catch( UniSetTypes::Exception&amp; ex )
{
if( ulog.is_level1() )
ulog.level1() &lt;&lt; getName() &lt;&lt; ex &lt;&lt; endl;
ulog1 &lt;&lt; getName() &lt;&lt; ex &lt;&lt; endl;
}
}
</xsl:for-each>
......@@ -893,7 +884,7 @@ confnode(0),
activated(false),
askPause(2000)
{
ulog.crit() &lt;&lt; "<xsl:value-of select="$CLASSNAME"/>: init failed!!!!!!!!!!!!!!!" &lt;&lt; endl;
ucrit &lt;&lt; "<xsl:value-of select="$CLASSNAME"/>: init failed!!!!!!!!!!!!!!!" &lt;&lt; endl;
throw Exception( string(myname+": init failed!!!") );
}
// -----------------------------------------------------------------------------
......@@ -1055,22 +1046,13 @@ bool <xsl:value-of select="$CLASSNAME"/>_SK::alarm( UniSetTypes::ObjectId _code,
{
if( _code == UniSetTypes::DefaultObjectId )
{
if( ulog.is_crit() )
ulog.crit() &lt;&lt; getName()
ucrit &lt;&lt; getName()
&lt;&lt; "(alarm): попытка послать сообщение с DefaultObjectId"
&lt;&lt; endl;
return false;
}
if( ulog.is_level1() )
{
ulog.level1() &lt;&lt; getName() &lt;&lt; "(alarm): ";
if( _state )
ulog.level1(false) &lt;&lt; "SEND (" &lt;&lt; _code &lt;&lt; ")";
else
ulog.level1(false) &lt;&lt; "RESET (" &lt;&lt; _code &lt;&lt; ")";
}
ulog1 &lt;&lt; getName() &lt;&lt; "(alarm): (" &lt;&lt; _code &lt;&lt; ")" &lt;&lt; ( _state ? "SEND" : "RESET" ) &lt;&lt; endl;
<xsl:for-each select="//sensors/item">
<xsl:call-template name="setmsg">
......@@ -1078,8 +1060,7 @@ bool <xsl:value-of select="$CLASSNAME"/>_SK::alarm( UniSetTypes::ObjectId _code,
</xsl:call-template>
</xsl:for-each>
if( ulog.is_level8() )
ulog.level8() &lt;&lt; " not found MessgeOID?!!" &lt;&lt; endl;
ulog8 &lt;&lt; " not found MessgeOID?!!" &lt;&lt; endl;
return false;
}
// -----------------------------------------------------------------------------
......
......@@ -42,7 +42,7 @@
#include <xsl:call-template name="preinclude"/>LT_Object.h<xsl:call-template name="postinclude"/>
#include <xsl:call-template name="preinclude"/>UniXML.h<xsl:call-template name="postinclude"/>
#include <xsl:call-template name="preinclude"/>Trigger.h<xsl:call-template name="postinclude"/>
#include <xsl:call-template name="preinclude"/>UniversalInterface.h<xsl:call-template name="postinclude"/>
#include <xsl:call-template name="preinclude"/>UInterface.h<xsl:call-template name="postinclude"/>
// -----------------------------------------------------------------------------
class <xsl:value-of select="$CLASSNAME"/>_SK:
<xsl:if test="normalize-space($BASECLASS)!=''">public <xsl:value-of select="normalize-space($BASECLASS)"/>,</xsl:if>
......
......@@ -31,7 +31,7 @@
// -----------------------------------------------------------------------------
#include &lt;sstream&gt;
#include <xsl:call-template name="preinclude"/>Configuration.h<xsl:call-template name="postinclude"/>
#include <xsl:call-template name="preinclude"/>ObjectsActivator.h<xsl:call-template name="postinclude"/>
#include <xsl:call-template name="preinclude"/>UniSetActivator.h<xsl:call-template name="postinclude"/>
#include <xsl:call-template name="preinclude"/>Debug.h<xsl:call-template name="postinclude"/>
#include "<xsl:value-of select="$CLASSNAME"/>.h"
// -----------------------------------------------------------------------------
......@@ -53,10 +53,6 @@ int main( int argc,char* argv[] )
string confile = UniSetTypes::getArgParam( "--confile", argc, argv, "configure.xml" );
conf = new Configuration(argc, argv,confile);
string logfilename = conf->getArgParam("--logfile","<xsl:value-of select="$CLASSNAME"/>.log");
string logname( conf->getLogDir() + logfilename );
ulog.logFile( logname.c_str() );
// определяем ID объекта
ObjectId ID(DefaultObjectId);
......@@ -73,8 +69,12 @@ int main( int argc,char* argv[] )
}
<xsl:value-of select="$CLASSNAME"/> obj(ID);
ObjectsActivator act;
string logfilename = conf->getArgParam("--logfile","<xsl:value-of select="$CLASSNAME"/>.log");
string logname( conf->getLogDir() + logfilename );
obj.mylog.logFile( logname.c_str() );
UniSetActivator act;
act.addObject(static_cast&lt;class UniSetObject*&gt;(&amp;obj));
SystemMessage sm(SystemMessage::StartUp);
......
......@@ -33,7 +33,7 @@
// -----------------------------------------------------------------------------
#include &lt;sstream&gt;
#include <xsl:call-template name="preinclude"/>Configuration.h<xsl:call-template name="postinclude"/>
#include <xsl:call-template name="preinclude"/>ObjectsActivator.h<xsl:call-template name="postinclude"/>
#include <xsl:call-template name="preinclude"/>UniSetActivator.h<xsl:call-template name="postinclude"/>
#include <xsl:call-template name="preinclude"/>Debug.h<xsl:call-template name="postinclude"/>
#include "<xsl:value-of select="$CLASSNAME"/>.h"
// -----------------------------------------------------------------------------
......@@ -55,10 +55,6 @@ int main( int argc, const char** argv )
string confile = UniSetTypes::getArgParam( "--confile", argc, argv, "configure.xml" );
conf = new Configuration(argc, argv, confile);
string logfilename = conf->getArgParam("--logfile","<xsl:value-of select="$CLASSNAME"/>.log");
string logname( conf->getLogDir() + logfilename );
ulog.logFile( logname.c_str() );
<xsl:if test="not(normalize-space(//@OID))=''">
<xsl:value-of select="$CLASSNAME"/> obj;
......@@ -79,9 +75,14 @@ int main( int argc, const char** argv )
}
}
<xsl:value-of select="$CLASSNAME"/> obj(ID);
string logfilename = conf->getArgParam("--logfile","<xsl:value-of select="$CLASSNAME"/>.log");
string logname( conf->getLogDir() + logfilename );
obj.mylog.logFile( logname.c_str() );
</xsl:if>
ObjectsActivator act;
UniSetActivator act;
act.addObject(static_cast&lt;class UniSetObject*&gt;(&amp;obj));
SystemMessage sm(SystemMessage::StartUp);
......
......@@ -31,10 +31,10 @@ int main( int argc, const char **argv )
SystemMessage sm(SystemMessage::StartUp);
act.broadcast( sm.transport_msg() );
ulog.ebug::ANY) << "\n\n\n";
ulog.ebug::ANY] << "(Skel::main): -------------- Skel START -------------------------\n\n";
dlog(Debug::ANY) << "\n\n\n";
dlog[Debug::ANY] << "(Skel::main): -------------- Skel START -------------------------\n\n";
ulog << "\n\n\n";
ulog << "(Skel::main): -------------- Skel START -------------------------\n\n";
dlog << "\n\n\n";
dlog << "(Skel::main): -------------- Skel START -------------------------\n\n";
act.run(false);
}
catch(SystemError& err)
......
......@@ -356,6 +356,7 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
- ObjectsActitvator --> UniSetActivator
- remove deprecated property: "sensebility"
- rename property "inverse" --> "threshold_invert"
- add syntax sugar for ulog, dlog (dcrit,dwarn,dlog1,ulog1,ucrit,...)
* Tue Dec 10 2013 Pavel Vainerman <pv@altlinux.ru> 1.7-alt3
- add RRDServer
......
......@@ -152,20 +152,17 @@ void DBServer_MySQL::parse( UniSetTypes::ConfirmMessage* cem )
if( !writeToBase(data.str()) )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(update_confirm): db error: "<< db->error() << endl;
ucrit << myname << "(update_confirm): db error: "<< db->error() << endl;
db->freeResult();
}
}
catch( Exception& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(update_confirm): " << ex << endl;
ucrit << myname << "(update_confirm): " << ex << endl;
}
catch( ... )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(update_confirm): catch..." << endl;
ucrit << myname << "(update_confirm): catch..." << endl;
}
}
//--------------------------------------------------------------------------------------------
......@@ -188,8 +185,7 @@ bool DBServer_MySQL::writeToBase( const string& query )
qbuf.pop();
if( ulog.is_crit() )
ulog.crit() << myname << "(writeToBase): DB not connected! buffer(" << qbufSize
ucrit << myname << "(writeToBase): DB not connected! buffer(" << qbufSize
<< ") overflow! lost query: " << qlost << endl;
}
return false;
......@@ -231,11 +227,9 @@ void DBServer_MySQL::flushBuffer()
string err(db->error());
if( err.empty() )
db->freeResult();
else if( ulog.is_crit() )
{
ulog.crit() << myname << "(writeToBase): error: " << err <<
else
ucrit << myname << "(writeToBase): error: " << err <<
" lost query: " << qbuf.front() << endl;
}
qbuf.pop();
}
......@@ -269,20 +263,17 @@ void DBServer_MySQL::parse( UniSetTypes::SensorMessage *si )
if( !writeToBase(data.str()) )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(insert) sensor msg error: "<< db->error() << endl;
ucrit << myname << "(insert) sensor msg error: "<< db->error() << endl;
db->freeResult();
}
}
catch( Exception& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(insert_main_history): " << ex << endl;
ucrit << myname << "(insert_main_history): " << ex << endl;
}
catch( ... )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(insert_main_history): catch ..." << endl;
ucrit << myname << "(insert_main_history): catch ..." << endl;
}
}
//--------------------------------------------------------------------------------------------
......@@ -346,8 +337,7 @@ void DBServer_MySQL::init_dbserver()
if( !db->connect(dbnode, user, password, dbname) )
{
// ostringstream err;
if( ulog.is_crit() )
ulog.crit() << myname
ucrit << myname
<< "(init): DB connection error: "
<< db->error() << endl;
// throw Exception( string(myname+"(init): не смогли создать соединение с БД "+db->error()) );
......@@ -372,8 +362,7 @@ void DBServer_MySQL::createTables( DBInterface *db )
UniXML_iterator it( conf->getNode("Tables") );
if(!it)
{
if( ulog.is_crit() )
ulog.crit() << myname << ": section <Tables> not found.."<< endl;
ucrit << myname << ": section <Tables> not found.."<< endl;
throw Exception();
}
......@@ -385,8 +374,8 @@ void DBServer_MySQL::createTables( DBInterface *db )
ulog[DBLogInfoLevel] << myname << "(createTables): create " << it.getName() << endl;
ostringstream query;
query << "CREATE TABLE " << conf->getProp(it,"name") << "(" << conf->getProp(it,"create") << ")";
if( !db->query(query.str()) && ulog.is_crit() )
ulog.crit() << myname << "(createTables): error: \t\t" << db->error() << endl;
if( !db->query(query.str()) )
ucrit << myname << "(createTables): error: \t\t" << db->error() << endl;
}
}
}
......@@ -399,8 +388,7 @@ void DBServer_MySQL::timerInfo( UniSetTypes::TimerMessage* tm )
{
if( !db->ping() )
{
if( ulog.is_warn() )
ulog.warn() << myname << "(timerInfo): DB lost connection.." << endl;
uwarn << myname << "(timerInfo): DB lost connection.." << endl;
connect_ok = false;
askTimer(DBServer_MySQL::PingTimer,0);
askTimer(DBServer_MySQL::ReconnectTimer,ReconnectTime);
......@@ -427,8 +415,7 @@ void DBServer_MySQL::timerInfo( UniSetTypes::TimerMessage* tm )
askTimer(DBServer_MySQL::PingTimer,PingTime);
}
connect_ok = false;
if( ulog.is_warn() )
ulog.warn() << myname << "(timerInfo): DB no connection.." << endl;
uwarn << myname << "(timerInfo): DB no connection.." << endl;
}
else
init_dbserver();
......@@ -436,8 +423,7 @@ void DBServer_MySQL::timerInfo( UniSetTypes::TimerMessage* tm )
break;
default:
if( ulog.is_warn() )
ulog.warn() << myname << "(timerInfo): Unknown TimerID=" << tm->id << endl;
uwarn << myname << "(timerInfo): Unknown TimerID=" << tm->id << endl;
break;
}
}
......
......@@ -148,19 +148,16 @@ void DBServer_SQLite::parse( UniSetTypes::ConfirmMessage* cem )
if( !writeToBase(data.str()) )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(update_confirm): db error: "<< db->error() << endl;
ucrit << myname << "(update_confirm): db error: "<< db->error() << endl;
}
}
catch( Exception& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(update_confirm): " << ex << endl;
ucrit << myname << "(update_confirm): " << ex << endl;
}
catch( ... )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(update_confirm): catch..." << endl;
ucrit << myname << "(update_confirm): catch..." << endl;
}
}
//--------------------------------------------------------------------------------------------
......@@ -183,8 +180,7 @@ bool DBServer_SQLite::writeToBase( const string& query )
qbuf.pop();
if( ulog.is_crit() )
ulog.crit() << myname << "(writeToBase): DB not connected! buffer(" << qbufSize
ucrit << myname << "(writeToBase): DB not connected! buffer(" << qbufSize
<< ") overflow! lost query: " << qlost << endl;
}
return false;
......@@ -207,9 +203,9 @@ void DBServer_SQLite::flushBuffer()
// Сперва пробуем очистить всё что накопилось в очереди до этого...
while( !qbuf.empty() )
{
if( !db->insert(qbuf.front()) && ulog.is_crit() )
if( !db->insert(qbuf.front()) )
{
ulog.crit() << myname << "(writeToBase): error: " << db->error() <<
ucrit << myname << "(writeToBase): error: " << db->error() <<
" lost query: " << qbuf.front() << endl;
}
qbuf.pop();
......@@ -244,17 +240,16 @@ void DBServer_SQLite::parse( UniSetTypes::SensorMessage *si )
if( !writeToBase(data.str()) )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(insert) sensor msg error: "<< db->error() << endl;
ucrit << myname << "(insert) sensor msg error: "<< db->error() << endl;
}
}
catch( Exception& ex )
{
ulog.crit() << myname << "(insert_main_history): " << ex << endl;
ucrit << myname << "(insert_main_history): " << ex << endl;
}
catch( ... )
{
ulog.crit() << myname << "(insert_main_history): catch ..." << endl;
ucrit << myname << "(insert_main_history): catch ..." << endl;
}
}
//--------------------------------------------------------------------------------------------
......@@ -311,8 +306,7 @@ void DBServer_SQLite::init_dbserver()
if( !db->connect(dbfile,false) )
{
// ostringstream err;
if( ulog.is_crit() )
ulog.crit() << myname
ucrit << myname
<< "(init): DB connection error: "
<< db->error() << endl;
// throw Exception( string(myname+"(init): не смогли создать соединение с БД "+db->error()) );
......@@ -337,8 +331,7 @@ void DBServer_SQLite::createTables( SQLiteInterface *db )
UniXML_iterator it( conf->getNode("Tables") );
if(!it)
{
if( ulog.is_crit() )
ulog.crit() << myname << ": section <Tables> not found.."<< endl;
ucrit << myname << ": section <Tables> not found.."<< endl;
throw Exception();
}
......@@ -350,8 +343,8 @@ void DBServer_SQLite::createTables( SQLiteInterface *db )
ulog[DBLogInfoLevel] << myname << "(createTables): create " << it.getName() << endl;
ostringstream query;
query << "CREATE TABLE " << conf->getProp(it,"name") << "(" << conf->getProp(it,"create") << ")";
if( !db->query(query.str()) && ulog.is_crit() )
ulog.crit() << myname << "(createTables): error: \t\t" << db->error() << endl;
if( !db->query(query.str()) )
ucrit << myname << "(createTables): error: \t\t" << db->error() << endl;
}
}
}
......@@ -364,8 +357,7 @@ void DBServer_SQLite::timerInfo( UniSetTypes::TimerMessage* tm )
{
if( !db->ping() )
{
if( ulog.is_warn() )
ulog.warn() << myname << "(timerInfo): DB lost connection.." << endl;
uwarn << myname << "(timerInfo): DB lost connection.." << endl;
connect_ok = false;
askTimer(DBServer_SQLite::PingTimer,0);
askTimer(DBServer_SQLite::ReconnectTimer,ReconnectTime);
......@@ -378,7 +370,7 @@ void DBServer_SQLite::timerInfo( UniSetTypes::TimerMessage* tm )
}
}
break;
case DBServer_SQLite::ReconnectTimer:
{
if( ulog.debugging(DBLogInfoLevel) )
......@@ -392,8 +384,7 @@ void DBServer_SQLite::timerInfo( UniSetTypes::TimerMessage* tm )
askTimer(DBServer_SQLite::PingTimer,PingTime);
}
connect_ok = false;
if( ulog.is_warn() )
ulog.warn() << myname << "(timerInfo): DB no connection.." << endl;
uwarn << myname << "(timerInfo): DB no connection.." << endl;
}
else
init_dbserver();
......@@ -401,8 +392,7 @@ void DBServer_SQLite::timerInfo( UniSetTypes::TimerMessage* tm )
break;
default:
if( ulog.is_warn() )
ulog.warn() << myname << "(timerInfo): Unknown TimerID=" << tm->id << endl;
uwarn << myname << "(timerInfo): Unknown TimerID=" << tm->id << endl;
break;
}
}
......
......@@ -59,7 +59,7 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
maxCardNum = conf->getArgInt("--"+prefix+"-max-cardnum","10");
cards.resize(maxCardNum+1);
dlog.info() << myname << "(init): numcards=" << numcards << endl;
dinfo << myname << "(init): numcards=" << numcards << endl;
UniXML_iterator it(cnode);
......@@ -79,12 +79,12 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
string iodev = conf->getArgParam(s1.str(),it.getProp(s2.str()));
if( iodev.empty() )
continue;
if( iodev == "/dev/null" )
{
if( cards[i] == NULL )
{
if( dlog.is_level3() ) dlog.level3() << myname << "(init): Card N" << i
dlog3 << myname << "(init): Card N" << i
<< " DISABLED! dev='"
<< iodev << "'" << endl;
}
......@@ -93,7 +93,7 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
{
noCards = false;
cards[i] = new ComediInterface(iodev);
if( dlog.is_level3() ) dlog.level3() << myname << "(init): ADD card" << i << " dev=" << iodev << endl;
dlog3 << myname << "(init): ADD card" << i << " dev=" << iodev << endl;
}
if( cards[i] != NULL )
......@@ -102,8 +102,8 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
{
stringstream t1;
t1 << s1.str() << "-subdev" << s << "-type";
string stype = conf->getArgParam(t1.str());
string stype( conf->getArgParam(t1.str()) );
if( !stype.empty() )
{
ComediInterface::SubdevType st = ComediInterface::str2type(stype.c_str());
......@@ -113,11 +113,10 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
err << "Unknown subdev type '" << stype << " for " << t1;
throw SystemError(err.str());
}
if( !stype.empty() )
{
if( dlog.is_info() )
dlog.info() << myname
dinfo << myname
<< "(init): card" << i
<< " subdev" << s << " set type " << stype << endl;
......@@ -128,9 +127,8 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
}
}
if( dlog.is_info() )
dlog.info() << myname << "(init): result numcards=" << cards.size() << endl;
dinfo << myname << "(init): result numcards=" << cards.size() << endl;
polltime = conf->getArgInt("--"+prefix+"-polltime",it.getProp("polltime"));
if( !polltime )
polltime = 100;
......@@ -150,13 +148,11 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
{
ostringstream err;
err << myname << ": Unkown ID for " << testlamp;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
if( dlog.is_info() )
dlog.info() << myname << "(init): testLamp_S='" << testlamp << "'" << endl;
dinfo << myname << "(init): testLamp_S='" << testlamp << "'" << endl;
}
string tmode = conf->getArgParam("--"+prefix+"-test-mode",it.getProp("testmode_as"));
......@@ -167,13 +163,11 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
{
ostringstream err;
err << myname << ": Unknown ID for " << tmode;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
if( dlog.is_info() )
dlog.info() << myname << "(init): testMode_as='" << testmode << "'" << endl;
dinfo << myname << "(init): testMode_as='" << testmode << "'" << endl;
}
shm = new SMInterface(icID,&ui,myid,ic);
......@@ -182,8 +176,7 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
s_field = conf->getArgParam("--"+prefix+"-s-filter-field");
s_fvalue = conf->getArgParam("--"+prefix+"-s-filter-value");
if( dlog.is_info() )
dlog.info() << myname << "(init): read s_field='" << s_field
dinfo << myname << "(init): read s_field='" << s_field
<< "' s_fvalue='" << s_fvalue << "'" << endl;
int blink_msec = conf->getArgPInt("--"+prefix+"-blink-time",it.getProp("blink-time"), 300);
......@@ -207,13 +200,12 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
if( sidTestSMReady == DefaultObjectId )
{
sidTestSMReady = conf->getSensorID("TestMode_S");
if( dlog.is_warn() )
dlog.warn() << myname
dwarn << myname
<< "(init): Unknown ID for sm-ready-test-sid (--" << prefix << "-sm-ready-test-sid)."
<< " Use 'TestMode_S'" << endl;
}
else if( dlog.is_info() )
dlog.info() << myname << "(init): test-sid: " << sm_ready_sid << endl;
else
dinfo << myname << "(init): test-sid: " << sm_ready_sid << endl;
// -----------------------
......@@ -225,8 +217,7 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
{
ostringstream err;
err << myname << ": Not found ID for 'HeartBeat' " << heart;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
......@@ -287,8 +278,7 @@ void IOControl::execute()
}
maxHalf = maxItem / 2;
if( dlog.is_info() )
dlog.info() << myname << "(init): iomap size = " << iomap.size() << endl;
dinfo << myname << "(init): iomap size = " << iomap.size() << endl;
cerr << myname << "(iomap size): " << iomap.size() << endl;
......@@ -314,9 +304,9 @@ void IOControl::execute()
break;
}
}
if( !activated && dlog.is_crit() )
dlog.crit() << myname << "(execute): ************* don`t activate?! ************" << endl;
if( !activated )
dcrit << myname << "(execute): ************* don`t activate?! ************" << endl;
try
{
......@@ -383,21 +373,18 @@ void IOControl::execute()
}
catch( Exception& ex )
{
if( dlog.is_level3() )
dlog.level3() << myname << "(execute): " << ex << endl;
dlog3 << myname << "(execute): " << ex << endl;
}
catch(CORBA::SystemException& ex)
{
if( dlog.is_level3() )
dlog.level3() << myname << "(execute): CORBA::SystemException: "
dlog3 << myname << "(execute): CORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( dlog.is_level3() )
dlog.level3() << myname << "(execute): catch ..." << endl;
dlog3 << myname << "(execute): catch ..." << endl;
}
if( term )
break;
......@@ -494,8 +481,7 @@ void IOControl::ioread( IOInfo* it )
if( it->si.id == DefaultObjectId )
{
if( dlog.is_level3() )
dlog.level3() << myname << "(iopoll): sid=DefaultObjectId?!" << endl;
dlog3 << myname << "(iopoll): sid=DefaultObjectId?!" << endl;
return;
}
......@@ -507,34 +493,20 @@ void IOControl::ioread( IOInfo* it )
{
int val = card->getAnalogChannel(it->subdev,it->channel, it->range, it->aref);
if( dlog.is_level3() )
{
dlog.level3() << myname << "(iopoll): read AI "
dlog3 << myname << "(iopoll): read AI "
<< " sid=" << it->si.id
<< " subdev=" << it->subdev
<< " chan=" << it->channel
<< " val=" << val
<< endl;
}
IOBase::processingAsAI( ib, val, shm, force );
}
else if( it->stype == UniversalIO::DI )
{
bool set = card->getDigitalChannel(it->subdev,it->channel);
/*
if( dlog.is_level3() )
{
dlog.level3() << myname << "(iopoll): read DI "
<< " sid=" << it->si.id
<< " subdev=" << it->subdev
<< " chan=" << it->channel
<< " state=" << set
<< endl;
}
*/
IOBase::processingAsDI( ib, set, shm, force );
// немного оптимизации
// сразу выставляем.сбрасываем флаг тестирования
if( it->si.id == testLamp_S )
......@@ -641,36 +613,30 @@ void IOControl::ioread( IOInfo* it )
}
catch(IOController_i::NameNotFound &ex)
{
if( dlog.is_level3() )
dlog.level3() << myname << "(iopoll):(NameNotFound) " << ex.err << endl;
dlog3 << myname << "(iopoll):(NameNotFound) " << ex.err << endl;
}
catch(IOController_i::IOBadParam& ex )
{
if( dlog.is_level3() )
dlog.level3() << myname << "(iopoll):(IOBadParam) " << ex.err << endl;
dlog3 << myname << "(iopoll):(IOBadParam) " << ex.err << endl;
}
catch(IONotifyController_i::BadRange )
{
if( dlog.is_level3() )
dlog.level3() << myname << "(iopoll): (BadRange)..." << endl;
dlog3 << myname << "(iopoll): (BadRange)..." << endl;
}
catch( Exception& ex )
{
if( dlog.is_level3() )
dlog.level3() << myname << "(iopoll): " << ex << endl;
dlog3 << myname << "(iopoll): " << ex << endl;
}
catch(CORBA::SystemException& ex)
{
if( dlog.is_level3() )
dlog.level3() << myname << "(iopoll): СORBA::SystemException: "
dlog3 << myname << "(iopoll): СORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( dlog.is_level3() )
dlog.level3() << myname << "(iopoll): catch ..." << endl;
dlog3 << myname << "(iopoll): catch ..." << endl;
}
}
// --------------------------------------------------------------------------------
void IOControl::readConfiguration()
......@@ -688,8 +654,7 @@ void IOControl::readConfiguration()
UniXML_iterator it(root);
if( !it.goChildren() )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(readConfiguration): section <sensors> empty?!!\n";
dwarn << myname << "(readConfiguration): section <sensors> empty?!!\n";
return;
}
......@@ -698,7 +663,7 @@ void IOControl::readConfiguration()
if( UniSetTypes::check_filter(it,s_field,s_fvalue) )
initIOItem(it);
}
readconf_ok = true;
}
// ------------------------------------------------------------------------------------------
......@@ -720,8 +685,7 @@ bool IOControl::initIOItem( UniXML_iterator& it )
if( c.empty() || inf.ncard < 0 || inf.ncard >= (int)cards.size() )
{
if( dlog.is_level3() )
dlog.level3() << myname
dlog3 << myname
<< "(initIOItem): Unknown or bad card number ("
<< inf.ncard << ") for " << it.getProp("name")
<< " set default=" << defCardNum << endl;
......@@ -753,8 +717,7 @@ bool IOControl::initIOItem( UniXML_iterator& it )
inf.channel = it.getIntProp("channel");
if( inf.channel < 0 || inf.channel > 32 )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(readItem): Unknown channel: " << inf.channel
dwarn << myname << "(readItem): Unknown channel: " << inf.channel
<< " for " << it.getProp("name") << endl;
return false;
}
......@@ -774,8 +737,7 @@ bool IOControl::initIOItem( UniXML_iterator& it )
inf.range = it.getIntProp("range");
if( inf.range < 0 || inf.range > 3 )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(readItem): Unknown 'range': " << inf.range
dcrit << myname << "(readItem): Unknown 'range': " << inf.range
<< " for " << it.getProp("name")
<< " Must be range=[0..3]" << endl;
return false;
......@@ -784,16 +746,14 @@ bool IOControl::initIOItem( UniXML_iterator& it )
inf.aref = it.getIntProp("aref");
if( inf.aref < 0 || inf.aref > 3 )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(readItem): Unknown 'aref': " << inf.aref
dcrit << myname << "(readItem): Unknown 'aref': " << inf.aref
<< " for " << it.getProp("name")
<< ". Must be aref=[0..3]" << endl;
return false;
}
}
if( dlog.is_level3() )
dlog.level3() << myname << "(readItem): add: " << inf.stype << " " << inf << endl;
dlog3 << myname << "(readItem): add: " << inf.stype << " " << inf << endl;
// если вектор уже заполнен
// то увеличиваем его на 10 элементов (с запасом)
......@@ -807,8 +767,7 @@ bool IOControl::initIOItem( UniXML_iterator& it )
{
IOPriority p(prior,maxItem);
pmap.push_back(p);
if( dlog.is_level3() )
dlog.level3() << myname << "(readItem): add to priority list: "
dlog3 << myname << "(readItem): add to priority list: "
<< it.getProp("name")
<< " priority=" << prior << endl;
}
......@@ -867,13 +826,11 @@ void IOControl::sigterm( int signo )
}
catch( Exception& ex )
{
if( dlog.is_level3() )
dlog.level3() << myname << "(sigterm): " << ex << endl;
dlog3 << myname << "(sigterm): " << ex << endl;
}
catch(...){}
}
while( term ){}
}
// -----------------------------------------------------------------------------
......@@ -904,8 +861,7 @@ void IOControl::initOutputs()
}
catch( Exception& ex )
{
if( dlog.is_level3() )
dlog.level3() << myname << "(initOutput): " << ex << endl;
dlog3 << myname << "(initOutput): " << ex << endl;
}
}
}
......@@ -946,8 +902,7 @@ void IOControl::initIOCard()
}
catch( Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initIOCard): sid=" << it->si.id << " " << ex << endl;
dcrit << myname << "(initIOCard): sid=" << it->si.id << " " << ex << endl;
}
}
}
......@@ -974,8 +929,7 @@ void IOControl::blink( BlinkList& lst, bool& bstate )
}
catch( Exception& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(blink): " << ex << endl;
dcrit << myname << "(blink): " << ex << endl;
}
}
......@@ -1059,8 +1013,7 @@ void IOControl::check_testmode()
}
catch( Exception& ex )
{
if( dlog.is_level3() )
dlog.level3() << myname << "(sigterm): " << ex << endl;
dlog3 << myname << "(sigterm): " << ex << endl;
}
catch(...){}
}
......@@ -1069,12 +1022,11 @@ void IOControl::check_testmode()
}
catch( Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(check_testmode): " << ex << endl;
dcrit << myname << "(check_testmode): " << ex << endl;
}
catch(...)
{
dcrit << myname << "(check_testmode): catch ..." << endl;
}
}
// -----------------------------------------------------------------------------
......@@ -1134,13 +1086,12 @@ void IOControl::check_testlamp()
}
}
catch( Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(check_testlamp): " << ex << endl;
{
dcrit << myname << "(check_testlamp): " << ex << endl;
}
catch(...)
{
dcrit << myname << "(check_testlamp): catch ..." << endl;
}
}
......@@ -1166,8 +1117,7 @@ IOControl* IOControl::init_iocontrol( int argc, const char* const* argv,
int numcards = conf->getArgPInt("--"+prefix+"-numcards",1);
if( dlog.is_info() )
dlog.info() << "(iocontrol): name = " << name << "(" << ID << ")" << endl;
dinfo << "(iocontrol): name = " << name << "(" << ID << ")" << endl;
return new IOControl(ID,icID,ic,numcards,prefix);
}
// -----------------------------------------------------------------------------
......@@ -1237,8 +1187,7 @@ void IOControl::processingMessage( UniSetTypes::VoidMessage* msg )
}
catch(Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(processingMessage): " << ex << endl;
dcrit << myname << "(processingMessage): " << ex << endl;
}
}
// -----------------------------------------------------------------------------
......@@ -1251,25 +1200,24 @@ void IOControl::sysCommand( SystemMessage* sm )
PassiveTimer ptAct(activateTimeout);
while( !activated && !ptAct.checkTime() )
{
if( dlog.is_info() )
dlog.info() << myname << "(sysCommand): wait activate..." << endl;
dinfo << myname << "(sysCommand): wait activate..." << endl;
msleep(300);
if( activated )
break;
}
if( !activated && dlog.is_crit() )
dlog.crit() << myname << "(sysCommand): ************* don`t activate?! ************" << endl;
if( !activated )
dcrit << myname << "(sysCommand): ************* don`t activate?! ************" << endl;
askSensors(UniversalIO::UIONotify);
break;
}
case SystemMessage::FoldUp:
case SystemMessage::Finish:
askSensors(UniversalIO::UIODontNotify);
break;
case SystemMessage::WatchDog:
{
// ОПТИМИЗАЦИЯ (защита от двойного перезаказа при старте)
......@@ -1336,24 +1284,22 @@ void IOControl::askSensors( UniversalIO::UIOCommand cmd )
<< "(askSensors): Не дождались готовности(work) SharedMemory к работе в течение "
<< activateTimeout << " мсек";
if( dlog.is_crit() )
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
kill(SIGTERM,getpid()); // прерываем (перезапускаем) процесс...
throw SystemError(err.str());
}
PassiveTimer ptAct(activateTimeout);
while( !readconf_ok && !ptAct.checkTime() )
{
if( dlog.is_info() )
dlog.info() << myname << "(askSensors): wait read configuration..." << endl;
{
dinfo << myname << "(askSensors): wait read configuration..." << endl;
msleep(50);
if( readconf_ok )
break;
}
if( !readconf_ok && dlog.is_crit() )
dlog.crit() << myname << "(askSensors): ************* don`t read configuration?! ************" << endl;
if( !readconf_ok )
dcrit << myname << "(askSensors): ************* don`t read configuration?! ************" << endl;
try
{
......@@ -1362,8 +1308,7 @@ void IOControl::askSensors( UniversalIO::UIOCommand cmd )
}
catch( Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(askSensors): " << ex << endl;
dcrit << myname << "(askSensors): " << ex << endl;
}
try
......@@ -1373,9 +1318,8 @@ void IOControl::askSensors( UniversalIO::UIOCommand cmd )
}
catch( Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(askSensors): " << ex << endl;
}
dcrit << myname << "(askSensors): " << ex << endl;
}
for( IOMap::iterator it=iomap.begin(); it!=iomap.end(); ++it )
{
......@@ -1396,8 +1340,7 @@ void IOControl::askSensors( UniversalIO::UIOCommand cmd )
}
catch( Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(askSensors): " << ex << endl;
dcrit << myname << "(askSensors): " << ex << endl;
}
}
}
......@@ -1405,19 +1348,14 @@ void IOControl::askSensors( UniversalIO::UIOCommand cmd )
// -----------------------------------------------------------------------------
void IOControl::sensorInfo( UniSetTypes::SensorMessage* sm )
{
if( dlog.is_level1() )
{
dlog.level1() << myname << "(sensorInfo): sm->id=" << sm->id
dlog1 << myname << "(sensorInfo): sm->id=" << sm->id
<< " val=" << sm->value << endl;
}
if( force_out )
return;
if( sm->id == testLamp_S )
{
if( dlog.is_info() )
dlog.info() << myname << "(sensorInfo): test_lamp=" << sm->value << endl;
dinfo << myname << "(sensorInfo): test_lamp=" << sm->value << endl;
isTestLamp = (bool)sm->value;
}
else if( sm->id == testMode_as )
......@@ -1430,13 +1368,10 @@ void IOControl::sensorInfo( UniSetTypes::SensorMessage* sm )
{
if( it->si.id == sm->id )
{
if( dlog.is_info() )
{
dlog.info() << myname << "(sensorInfo): sid=" << sm->id
dinfo << myname << "(sensorInfo): sid=" << sm->id
<< " value=" << sm->value
<< endl;
}
if( it->stype == UniversalIO::AO )
{
long prev_val = 0;
......@@ -1524,7 +1459,7 @@ void IOControl::sensorInfo( UniSetTypes::SensorMessage* sm )
}
}
break;
default:
break;
}
......@@ -1532,17 +1467,14 @@ void IOControl::sensorInfo( UniSetTypes::SensorMessage* sm )
}
else if( it->stype == UniversalIO::DO )
{
if( dlog.is_level1() )
{
dlog.level1() << myname << "(sensorInfo): DO: sm->id=" << sm->id
dlog1 << myname << "(sensorInfo): DO: sm->id=" << sm->id
<< " val=" << sm->value << endl;
}
uniset_rwmutex_wrlock lock(it->val_lock);
it->value = sm->value ? 1:0;
}
break;
}
}
}
// -----------------------------------------------------------------------------
......@@ -1559,8 +1491,7 @@ void IOControl::waitSM()
err << myname << "(execute): did not wait for the ready 'SharedMemory'. Timeout "
<< smReadyTimeout << " msec";
if( dlog.is_crit() )
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw SystemError(err.str());
}
}
......@@ -1570,16 +1501,14 @@ void IOControl::buildCardsList()
xmlNode* nnode = conf->getXMLNodesSection();
if( !nnode )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(buildCardsList): <nodes> not found?!" << endl;
dwarn << myname << "(buildCardsList): <nodes> not found?!" << endl;
return;
}
UniXML* xml = conf->getConfXML();
if( !xml )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(buildCardsList): xml=NULL?!" << endl;
dwarn << myname << "(buildCardsList): xml=NULL?!" << endl;
return;
}
......@@ -1597,27 +1526,24 @@ void IOControl::buildCardsList()
if( !mynode )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(buildCardsList): node='" << conf->getLocalNodeName() << "' not found.." << endl;
dwarn << myname << "(buildCardsList): node='" << conf->getLocalNodeName() << "' not found.." << endl;
return;
}
//xmlNode* cnode = xml->findNode(mynode,"iocards","");
//xmlNode* extFindNode(xmlNode* node, int depth, int width, const std::string searchnode, const std::string name = "", bool top=true );
xmlNode* cnode = xml->extFindNode(mynode,1,1,"iocards","");
if( !cnode )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(buildCardsList): Not found <iocards> for node=" << conf->getLocalNodeName() << "(" << conf->getLocalNode() << ")" << endl;
dwarn << myname << "(buildCardsList): Not found <iocards> for node=" << conf->getLocalNodeName() << "(" << conf->getLocalNode() << ")" << endl;
return;
}
UniXML_iterator it(cnode);
if( !it.goChildren() )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(buildCardsList): <iocards> empty.." << endl;
dwarn << myname << "(buildCardsList): <iocards> empty.." << endl;
return;
}
......@@ -1635,38 +1561,34 @@ void IOControl::buildCardsList()
if( cardnum <=0 )
{
if( dlog.is_level3() )
dlog.level3() << myname << "(init): Unknown card number?! card=" << it.getIntProp("card") << "(" << cname << ")" << endl;
dlog3 << myname << "(init): Unknown card number?! card=" << it.getIntProp("card") << "(" << cname << ")" << endl;
continue;
}
if( cardnum > maxCardNum )
{
if( dlog.is_level3() )
dlog.level3() << myname << "(init): BAD card number card='" << it.getIntProp("card") << "'(" << cname << "). Must be < " << maxCardNum << endl;
dlog3 << myname << "(init): BAD card number card='" << it.getIntProp("card") << "'(" << cname << "). Must be < " << maxCardNum << endl;
continue;
}
if( it.getIntProp("ignore") )
{
cards[cardnum] = NULL;
if( dlog.is_level3() )
dlog.level3() << myname << "(init): card=" << it.getProp("card") << "(" << cname << ")"
dlog3 << myname << "(init): card=" << it.getProp("card") << "(" << cname << ")"
<< " DISABLED! ignore=1" << endl;
continue;
}
stringstream s;
s << "--" << prefix << "-card" << cardnum << "-ignore";
if( findArgParam( s.str(), conf->getArgc(), conf->getArgv()) != -1 )
{
cards[cardnum] = NULL;
if( dlog.is_level3() )
dlog.level3() << myname << "(init): card=" << it.getProp("card") << "(" << cname << ")"
dlog3 << myname << "(init): card=" << it.getProp("card") << "(" << cname << ")"
<< " DISABLED! (" << s.str() << ")" << endl;
continue;
continue;
}
std::string iodev(it.getProp("dev"));
......@@ -1674,15 +1596,13 @@ void IOControl::buildCardsList()
if( iodev.empty() || iodev == "/dev/null" )
{
cards[cardnum] = NULL;
if( dlog.is_level3() )
dlog.level3() << myname << "(init): card=" << it.getProp("card") << "(" << cname << ")"
dlog3 << myname << "(init): card=" << it.getProp("card") << "(" << cname << ")"
<< " DISABLED! iodev='"
<< iodev << "'" << endl;
continue;
}
if( dlog.is_level3() )
dlog.level3() << myname << "(init): ADD card=" << it.getProp("card") << "(" << cname << ")" << " dev=" << iodev << endl;
dlog3 << myname << "(init): ADD card=" << it.getProp("card") << "(" << cname << ")" << " dev=" << iodev << endl;
try
{
......@@ -1691,14 +1611,13 @@ void IOControl::buildCardsList()
}
catch( Exception& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(buildCardsList): " << ex << endl;
dcrit << myname << "(buildCardsList): " << ex << endl;
throw;
}
if( cname == "DI32" )
{
}
}
else if( cname == "AI16-5A-3" || cname == "AIC123xx" )
{
}
......@@ -1720,11 +1639,10 @@ void IOControl::buildCardsList()
string subdev_name( it.getProp(s.str()) );
if( subdev_name.empty() )
{
if( dlog.is_info() )
dlog.info() << myname << "(buidCardList): empty subdev. ignore... (" << s.str() << ")" << endl;
dinfo << myname << "(buidCardList): empty subdev. ignore... (" << s.str() << ")" << endl;
continue;
}
ComediInterface::SubdevType st = ComediInterface::str2type(subdev_name);
if( st == ComediInterface::Unknown )
{
......@@ -1733,19 +1651,17 @@ void IOControl::buildCardsList()
<< " Unknown subdev(" << s.str() << ") type '" << it.getProp(s.str()) << "' for " << cname;
throw SystemError(err.str());
}
if( st == ComediInterface::GRAYHILL )
{
// для Grayhill конфигурирование не требуется
if( dlog.is_info() )
dlog.info() << myname << "(buildCardsList): card=" << it.getProp("card")
dinfo << myname << "(buildCardsList): card=" << it.getProp("card")
<< "(" << cname << ")"
<< " init subdev" << i << " 'GRAYHILL'" << endl;
continue;
}
if( dlog.is_info() )
dlog.info() << myname << "(buildCardsList): card=" << it.getProp("card")
dinfo << myname << "(buildCardsList): card=" << it.getProp("card")
<< "(" << cname << ")"
<< " init subdev" << i << " " << it.getProp(s.str()) << endl;
cards[cardnum]->configureSubdev(i-1,st);
......
......@@ -48,7 +48,7 @@ int main(int argc, const char **argv)
IOControl* ic = IOControl::init_iocontrol(argc,argv,shmID);
if( !ic )
{
dlog.crit() << "(iocontrol): init не прошёл..." << endl;
dcrit << "(iocontrol): init не прошёл..." << endl;
return 1;
}
......@@ -69,15 +69,15 @@ int main(int argc, const char **argv)
}
catch(SystemError& err)
{
dlog.crit() << "(iocontrol): " << err << endl;
dcrit << "(iocontrol): " << err << endl;
}
catch(Exception& ex)
{
dlog.crit() << "(iocontrol): " << ex << endl;
dcrit << "(iocontrol): " << ex << endl;
}
catch(...)
{
dlog.crit() << "(iocontrol): catch(...)" << endl;
dcrit << "(iocontrol): catch(...)" << endl;
}
return 1;
......
......@@ -35,15 +35,15 @@ void LProcessor::execute( const string& lfile )
}
catch( LogicException& ex )
{
dlog.crit() << logname << "(execute): " << ex << endl;
dcrit << logname << "(execute): " << ex << endl;
}
catch( Exception& ex )
{
dlog.crit() << logname << "(execute): " << ex << endl;
dcrit << logname << "(execute): " << ex << endl;
}
catch(...)
{
dlog.crit() << logname << "(execute): catch...\n";
dcrit << logname << "(execute): catch...\n";
}
msleep(sleepTime);
}
......@@ -67,10 +67,10 @@ void LProcessor::build( const string& lfile )
UniSetTypes::ObjectId sid = conf->getSensorID(it->name);
if( sid == DefaultObjectId )
{
dlog.crit() << "НЕ НАЙДЕН ИДЕНТИФИКАТОР ДАТЧИКА: " << it->name << endl;
continue;
dcrit << "НЕ НАЙДЕН ИДЕНТИФИКАТОР ДАТЧИКА: " << it->name << endl;
continue;
}
EXTInfo ei;
ei.sid = sid;
ei.state = false;
......@@ -78,7 +78,7 @@ void LProcessor::build( const string& lfile )
ei.iotype = conf->getIOType(sid);
if( ei.iotype == UniversalIO::UnknownIOType )
{
dlog.crit() << "Unkown iotype for sid=" << sid << "(" << it->name << ")" << endl;
dcrit << "Unkown iotype for sid=" << sid << "(" << it->name << ")" << endl;
continue;
}
extInputs.push_front(ei);
......@@ -89,7 +89,7 @@ void LProcessor::build( const string& lfile )
UniSetTypes::ObjectId sid = conf->getSensorID(it->name);
if( sid == DefaultObjectId )
{
dlog.crit() << "НЕ НАЙДЕН ИДЕНТИФИКАТОР ВЫХОДА: " << it->name << endl;
dcrit << "НЕ НАЙДЕН ИДЕНТИФИКАТОР ВЫХОДА: " << it->name << endl;
continue;
}
......@@ -99,9 +99,9 @@ void LProcessor::build( const string& lfile )
ei.iotype = conf->getIOType(sid);
if( ei.iotype == UniversalIO::UnknownIOType )
{
dlog.crit() << "Unkown iotype for sid=" << sid << "(" << it->name << ")" << endl;
continue;
}
dcrit << "Unkown iotype for sid=" << sid << "(" << it->name << ")" << endl;
continue;
}
extOuts.push_front(ei);
}
......@@ -147,11 +147,11 @@ void LProcessor::setOuts()
}
catch( Exception& ex )
{
dlog.crit() << "(LProcessor::setOuts): " << ex << endl;
dcrit << "(LProcessor::setOuts): " << ex << endl;
}
catch(...)
{
dlog.crit() << "(LProcessor::setOuts): catch...\n";
dcrit << "(LProcessor::setOuts): catch...\n";
}
}
}
......
......@@ -24,8 +24,7 @@ PassiveLProcessor::PassiveLProcessor( std::string lfile, UniSetTypes::ObjectId o
{
ostringstream err;
err << myname << ": ID not found ('HeartBeat') for " << heart;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
......@@ -52,10 +51,9 @@ void PassiveLProcessor::step()
}
catch(Exception& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(step): (hb) " << ex << std::endl;
dcrit << myname << "(step): (hb) " << ex << std::endl;
}
if( sidHeartBeat!=DefaultObjectId && ptHeartBeat.checkTime() )
{
try
......@@ -65,8 +63,7 @@ void PassiveLProcessor::step()
}
catch(Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(step): (hb) " << ex << std::endl;
dcrit << myname << "(step): (hb) " << ex << std::endl;
}
}
......@@ -86,8 +83,7 @@ void PassiveLProcessor::askSensors( UniversalIO::UIOCommand cmd )
}
catch( Exception& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(askSensors): " << ex << endl;
dcrit << myname << "(askSensors): " << ex << endl;
throw SystemError(myname +"(askSensors): do not ask sensors" );
}
}
......@@ -115,8 +111,7 @@ void PassiveLProcessor::sysCommand( UniSetTypes::SystemMessage *sm )
{
if( !shm->waitSMready(smReadyTimeout) )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(ERR): SM not ready. Terminated... " << endl;
dcrit << myname << "(ERR): SM not ready. Terminated... " << endl;
raise(SIGTERM);
return;
}
......@@ -202,11 +197,11 @@ void PassiveLProcessor::setOuts()
}
catch( Exception& ex )
{
dlog.crit() << myname << "(setOuts): " << ex << endl;
dcrit << myname << "(setOuts): " << ex << endl;
}
catch(...)
{
dlog.crit() << myname << "(setOuts): catch...\n";
dcrit << myname << "(setOuts): catch...\n";
}
}
}
......@@ -221,11 +216,11 @@ void PassiveLProcessor::sigterm( int signo )
}
catch( Exception& ex )
{
dlog.crit() << myname << "(sigterm): " << ex << endl;
dcrit << myname << "(sigterm): " << ex << endl;
}
catch(...)
{
dlog.crit() << myname << "(sigterm): catch...\n";
dcrit << myname << "(sigterm): catch...\n";
}
}
}
......@@ -263,7 +258,7 @@ void PassiveLProcessor::processingMessage( UniSetTypes::VoidMessage* msg )
}
catch(Exception& ex)
{
dlog.crit() << myname << "(processingMessage): " << ex << endl;
dcrit << myname << "(processingMessage): " << ex << endl;
}
}
// -----------------------------------------------------------------------------
......@@ -110,8 +110,7 @@ void Schema::extlink( const string& name, Element::ElementID childID, int numIn
// -------------------------------------------------------------------------
Element* Schema::manage( Element* el )
{
if( dlog.is_info() )
dlog.info() << "Schema: manage new element id=" << el->getId()
dinfo << "Schema: manage new element id=" << el->getId()
<< " type=" << el->getType()
<< " inputs=" << el->inCount() << endl;
......
......@@ -43,13 +43,12 @@ void TAND::setIn( int num, bool state )
break;
}
}
if( !brk )
myout = true;
if( dlog.is_info() )
dlog.info() << this << ": myout " << myout << endl;
dinfo << this << ": myout " << myout << endl;
if( prev != myout )
Element::setChildOut();
}
......
......@@ -30,22 +30,20 @@ void TDelay::setIn( int num, bool state )
{
pt.setTiming(0); // reset timer
myout = false;
if( dlog.is_info() )
dlog.info() << this << ": set " << myout << endl;
dinfo << this << ": set " << myout << endl;
if( prev != myout )
Element::setChildOut();
return;
}
// if( state )
// выставляем без задержки
if( delay <= 0 )
{
pt.setTiming(0); // reset timer
myout = true;
if( dlog.is_info() )
dlog.info() << this << ": set " << myout << endl;
dinfo << this << ": set " << myout << endl;
if( prev != myout )
Element::setChildOut();
return;
......@@ -54,8 +52,7 @@ void TDelay::setIn( int num, bool state )
// засекаем, если ещё не установлен таймер
if( !myout && !prev ) // т.е. !myout && prev != myout
{
if( dlog.is_info() )
dlog.info() << this << ": set timer " << delay << " [msec]" << endl;
dinfo << this << ": set timer " << delay << " [msec]" << endl;
pt.setTiming(delay);
}
}
......@@ -66,8 +63,7 @@ void TDelay::tick()
{
myout = true;
pt.setTiming(0); // reset timer
if( dlog.is_info() )
dlog.info() << getType() << "(" << myid << "): TIMER!!!! myout=" << myout << endl;
dinfo << getType() << "(" << myid << "): TIMER!!!! myout=" << myout << endl;
Element::setChildOut();
}
}
......
......@@ -21,10 +21,7 @@ void TNOT::setIn( int num, bool state )
{
bool prev = myout;
myout = !state;
if( dlog.is_info() )
dlog.info() << this << ": myout " << myout << endl;
if( prev != myout )
Element::setChildOut();
}
......
......@@ -51,17 +51,16 @@ void TOR::setIn( int num, bool state )
{
if( it->state )
{
myout = true;
myout = true;
brk = true;
break;
}
}
if( !brk )
myout = false;
if( dlog.is_info() )
dlog.info() << this << ": myout " << myout << endl;
dinfo << this << ": myout " << myout << endl;
if( prev != myout )
Element::setChildOut();
}
......
......@@ -29,7 +29,7 @@ int main(int argc, const char **argv)
string schema = conf->getArgParam("--schema");
if( schema.empty() )
{
dlog.crit() << "schema-file not defined. Use --schema" << endl;
dcrit << "schema-file not defined. Use --schema" << endl;
return 1;
}
......
......@@ -52,9 +52,8 @@ pollActivated(false)
// определяем фильтр
s_field = conf->getArgParam("--" + prefix + "-filter-field");
s_fvalue = conf->getArgParam("--" + prefix + "-filter-value");
if( dlog.is_info() )
dlog.info() << myname << "(init): read fileter-field='" << s_field
<< "' filter-value='" << s_fvalue << "'" << endl;
dinfo << myname << "(init): read fileter-field='" << s_field
<< "' filter-value='" << s_fvalue << "'" << endl;
stat_time = conf->getArgPInt("--" + prefix + "-statistic-sec",it.getProp("statistic_sec"),0);
if( stat_time > 0 )
......@@ -76,7 +75,7 @@ pollActivated(false)
noQueryOptimization = conf->getArgInt("--" + prefix + "-no-query-optimization",it.getProp("no_query_optimization"));
mbregFromID = conf->getArgInt("--" + prefix + "-reg-from-id",it.getProp("reg_from_id"));
dlog.info() << myname << "(init): mbregFromID=" << mbregFromID << endl;
dinfo << myname << "(init): mbregFromID=" << mbregFromID << endl;
polltime = conf->getArgPInt("--" + prefix + "-polltime",it.getProp("polltime"), 100);
......@@ -97,8 +96,7 @@ pollActivated(false)
{
ostringstream err;
err << myname << ": ID not found ('HeartBeat') for " << heart;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
......@@ -118,13 +116,12 @@ pollActivated(false)
{
ostringstream err;
err << myname << "(init): test_id unknown. 'TestMode_S' not found...";
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
}
dlog.info() << myname << "(init): test_id=" << test_id << endl;
dinfo << myname << "(init): test_id=" << test_id << endl;
string emode = conf->getArgParam("--" + prefix + "-exchange-mode-id",it.getProp("exchangeModeID"));
if( !emode.empty() )
......@@ -134,8 +131,7 @@ pollActivated(false)
{
ostringstream err;
err << myname << ": ID not found ('ExchangeMode') for " << emode;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
}
......@@ -200,8 +196,7 @@ void MBExchange::waitSMReady()
{
ostringstream err;
err << myname << "(waitSMReady): failed waiting SharedMemory " << ready_timeout << " msec";
if( dlog.is_crit() )
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw SystemError(err.str());
}
}
......@@ -222,8 +217,7 @@ void MBExchange::step()
}
catch(Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(step): (hb) " << ex << std::endl;
dcrit << myname << "(step): (hb) " << ex << std::endl;
}
}
}
......@@ -243,8 +237,7 @@ void MBExchange::setProcActive( bool st )
// -----------------------------------------------------------------------------
void MBExchange::sigterm( int signo )
{
if( dlog.is_warn() )
dlog.warn() << myname << ": ********* SIGTERM(" << signo << ") ********" << endl;
dwarn << myname << ": ********* SIGTERM(" << signo << ") ********" << endl;
setProcActive(false);
UniSetObject_LT::sigterm(signo);
}
......@@ -263,8 +256,7 @@ void MBExchange::readConfiguration()
UniXML_iterator it(root);
if( !it.goChildren() )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(readConfiguration): раздел <sensors> не содержит секций ?!!\n";
dcrit << myname << "(readConfiguration): раздел <sensors> не содержит секций ?!!\n";
return;
}
......@@ -273,7 +265,7 @@ void MBExchange::readConfiguration()
if( UniSetTypes::check_filter(it,s_field,s_fvalue) )
initItem(it);
}
// readconf_ok = true;
}
// ------------------------------------------------------------------------------------------
......@@ -326,32 +318,28 @@ bool MBExchange::checkUpdateSM( bool wrFunc, long mdev )
if( wrFunc )
return true; // данные для посылки, должны обновляться всегда (чтобы быть актуальными)
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << "(checkUpdateSM):"
<< " skip... mode='emSkipExchange' " << endl;
dlog3 << "(checkUpdateSM):"
<< " skip... mode='emSkipExchange' " << endl;
return false;
}
if( wrFunc && (exchangeMode == emReadOnly || mdev == emReadOnly) )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << "(checkUpdateSM):"
dlog3 << "(checkUpdateSM):"
<< " skip... mode='emReadOnly' " << endl;
return false;
}
if( !wrFunc && (exchangeMode == emWriteOnly || mdev == emWriteOnly) )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << "(checkUpdateSM):"
dlog3 << "(checkUpdateSM):"
<< " skip... mode='emWriteOnly' " << endl;
return false;
}
if( wrFunc && (exchangeMode == emSkipSaveToSM || mdev == emSkipSaveToSM) )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << "(checkUpdateSM):"
dlog3 << "(checkUpdateSM):"
<< " skip... mode='emSkipSaveToSM' " << endl;
return false;
}
......@@ -363,16 +351,13 @@ bool MBExchange::checkPoll( bool wrFunc )
{
if( exchangeMode == emWriteOnly && !wrFunc )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(checkPoll): skip.. mode='emWriteOnly'" << endl;
dlog3 << myname << "(checkPoll): skip.. mode='emWriteOnly'" << endl;
return false;
}
if( exchangeMode == emReadOnly && wrFunc )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(checkPoll): skip.. poll mode='emReadOnly'" << endl;
dlog3 << myname << "(checkPoll): skip.. poll mode='emReadOnly'" << endl;
return false;
}
......@@ -461,12 +446,12 @@ void MBExchange::rtuQueryOptimization( RTUDeviceMap& m )
if( noQueryOptimization )
return;
dlog.info() << myname << "(rtuQueryOptimization): optimization..." << endl;
dinfo << myname << "(rtuQueryOptimization): optimization..." << endl;
for( MBExchange::RTUDeviceMap::iterator it1=m.begin(); it1!=m.end(); ++it1 )
{
RTUDevice* d(it1->second);
// Вообще в map они уже лежат в нужном порядке, т.е. функция genRegID() гарантирует
// что регистры идущие подряд с одниковой функцией чтения/записи получат подряд идущие ID.
// так что оптимтизация это просто нахождение мест где id идут не подряд...
......@@ -498,19 +483,17 @@ void MBExchange::rtuQueryOptimization( RTUDeviceMap& m )
// check correct function...
if( beg->second->q_count>1 && beg->second->mbfunc==ModbusRTU::fnWriteOutputSingleRegister )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(rtuQueryOptimization): "
dwarn << myname << "(rtuQueryOptimization): "
<< " optimization change func=" << ModbusRTU::fnWriteOutputSingleRegister
<< " <--> func=" << ModbusRTU::fnWriteOutputRegisters
<< " for mbaddr=" << ModbusRTU::addr2str(d->mbaddr)
<< " mbreg=" << ModbusRTU::dat2str(beg->second->mbreg);
beg->second->mbfunc = ModbusRTU::fnWriteOutputRegisters;
}
else if( beg->second->q_count>1 && beg->second->mbfunc==ModbusRTU::fnForceSingleCoil )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(rtuQueryOptimization): "
dwarn << myname << "(rtuQueryOptimization): "
<< " optimization change func=" << ModbusRTU::fnForceSingleCoil
<< " <--> func=" << ModbusRTU::fnForceMultipleCoils
<< " for mbaddr=" << ModbusRTU::addr2str(d->mbaddr)
......@@ -550,12 +533,9 @@ void MBExchange::firstInitRegisters()
catch( ModbusRTU::mbException& ex )
{
allInitOK = false;
if( dlog.debugging(Debug::LEVEL3) )
{
dlog[Debug::LEVEL3] << myname << "(preInitRead): FAILED ask addr=" << ModbusRTU::addr2str(it->dev->mbaddr)
dlog3 << myname << "(preInitRead): FAILED ask addr=" << ModbusRTU::addr2str(it->dev->mbaddr)
<< " reg=" << ModbusRTU::dat2str(it->mbreg)
<< " err: " << ex << endl;
}
if( !it->dev->ask_every_reg )
break;
......@@ -571,9 +551,9 @@ bool MBExchange::preInitRead( InitList::iterator& p )
RTUDevice* dev = p->dev;
int q_count = p->p.rnum;
if( dlog.debugging(Debug::LEVEL3) )
if( dlog.is_level3() )
{
dlog[Debug::LEVEL3] << myname << "(preInitRead): poll "
dlog3 << myname << "(preInitRead): poll "
<< " mbaddr=" << ModbusRTU::addr2str(dev->mbaddr)
<< " mbreg=" << ModbusRTU::dat2str(p->mbreg)
<< " mbfunc=" << p->mbfunc
......@@ -582,7 +562,7 @@ bool MBExchange::preInitRead( InitList::iterator& p )
if( q_count > ModbusRTU::MAXDATALEN )
{
dlog[Debug::LEVEL3] << myname << "(preInitRead): count(" << q_count
dlog3 << myname << "(preInitRead): count(" << q_count
<< ") > MAXDATALEN(" << ModbusRTU::MAXDATALEN
<< " ..ignore..."
<< endl;
......@@ -685,8 +665,7 @@ bool MBExchange::initSMValue( ModbusRTU::ModbusData* data, int count, RSProperty
return true;
}
if( dlog.is_crit() )
dlog.crit() << myname << "(initSMValue): IGNORE item: rnum=" << p->rnum
dcrit << myname << "(initSMValue): IGNORE item: rnum=" << p->rnum
<< " > 1 ?!! for id=" << p->si.id << endl;
return false;
......@@ -719,8 +698,7 @@ bool MBExchange::initSMValue( ModbusRTU::ModbusData* data, int count, RSProperty
{
if( p->nbyte <= 0 || p->nbyte > VTypes::Byte::bsize )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initSMValue): IGNORE item: sid=" << ModbusRTU::dat2str(p->si.id)
dcrit << myname << "(initSMValue): IGNORE item: sid=" << ModbusRTU::dat2str(p->si.id)
<< " vtype=" << p->vType << " but nbyte=" << p->nbyte << endl;
return false;
}
......@@ -754,34 +732,28 @@ bool MBExchange::initSMValue( ModbusRTU::ModbusData* data, int count, RSProperty
}
catch(IOController_i::NameNotFound &ex)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(initSMValue):(NameNotFound) " << ex.err << endl;
dlog3 << myname << "(initSMValue):(NameNotFound) " << ex.err << endl;
}
catch(IOController_i::IOBadParam& ex )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(initSMValue):(IOBadParam) " << ex.err << endl;
dlog3 << myname << "(initSMValue):(IOBadParam) " << ex.err << endl;
}
catch(IONotifyController_i::BadRange )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(initSMValue): (BadRange)..." << endl;
dlog3 << myname << "(initSMValue): (BadRange)..." << endl;
}
catch( Exception& ex )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(initSMValue): " << ex << endl;
dlog3 << myname << "(initSMValue): " << ex << endl;
}
catch(CORBA::SystemException& ex)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(initSMValue): CORBA::SystemException: "
dlog3 << myname << "(initSMValue): CORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(initSMValue): catch ..." << endl;
dlog3 << myname << "(initSMValue): catch ..." << endl;
}
return false;
......@@ -793,8 +765,7 @@ bool MBExchange::pollRTU( RTUDevice* dev, RegMap::iterator& it )
if( dev->mode == emSkipExchange )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(pollRTU): SKIP EXCHANGE (mode=emSkipExchange) "
dlog3 << myname << "(pollRTU): SKIP EXCHANGE (mode=emSkipExchange) "
<< " mbaddr=" << ModbusRTU::addr2str(dev->mbaddr)
<< endl;
return true;
......@@ -802,7 +773,7 @@ bool MBExchange::pollRTU( RTUDevice* dev, RegMap::iterator& it )
if( dlog.debugging(Debug::LEVEL3) )
{
dlog[Debug::LEVEL3] << myname << "(pollRTU): poll "
dlog3 << myname << "(pollRTU): poll "
<< " mbaddr=" << ModbusRTU::addr2str(dev->mbaddr)
<< " mbreg=" << ModbusRTU::dat2str(p->mbreg)
<< " mbfunc=" << p->mbfunc
......@@ -811,14 +782,13 @@ bool MBExchange::pollRTU( RTUDevice* dev, RegMap::iterator& it )
<< " sm_initOK=" << p->sm_initOK
<< " mbval=" << p->mbval
<< endl;
if( p->q_count > ModbusRTU::MAXDATALEN )
{
dlog[Debug::LEVEL3] << myname << "(pollRTU): count(" << p->q_count
dlog3 << myname << "(pollRTU): count(" << p->q_count
<< ") > MAXDATALEN(" << ModbusRTU::MAXDATALEN
<< " ..ignore..."
<< endl;
}
}
......@@ -827,12 +797,11 @@ bool MBExchange::pollRTU( RTUDevice* dev, RegMap::iterator& it )
if( p->q_count == 0 )
{
if( dlog.is_info() )
dlog.info() << myname << "(pollRTU): q_count=0 for mbreg=" << ModbusRTU::dat2str(p->mbreg)
dinfo << myname << "(pollRTU): q_count=0 for mbreg=" << ModbusRTU::dat2str(p->mbreg)
<< " IGNORE register..." << endl;
return false;
}
switch( p->mbfunc )
{
case ModbusRTU::fnReadInputRegisters:
......@@ -880,21 +849,19 @@ bool MBExchange::pollRTU( RTUDevice* dev, RegMap::iterator& it )
it--;
}
break;
case ModbusRTU::fnWriteOutputSingleRegister:
{
if( p->q_count != 1 )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
dcrit << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
<< " IGNORE WRITE SINGLE REGISTER (0x06) q_count=" << p->q_count << " ..." << endl;
return false;
}
if( !p->sm_initOK )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
dlog3 << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
<< " slist=" << (*p)
<< " IGNORE...(sm_initOK=false)" << endl;
return true;
......@@ -917,20 +884,11 @@ bool MBExchange::pollRTU( RTUDevice* dev, RegMap::iterator& it )
// и его просто надо пропустить..
if( p->q_num > 1 )
return true;
// смещаем итератор, если данный запрос содержит много регистров
// if( q->count > 1 )
// {
// for( int i=0; i<p->q_count; i++ )
// it++;
// return true;
// }
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
dlog3 << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
<< " IGNORE...(sm_initOK=false)" << endl;
return true;
}
}
ModbusRTU::WriteOutputMessage msg(dev->mbaddr,p->mbreg);
for( int i=0; i<p->q_count; i++,it++ )
......@@ -945,20 +903,17 @@ bool MBExchange::pollRTU( RTUDevice* dev, RegMap::iterator& it )
{
if( p->q_count != 1 )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
dcrit << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
<< " IGNORE FORCE SINGLE COIL (0x05) q_count=" << p->q_count << " ..." << endl;
return false;
}
if( !p->sm_initOK )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
dlog3 << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
<< " IGNORE...(sm_initOK=false)" << endl;
return true;
}
}
// cerr << "****(coil) mbreg=" << ModbusRTU::dat2str(p->mbreg) << " val=" << ModbusRTU::dat2str(p->mbval) << endl;
ModbusRTU::ForceSingleCoilRetMessage ret = mb->write05(dev->mbaddr,p->mbreg,p->mbval);
}
break;
......@@ -967,32 +922,29 @@ bool MBExchange::pollRTU( RTUDevice* dev, RegMap::iterator& it )
{
if( !p->sm_initOK )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
dlog3 << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
<< " IGNORE...(sm_initOK=false)" << endl;
return true;
}
}
ModbusRTU::ForceCoilsMessage msg(dev->mbaddr,p->mbreg);
for( int i=0; i<p->q_count; i++,it++ )
msg.addBit( (it->second->mbval ? true : false) );
it--;
// cerr << "*********** (write multiple): " << msg << endl;
ModbusRTU::ForceCoilsRetMessage ret = mb->write0F(msg);
}
break;
default:
{
if( dlog.is_warn() )
dlog.warn() << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
dwarn << myname << "(pollRTU): mbreg=" << ModbusRTU::dat2str(p->mbreg)
<< " IGNORE mfunc=" << (int)p->mbfunc << " ..." << endl;
return false;
}
break;
}
return true;
}
// -----------------------------------------------------------------------------
......@@ -1011,34 +963,28 @@ void MBExchange::updateSM()
}
catch(IOController_i::NameNotFound &ex)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateSM):(NameNotFound) " << ex.err << endl;
dlog3 << myname << "(updateSM):(NameNotFound) " << ex.err << endl;
}
catch(IOController_i::IOBadParam& ex )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateSM):(IOBadParam) " << ex.err << endl;
dlog3 << myname << "(updateSM):(IOBadParam) " << ex.err << endl;
}
catch(IONotifyController_i::BadRange )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateSM): (BadRange)..." << endl;
dlog3 << myname << "(updateSM): (BadRange)..." << endl;
}
catch( Exception& ex )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateSM): " << ex << endl;
dlog3 << myname << "(updateSM): " << ex << endl;
}
catch(CORBA::SystemException& ex)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateSM): CORBA::SystemException: "
dlog3 << myname << "(updateSM): CORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateSM): check modeSensor..catch ..." << endl;
dlog3 << myname << "(updateSM): check modeSensor..catch ..." << endl;
}
}
......@@ -1060,36 +1006,30 @@ void MBExchange::updateSM()
}
catch(IOController_i::NameNotFound &ex)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateSM):(NameNotFound) " << ex.err << endl;
dlog3 << myname << "(updateSM):(NameNotFound) " << ex.err << endl;
}
catch(IOController_i::IOBadParam& ex )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateSM):(IOBadParam) " << ex.err << endl;
dlog3 << myname << "(updateSM):(IOBadParam) " << ex.err << endl;
}
catch(IONotifyController_i::BadRange )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateSM): (BadRange)..." << endl;
dlog3 << myname << "(updateSM): (BadRange)..." << endl;
}
catch( Exception& ex )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateSM): " << ex << endl;
dlog3 << myname << "(updateSM): " << ex << endl;
}
catch(CORBA::SystemException& ex)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateSM): CORBA::SystemException: "
dlog3 << myname << "(updateSM): CORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateSM): catch ..." << endl;
dlog3 << myname << "(updateSM): catch ..." << endl;
}
if( it==d->regmap.end() )
break;
}
......@@ -1123,8 +1063,7 @@ void MBExchange::updateRSProperty( RSProperty* p, bool write_only )
if( save && !r->mb_initOK )
return;
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << "updateP: sid=" << p->si.id
dlog3 << "updateP: sid=" << p->si.id
<< " mbval=" << r->mbval
<< " vtype=" << p->vType
<< " rnum=" << p->rnum
......@@ -1192,8 +1131,7 @@ void MBExchange::updateRSProperty( RSProperty* p, bool write_only )
return;
}
if( dlog.is_crit() )
dlog.crit() << myname << "(updateRSProperty): IGNORE item: rnum=" << p->rnum
dcrit << myname << "(updateRSProperty): IGNORE item: rnum=" << p->rnum
<< " > 1 ?!! for id=" << p->si.id << endl;
return;
}
......@@ -1263,8 +1201,7 @@ void MBExchange::updateRSProperty( RSProperty* p, bool write_only )
{
if( p->nbyte <= 0 || p->nbyte > VTypes::Byte::bsize )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(updateRSProperty): IGNORE item: reg=" << ModbusRTU::dat2str(r->mbreg)
dcrit << myname << "(updateRSProperty): IGNORE item: reg=" << ModbusRTU::dat2str(r->mbreg)
<< " vtype=" << p->vType << " but nbyte=" << p->nbyte << endl;
return;
}
......@@ -1387,10 +1324,10 @@ void MBExchange::updateRSProperty( RSProperty* p, bool write_only )
ModbusRTU::ModbusData* data = new ModbusRTU::ModbusData[VTypes::U2::wsize()];
for( int k=0; k<VTypes::U2::wsize(); k++, i++ )
data[k] = i->second->mbval;
VTypes::U2 u2(data,VTypes::U2::wsize());
delete[] data;
IOBase::processingAsAI( p, (unsigned int)u2, shm, force );
}
}
......@@ -1399,34 +1336,28 @@ void MBExchange::updateRSProperty( RSProperty* p, bool write_only )
}
catch(IOController_i::NameNotFound &ex)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRSProperty):(NameNotFound) " << ex.err << endl;
dlog3 << myname << "(updateRSProperty):(NameNotFound) " << ex.err << endl;
}
catch(IOController_i::IOBadParam& ex )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRSProperty):(IOBadParam) " << ex.err << endl;
dlog3 << myname << "(updateRSProperty):(IOBadParam) " << ex.err << endl;
}
catch(IONotifyController_i::BadRange )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRSProperty): (BadRange)..." << endl;
dlog3 << myname << "(updateRSProperty): (BadRange)..." << endl;
}
catch( Exception& ex )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRSProperty): " << ex << endl;
dlog3 << myname << "(updateRSProperty): " << ex << endl;
}
catch(CORBA::SystemException& ex)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRSProperty): CORBA::SystemException: "
dlog3 << myname << "(updateRSProperty): CORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRSProperty): catch ..." << endl;
dlog3 << myname << "(updateRSProperty): catch ..." << endl;
}
// Если SM стала (или была) недоступна
......@@ -1492,21 +1423,20 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
ModbusRTU::ModbusData* data = new ModbusRTU::ModbusData[MTR::T3::wsize()];
for( int k=0; k<MTR::T3::wsize(); k++, i++ )
data[k] = i->second->mbval;
MTR::T3 t(data,MTR::T3::wsize());
delete[] data;
IOBase::processingAsAI( &(*it), (long)t, shm, force );
}
continue;
}
if( r->mtrType == MTR::mtT4 )
{
if( save )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(updateMTR): write (T4) reg(" << dat2str(r->mbreg) << ") to MTR NOT YET!!!" << endl;
}
{
dwarn << myname << "(updateMTR): write (T4) reg(" << dat2str(r->mbreg) << ") to MTR NOT YET!!!" << endl;
}
else
{
MTR::T4 t(r->mbval);
......@@ -1514,7 +1444,7 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
}
continue;
}
if( r->mtrType == MTR::mtT5 )
{
RegMap::iterator i(rit);
......@@ -1629,10 +1559,10 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
ModbusRTU::ModbusData* data = new ModbusRTU::ModbusData[MTR::F1::wsize()];
for( int k=0; k<MTR::F1::wsize(); k++, i++ )
data[k] = i->second->mbval;
MTR::F1 t(data,MTR::F1::wsize());
delete[] data;
IOBase::processingFasAI( &(*it), (float)t, shm, force );
}
continue;
......@@ -1640,34 +1570,28 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
}
catch(IOController_i::NameNotFound &ex)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateMTR):(NameNotFound) " << ex.err << endl;
dlog3 << myname << "(updateMTR):(NameNotFound) " << ex.err << endl;
}
catch(IOController_i::IOBadParam& ex )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateMTR):(IOBadParam) " << ex.err << endl;
dlog3 << myname << "(updateMTR):(IOBadParam) " << ex.err << endl;
}
catch(IONotifyController_i::BadRange )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateMTR): (BadRange)..." << endl;
dlog3 << myname << "(updateMTR): (BadRange)..." << endl;
}
catch( Exception& ex )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateMTR): " << ex << endl;
dlog3 << myname << "(updateMTR): " << ex << endl;
}
catch(CORBA::SystemException& ex)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateMTR): CORBA::SystemException: "
dlog3 << myname << "(updateMTR): CORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateMTR): catch ..." << endl;
dlog3 << myname << "(updateMTR): catch ..." << endl;
}
}
}
......@@ -1687,39 +1611,34 @@ void MBExchange::updateRTU188( RegMap::iterator& rit )
// не реализованы
if( isWriteFunction(r->mbfunc) )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRTU188): write reg(" << dat2str(r->mbreg) << ") to RTU188 NOT YET!!!" << endl;
dlog3 << myname << "(updateRTU188): write reg(" << dat2str(r->mbreg) << ") to RTU188 NOT YET!!!" << endl;
return;
}
if( exchangeMode == emSkipExchange || r->dev->mode == emSkipExchange )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRTU188):"
dlog3 << myname << "(updateRTU188):"
<< " skip... mode=emSkipExchange " << endl;
return;
}
if( save && (exchangeMode == emReadOnly || r->dev->mode == emReadOnly) )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRTU188):"
dlog3 << myname << "(updateRTU188):"
<< " skip... mode=emReadOnly " << endl;
return;
}
if( !save && ( exchangeMode == emWriteOnly || r->dev->mode == emWriteOnly) )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRTU188):"
dlog3 << myname << "(updateRTU188):"
<< " skip... mode=emWriteOnly " << endl;
return;
}
if( save && ( exchangeMode == emSkipSaveToSM || r->dev->mode == emSkipSaveToSM) )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRT188):"
dlog3 << myname << "(updateRT188):"
<< " skip... mode=emSkipSaveToSM " << endl;
return;
}
......@@ -1741,34 +1660,28 @@ void MBExchange::updateRTU188( RegMap::iterator& rit )
}
catch(IOController_i::NameNotFound &ex)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRTU188):(NameNotFound) " << ex.err << endl;
dlog3 << myname << "(updateRTU188):(NameNotFound) " << ex.err << endl;
}
catch(IOController_i::IOBadParam& ex )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRTU188):(IOBadParam) " << ex.err << endl;
dlog3 << myname << "(updateRTU188):(IOBadParam) " << ex.err << endl;
}
catch(IONotifyController_i::BadRange )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRTU188): (BadRange)..." << endl;
dlog3 << myname << "(updateRTU188): (BadRange)..." << endl;
}
catch( Exception& ex )
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRTU188): " << ex << endl;
dlog3 << myname << "(updateRTU188): " << ex << endl;
}
catch(CORBA::SystemException& ex)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRTU188): CORBA::SystemException: "
dlog3 << myname << "(updateRTU188): CORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(updateRTU188): catch ..." << endl;
dlog3 << myname << "(updateRTU188): catch ..." << endl;
}
}
}
......@@ -1782,16 +1695,14 @@ MBExchange::RTUDevice* MBExchange::addDev( RTUDeviceMap& mp, ModbusRTU::ModbusAd
DeviceType dtype = getDeviceType(xmlit.getProp(prop_prefix + "mbtype"));
if( it->second->dtype != dtype )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(addDev): OTHER mbtype=" << dtype << " for " << xmlit.getProp("name")
dcrit << myname << "(addDev): OTHER mbtype=" << dtype << " for " << xmlit.getProp("name")
<< ". Already used devtype=" << it->second->dtype
<< " for mbaddr=" << ModbusRTU::addr2str(it->second->mbaddr)
<< endl;
return 0;
}
if( dlog.is_info() )
dlog.info() << myname << "(addDev): device for addr=" << ModbusRTU::addr2str(a)
dcrit << myname << "(addDev): device for addr=" << ModbusRTU::addr2str(a)
<< " already added. Ignore device params for " << xmlit.getProp("name") << " ..." << endl;
return it->second;
}
......@@ -1818,26 +1729,23 @@ MBExchange::RegInfo* MBExchange::addReg( RegMap& mp, RegID id, ModbusRTU::Modbus
{
if( !it->second->dev )
{
dlog.crit() << myname << "(addReg): for " << xmlit.getProp("name")
dcrit << myname << "(addReg): for " << xmlit.getProp("name")
<< " dev=0!!!! " << endl;
return 0;
}
if( it->second->dev->dtype != dev->dtype )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(addReg): OTHER mbtype=" << dev->dtype << " for " << xmlit.getProp("name")
dcrit << myname << "(addReg): OTHER mbtype=" << dev->dtype << " for " << xmlit.getProp("name")
<< ". Already used devtype=" << it->second->dev->dtype << " for " << it->second->dev << endl;
return 0;
}
if( dlog.is_info() )
{
dlog.info() << myname << "(addReg): reg=" << ModbusRTU::dat2str(r)
dinfo << myname << "(addReg): reg=" << ModbusRTU::dat2str(r)
<< "(id=" << id << ")"
<< " already added for " << (*it->second)
<< " Ignore register params for " << xmlit.getProp("name") << " ..." << endl;
}
it->second->rit = it;
return it->second;
......@@ -1904,8 +1812,7 @@ bool MBExchange::initRSProperty( RSProperty& p, UniXML_iterator& it )
p.stype = UniSetTypes::getIOType(stype);
if( p.stype == UniversalIO::UnknownIOType )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(IOBase::readItem): неизвестный iotype=: "
dcrit << myname << "(IOBase::readItem): неизвестный iotype=: "
<< stype << " for " << it.getProp("name") << endl;
return false;
}
......@@ -1917,8 +1824,7 @@ bool MBExchange::initRSProperty( RSProperty& p, UniXML_iterator& it )
p.nbit = UniSetTypes::uni_atoi(sbit.c_str());
if( p.nbit < 0 || p.nbit >= ModbusRTU::BitsPerData )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initRSProperty): BAD nbit=" << p.nbit
dcrit << myname << "(initRSProperty): BAD nbit=" << p.nbit
<< ". (0 >= nbit < " << ModbusRTU::BitsPerData <<")." << endl;
return false;
}
......@@ -1928,8 +1834,7 @@ bool MBExchange::initRSProperty( RSProperty& p, UniXML_iterator& it )
( p.stype == UniversalIO::AI ||
p.stype == UniversalIO::AO ) )
{
if( dlog.is_warn() )
dlog.warn() << "(initRSProperty): (ignore) uncorrect param`s nbit>1 (" << p.nbit << ")"
dwarn << "(initRSProperty): (ignore) uncorrect param`s nbit>1 (" << p.nbit << ")"
<< " but iotype=" << p.stype << " for " << it.getProp("name") << endl;
}
......@@ -1939,8 +1844,7 @@ bool MBExchange::initRSProperty( RSProperty& p, UniXML_iterator& it )
p.nbyte = UniSetTypes::uni_atoi(sbyte.c_str());
if( p.nbyte < 0 || p.nbyte > VTypes::Byte::bsize )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initRSProperty): BAD nbyte=" << p.nbyte
dwarn << myname << "(initRSProperty): BAD nbyte=" << p.nbyte
<< ". (0 >= nbyte < " << VTypes::Byte::bsize << ")." << endl;
return false;
}
......@@ -1957,8 +1861,7 @@ bool MBExchange::initRSProperty( RSProperty& p, UniXML_iterator& it )
VTypes::VType v(VTypes::str2type(vt));
if( v == VTypes::vtUnknown )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initRSProperty): Unknown tcp_vtype='" << vt << "' for "
dcrit << myname << "(initRSProperty): Unknown tcp_vtype='" << vt << "' for "
<< it.getProp("name")
<< endl;
......@@ -2004,12 +1907,11 @@ bool MBExchange::initRegInfo( RegInfo* r, UniXML_iterator& it, MBExchange::RTUD
}
else
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initRegInfo): Unknown mbtype='" << dev->dtype
dcrit << myname << "(initRegInfo): Unknown mbtype='" << dev->dtype
<< "' for " << it.getProp("name") << endl;
return false;
}
if( mbregFromID )
{
if( it.getProp("id").empty() )
......@@ -2022,8 +1924,7 @@ bool MBExchange::initRegInfo( RegInfo* r, UniXML_iterator& it, MBExchange::RTUD
string sr = it.getProp(prop_prefix + "mbreg");
if( sr.empty() )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initItem): Unknown 'mbreg' for " << it.getProp("name") << endl;
dcrit << myname << "(initItem): Unknown 'mbreg' for " << it.getProp("name") << endl;
return false;
}
r->mbreg = ModbusRTU::str2mbData(sr);
......@@ -2036,8 +1937,7 @@ bool MBExchange::initRegInfo( RegInfo* r, UniXML_iterator& it, MBExchange::RTUD
r->mbfunc = (ModbusRTU::SlaveFunctionCode)UniSetTypes::uni_atoi(f.c_str());
if( r->mbfunc == ModbusRTU::fnUnknown )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initRegInfo): Unknown mbfunc ='" << f
dcrit << myname << "(initRegInfo): Unknown mbfunc ='" << f
<< "' for " << it.getProp("name") << endl;
return false;
}
......@@ -2052,8 +1952,7 @@ bool MBExchange::initRTUDevice( RTUDevice* d, UniXML_iterator& it )
if( d->dtype == dtUnknown )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initRTUDevice): Unknown tcp_mbtype=" << it.getProp(prop_prefix + "mbtype")
dcrit << myname << "(initRTUDevice): Unknown tcp_mbtype=" << it.getProp(prop_prefix + "mbtype")
<< ". Use: rtu "
<< " for " << it.getProp("name") << endl;
return false;
......@@ -2062,8 +1961,7 @@ bool MBExchange::initRTUDevice( RTUDevice* d, UniXML_iterator& it )
string addr = it.getProp(prop_prefix + "mbaddr");
if( addr.empty() )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initRTUDevice): Unknown mbaddr for " << it.getProp("name") << endl;
dcrit << myname << "(initRTUDevice): Unknown mbaddr for " << it.getProp("name") << endl;
return false;
}
......@@ -2087,8 +1985,7 @@ bool MBExchange::initItem( UniXML_iterator& it )
string addr(it.getProp(prop_prefix + "mbaddr"));
if( addr.empty() )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initItem): Unknown mbaddr(" << prop_prefix << "mbaddr)='" << addr << "' for " << it.getProp("name") << endl;
dcrit << myname << "(initItem): Unknown mbaddr(" << prop_prefix << "mbaddr)='" << addr << "' for " << it.getProp("name") << endl;
return false;
}
......@@ -2097,8 +1994,7 @@ bool MBExchange::initItem( UniXML_iterator& it )
RTUDevice* dev = addDev(rmap,mbaddr,it);
if( !dev )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initItem): " << it.getProp("name") << " CAN`T ADD for polling!" << endl;
dcrit << myname << "(initItem): " << it.getProp("name") << " CAN`T ADD for polling!" << endl;
return false;
}
......@@ -2110,8 +2006,7 @@ bool MBExchange::initItem( UniXML_iterator& it )
RegInfo r_tmp;
if( !initRTU188item(it, &r_tmp) )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initItem): init RTU188 failed for " << it.getProp("name") << endl;
dcrit << myname << "(initItem): init RTU188 failed for " << it.getProp("name") << endl;
return false;
}
......@@ -2126,9 +2021,8 @@ bool MBExchange::initItem( UniXML_iterator& it )
{
string reg = it.getProp(prop_prefix + "mbreg");
if( reg.empty() )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initItem): unknown mbreg(" << prop_prefix << ") for " << it.getProp("name") << endl;
{
dcrit << myname << "(initItem): unknown mbreg(" << prop_prefix << ") for " << it.getProp("name") << endl;
return false;
}
mbreg = ModbusRTU::str2mbData(reg);
......@@ -2148,12 +2042,11 @@ bool MBExchange::initItem( UniXML_iterator& it )
p.rnum = MTR::wsize(ri->mtrType);
if( p.rnum <= 0 )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initItem): unknown word size for " << it.getProp("name") << endl;
dcrit << myname << "(initItem): unknown word size for " << it.getProp("name") << endl;
return false;
}
}
if( !ri )
return false;
......@@ -2173,22 +2066,20 @@ bool MBExchange::initItem( UniXML_iterator& it )
{
if( p.nbit<0 && ri->slst.size() > 1 )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initItem): FAILED! Sharing SAVE (not bit saving) to "
dcrit << myname << "(initItem): FAILED! Sharing SAVE (not bit saving) to "
<< " tcp_mbreg=" << ModbusRTU::dat2str(ri->mbreg)
<< " for " << it.getProp("name") << endl;
abort(); // ABORT PROGRAM!!!!
return false;
}
if( p.nbit >= 0 && ri->slst.size() == 1 )
{
PList::iterator it2 = ri->slst.begin();
if( it2->nbit < 0 )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initItem): FAILED! Sharing SAVE (mbreg="
dcrit << myname << "(initItem): FAILED! Sharing SAVE (mbreg="
<< ModbusRTU::dat2str(ri->mbreg) << " already used)!"
<< " IGNORE --> " << it.getProp("name") << endl;
abort(); // ABORT PROGRAM!!!!
......@@ -2237,8 +2128,7 @@ bool MBExchange::initItem( UniXML_iterator& it )
if( ri->mbfunc != ModbusRTU::fnWriteOutputRegisters &&
ri->mbfunc != ModbusRTU::fnForceMultipleCoils )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initItem): Bad write function ='" << ModbusRTU::fnWriteOutputSingleRegister
dcrit << myname << "(initItem): Bad write function ='" << ModbusRTU::fnWriteOutputSingleRegister
<< "' for vtype='" << p1->vType << "'"
<< " tcp_mbreg=" << ModbusRTU::dat2str(ri->mbreg)
<< " for " << it.getProp("name") << endl;
......@@ -2271,8 +2161,7 @@ bool MBExchange::initItem( UniXML_iterator& it )
ii.mbfunc = (ModbusRTU::SlaveFunctionCode)UniSetTypes::uni_atoi(s_mbfunc);
if( ii.mbfunc == ModbusRTU::fnUnknown )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initItem): Unknown tcp_init_mbfunc ='" << s_mbfunc
dcrit << myname << "(initItem): Unknown tcp_init_mbfunc ='" << s_mbfunc
<< "' for " << it.getProp("name") << endl;
return false;
}
......@@ -2316,8 +2205,7 @@ bool MBExchange::initMTRitem( UniXML_iterator& it, RegInfo* p )
p->mtrType = MTR::str2type(it.getProp(prop_prefix + "mtrtype"));
if( p->mtrType == MTR::mtUnknown )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(readMTRItem): Unknown mtrtype '"
dcrit << myname << "(readMTRItem): Unknown mtrtype '"
<< it.getProp(prop_prefix + "mtrtype")
<< "' for " << it.getProp("name") << endl;
......@@ -2334,32 +2222,28 @@ bool MBExchange::initRTU188item( UniXML_iterator& it, RegInfo* p )
if( jack.empty() )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(readRTU188Item): Unknown " << prop_prefix << "jack='' "
dcrit << myname << "(readRTU188Item): Unknown " << prop_prefix << "jack='' "
<< " for " << it.getProp("name") << endl;
return false;
}
p->rtuJack = RTUStorage::s2j(jack);
if( p->rtuJack == RTUStorage::nUnknown )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(readRTU188Item): Unknown " << prop_prefix << "jack=" << jack
dcrit << myname << "(readRTU188Item): Unknown " << prop_prefix << "jack=" << jack
<< " for " << it.getProp("name") << endl;
return false;
}
if( chan.empty() )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(readRTU188Item): Unknown channel='' "
dcrit << myname << "(readRTU188Item): Unknown channel='' "
<< " for " << it.getProp("name") << endl;
return false;
}
p->rtuChan = UniSetTypes::uni_atoi(chan);
if( dlog.debugging(Debug::LEVEL2) )
dlog[Debug::LEVEL2] << myname << "(readRTU188Item): add jack='" << jack << "'"
dlog2 << myname << "(readRTU188Item): add jack='" << jack << "'"
<< " channel='" << p->rtuChan << "'" << endl;
return true;
......@@ -2427,11 +2311,11 @@ void MBExchange::initDeviceList()
initDeviceInfo(rmap,a,it1);
}
}
else if( dlog.is_warn() )
dlog.warn() << myname << "(init): <DeviceList> empty section..." << endl;
else
dwarn << myname << "(init): <DeviceList> empty section..." << endl;
}
else if( dlog.is_warn() )
dlog.warn() << myname << "(init): <DeviceList> not found..." << endl;
else
dwarn << myname << "(init): <DeviceList> not found..." << endl;
}
// -----------------------------------------------------------------------------
bool MBExchange::initDeviceInfo( RTUDeviceMap& m, ModbusRTU::ModbusAddr a, UniXML_iterator& it )
......@@ -2439,15 +2323,13 @@ bool MBExchange::initDeviceInfo( RTUDeviceMap& m, ModbusRTU::ModbusAddr a, UniXM
RTUDeviceMap::iterator d = m.find(a);
if( d == m.end() )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(initDeviceInfo): not found device for addr=" << ModbusRTU::addr2str(a) << endl;
dwarn << myname << "(initDeviceInfo): not found device for addr=" << ModbusRTU::addr2str(a) << endl;
return false;
}
d->second->ask_every_reg = it.getIntProp("ask_every_reg");
if( dlog.is_info() )
dlog.info() << myname << "(initDeviceInfo): add addr=" << ModbusRTU::addr2str(a)
dinfo << myname << "(initDeviceInfo): add addr=" << ModbusRTU::addr2str(a)
<< " ask_every_reg=" << d->second->ask_every_reg << endl;
string s(it.getProp("respondSensor"));
......@@ -2456,8 +2338,7 @@ bool MBExchange::initDeviceInfo( RTUDeviceMap& m, ModbusRTU::ModbusAddr a, UniXM
d->second->resp_id = conf->getSensorID(s);
if( d->second->resp_id == DefaultObjectId )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initDeviceInfo): not found ID for respondSensor=" << s << endl;
dinfo << myname << "(initDeviceInfo): not found ID for respondSensor=" << s << endl;
return false;
}
}
......@@ -2468,22 +2349,19 @@ bool MBExchange::initDeviceInfo( RTUDeviceMap& m, ModbusRTU::ModbusAddr a, UniXM
d->second->mode_id = conf->getSensorID(mod);
if( d->second->mode_id == DefaultObjectId )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initDeviceInfo): not found ID for modeSensor=" << mod << endl;
dcrit << myname << "(initDeviceInfo): not found ID for modeSensor=" << mod << endl;
return false;
}
UniversalIO::IOType m_iotype = conf->getIOType(d->second->mode_id);
if( m_iotype != UniversalIO::AI )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initDeviceInfo): modeSensor='" << mod << "' must be 'AI'" << endl;
dcrit << myname << "(initDeviceInfo): modeSensor='" << mod << "' must be 'AI'" << endl;
return false;
}
}
if( dlog.is_info() )
dlog.info() << myname << "(initDeviceInfo): add addr=" << ModbusRTU::addr2str(a) << endl;
dinfo << myname << "(initDeviceInfo): add addr=" << ModbusRTU::addr2str(a) << endl;
int tout = it.getPIntProp("timeout",5000);
d->second->resp_ptTimeout.setTiming(tout);
d->second->resp_invert = it.getIntProp("invert");
......@@ -2541,19 +2419,16 @@ void MBExchange::processingMessage(UniSetTypes::VoidMessage *msg)
}
catch( SystemError& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(SystemError): " << ex << std::endl;
dcrit << myname << "(SystemError): " << ex << std::endl;
// throw SystemError(ex);
}
catch( Exception& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(processingMessage): " << ex << std::endl;
dcrit << myname << "(processingMessage): " << ex << std::endl;
}
catch(...)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(processingMessage): catch ...\n";
dcrit << myname << "(processingMessage): catch ...\n";
}
}
// -----------------------------------------------------------------------------
......@@ -2565,18 +2440,16 @@ void MBExchange::sysCommand( UniSetTypes::SystemMessage *sm )
{
if( rmap.empty() )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(sysCommand): ************* ITEM MAP EMPTY! terminated... *************" << endl;
dcrit << myname << "(sysCommand): ************* ITEM MAP EMPTY! terminated... *************" << endl;
raise(SIGTERM);
return;
}
if( dlog.is_info() )
dlog.info() << myname << "(sysCommand): device map size= " << rmap.size() << endl;
dinfo << myname << "(sysCommand): device map size= " << rmap.size() << endl;
if( !shm->isLocalwork() )
initDeviceList();
waitSMReady();
// подождать пока пройдёт инициализация датчиков
......@@ -2590,10 +2463,9 @@ void MBExchange::sysCommand( UniSetTypes::SystemMessage *sm )
if( activated )
break;
}
if( !activated && dlog.debugging(Debug::CRIT) )
dlog.crit() << myname << "(sysCommand): ************* don`t activate?! ************" << endl;
if( !activated )
dcrit << myname << "(sysCommand): ************* don`t activate?! ************" << endl;
{
UniSetTypes::uniset_rwmutex_rlock l(mutex_start);
askSensors(UniversalIO::UIONotify);
......@@ -2672,7 +2544,7 @@ void MBExchange::askSensors( UniversalIO::UIOCommand cmd )
<< "(askSensors): Не дождались готовности(work) SharedMemory к работе в течение "
<< activateTimeout << " мсек";
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
kill(SIGTERM,getpid()); // прерываем (перезапускаем) процесс...
throw SystemError(err.str());
}
......@@ -2684,13 +2556,11 @@ void MBExchange::askSensors( UniversalIO::UIOCommand cmd )
}
catch( UniSetTypes::Exception& ex )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(askSensors): " << ex << std::endl;
dwarn << myname << "(askSensors): " << ex << std::endl;
}
catch(...)
{
if( dlog.is_warn() )
dlog.warn() << myname << "(askSensors): 'sidExchangeMode' catch..." << std::endl;
dwarn << myname << "(askSensors): 'sidExchangeMode' catch..." << std::endl;
}
for( MBExchange::RTUDeviceMap::iterator it1=rmap.begin(); it1!=rmap.end(); ++it1 )
......@@ -2704,13 +2574,11 @@ void MBExchange::askSensors( UniversalIO::UIOCommand cmd )
}
catch( UniSetTypes::Exception& ex )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(askSensors): " << ex << std::endl;
dwarn << myname << "(askSensors): " << ex << std::endl;
}
catch(...)
{
if( dlog.is_warn() )
dlog.warn() << myname << "(askSensors): (mode_id=" << d->mode_id << ").. catch..." << std::endl;
dwarn << myname << "(askSensors): (mode_id=" << d->mode_id << ").. catch..." << std::endl;
}
if( force_out )
......@@ -2729,13 +2597,11 @@ void MBExchange::askSensors( UniversalIO::UIOCommand cmd )
}
catch( UniSetTypes::Exception& ex )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(askSensors): " << ex << std::endl;
dwarn << myname << "(askSensors): " << ex << std::endl;
}
catch(...)
{
if( dlog.is_warn() )
dlog.warn() << myname << "(askSensors): id=" << i->si.id << " catch..." << std::endl;
dwarn << myname << "(askSensors): id=" << i->si.id << " catch..." << std::endl;
}
}
}
......@@ -2747,8 +2613,7 @@ void MBExchange::sensorInfo( UniSetTypes::SensorMessage* sm )
if( sm->id == sidExchangeMode )
{
exchangeMode = sm->value;
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(sensorInfo): exchange MODE=" << sm->value << std::endl;
dlog3 << myname << "(sensorInfo): exchange MODE=" << sm->value << std::endl;
//return; // этот датчик может встречаться и в списке обмена.. поэтому делать return нельзя.
}
......@@ -2771,13 +2636,10 @@ void MBExchange::sensorInfo( UniSetTypes::SensorMessage* sm )
{
if( sm->id == i->si.id && sm->node == i->si.node )
{
if( dlog.is_info() )
{
dlog.info() << myname<< "(sensorInfo): si.id=" << sm->id
dinfo << myname<< "(sensorInfo): si.id=" << sm->id
<< " reg=" << ModbusRTU::dat2str(i->reg->mbreg)
<< " val=" << sm->value
<< " mb_initOK=" << i->reg->mb_initOK << endl;
}
if( !i->reg->mb_initOK )
continue;
......@@ -2846,8 +2708,7 @@ void MBExchange::poll()
if( d->mode_id != DefaultObjectId && d->mode == emSkipExchange )
continue;
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(poll): ask addr=" << ModbusRTU::addr2str(d->mbaddr)
dlog3 << myname << "(poll): ask addr=" << ModbusRTU::addr2str(d->mbaddr)
<< " regs=" << d->regmap.size() << endl;
d->resp_real = false;
......@@ -2855,7 +2716,7 @@ void MBExchange::poll()
{
if( !checkProcActive() )
return;
try
{
if( d->dtype==MBExchange::dtRTU || d->dtype==MBExchange::dtMTR )
......@@ -2868,14 +2729,10 @@ void MBExchange::poll()
{
// if( d->resp_real )
// {
if( dlog.debugging(Debug::LEVEL3) )
{
dlog[Debug::LEVEL3] << myname << "(poll): FAILED ask addr=" << ModbusRTU::addr2str(d->mbaddr)
dlog3 << myname << "(poll): FAILED ask addr=" << ModbusRTU::addr2str(d->mbaddr)
<< " reg=" << ModbusRTU::dat2str(it->second->mbreg)
<< " for sensors: "; print_plist(dlog(Debug::LEVEL3),it->second->slst);
dlog(Debug::LEVEL3) << " err: " << ex << endl;
}
// }
<< " for sensors: "; print_plist(dlog(Debug::LEVEL3),it->second->slst)
<< endl << " err: " << ex << endl;
// d->resp_real = false;
if( ex.err == ModbusRTU::erTimeOut && !d->ask_every_reg )
......@@ -2939,8 +2796,7 @@ void MBExchange::poll()
if( allNotRespond && ptReopen.checkTime() )
{
uniset_mutex_lock l(pollMutex, 300);
if( dlog.is_warn() )
dlog.warn() << myname << ": REOPEN timeout..(" << ptReopen.getInterval() << ")" << endl;
dwarn << myname << ": REOPEN timeout..(" << ptReopen.getInterval() << ")" << endl;
mb = initMB(true);
ptReopen.reset();
......@@ -2994,15 +2850,12 @@ void MBExchange::updateRespondSensors()
if( chanTimeout )
it1->second->resp_real = false;
if( dlog.debugging(Debug::LEVEL4) )
{
dlog[Debug::LEVEL4] << myname << ": check respond addr=" << ModbusRTU::addr2str(d->mbaddr)
dlog4 << myname << ": check respond addr=" << ModbusRTU::addr2str(d->mbaddr)
<< " respond_id=" << d->resp_id
<< " real=" << d->resp_real
<< " state=" << d->resp_state
<< endl;
}
if( d->checkRespond() && d->resp_id != DefaultObjectId )
{
......@@ -3013,8 +2866,7 @@ void MBExchange::updateRespondSensors()
}
catch( Exception& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(step): (respond) " << ex << std::endl;
dcrit << myname << "(step): (respond) " << ex << std::endl;
}
}
}
......@@ -3040,13 +2892,11 @@ void MBExchange::execute()
}
catch( Exception& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(execute): " << ex << std::endl;
dcrit << myname << "(execute): " << ex << std::endl;
}
catch(...)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(execute): catch ..." << endl;
dcrit << myname << "(execute): catch ..." << endl;
}
msleep(polltime);
......
......@@ -38,7 +38,7 @@ pollThread(0)
prop_prefix = "";
}
dlog.info() << myname << "(init): prop_prefix=" << prop_prefix << endl;
dinfo << myname << "(init): prop_prefix=" << prop_prefix << endl;
UniXML_iterator it(cnode);
......@@ -55,7 +55,7 @@ pollThread(0)
force_disconnect = conf->getArgInt("--" + prefix + "-persistent-connection",it.getProp("persistent_connection")) ? false : true;
dlog.info() << myname << "(init): persisten-connection=" << (!force_disconnect) << endl;
dinfo << myname << "(init): persisten-connection=" << (!force_disconnect) << endl;
if( shm->isLocalwork() )
{
......@@ -103,19 +103,17 @@ ModbusClient* MBTCPMaster::initMB( bool reopen )
mbtcp->setTimeout(recv_timeout);
mbtcp->setSleepPause(sleepPause_usec);
mbtcp->setAfterSendPause(aftersend_pause);
if( dlog.is_info() )
dlog.info() << myname << "(init): ipaddr=" << iaddr << " port=" << port << endl;
if( dlog.debugging(Debug::LEVEL9) )
dinfo << myname << "(init): ipaddr=" << iaddr << " port=" << port << endl;
if( dlog.is_level9() )
mbtcp->setLog(dlog);
}
catch( ModbusRTU::mbException& ex )
{
if( dlog.is_warn() )
dlog.warn() << "(init): " << ex << endl;
dwarn << "(init): " << ex << endl;
}
catch(...)
{
......@@ -182,23 +180,20 @@ MBTCPMaster* MBTCPMaster::init_mbmaster( int argc, const char* const* argv,
string name = conf->getArgParam("--" + prefix + "-name","MBTCPMaster1");
if( name.empty() )
{
if( dlog.debugging(Debug::CRIT) )
dlog.crit() << "(MBTCPMaster): Не задан name'" << endl;
dcrit << "(MBTCPMaster): Не задан name'" << endl;
return 0;
}
ObjectId ID = conf->getObjectID(name);
if( ID == UniSetTypes::DefaultObjectId )
{
if( dlog.debugging(Debug::CRIT) )
dlog.crit() << "(MBTCPMaster): идентификатор '" << name
dcrit << "(MBTCPMaster): идентификатор '" << name
<< "' не найден в конф. файле!"
<< " в секции " << conf->getObjectsSection() << endl;
return 0;
}
if( dlog.is_info() )
dlog.info() << "(MBTCPMaster): name = " << name << "(" << ID << ")" << endl;
dinfo << "(MBTCPMaster): name = " << name << "(" << ID << ")" << endl;
return new MBTCPMaster(ID,icID,ic,prefix);
}
// -----------------------------------------------------------------------------
......@@ -40,8 +40,7 @@ checkThread(0)
prop_prefix = "";
}
if( dlog.is_info() )
dlog.info() << myname << "(init): prop_prefix=" << prop_prefix << endl;
dinfo << myname << "(init): prop_prefix=" << prop_prefix << endl;
UniXML_iterator it(cnode);
......@@ -53,8 +52,7 @@ checkThread(0)
{
ostringstream err;
err << myname << "(init): not found <GateList>";
if( dlog.is_crit() )
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw UniSetTypes::SystemError(err.str());
}
......@@ -62,8 +60,7 @@ checkThread(0)
{
ostringstream err;
err << myname << "(init): empty <GateList> ?!";
if( dlog.is_crit() )
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw UniSetTypes::SystemError(err.str());
}
......@@ -75,8 +72,7 @@ checkThread(0)
{
ostringstream err;
err << myname << "(init): ip='' in <GateList>";
if( dlog.is_crit() )
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw UniSetTypes::SystemError(err.str());
}
......@@ -85,8 +81,7 @@ checkThread(0)
{
ostringstream err;
err << myname << "(init): ERROR: port=''" << sinf.port << " for ip='" << sinf.ip << "' in <GateList>";
if( dlog.is_crit() )
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw UniSetTypes::SystemError(err.str());
}
......@@ -97,8 +92,7 @@ checkThread(0)
{
ostringstream err;
err << myname << "(init): ERROR: Unknown SensorID for '" << it1.getProp("respond") << "' in <GateList>";
if( dlog.is_crit() )
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw UniSetTypes::SystemError(err.str());
}
}
......@@ -117,21 +111,19 @@ checkThread(0)
n << sinf.ip << ":" << sinf.port;
sinf.myname = n.str();
if( dlog.debugging(Debug::LEVEL9) )
if( dlog.is_level9() )
sinf.mbtcp->setLog(dlog);
mblist.push_back(sinf);
if( dlog.is_info() )
dlog.info() << myname << "(init): add slave channel " << sinf.myname << endl;
dinfo << myname << "(init): add slave channel " << sinf.myname << endl;
}
if( mblist.empty() )
{
ostringstream err;
err << myname << "(init): empty <GateList>!";
if( dlog.is_crit() )
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw UniSetTypes::SystemError(err.str());
}
......@@ -234,8 +226,7 @@ bool MBTCPMultiMaster::MBSlaveInfo::init()
{
// ost::Thread::setException(ost::Thread::throwException);
if( dlog.is_info() )
dlog.info() << myname << "(init): connect..." << endl;
dinfo << myname << "(init): connect..." << endl;
mbtcp->connect(ip,port);
mbtcp->setForceDisconnect(force_disconnect);
......@@ -248,22 +239,20 @@ bool MBTCPMultiMaster::MBSlaveInfo::init()
mbtcp->setSleepPause(sleepPause_usec);
mbtcp->setAfterSendPause(aftersend_pause);
if( mbtcp->isConnection() && dlog.is_info() )
dlog.info() << "(init): " << myname << " connect OK" << endl;
if( mbtcp->isConnection() )
dinfo << "(init): " << myname << " connect OK" << endl;
initOK = true;
}
return mbtcp->isConnection();
}
catch( ModbusRTU::mbException& ex )
{
if( dlog.is_warn() )
dlog.warn() << "(init): " << ex << endl;
dwarn << "(init): " << ex << endl;
}
catch(...)
{
if( dlog.is_warn() )
dlog.warn() << "(init): " << myname << " catch ..." << endl;
dwarn << "(init): " << myname << " catch ..." << endl;
}
initOK = false;
......@@ -318,8 +307,7 @@ void MBTCPMultiMaster::check_thread()
try
{
bool r = it->check();
if( dlog.is_info() )
dlog.info() << myname << "(check): " << it->myname << " " << ( r ? "OK" : "FAIL" ) << endl;
dinfo << myname << "(check): " << it->myname << " " << ( r ? "OK" : "FAIL" ) << endl;
try
{
......@@ -331,8 +319,7 @@ void MBTCPMultiMaster::check_thread()
}
catch( Exception& ex )
{
if( dlog.debugging(Debug::CRIT) )
dlog.crit() << myname << "(check): (respond) " << ex << std::endl;
dcrit << myname << "(check): (respond) " << ex << std::endl;
}
catch(...){}
......@@ -382,20 +369,20 @@ MBTCPMultiMaster* MBTCPMultiMaster::init_mbmaster( int argc, const char* const*
string name = conf->getArgParam("--" + prefix + "-name","MBTCPMultiMaster1");
if( name.empty() )
{
dlog.crit() << "(MBTCPMultiMaster): Не задан name'" << endl;
dcrit << "(MBTCPMultiMaster): Не задан name'" << endl;
return 0;
}
ObjectId ID = conf->getObjectID(name);
if( ID == UniSetTypes::DefaultObjectId )
{
dlog.crit() << "(MBTCPMultiMaster): идентификатор '" << name
dcrit << "(MBTCPMultiMaster): идентификатор '" << name
<< "' не найден в конф. файле!"
<< " в секции " << conf->getObjectsSection() << endl;
return 0;
}
dlog.info() << "(MBTCPMultiMaster): name = " << name << "(" << ID << ")" << endl;
dinfo << "(MBTCPMultiMaster): name = " << name << "(" << ID << ")" << endl;
return new MBTCPMultiMaster(ID,icID,ic,prefix);
}
// -----------------------------------------------------------------------------
......@@ -38,7 +38,7 @@ rs_pre_clean(false)
prop_prefix = "";
}
dlog.info() << myname << "(init): prop_prefix=" << prop_prefix << endl;
dinfo << myname << "(init): prop_prefix=" << prop_prefix << endl;
UniXML_iterator it(cnode);
......@@ -126,27 +126,27 @@ ModbusClient* RTUExchange::initMB( bool reopen )
if( recv_timeout > 0 )
mbrtu->setTimeout(recv_timeout);
mbrtu->setSleepPause(sleepPause_usec);
mbrtu->setAfterSendPause(aftersend_pause);
dlog.info() << myname << "(init): dev=" << devname << " speed=" << ComPort::getSpeed( mbrtu->getSpeed() ) << endl;
dinfo << myname << "(init): dev=" << devname << " speed=" << ComPort::getSpeed( mbrtu->getSpeed() ) << endl;
}
catch( Exception& ex )
{
if( mbrtu )
delete mbrtu;
mbrtu = 0;
dlog.warn() << myname << "(init): " << ex << endl;
dwarn << myname << "(init): " << ex << endl;
}
catch(...)
{
if( mbrtu )
delete mbrtu;
mbrtu = 0;
dlog.info() << myname << "(init): catch...." << endl;
dinfo << myname << "(init): catch...." << endl;
}
mb = mbrtu;
......@@ -217,18 +217,15 @@ void RTUExchange::poll()
s = d->speed;
mbrtu->setSpeed(d->speed);
}
if( d->dtype == MBExchange::dtRTU188 )
{
if( !d->rtu )
continue;
if( dlog.debugging(Debug::LEVEL3) )
{
dlog[Debug::LEVEL3] << myname << "(pollRTU188): poll RTU188 "
dlog3 << myname << "(pollRTU188): poll RTU188 "
<< " mbaddr=" << ModbusRTU::addr2str(d->mbaddr)
<< endl;
}
try
{
......@@ -242,19 +239,15 @@ void RTUExchange::poll()
{
if( d->resp_real )
{
if( dlog.debugging(Debug::LEVEL3) )
{
dlog.crit() << myname << "(poll): FAILED ask addr=" << ModbusRTU::addr2str(d->mbaddr)
dlog3 << myname << "(poll): FAILED ask addr=" << ModbusRTU::addr2str(d->mbaddr)
<< " -> " << ex << endl;
}
d->resp_real = false;
}
}
}
else
{
if( dlog.debugging(Debug::LEVEL3) )
dlog[Debug::LEVEL3] << myname << "(poll): ask addr=" << ModbusRTU::addr2str(d->mbaddr)
dlog3 << myname << "(poll): ask addr=" << ModbusRTU::addr2str(d->mbaddr)
<< " regs=" << d->regmap.size() << endl;
d->resp_real = false;
......@@ -274,13 +267,11 @@ void RTUExchange::poll()
{
// if( d->resp_real )
// {
if( dlog.debugging(Debug::LEVEL3) )
{
dlog[Debug::LEVEL3] << myname << "(poll): FAILED ask addr=" << ModbusRTU::addr2str(d->mbaddr)
dlog3 << myname << "(poll): FAILED ask addr=" << ModbusRTU::addr2str(d->mbaddr)
<< " reg=" << ModbusRTU::dat2str(it->second->mbreg)
<< " for sensors: "; print_plist(dlog(Debug::LEVEL3), it->second->slst);
dlog(Debug::LEVEL3) << " err: " << ex << endl;
}
// d->resp_real = false;
// }
}
......@@ -318,8 +309,7 @@ void RTUExchange::poll()
if( allNotRespond && ptReopen.checkTime() )
{
uniset_mutex_lock l(pollMutex, 300);
if( dlog.is_warn() )
dlog.warn() << myname << ": REOPEN timeout..(" << ptReopen.getInterval() << ")" << endl;
dwarn << myname << ": REOPEN timeout..(" << ptReopen.getInterval() << ")" << endl;
mb = initMB(true);
ptReopen.reset();
......@@ -347,7 +337,7 @@ RTUExchange* RTUExchange::init_rtuexchange( int argc, const char* const* argv, U
return 0;
}
dlog.info() << "(rtuexchange): name = " << name << "(" << ID << ")" << endl;
dinfo << "(rtuexchange): name = " << name << "(" << ID << ")" << endl;
return new RTUExchange(ID,icID,ic,prefix);
}
// -----------------------------------------------------------------------------
......@@ -359,7 +349,7 @@ bool RTUExchange::initDeviceInfo( RTUDeviceMap& m, ModbusRTU::ModbusAddr a, UniX
RTUDeviceMap::iterator d = m.find(a);
if( d == m.end() )
{
dlog.warn() << myname << "(initDeviceInfo): not found device for addr=" << ModbusRTU::addr2str(a) << endl;
dwarn << myname << "(initDeviceInfo): not found device for addr=" << ModbusRTU::addr2str(a) << endl;
return false;
}
......@@ -370,7 +360,7 @@ bool RTUExchange::initDeviceInfo( RTUDeviceMap& m, ModbusRTU::ModbusAddr a, UniX
if( d->second->speed == ComPort::ComSpeed0 )
{
d->second->speed = defSpeed;
dlog.crit() << myname << "(initDeviceInfo): Unknown speed=" << s <<
dcrit << myname << "(initDeviceInfo): Unknown speed=" << s <<
" for addr=" << ModbusRTU::addr2str(a) << endl;
return false;
}
......
......@@ -55,7 +55,7 @@ int main( int argc, const char** argv )
MBTCPMaster* mb = MBTCPMaster::init_mbmaster(argc,argv,shmID);
if( !mb )
{
dlog.crit() << "(mbmaster): init MBTCPMaster failed." << endl;
dcrit << "(mbmaster): init MBTCPMaster failed." << endl;
return 1;
}
......@@ -75,11 +75,11 @@ int main( int argc, const char** argv )
}
catch( Exception& ex )
{
dlog.crit() << "(mbtcpmaster): " << ex << std::endl;
dcrit << "(mbtcpmaster): " << ex << std::endl;
}
catch(...)
{
dlog.crit() << "(mbtcpmaster): catch ..." << std::endl;
dcrit << "(mbtcpmaster): catch ..." << std::endl;
}
while( waitpid(-1, 0, 0) > 0 );
......
......@@ -55,7 +55,7 @@ int main( int argc, const char** argv )
MBTCPMultiMaster* mb = MBTCPMultiMaster::init_mbmaster(argc,argv,shmID);
if( !mb )
{
dlog.crit() << "(mbmaster): init MBTCPMaster failed." << endl;
dcrit << "(mbmaster): init MBTCPMaster failed." << endl;
return 1;
}
......@@ -77,11 +77,11 @@ int main( int argc, const char** argv )
}
catch( Exception& ex )
{
dlog.crit() << "(mbtcpmultimaster): " << ex << std::endl;
dcrit << "(mbtcpmultimaster): " << ex << std::endl;
}
catch(...)
{
dlog.crit() << "(mbtcpmultimaster): catch ..." << std::endl;
dcrit << "(mbtcpmultimaster): catch ..." << std::endl;
}
while( waitpid(-1, 0, 0) > 0 );
......
......@@ -53,7 +53,7 @@ int main( int argc, char** argv )
RTUExchange* rs = RTUExchange::init_rtuexchange(argc,argv,shmID,0,"rs");
if( !rs )
{
dlog.crit() << "(rtuexchange): init не прошёл..." << endl;
dcrit << "(rtuexchange): init не прошёл..." << endl;
return 1;
}
......@@ -75,11 +75,11 @@ int main( int argc, char** argv )
}
catch( Exception& ex )
{
dlog.crit() << "(rtuexchange): " << ex << std::endl;
dcrit << "(rtuexchange): " << ex << std::endl;
}
catch(...)
{
dlog.crit() << "(rtuexchange): catch ..." << std::endl;
dcrit << "(rtuexchange): catch ..." << std::endl;
}
while( waitpid(-1, 0, 0) > 0 );
......
......@@ -46,7 +46,7 @@ prefix(prefix)
// определяем фильтр
s_field = conf->getArgParam("--" + prefix + "-filter-field");
s_fvalue = conf->getArgParam("--" + prefix + "-filter-value");
dlog.info() << myname << "(init): read s_field='" << s_field
dinfo << myname << "(init): read s_field='" << s_field
<< "' s_fvalue='" << s_fvalue << "'" << endl;
force = conf->getArgInt("--" + prefix + "-force",it.getProp("force"));
......@@ -61,7 +61,7 @@ prefix(prefix)
addr = ModbusRTU::str2mbAddr(saddr);
mbregFromID = conf->getArgInt("--" + prefix + "-reg-from-id",it.getProp("reg_from_id"));
dlog.info() << myname << "(init): mbregFromID=" << mbregFromID << endl;
dinfo << myname << "(init): mbregFromID=" << mbregFromID << endl;
respond_id = conf->getSensorID(conf->getArgParam("--" + prefix + "-respond-id",it.getProp("respond_id")));
respond_invert = conf->getArgInt("--" + prefix + "-respond-invert",it.getProp("respond_invert"));
......@@ -92,7 +92,7 @@ prefix(prefix)
mbslot = rs;
thr = new ThreadCreator<MBSlave>(this,&MBSlave::execute_rtu);
dlog.info() << myname << "(init): type=RTU myaddr=" << ModbusRTU::addr2str(addr)
dinfo << myname << "(init): type=RTU myaddr=" << ModbusRTU::addr2str(addr)
<< " dev=" << dev << " speed=" << speed << endl;
}
else if( stype == "TCP" )
......@@ -103,16 +103,14 @@ prefix(prefix)
int port = conf->getArgPInt("--" + prefix + "-inet-port",it.getProp("iport"), 502);
if( dlog.is_info() )
dlog.info() << myname << "(init): type=TCP myaddr=" << ModbusRTU::addr2str(addr)
dinfo << myname << "(init): type=TCP myaddr=" << ModbusRTU::addr2str(addr)
<< " inet=" << iaddr << " port=" << port << endl;
ost::InetAddress ia(iaddr.c_str());
mbslot = new ModbusTCPServerSlot(ia,port);
thr = new ThreadCreator<MBSlave>(this,&MBSlave::execute_tcp);
if( dlog.is_info() )
dlog.info() << myname << "(init): init TCP connection ok. " << " inet=" << iaddr << " port=" << port << endl;
dinfo << myname << "(init): init TCP connection ok. " << " inet=" << iaddr << " port=" << port << endl;
}
else
throw UniSetTypes::SystemError(myname+"(MBSlave): Unknown slave type. Use: --mbs-type [RTU|TCP]");
......@@ -142,8 +140,7 @@ prefix(prefix)
if( shm->isLocalwork() )
{
readConfiguration();
if( dlog.is_info() )
dlog.info() << myname << "(init): iomap size = " << iomap.size() << endl;
dinfo << myname << "(init): iomap size = " << iomap.size() << endl;
}
else
{
......@@ -161,7 +158,7 @@ prefix(prefix)
{
ostringstream err;
err << myname << ": не найден идентификатор для датчика 'HeartBeat' " << heart;
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
......@@ -181,18 +178,14 @@ prefix(prefix)
{
ostringstream err;
err << myname << ": test_id unknown. 'TestMode_S' not found...";
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
}
askcount_id = conf->getSensorID(conf->getArgParam("--" + prefix + "-askcount-id",it.getProp("askcount_id")));
if( dlog.is_info() )
{
dlog.info() << myname << ": init askcount_id=" << askcount_id << endl;
dlog.info() << myname << ": init test_id=" << test_id << endl;
}
dinfo << myname << ": init askcount_id=" << askcount_id << endl;
dinfo << myname << ": init test_id=" << test_id << endl;
wait_msec = getHeartBeatTime() - 100;
if( wait_msec < 500 )
......@@ -203,8 +196,7 @@ prefix(prefix)
timeout_t msec = conf->getArgPInt("--" + prefix + "-timeout",it.getProp("timeout"), 3000);
ptTimeout.setTiming(msec);
if( dlog.is_info() )
dlog.info() << myname << "(init): rs-timeout=" << msec << " msec" << endl;
dinfo << myname << "(init): rs-timeout=" << msec << " msec" << endl;
// build file list...
xmlNode* fnode = 0;
......@@ -222,18 +214,16 @@ prefix(prefix)
std::string nm = fit.getProp("name");
if( nm.empty() )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(build file list): ignore empty name... " << endl;
dwarn << myname << "(build file list): ignore empty name... " << endl;
continue;
}
int id = fit.getIntProp("id");
if( id == 0 )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(build file list): FAILED ID for " << nm << "... ignore..." << endl;
dwarn << myname << "(build file list): FAILED ID for " << nm << "... ignore..." << endl;
continue;
}
std::string dir(fit.getProp("directory"));
if( !dir.empty() )
{
......@@ -245,8 +235,7 @@ prefix(prefix)
nm = dir + nm;
}
if( dlog.is_info() )
dlog.info() << myname << "(init): add to filelist: "
dinfo << myname << "(init): add to filelist: "
<< "id=" << id
<< " file=" << nm
<< endl;
......@@ -254,11 +243,11 @@ prefix(prefix)
flist[id] = nm;
}
}
else if( dlog.is_info() )
dlog.info() << myname << "(init): <filelist> empty..." << endl;
else
dinfo << myname << "(init): <filelist> empty..." << endl;
}
else if( dlog.is_info() )
dlog.info() << myname << "(init): <filelist> not found..." << endl;
else
dinfo << myname << "(init): <filelist> not found..." << endl;
// Формирование "карты" ответов на запрос 0x2B(43)/0x0E(14)
......@@ -290,8 +279,7 @@ prefix(prefix)
{
if( dit.getProp("id").empty() )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(init): read <MEI>. Unknown <device id=''>. Ignore.." << endl;
dwarn << myname << "(init): read <MEI>. Unknown <device id=''>. Ignore.." << endl;
continue;
}
......@@ -300,20 +288,18 @@ prefix(prefix)
UniXML_iterator oit(dit);
if( oit.goChildren() )
{
if( dlog.is_info() )
dlog.info() << myname << "(init): MEI: read dev='" << devID << "'" << endl;
dwarn << myname << "(init): MEI: read dev='" << devID << "'" << endl;
MEIObjIDMap meiomap;
// Object ID list..
for( ;oit.getCurrent(); oit.goNext() )
{
if( dit.getProp("id").empty() )
{
if( dlog.is_warn() )
dlog.warn() << myname
dwarn << myname
<< "(init): read <MEI>. Unknown <object id='' (for device id='"
<< devID << "'). Ignore.."
<< endl;
continue;
}
......@@ -321,9 +307,7 @@ prefix(prefix)
UniXML_iterator sit(oit);
if( sit.goChildren() )
{
if( dlog.is_info() )
dlog.info() << myname << "(init): MEI: read obj='" << objID << "'" << endl;
dinfo << myname << "(init): MEI: read obj='" << objID << "'" << endl;
MEIValMap meivmap;
// request (string) list..
for( ;sit.getCurrent(); sit.goNext() )
......@@ -331,8 +315,7 @@ prefix(prefix)
int vid = objID;
if( sit.getProp("id").empty() )
{
if( dlog.is_warn() )
dlog.info() << myname << "(init): MEI: dev='" << devID
dwarn << myname << "(init): MEI: dev='" << devID
<< "' obj='" << objID << "'"
<< ". Unknown id='' for value='" << sit.getProp("value") << "'"
<< ". Set objID='" << objID << "'"
......@@ -340,7 +323,7 @@ prefix(prefix)
}
else
vid = sit.getIntProp("id");
meivmap[vid] = sit.getProp("value");
}
......@@ -355,11 +338,11 @@ prefix(prefix)
}
}
if( !meidev.empty() && dlog.is_info() )
dlog.info() << myname << "(init): <MEI> init ok." << endl;
if( !meidev.empty() )
dinfo << myname << "(init): <MEI> init ok." << endl;
}
else if( dlog.is_info() )
dlog.info() << myname << "(init): <MEI> empty..." << endl;
else
dinfo << myname << "(init): <MEI> empty..." << endl;
}
// -----------------------------------------------------------------------------
......@@ -383,8 +366,7 @@ void MBSlave::waitSMReady()
{
ostringstream err;
err << myname << "(waitSMReady): Не дождались готовности SharedMemory к работе в течение " << ready_timeout << " мсек";
if( dlog.is_crit() )
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw SystemError(err.str());
}
}
......@@ -412,9 +394,9 @@ void MBSlave::execute_rtu()
prev = res;
}
if( res!=ModbusRTU::erNoError && res!=ModbusRTU::erTimeOut && dlog.is_warn() )
dlog.warn() << myname << "(execute_rtu): " << ModbusRTU::mbErr2Str(res) << endl;
if( res!=ModbusRTU::erNoError && res!=ModbusRTU::erTimeOut )
dwarn << myname << "(execute_rtu): " << ModbusRTU::mbErr2Str(res) << endl;
if( !activated )
continue;
......@@ -428,9 +410,8 @@ void MBSlave::execute_rtu()
}
catch(Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname
<< "(execute_rtu): (hb) " << ex << std::endl;
dcrit << myname
<< "(execute_rtu): (hb) " << ex << std::endl;
}
}
......@@ -446,8 +427,7 @@ void MBSlave::execute_rtu()
}
catch(Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(execute_rtu): (respond) " << ex << std::endl;
dcrit << myname << "(execute_rtu): (respond) " << ex << std::endl;
}
}
......@@ -459,8 +439,7 @@ void MBSlave::execute_rtu()
}
catch(Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(execute_rtu): (askCount) " << ex << std::endl;
dcrit << myname << "(execute_rtu): (askCount) " << ex << std::endl;
}
}
......@@ -494,9 +473,9 @@ void MBSlave::execute_tcp()
prev = res;
}
if( res!=ModbusRTU::erNoError && res!=ModbusRTU::erTimeOut && dlog.is_warn() )
dlog.warn() << myname << "(execute_tcp): " << ModbusRTU::mbErr2Str(res) << endl;
if( res!=ModbusRTU::erNoError && res!=ModbusRTU::erTimeOut )
dwarn << myname << "(execute_tcp): " << ModbusRTU::mbErr2Str(res) << endl;
if( !activated )
continue;
......@@ -510,8 +489,7 @@ void MBSlave::execute_tcp()
}
catch(Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(execute_tcp): (hb) " << ex << std::endl;
dcrit << myname << "(execute_tcp): (hb) " << ex << std::endl;
}
}
......@@ -526,9 +504,8 @@ void MBSlave::execute_tcp()
}
catch(Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname
<< "(execute_rtu): (respond) " << ex << std::endl;
dcrit << myname
<< "(execute_rtu): (respond) " << ex << std::endl;
}
}
......@@ -540,9 +517,8 @@ void MBSlave::execute_tcp()
}
catch(Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname
<< "(execute_rtu): (askCount) " << ex << std::endl;
dcrit << myname
<< "(execute_rtu): (askCount) " << ex << std::endl;
}
}
......@@ -580,20 +556,17 @@ void MBSlave::processingMessage(UniSetTypes::VoidMessage *msg)
}
catch( SystemError& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(SystemError): " << ex << std::endl;
dcrit << myname << "(SystemError): " << ex << std::endl;
// throw SystemError(ex);
raise(SIGTERM);
}
catch( Exception& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(processingMessage): " << ex << std::endl;
dcrit << myname << "(processingMessage): " << ex << std::endl;
}
catch(...)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(processingMessage): catch ...\n";
dcrit << myname << "(processingMessage): catch ...\n";
}
}
// -----------------------------------------------------------------------------
......@@ -605,12 +578,11 @@ void MBSlave::sysCommand(UniSetTypes::SystemMessage *sm)
{
if( iomap.empty() )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(sysCommand): iomap EMPTY! terminated..." << endl;
dcrit << myname << "(sysCommand): iomap EMPTY! terminated..." << endl;
raise(SIGTERM);
return;
}
waitSMReady();
// подождать пока пройдёт инициализация датчиков
......@@ -624,9 +596,9 @@ void MBSlave::sysCommand(UniSetTypes::SystemMessage *sm)
if( activated )
break;
}
if( !activated && dlog.is_crit() )
dlog.crit() << myname << "(sysCommand): ************* don`t activate?! ************" << endl;
if( !activated )
dcrit << myname << "(sysCommand): ************* don`t activate?! ************" << endl;
else
{
UniSetTypes::uniset_rwmutex_rlock l(mutex_start);
......@@ -688,8 +660,8 @@ void MBSlave::askSensors( UniversalIO::UIOCommand cmd )
err << myname
<< "(askSensors): Не дождались готовности(work) SharedMemory к работе в течение "
<< activateTimeout << " мсек";
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
kill(SIGTERM,getpid()); // прерываем (перезапускаем) процесс...
throw SystemError(err.str());
}
......@@ -707,8 +679,7 @@ void MBSlave::askSensors( UniversalIO::UIOCommand cmd )
}
catch( UniSetTypes::Exception& ex )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(askSensors): " << ex << std::endl;
dwarn << myname << "(askSensors): " << ex << std::endl;
}
catch(...){}
}
......@@ -750,14 +721,12 @@ void MBSlave::sensorInfo( UniSetTypes::SensorMessage* sm )
p->value = sm->value;
}
if( dlog.is_crit() )
{
// вообще этого не может случиться
// потому-что корректность проверяется при загрузке
if( i != sz && dlog.is_crit() )
dlog.crit() << myname << "(sensorInfo): update failed for sid=" << sm->id
// вообще этого не может случиться
// потому-что корректность проверяется при загрузке
if( i != sz )
dcrit << myname << "(sensorInfo): update failed for sid=" << sm->id
<< " (i=" << i << " sz=" << sz << ")" << endl;
}
return;
}
}
......@@ -807,8 +776,7 @@ void MBSlave::readConfiguration()
UniXML_iterator it(root);
if( !it.goChildren() )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(readConfiguration): раздел <sensors> не содержит секций ?!!\n";
dcrit << myname << "(readConfiguration): раздел <sensors> не содержит секций ?!!\n";
return;
}
......@@ -843,11 +811,10 @@ bool MBSlave::initItem( UniXML_iterator& it )
string r = it.getProp("mbreg");
if( r.empty() )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initItem): Unknown 'mbreg' for " << it.getProp("name") << endl;
dcrit << myname << "(initItem): Unknown 'mbreg' for " << it.getProp("name") << endl;
return false;
}
p.mbreg = ModbusRTU::str2mbData(r);
}
......@@ -858,8 +825,7 @@ bool MBSlave::initItem( UniXML_iterator& it )
p.stype = UniSetTypes::getIOType(stype);
if( p.stype == UniversalIO::UnknownIOType )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initItem): Unknown 'iotype' or 'mb_iotype' for " << it.getProp("name") << endl;
dcrit << myname << "(initItem): Unknown 'iotype' or 'mb_iotype' for " << it.getProp("name") << endl;
return false;
}
......@@ -876,19 +842,16 @@ bool MBSlave::initItem( UniXML_iterator& it )
p.vtype = VTypes::vtUnknown;
p.wnum = 0;
iomap[p.mbreg] = p;
if( dlog.is_info() )
dlog.info() << myname << "(initItem): add " << p << endl;
dinfo << myname << "(initItem): add " << p << endl;
}
else
{
VTypes::VType v(VTypes::str2type(vt));
if( v == VTypes::vtUnknown )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(initItem): Unknown rtuVType=" << vt << " for "
<< it.getProp("name")
<< endl;
dcrit << myname << "(initItem): Unknown rtuVType=" << vt << " for "
<< it.getProp("name")
<< endl;
return false;
}
......@@ -899,11 +862,10 @@ bool MBSlave::initItem( UniXML_iterator& it )
p.mbreg += i;
p.wnum+= i;
iomap[p.mbreg] = p;
if( dlog.is_info() )
dlog.info() << myname << "(initItem): add " << p << endl;
dinfo << myname << "(initItem): add " << p << endl;
}
}
return true;
}
// ------------------------------------------------------------------------------------------
......@@ -965,8 +927,7 @@ MBSlave* MBSlave::init_mbslave( int argc, const char* const* argv, UniSetTypes::
return 0;
}
if( dlog.is_info() )
dlog.info() << "(mbslave): name = " << name << "(" << ID << ")" << endl;
dinfo << "(mbslave): name = " << name << "(" << ID << ")" << endl;
return new MBSlave(ID,icID,ic,prefix);
}
// -----------------------------------------------------------------------------
......@@ -991,8 +952,7 @@ std::ostream& operator<<( std::ostream& os, MBSlave::IOProperty& p )
ModbusRTU::mbErrCode MBSlave::readOutputRegisters( ModbusRTU::ReadOutputMessage& query,
ModbusRTU::ReadOutputRetMessage& reply )
{
if( dlog.is_info() )
dlog.info() << myname << "(readOutputRegisters): " << query << endl;
dinfo << myname << "(readOutputRegisters): " << query << endl;
if( query.count <= 1 )
{
......@@ -1020,8 +980,7 @@ ModbusRTU::mbErrCode MBSlave::readOutputRegisters( ModbusRTU::ReadOutputMessage&
ModbusRTU::mbErrCode MBSlave::writeOutputRegisters( ModbusRTU::WriteOutputMessage& query,
ModbusRTU::WriteOutputRetMessage& reply )
{
if( dlog.is_info() )
dlog.info() << myname << "(writeOutputRegisters): " << query << endl;
dinfo << myname << "(writeOutputRegisters): " << query << endl;
// Формирование ответа:
ModbusRTU::mbErrCode ret = much_real_write(query.start,query.data,query.quant);
......@@ -1033,8 +992,7 @@ ModbusRTU::mbErrCode MBSlave::writeOutputRegisters( ModbusRTU::WriteOutputMessag
ModbusRTU::mbErrCode MBSlave::writeOutputSingleRegister( ModbusRTU::WriteSingleOutputMessage& query,
ModbusRTU::WriteSingleOutputRetMessage& reply )
{
if( dlog.is_info() )
dlog.info() << myname << "(writeOutputSingleRegisters): " << query << endl;
dinfo << myname << "(writeOutputSingleRegisters): " << query << endl;
ModbusRTU::mbErrCode ret = real_write(query.start,query.data);
if( ret == ModbusRTU::erNoError )
......@@ -1045,12 +1003,11 @@ ModbusRTU::mbErrCode MBSlave::writeOutputSingleRegister( ModbusRTU::WriteSingleO
// -------------------------------------------------------------------------
ModbusRTU::mbErrCode MBSlave::much_real_write( ModbusRTU::ModbusData reg, ModbusRTU::ModbusData* dat,
int count )
{ if( dlog.is_info() )
{
dlog.info() << myname << "(much_real_write): read mbID="
{
dinfo << myname << "(much_real_write): read mbID="
<< ModbusRTU::dat2str(reg) << " count=" << count << endl;
}
int i=0;
IOMap::iterator it = iomap.end();
for( ; i<count; i++ )
......@@ -1080,13 +1037,10 @@ ModbusRTU::mbErrCode MBSlave::much_real_write( ModbusRTU::ModbusData reg, Modbus
// -------------------------------------------------------------------------
ModbusRTU::mbErrCode MBSlave::real_write( ModbusRTU::ModbusData reg, ModbusRTU::ModbusData mbval )
{
if( dlog.is_info() )
{
dlog.info() << myname << "(write): save mbID="
dinfo << myname << "(write): save mbID="
<< ModbusRTU::dat2str(reg)
<< " data=" << ModbusRTU::dat2str(mbval)
<< "(" << (int)mbval << ")" << endl;
}
IOMap::iterator it = iomap.find(reg);
return real_write_it(it,mbval);
......@@ -1180,33 +1134,31 @@ ModbusRTU::mbErrCode MBSlave::real_write_it( IOMap::iterator& it, ModbusRTU::Mod
}
catch( UniSetTypes::NameNotFound& ex )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(write): " << ex << endl;
dwarn << myname << "(write): " << ex << endl;
return ModbusRTU::erBadDataAddress;
}
catch( UniSetTypes::OutOfRange& ex )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(write): " << ex << endl;
dwarn << myname << "(write): " << ex << endl;
return ModbusRTU::erBadDataValue;
}
catch( Exception& ex )
{
if( pingOK && dlog.is_crit() )
dlog.crit() << myname << "(write): " << ex << endl;
if( pingOK )
dcrit << myname << "(write): " << ex << endl;
}
catch( CORBA::SystemException& ex )
{
if( pingOK && dlog.is_crit() )
dlog.crit() << myname << "(write): СORBA::SystemException: "
if( pingOK )
dcrit << myname << "(write): СORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( pingOK && dlog.is_crit() )
dlog.crit() << myname << "(write) catch ..." << endl;
if( pingOK )
dcrit << myname << "(write) catch ..." << endl;
}
pingOK = false;
return ModbusRTU::erTimeOut;
}
......@@ -1214,12 +1166,9 @@ ModbusRTU::mbErrCode MBSlave::real_write_it( IOMap::iterator& it, ModbusRTU::Mod
ModbusRTU::mbErrCode MBSlave::much_real_read( ModbusRTU::ModbusData reg, ModbusRTU::ModbusData* dat,
int count )
{
if( dlog.is_info() )
{
dlog.info() << myname << "(much_real_read): read mbID="
dinfo << myname << "(much_real_read): read mbID="
<< ModbusRTU::dat2str(reg) << " count=" << count << endl;
}
IOMap::iterator it = iomap.end();
int i=0;
for( ; i<count; i++ )
......@@ -1263,11 +1212,8 @@ ModbusRTU::mbErrCode MBSlave::much_real_read( ModbusRTU::ModbusData reg, ModbusR
// -------------------------------------------------------------------------
ModbusRTU::mbErrCode MBSlave::real_read( ModbusRTU::ModbusData reg, ModbusRTU::ModbusData& val )
{
if( dlog.is_info() )
{
dlog.info() << myname << "(real_read): read mbID="
dinfo << myname << "(real_read): read mbID="
<< ModbusRTU::dat2str(reg) << endl;
}
IOMap::iterator it = iomap.find(reg);
return real_read_it(it,val);
......@@ -1280,12 +1226,9 @@ ModbusRTU::mbErrCode MBSlave::real_read_it( IOMap::iterator& it, ModbusRTU::Modb
try
{
if( dlog.is_info() )
{
dlog.info() << myname << "(real_read_it): read mbID="
dinfo << myname << "(real_read_it): read mbID="
<< ModbusRTU::dat2str(it->first) << endl;
}
IOProperty* p(&it->second);
val = 0;
......@@ -1355,33 +1298,31 @@ ModbusRTU::mbErrCode MBSlave::real_read_it( IOMap::iterator& it, ModbusRTU::Modb
}
catch( UniSetTypes::NameNotFound& ex )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(real_read_it): " << ex << endl;
dwarn << myname << "(real_read_it): " << ex << endl;
return ModbusRTU::erBadDataAddress;
}
catch( UniSetTypes::OutOfRange& ex )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(real_read_it): " << ex << endl;
dwarn << myname << "(real_read_it): " << ex << endl;
return ModbusRTU::erBadDataValue;
}
catch( Exception& ex )
{
if( pingOK && dlog.is_crit() )
dlog.crit() << myname << "(real_read_it): " << ex << endl;
if( pingOK )
dcrit << myname << "(real_read_it): " << ex << endl;
}
catch( CORBA::SystemException& ex )
{
if( pingOK && dlog.is_crit() )
dlog.crit() << myname << "(real_read_it): CORBA::SystemException: "
if( pingOK )
dcrit << myname << "(real_read_it): CORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( pingOK && dlog.is_crit() )
dlog.crit() << myname << "(real_read_it) catch ..." << endl;
if( pingOK )
dcrit << myname << "(real_read_it) catch ..." << endl;
}
pingOK = false;
return ModbusRTU::erTimeOut;
}
......@@ -1389,8 +1330,7 @@ ModbusRTU::mbErrCode MBSlave::real_read_it( IOMap::iterator& it, ModbusRTU::Modb
mbErrCode MBSlave::readInputRegisters( ReadInputMessage& query, ReadInputRetMessage& reply )
{
if( dlog.is_info() )
dlog.info() << myname << "(readInputRegisters): " << query << endl;
dinfo << myname << "(readInputRegisters): " << query << endl;
if( query.count <= 1 )
{
......@@ -1431,8 +1371,7 @@ ModbusRTU::mbErrCode MBSlave::remoteService( ModbusRTU::RemoteServiceMessage& qu
ModbusRTU::mbErrCode MBSlave::fileTransfer( ModbusRTU::FileTransferMessage& query,
ModbusRTU::FileTransferRetMessage& reply )
{
if( dlog.is_info() )
dlog.info() << myname << "(fileTransfer): " << query << endl;
dinfo << myname << "(fileTransfer): " << query << endl;
FileList::iterator it = flist.find(query.numfile);
if( it == flist.end() )
......@@ -1452,8 +1391,7 @@ ModbusRTU::mbErrCode MBSlave::readCoilStatus( ReadCoilMessage& query,
ModbusRTU::mbErrCode MBSlave::readInputStatus( ReadInputStatusMessage& query,
ReadInputStatusRetMessage& reply )
{
if( dlog.is_info() )
dlog.info() << myname << "(readInputStatus): " << query << endl;
dinfo << myname << "(readInputStatus): " << query << endl;
try
{
......@@ -1488,27 +1426,26 @@ ModbusRTU::mbErrCode MBSlave::readInputStatus( ReadInputStatusMessage& query,
}
catch( UniSetTypes::NameNotFound& ex )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(readInputStatus): " << ex << endl;
dwarn << myname << "(readInputStatus): " << ex << endl;
return ModbusRTU::erBadDataAddress;
}
catch( Exception& ex )
{
if( pingOK && dlog.is_crit() )
dlog.crit() << myname << "(readInputStatus): " << ex << endl;
if( pingOK )
dcrit << myname << "(readInputStatus): " << ex << endl;
}
catch( CORBA::SystemException& ex )
{
if( pingOK && dlog.is_crit() )
dlog.crit() << myname << "(readInputStatus): СORBA::SystemException: "
if( pingOK )
dcrit << myname << "(readInputStatus): СORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( pingOK && dlog.is_crit() )
dlog.crit() << myname << "(readInputStatus): catch ..." << endl;
if( pingOK )
dcrit << myname << "(readInputStatus): catch ..." << endl;
}
pingOK = false;
return ModbusRTU::erTimeOut;
}
......@@ -1516,8 +1453,7 @@ ModbusRTU::mbErrCode MBSlave::readInputStatus( ReadInputStatusMessage& query,
ModbusRTU::mbErrCode MBSlave::forceMultipleCoils( ModbusRTU::ForceCoilsMessage& query,
ModbusRTU::ForceCoilsRetMessage& reply )
{
if( dlog.is_info() )
dlog.info() << myname << "(forceMultipleCoils): " << query << endl;
dinfo << myname << "(forceMultipleCoils): " << query << endl;
ModbusRTU::mbErrCode ret = ModbusRTU::erNoError;
int nbit = 0;
......@@ -1542,8 +1478,7 @@ ModbusRTU::mbErrCode MBSlave::forceMultipleCoils( ModbusRTU::ForceCoilsMessage&
ModbusRTU::mbErrCode MBSlave::forceSingleCoil( ModbusRTU::ForceSingleCoilMessage& query,
ModbusRTU::ForceSingleCoilRetMessage& reply )
{
if( dlog.is_info() )
dlog.info() << myname << "(forceSingleCoil): " << query << endl;
dinfo << myname << "(forceSingleCoil): " << query << endl;
ModbusRTU::mbErrCode ret = real_write(query.start, (query.cmd() ? 1 : 0) );
if( ret == ModbusRTU::erNoError )
......@@ -1598,8 +1533,7 @@ ModbusRTU::mbErrCode MBSlave::diagnostics( ModbusRTU::DiagnosticMessage& query,
ModbusRTU::mbErrCode MBSlave::read4314( ModbusRTU::MEIMessageRDI& query,
ModbusRTU::MEIMessageRetRDI& reply )
{
if( dlog.is_info() )
dlog.info() << "(read4314): " << query << endl;
dinfo << "(read4314): " << query << endl;
// if( query.devID <= rdevMinNum || query.devID >= rdevMaxNum )
// return erOperationFailed;
......
......@@ -60,7 +60,7 @@ int main(int argc, const char **argv)
MBSlave* s = MBSlave::init_mbslave(argc,argv,shmID);
if( !s )
{
dlog.crit() << "(mbslave): init не прошёл..." << endl;
dcrit << "(mbslave): init не прошёл..." << endl;
return 1;
}
......@@ -80,19 +80,19 @@ int main(int argc, const char **argv)
}
catch( SystemError& err )
{
dlog.crit() << "(mbslave): " << err << endl;
dcrit << "(mbslave): " << err << endl;
}
catch( Exception& ex )
{
dlog.crit() << "(mbslave): " << ex << endl;
dcrit << "(mbslave): " << ex << endl;
}
catch( std::exception& e )
{
dlog.crit() << "(mbslave): " << e.what() << endl;
dcrit << "(mbslave): " << e.what() << endl;
}
catch(...)
{
dlog.crit() << "(mbslave): catch(...)" << endl;
dcrit << "(mbslave): catch(...)" << endl;
}
while( waitpid(-1, 0, 0) > 0 );
......
......@@ -17,7 +17,7 @@ UObject_SK(objId,cnode),
shm( new SMInterface(shmId,&ui,objId,ic) ),
prefix(prefix)
{
dlog = log;
mylog = log;
UniXML::iterator it(cnode);
UniXML::iterator it1(cnode);
......@@ -25,8 +25,7 @@ prefix(prefix)
{
ostringstream err;
err << myname << "(init): empty rrd list...";
if( RRDServer::dlog.is_crit() )
RRDServer::dlog.crit() << err.str() << endl;
mylog << err.str() << endl;
throw NameNotFound(err.str());
}
......@@ -58,8 +57,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
int lastup = it.getPIntProp("lastup",0);
bool overwrite = it.getPIntProp("overwrite",0);
if( RRDServer::dlog.is_info() )
RRDServer::dlog.info() << myname << "(init): add rrd: file='" << fname
myinfo << myname << "(init): add rrd: file='" << fname
<< " " << ff << "='" << fv
<< "' create='" << cf << "'"
<< " step=" << rrdstep
......@@ -72,7 +70,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
ostringstream err;
err << myname << "(init): rrd='" << fname << "' Unknown RRA list";
RRDServer::dlog.crit() << err.str();
mycrit << err.str();
throw SystemError(err.str());
}
......@@ -83,8 +81,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
ostringstream err;
err << myname << "(init): rrd='" << fname << "' Unkown RRA item.. <item rra='...'";
if( RRDServer::dlog.is_crit() )
RRDServer::dlog.crit() << err.str();
mycrit << err.str();
throw SystemError(err.str());
}
......@@ -95,8 +92,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
ostringstream err;
err << myname << "(init): Not found RRA items...";
if( RRDServer::dlog.is_crit() )
RRDServer::dlog.crit() << err.str() << endl;
mycrit << err.str() << endl;
throw SystemError(err.str());
}
......@@ -108,8 +104,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
ostringstream err;
err << myname << "(init): Not found section <sensors>";
if( RRDServer::dlog.is_crit() )
RRDServer::dlog.crit() << err.str();
mycrit << err.str();
throw SystemError(err.str());
}
......@@ -118,8 +113,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
ostringstream err;
err << myname << "(init): section <sensors> empty?!";
if( RRDServer::dlog.is_crit() )
RRDServer::dlog.crit() << err.str();
mycrit << err.str();
throw SystemError(err.str());
}
......@@ -138,8 +132,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
ostringstream err;
err << myname << "(init): Unknown create parameters ('" << cf << "')";
if( RRDServer::dlog.is_crit() )
RRDServer::dlog.crit() << err.str();
mycrit << err.str();
throw SystemError(err.str());
}
......@@ -153,8 +146,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
ostringstream err;
err << myname << "(init): Unknown SensorID for '" << dsname << "'";
if( RRDServer::dlog.is_crit() )
RRDServer::dlog.crit() << err.str();
mycrit << err.str();
throw SystemError(err.str());
}
......@@ -166,8 +158,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
ostringstream err;
err << myname << "(init): Not found RRD items...";
if( RRDServer::dlog.is_crit() )
RRDServer::dlog.crit() << err.str() << endl;
mycrit << err.str() << endl;
throw SystemError(err.str());
}
......@@ -187,8 +178,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
// Собственно создаём RRD
if( !overwrite && file_exist(fname) )
{
if( RRDServer::dlog.is_info() )
RRDServer::dlog.info() << myname << "(init): ignore create file='" << fname
myinfo << myname << "(init): ignore create file='" << fname
<< "'. File exist... overwrite=0." << endl;
}
else
......@@ -198,8 +188,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
ostringstream err;
err << myname << "(init): Can`t create RRD ('" << fname << "'): err: " << string(rrd_get_error());
if( RRDServer::dlog.is_crit() )
RRDServer::dlog.crit() << err.str() << endl;
mycrit << err.str() << endl;
throw SystemError(err.str());
}
}
......@@ -215,11 +204,11 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
}
/* catch( Exception& ex )
{
RRDServer::dlog.crit() << myname << "(init) " << ex << std::endl;
mycrit << myname << "(init) " << ex << std::endl;
}
catch( ... )
{
RRDServer::dlog.crit() << myname << "(init): catch ..." << std::endl;
mycrit << myname << "(init): catch ..." << std::endl;
}
*/
}
......@@ -240,14 +229,14 @@ RRDServer* RRDServer::init_rrdstorage( int argc, const char* const* argv,
string name = conf->getArgParam("--" + prefix + "-name","RRDServer");
if( name.empty() )
{
UniSetExtensions::dlog.crit() << "(RRDServer): Unknown name. Usage: --" << prefix << "-name" << endl;
dcrit << "(RRDServer): Unknown name. Usage: --" << prefix << "-name" << endl;
return 0;
}
ObjectId ID = conf->getObjectID(name);
if( ID == UniSetTypes::DefaultObjectId )
{
UniSetExtensions::dlog.crit() << "(RRDServer): Not found ID for '" << name
dcrit << "(RRDServer): Not found ID for '" << name
<< " in '" << conf->getObjectsSection() << "' section" << endl;
return 0;
}
......@@ -256,12 +245,11 @@ RRDServer* RRDServer::init_rrdstorage( int argc, const char* const* argv,
xmlNode* cnode = conf->getNode(confname);
if( !cnode )
{
UniSetExtensions::dlog.crit() << "(RRDServer): " << name << "(init): Not found <" + confname + ">" << endl;
dcrit << "(RRDServer): " << name << "(init): Not found <" + confname + ">" << endl;
return 0;
}
if( UniSetExtensions::dlog.is_info() )
UniSetExtensions::dlog.info() << "(RRDServer): name = " << name << "(" << ID << ")" << endl;
dinfo << "(RRDServer): name = " << name << "(" << ID << ")" << endl;
return new RRDServer(ID,cnode,icID,ic,prefix);
}
// -----------------------------------------------------------------------------
......@@ -279,8 +267,7 @@ void RRDServer::askSensors( UniversalIO::UIOCommand cmd )
}
catch( std::exception& ex )
{
if( RRDServer::dlog.is_crit() )
RRDServer::dlog.crit() << myname << "(askSensors): " << ex.what() << endl;
mycrit << myname << "(askSensors): " << ex.what() << endl;
}
}
}
......@@ -299,8 +286,7 @@ void RRDServer::sysCommand( UniSetTypes::SystemMessage* sm )
}
catch( std::exception& ex )
{
if( RRDServer::dlog.is_crit() )
RRDServer::dlog.crit() << myname << "(askTimer): " << ex.what() << endl;
mycrit << myname << "(askTimer): " << ex.what() << endl;
}
}
}
......@@ -330,8 +316,7 @@ void RRDServer::timerInfo( UniSetTypes::TimerMessage* tm )
for( DSMap::iterator s=it->dsmap.begin(); s!=it->dsmap.end(); ++s )
v << ":" << s->second.value;
if( RRDServer::dlog.is_info() )
RRDServer::dlog.info() << myname << "(update): '" << it->filename << "' " << v.str() << endl;
myinfo << myname << "(update): '" << it->filename << "' " << v.str() << endl;
rrd_clear_error();
const char* argv = v.str().c_str();
......@@ -339,8 +324,7 @@ void RRDServer::timerInfo( UniSetTypes::TimerMessage* tm )
{
ostringstream err;
err << myname << "(update): Can`t update RRD ('" << it->filename << "'): err: " << string(rrd_get_error());
if( RRDServer::dlog.is_crit() )
RRDServer::dlog.crit() << err.str() << endl;
mycrit << err.str() << endl;
}
break;
......
......@@ -61,7 +61,7 @@ class RRDServer:
RRDServer( UniSetTypes::ObjectId objId, xmlNode* cnode, UniSetTypes::ObjectId shmID, SharedMemory* ic=0,
const std::string& prefix="rrd", DebugStream& log=UniSetExtensions::dlog );
virtual ~RRDServer();
/*! глобальная функция для инициализации объекта */
static RRDServer* init_rrdstorage( int argc, const char* const* argv,
UniSetTypes::ObjectId shmID, SharedMemory* ic=0,
......@@ -100,14 +100,14 @@ class RRDServer:
long tid;
long sec;
DSMap dsmap;
RRDInfo( const std::string& fname, long tmID, long sec, const DSMap& ds ):
filename(fname),tid(tmID),sec(sec),dsmap(ds){}
};
typedef std::list<RRDInfo> RRDList;
RRDList rrdlist;
RRDList rrdlist;
private:
......
......@@ -54,7 +54,7 @@ int main( int argc, const char** argv )
RRDServer* db = RRDServer::init_rrdstorage(argc,argv,shmID);
if( !db )
{
dlog.crit() << "(rrdstorage): init не прошёл..." << endl;
dcrit << "(rrdstorage): init не прошёл..." << endl;
return 1;
}
......@@ -73,11 +73,11 @@ int main( int argc, const char** argv )
}
catch( UniSetTypes::Exception& ex )
{
dlog.crit() << "(rrdstorage): " << ex << std::endl;
dcrit << "(rrdstorage): " << ex << std::endl;
}
catch(...)
{
dlog.crit() << "(rrdstorage): catch ..." << std::endl;
dcrit << "(rrdstorage): catch ..." << std::endl;
}
return 1;
......
......@@ -42,7 +42,7 @@ prefix(prefix)
{
ostringstream err;
err << myname << ": ID not found ('HeartBeat') for " << heart;
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
......@@ -62,14 +62,12 @@ prefix(prefix)
{
ostringstream err;
err << myname << "(init): test_id unknown. 'TestMode_S' not found...";
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
}
dlog.info() << myname << "(init): test_id=" << test_id << endl;
dinfo << myname << "(init): test_id=" << test_id << endl;
}
// -----------------------------------------------------------------------------
SMDBServer::~SMDBServer()
......@@ -90,7 +88,7 @@ void SMDBServer::waitSMReady()
{
ostringstream err;
err << myname << "(waitSMReady): Wait SharedMemory failed. [ " << ready_timeout << " msec ]";
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw SystemError(err.str());
}
}
......@@ -108,7 +106,7 @@ void SMDBServer::step()
}
catch(Exception& ex)
{
dlog.crit() << myname << "(step): (hb) " << ex << std::endl;
dcrit << myname << "(step): (hb) " << ex << std::endl;
}
}
}
......@@ -132,16 +130,15 @@ void SMDBServer::initDB( DBInterface *db )
xmlNode* snode = conf->getXMLSensorsSection();
if(!snode)
{
dlog.crit() << myname << ": section <sensors> not found.." << endl;
dcrit << myname << ": section <sensors> not found.." << endl;
return;
}
UniXML_iterator it(snode);
if( !it.goChildren() )
{
dlog.crit() << myname << ": section <sensors> empty?!.." << endl;
dcrit << myname << ": section <sensors> empty?!.." << endl;
return;
}
for(;it.getCurrent(); it.goNext() )
......@@ -156,18 +153,18 @@ void SMDBServer::initDB( DBInterface *db )
if( !writeToBase("INSERT IGNORE INTO ObjectsMap(name,rep_name,id,msg)"+data.str()) )
{
dlog.crit() << myname << "(insert) ObjectsMap msg error: "<< db->error() << std::endl;
dcrit << myname << "(insert) ObjectsMap msg error: "<< db->error() << std::endl;
db->freeResult();
}
}
}
catch( Exception& ex )
{
dlog.crit() << myname << "(filling ObjectsMap): " << ex << std::endl;
dcrit << myname << "(filling ObjectsMap): " << ex << std::endl;
}
catch( ... )
{
dlog.crit() << myname << "(filling ObjectsMap): catch ..." << std::endl;
dcrit << myname << "(filling ObjectsMap): catch ..." << std::endl;
}
}
//--------------------------------------------------------------------------------
......@@ -198,7 +195,7 @@ SMDBServer* SMDBServer::init_smdbserver( int argc, const char* const* argv,
return 0;
}
dlog.info() << "(SMDBServer): name = " << name << "(" << ID << ")" << endl;
dinfo << "(SMDBServer): name = " << name << "(" << ID << ")" << endl;
return new SMDBServer(ID,icID,ic,prefix);
}
// -----------------------------------------------------------------------------
......@@ -54,7 +54,7 @@ int main( int argc, const char** argv )
SMDBServer* db = SMDBServer::init_smdbserver(argc,argv,shmID);
if( !db )
{
dlog.crit() << "(smdbserver): init не прошёл..." << endl;
dcrit << "(smdbserver): init не прошёл..." << endl;
return 1;
}
......@@ -73,11 +73,11 @@ int main( int argc, const char** argv )
}
catch( Exception& ex )
{
dlog.crit() << "(smdbserver): " << ex << std::endl;
dcrit << "(smdbserver): " << ex << std::endl;
}
catch(...)
{
dlog.crit() << "(smdbserver): catch ..." << std::endl;
dcrit << "(smdbserver): catch ..." << std::endl;
}
return 1;
......
......@@ -62,19 +62,21 @@ SharedMemory::SharedMemory( ObjectId id, string datafile, std::string confname )
// ----------------------
restorer = NULL;
NCRestorer_XML* rxml = new NCRestorer_XML(datafile);
string s_field = conf->getArgParam("--s-filter-field");
string s_fvalue = conf->getArgParam("--s-filter-value");
string c_field = conf->getArgParam("--c-filter-field");
string c_fvalue = conf->getArgParam("--c-filter-value");
string t_field = conf->getArgParam("--t-filter-field");
string t_fvalue = conf->getArgParam("--t-filter-value");
heartbeat_node = conf->getArgParam("--heartbeat-node");
if( heartbeat_node.empty() && dlog.is_warn() )
dlog.warn() << myname << "(init): --heartbeat-node NULL ===> heartbeat NOT USED..." << endl;
else if( dlog.is_info() )
dlog.info() << myname << "(init): heartbeat-node: " << heartbeat_node << endl;
if( heartbeat_node.empty() )
{
dwarn << myname << "(init): --heartbeat-node NULL ===> heartbeat NOT USED..." << endl;
}
else
dinfo << myname << "(init): heartbeat-node: " << heartbeat_node << endl;
heartbeatCheckTime = conf->getArgInt("--heartbeat-check-time","1000");
......@@ -88,9 +90,8 @@ SharedMemory::SharedMemory( ObjectId id, string datafile, std::string confname )
string wdt_dev = conf->getArgParam("--wdt-device");
if( !wdt_dev.empty() )
wdt = new WDTInterface(wdt_dev);
else if( dlog.is_warn() )
dlog.warn() << myname << "(init): watchdog timer NOT USED (--wdt-device NULL)" << endl;
else
dwarn << myname << "(init): watchdog timer NOT USED (--wdt-device NULL)" << endl;
dblogging = conf->getArgInt("--db-logging");
......@@ -111,8 +112,7 @@ SharedMemory::SharedMemory( ObjectId id, string datafile, std::string confname )
{
ostringstream err;
err << myname << ": ID not found ('pulsar') for " << p;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
siPulsar.node = conf->getLocalNode();
......@@ -163,24 +163,20 @@ void SharedMemory::processingMessage( UniSetTypes::VoidMessage *msg )
default:
//dlog.warn() << myname << ": неизвестное сообщение " << msg->type << endl;
break;
}
}
catch( Exception& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(processingMessage): " << ex << endl;
dcrit << myname << "(processingMessage): " << ex << endl;
}
catch(CORBA::SystemException& ex)
{
if( dlog.is_warn() )
dlog.warn() << myname << "(processingMessage): CORBA::SystemException: " << ex.NP_minorString() << endl;
dcrit << myname << "(processingMessage): CORBA::SystemException: " << ex.NP_minorString() << endl;
}
catch(CORBA::Exception& ex)
{
if( dlog.is_warn() )
dlog.warn() << myname << "(processingMessage): CORBA::Exception: " << ex._name() << endl;
dwarn << myname << "(processingMessage): CORBA::Exception: " << ex._name() << endl;
}
catch( omniORB::fatalException& fe )
{
......@@ -194,8 +190,7 @@ void SharedMemory::processingMessage( UniSetTypes::VoidMessage *msg )
}
catch(...)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(processingMessage): catch..." << endl;
dcrit << myname << "(processingMessage): catch..." << endl;
}
}
......@@ -246,10 +241,10 @@ void SharedMemory::sysCommand( SystemMessage *sm )
cout << myname << "(sysCommand): wait activate..." << endl;
msleep(100);
}
if( !isActivated() && dlog.is_crit() )
dlog.crit() << myname << "(sysCommand): ************* don`t activate?! ************" << endl;
if( !isActivated() )
dcrit << myname << "(sysCommand): ************* don`t activate?! ************" << endl;
// подождать пока пройдёт инициализация
// см. activateObject()
UniSetTypes::uniset_rwmutex_rlock l(mutex_start);
......@@ -402,13 +397,11 @@ void SharedMemory::checkHeartBeat()
}
catch(Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(checkHeartBeat): " << ex << endl;
dcrit << myname << "(checkHeartBeat): " << ex << endl;
}
catch(...)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(checkHeartBeat): ..." << endl;
dcrit << myname << "(checkHeartBeat): ..." << endl;
}
}
......@@ -448,8 +441,7 @@ bool SharedMemory::readItem( UniXML& xml, UniXML_iterator& it, xmlNode* sec )
<< ") указан неверно ("
<< it.getProp("iotype") << ") должен быть 'AI'";
if( dlog.is_crit() )
dlog.crit() << msg.str() << endl;
dcrit << msg.str() << endl;
kill(getpid(),SIGTERM);
// throw NameNotFound(msg.str());
};
......@@ -463,8 +455,7 @@ bool SharedMemory::readItem( UniXML& xml, UniXML_iterator& it, xmlNode* sec )
{
ostringstream msg;
msg << "(SharedMemory::readItem): дискретный датчик (heartbeat_ds_name) связанный с " << it.getProp("name");
if( dlog.is_warn() )
dlog.warn() << msg.str() << endl;
dwarn << msg.str() << endl;
}
}
else
......@@ -474,11 +465,10 @@ bool SharedMemory::readItem( UniXML& xml, UniXML_iterator& it, xmlNode* sec )
{
ostringstream msg;
msg << "(SharedMemory::readItem): Не найден ID для дискретного датчика (heartbeat_ds_name) связанного с " << it.getProp("name");
// Если уж задали имя для датчика, то он должен существовать..
// поэтому завершаем процесс, если не нашли..
if( dlog.is_crit() )
dlog.crit() << msg.str() << endl;
dcrit << msg.str() << endl;
kill(getpid(),SIGTERM);
// throw NameNotFound(msg.str());
}
......@@ -493,8 +483,7 @@ bool SharedMemory::readItem( UniXML& xml, UniXML_iterator& it, xmlNode* sec )
msg << "(SharedMemory::readItem): НЕ УКАЗАН id для "
<< it.getProp("name") << " секция " << sec;
if( dlog.is_crit() )
dlog.crit() << msg.str() << endl;
dcrit << msg.str() << endl;
kill(getpid(),SIGTERM);
// throw NameNotFound(msg.str());
};
......@@ -511,10 +500,8 @@ SharedMemory* SharedMemory::init_smemory( int argc, const char* const* argv )
if( dfile[0]!='.' && dfile[0]!='/' )
dfile = conf->getConfDir() + dfile;
if( dlog.is_info() )
dlog.info() << "(smemory): datfile = " << dfile << endl;
dinfo << "(smemory): datfile = " << dfile << endl;
UniSetTypes::ObjectId ID = conf->getControllerID(conf->getArgParam("--smemory-id","SharedMemory"));
if( ID == UniSetTypes::DefaultObjectId )
{
......@@ -541,16 +528,14 @@ void SharedMemory::readEventList( std::string oname )
xmlNode* enode = conf->getNode(oname);
if( enode == NULL )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(readEventList): " << oname << " не найден..." << endl;
dwarn << myname << "(readEventList): " << oname << " не найден..." << endl;
return;
}
UniXML_iterator it(enode);
if( !it.goChildren() )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(readEventList): <eventlist> пустой..." << endl;
dwarn << myname << "(readEventList): <eventlist> пустой..." << endl;
return;
}
......@@ -562,12 +547,11 @@ void SharedMemory::readEventList( std::string oname )
ObjectId oid = it.getIntProp("id");
if( oid != 0 )
{
if( dlog.is_info() )
dlog.info() << myname << "(readEventList): add " << it.getProp("name") << endl;
dinfo << myname << "(readEventList): add " << it.getProp("name") << endl;
elst.push_back(oid);
}
else if( dlog.is_crit() )
dlog.crit() << myname << "(readEventList): Не найден ID для "
else
dcrit << myname << "(readEventList): Не найден ID для "
<< it.getProp("name") << endl;
}
}
......@@ -589,9 +573,9 @@ void SharedMemory::sendEvent( UniSetTypes::SystemMessage& sm )
}
catch(...){};
}
if(!ok && dlog.is_crit() )
dlog.crit() << myname << "(sendEvent): Объект " << (*it) << " НЕДОСТУПЕН" << endl;
if(!ok)
dcrit << myname << "(sendEvent): Объект " << (*it) << " НЕДОСТУПЕН" << endl;
}
}
// -----------------------------------------------------------------------------
......@@ -608,22 +592,19 @@ void SharedMemory::loggingInfo( SensorMessage& sm )
// -----------------------------------------------------------------------------
void SharedMemory::buildHistoryList( xmlNode* cnode )
{
if( dlog.is_info() )
dlog.info() << myname << "(buildHistoryList): ..." << endl;
dinfo << myname << "(buildHistoryList): ..." << endl;
UniXML* xml = conf->getConfXML();
if( !xml )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(buildHistoryList): xml=NULL?!" << endl;
dwarn << myname << "(buildHistoryList): xml=NULL?!" << endl;
return;
}
xmlNode* n = xml->extFindNode(cnode,1,1,"History","");
if( !n )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(buildHistoryList): <History> not found. ignore..." << endl;
dwarn << myname << "(buildHistoryList): <History> not found. ignore..." << endl;
hist.clear();
return;
}
......@@ -633,8 +614,7 @@ void SharedMemory::buildHistoryList( xmlNode* cnode )
bool no_history = conf->getArgInt("--sm-no-history",it.getProp("no_history"));
if( no_history )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(buildHistoryList): no_history='1'.. history skipped..." << endl;
dwarn << myname << "(buildHistoryList): no_history='1'.. history skipped..." << endl;
hist.clear();
return;
}
......@@ -645,8 +625,7 @@ void SharedMemory::buildHistoryList( xmlNode* cnode )
if( !it.goChildren() )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(buildHistoryList): <History> empty. ignore..." << endl;
dwarn << myname << "(buildHistoryList): <History> empty. ignore..." << endl;
return;
}
......@@ -665,8 +644,7 @@ void SharedMemory::buildHistoryList( xmlNode* cnode )
hi.fuse_id = conf->getSensorID(it.getProp("fuse_id"));
if( hi.fuse_id == DefaultObjectId )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(buildHistory): not found sensor ID for "
dwarn << myname << "(buildHistory): not found sensor ID for "
<< it.getProp("fuse_id")
<< " history item id=" << it.getProp("id")
<< " ..ignore.." << endl;
......@@ -674,7 +652,7 @@ void SharedMemory::buildHistoryList( xmlNode* cnode )
}
hi.fuse_invert = it.getIntProp("fuse_invert");
hi.fuse_use_val = false;
if( !it.getProp("fuse_value").empty() )
{
......@@ -682,8 +660,7 @@ void SharedMemory::buildHistoryList( xmlNode* cnode )
hi.fuse_val = it.getIntProp("fuse_value");
}
if( dlog.is_info() )
dlog.info() << myname << "(buildHistory): add fuse_id=" << hi.fuse_id
dinfo << myname << "(buildHistory): add fuse_id=" << hi.fuse_id
<< " fuse_val=" << hi.fuse_val
<< " fuse_use_val=" << hi.fuse_use_val
<< " fuse_invert=" << hi.fuse_invert
......@@ -694,8 +671,7 @@ void SharedMemory::buildHistoryList( xmlNode* cnode )
hist.push_back(hi);
}
if( dlog.is_info() )
dlog.info() << myname << "(buildHistoryList): history logs count=" << hist.size() << endl;
dinfo << myname << "(buildHistoryList): history logs count=" << hist.size() << endl;
}
// -----------------------------------------------------------------------------
void SharedMemory::checkHistoryFilter( UniXML_iterator& xit )
......@@ -717,11 +693,10 @@ void SharedMemory::checkHistoryFilter( UniXML_iterator& xit )
ai.id = conf->getSensorID(xit.getProp("name"));
if( ai.id == DefaultObjectId )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(checkHistoryFilter): not found sensor ID for " << xit.getProp("name") << endl;
dwarn << myname << "(checkHistoryFilter): not found sensor ID for " << xit.getProp("name") << endl;
continue;
}
it->hlst.push_back(ai);
}
}
......@@ -780,13 +755,10 @@ void SharedMemory::updateHistory( IOStateList::iterator& s_it, IOController* )
sm_tv_usec = s_it->second.tv_usec;
}
if( dlog.is_info() )
{
dlog.info() << myname << "(updateHistory): "
dinfo << myname << "(updateHistory): "
<< " sid=" << s_it->second.si.id
<< " value=" << value
<< endl;
}
for( HistoryItList::iterator it1=i->second.begin(); it1!=i->second.end(); ++it1 )
{
......@@ -802,9 +774,8 @@ void SharedMemory::updateHistory( IOStateList::iterator& s_it, IOController* )
if( st )
{
if( dlog.is_info() )
dlog.info() << myname << "(updateHistory): HISTORY EVENT for " << (*it) << endl;
dinfo << myname << "(updateHistory): HISTORY EVENT for " << (*it) << endl;
it->fuse_sec = sm_tv_sec;
it->fuse_usec = sm_tv_usec;
m_historySignal.emit( &(*it) );
......@@ -822,8 +793,7 @@ void SharedMemory::updateHistory( IOStateList::iterator& s_it, IOController* )
if( !st )
{
if( dlog.is_info() )
dlog.info() << myname << "(updateHistory): HISTORY EVENT for " << (*it) << endl;
dinfo << myname << "(updateHistory): HISTORY EVENT for " << (*it) << endl;
it->fuse_sec = sm_tv_sec;
it->fuse_usec = sm_tv_usec;
......@@ -834,8 +804,7 @@ void SharedMemory::updateHistory( IOStateList::iterator& s_it, IOController* )
{
if( value == it->fuse_val )
{
if( dlog.is_info() )
dlog.info() << myname << "(updateHistory): HISTORY EVENT for " << (*it) << endl;
dinfo << myname << "(updateHistory): HISTORY EVENT for " << (*it) << endl;
it->fuse_sec = sm_tv_sec;
it->fuse_usec = sm_tv_usec;
......
......@@ -30,12 +30,12 @@ sender2(0)
// определяем фильтр
s_field = conf->getArgParam("--" + prefix + "-filter-field");
s_fvalue = conf->getArgParam("--" + prefix + "-filter-value");
dlog.info() << myname << "(init): read filter-field='" << s_field
dinfo << myname << "(init): read filter-field='" << s_field
<< "' filter-value='" << s_fvalue << "'" << endl;
const string n_field(conf->getArgParam("--" + prefix + "-nodes-filter-field"));
const string n_fvalue(conf->getArgParam("--" + prefix + "-nodes-filter-value"));
dlog.info() << myname << "(init): read nodes-filter-field='" << n_field
dinfo << myname << "(init): read nodes-filter-field='" << n_field
<< "' nodes-filter-value='" << n_fvalue << "'" << endl;
int recvTimeout = conf->getArgPInt("--" + prefix + "-recv-timeout",it.getProp("recvTimeout"), 5000);
......@@ -66,10 +66,10 @@ sender2(0)
{
if( n_it.getIntProp("unet_ignore") )
{
dlog.info() << myname << "(init): unet_ignore.. for " << n_it.getProp("name") << endl;
dinfo << myname << "(init): unet_ignore.. for " << n_it.getProp("name") << endl;
continue;
}
// проверяем фильтры для подсетей
if( !UniSetTypes::check_filter(n_it,n_field,n_fvalue) )
continue;
......@@ -87,18 +87,17 @@ sender2(0)
h2 = default_ip2;
if( !n_it.getProp("unet_broadcast_ip2").empty() )
h2 = n_it.getProp("unet_broadcast_ip2");
if( h.empty() )
{
ostringstream err;
err << myname << "(init): Unknown broadcast IP for " << n_it.getProp("name");
if( dlog.is_crit() )
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw UniSetTypes::SystemError(err.str());
}
if( h2.empty() && dlog.is_info() )
dlog.info() << myname << "(init): ip2 not used..." << endl;
if( h2.empty() )
dinfo << myname << "(init): ip2 not used..." << endl;
// Если указано поле unet_port - используем его
// Иначе port = идентификатору узла
......@@ -115,14 +114,12 @@ sender2(0)
{
if( no_sender )
{
if( dlog.is_info() )
dlog.info() << myname << "(init): sender OFF for this node...("
dinfo << myname << "(init): sender OFF for this node...("
<< n_it.getProp("name") << ")" << endl;
continue;
}
if( dlog.is_info() )
dlog.info() << myname << "(init): init sender.. my node " << n_it.getProp("name") << endl;
dinfo << myname << "(init): init sender.. my node " << n_it.getProp("name") << endl;
sender = new UNetSender(h,p,shm,s_field,s_fvalue,ic);
sender->setSendPause(sendpause);
......@@ -131,8 +128,7 @@ sender2(0)
// создаём "писателя" для второго канала если задан
if( !h2.empty() )
{
if( dlog.is_info() )
dlog.info() << myname << "(init): init sender2.. my node " << n_it.getProp("name") << endl;
dinfo << myname << "(init): init sender2.. my node " << n_it.getProp("name") << endl;
sender2 = new UNetSender(h2,p2,shm,s_field,s_fvalue,ic);
sender2->setSendPause(sendpause);
}
......@@ -142,19 +138,17 @@ sender2(0)
// т.е. это "резервный канал", то игнорируем ошибку его создания
// при запуске "интерфейс" может быть и не доступен...
sender2 = 0;
dlog.crit() << myname << "(ignore): DON`T CREATE 'UNetSender' for " << h2 << ":" << p2 << endl;
dcrit << myname << "(ignore): DON`T CREATE 'UNetSender' for " << h2 << ":" << p2 << endl;
}
continue;
}
if( dlog.is_info() )
dlog.info() << myname << "(init): add UNetReceiver for " << h << ":" << p << endl;
dinfo << myname << "(init): add UNetReceiver for " << h << ":" << p << endl;
if( checkExistUNetHost(h,p) )
{
if( dlog.is_info() )
dlog.info() << myname << "(init): " << h << ":" << p << " already added! Ignore.." << endl;
dinfo << myname << "(init): " << h << ":" << p << " already added! Ignore.." << endl;
continue;
}
......@@ -169,8 +163,7 @@ sender2(0)
{
ostringstream err;
err << myname << ": Unknown RespondID.. Not found id for '" << s_resp_id << "'" << endl;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
}
......@@ -184,12 +177,11 @@ sender2(0)
{
ostringstream err;
err << myname << ": Unknown RespondID(2).. Not found id for '" << s_resp2_id << "'" << endl;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
}
}
string s_lp_id(n_it.getProp("unet_lostpackets1_id"));
UniSetTypes::ObjectId lp_id = UniSetTypes::DefaultObjectId;
if( !s_lp_id.empty() )
......@@ -199,12 +191,11 @@ sender2(0)
{
ostringstream err;
err << myname << ": Unknown LostPacketsID.. Not found id for '" << s_lp_id << "'" << endl;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
}
string s_lp2_id(n_it.getProp("unet_lostpackets2_id"));
UniSetTypes::ObjectId lp2_id = UniSetTypes::DefaultObjectId;
if( !s_lp2_id.empty() )
......@@ -214,8 +205,7 @@ sender2(0)
{
ostringstream err;
err << myname << ": Unknown LostPacketsID(2).. Not found id for '" << s_lp2_id << "'" << endl;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
}
......@@ -229,8 +219,7 @@ sender2(0)
{
ostringstream err;
err << myname << ": Unknown LostPacketsID(comm).. Not found id for '" << s_lp_comm_id << "'" << endl;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
}
......@@ -244,14 +233,12 @@ sender2(0)
{
ostringstream err;
err << myname << ": Unknown RespondID(comm).. Not found id for '" << s_resp_comm_id << "'" << endl;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
}
if( dlog.is_info() )
dlog.info() << myname << "(init): (node='" << n << "') add receiver "
dinfo << myname << "(init): (node='" << n << "') add receiver "
<< h2 << ":" << p2 << endl;
UNetReceiver* r = new UNetReceiver(h,p,shm);
......@@ -275,10 +262,9 @@ sender2(0)
{
if( !h2.empty() ) // создаём читателя впо второму каналу
{
if( dlog.is_info() )
dlog.info() << myname << "(init): (node='" << n << "') add reserv receiver "
dinfo << myname << "(init): (node='" << n << "') add reserv receiver "
<< h2 << ":" << p2 << endl;
r2 = new UNetReceiver(h2,p2,shm);
// т.к. это резервный канал (по началу блокируем его)
......@@ -300,8 +286,7 @@ sender2(0)
// т.е. это "резервный канал", то игнорируем ошибку его создания
// при запуске "интерфейс" может быть и не доступен...
r2 = 0;
if( dlog.is_crit() )
dlog.crit() << myname << "(ignore): DON`T CREATE 'UNetReceiver' for " << h2 << ":" << p2 << endl;
dcrit << myname << "(ignore): DON`T CREATE 'UNetReceiver' for " << h2 << ":" << p2 << endl;
}
ReceiverInfo ri(r,r2);
......@@ -309,7 +294,7 @@ sender2(0)
ri.setLostPacketsID(lp_comm_id);
recvlist.push_back(ri);
}
// -------------------------------
// ********** HEARTBEAT *************
string heart = conf->getArgParam("--" + prefix + "-heartbeat-id",it.getProp("heartbeat_id"));
......@@ -320,8 +305,7 @@ sender2(0)
{
ostringstream err;
err << myname << ": не найден идентификатор для датчика 'HeartBeat' " << heart;
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
......@@ -341,14 +325,12 @@ sender2(0)
{
ostringstream err;
err << myname << "(init): test_id unknown. 'TestMode_S' not found...";
if( dlog.is_crit() )
dlog.crit() << myname << "(init): " << err.str() << endl;
dcrit << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
}
if( dlog.is_info() )
dlog.info() << myname << "(init): test_id=" << test_id << endl;
dinfo << myname << "(init): test_id=" << test_id << endl;
activateTimeout = conf->getArgPInt("--" + prefix + "-activate-timeout", 20000);
}
......@@ -404,8 +386,7 @@ void UNetExchange::waitSMReady()
{
ostringstream err;
err << myname << "(waitSMReady): Не дождались готовности SharedMemory к работе в течение " << ready_timeout << " мсек";
if( dlog.is_crit() )
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw SystemError(err.str());
}
}
......@@ -433,8 +414,7 @@ void UNetExchange::step()
}
catch(Exception& ex)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(step): (hb) " << ex << std::endl;
dcrit << myname << "(step): (hb) " << ex << std::endl;
}
}
......@@ -452,14 +432,13 @@ void UNetExchange::ReceiverInfo::step( SMInterface* shm, const std::string& myna
bool resp = ( (r1 && r1->isRecvOK()) || (r2 && r2->isRecvOK()) );
if( respondInvert )
resp = !resp;
shm->localSetValue(itRespond,sidRespond,resp,shm->ID());
}
}
catch( Exception& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(ReceiverInfo::step): (respond): " << ex << std::endl;
dcrit << myname << "(ReceiverInfo::step): (respond): " << ex << std::endl;
}
try
......@@ -477,9 +456,8 @@ void UNetExchange::ReceiverInfo::step( SMInterface* shm, const std::string& myna
}
catch( Exception& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(ReceiverInfo::step): (lostpackets): " << ex << std::endl;
}
dcrit << myname << "(ReceiverInfo::step): (lostpackets): " << ex << std::endl;
}
}
// -----------------------------------------------------------------------------
void UNetExchange::processingMessage( UniSetTypes::VoidMessage *msg )
......@@ -515,20 +493,16 @@ void UNetExchange::processingMessage( UniSetTypes::VoidMessage *msg )
}
catch( SystemError& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(SystemError): " << ex << std::endl;
// throw SystemError(ex);
dcrit << myname << "(SystemError): " << ex << std::endl;
raise(SIGTERM);
}
catch( Exception& ex )
{
if( dlog.is_crit() )
dlog.crit() << myname << "(processingMessage): " << ex << std::endl;
dcrit << myname << "(processingMessage): " << ex << std::endl;
}
catch(...)
{
if( dlog.is_crit() )
dlog.crit() << myname << "(processingMessage): catch ..." << std::endl;
dcrit << myname << "(processingMessage): catch ..." << std::endl;
}
}
// -----------------------------------------------------------------------------
......@@ -551,16 +525,16 @@ void UNetExchange::sysCommand( UniSetTypes::SystemMessage *sm )
if( activated )
break;
}
if( !activated && dlog.is_crit() )
dlog.crit() << myname << "(sysCommand): ************* don`t activate?! ************" << endl;
if( !activated )
dcrit << myname << "(sysCommand): ************* don`t activate?! ************" << endl;
{
UniSetTypes::uniset_rwmutex_rlock l(mutex_start);
if( shm->isLocalwork() )
askSensors(UniversalIO::UIONotify);
}
askTimer(tmStep,steptime);
startReceivers();
if( sender )
......@@ -622,9 +596,8 @@ void UNetExchange::askSensors( UniversalIO::UIOCommand cmd )
err << myname
<< "(askSensors): Не дождались готовности(work) SharedMemory к работе в течение "
<< activateTimeout << " мсек";
if( dlog.is_crit() )
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
kill(SIGTERM,getpid()); // прерываем (перезапускаем) процесс...
throw SystemError(err.str());
}
......@@ -661,8 +634,7 @@ bool UNetExchange::activateObject()
// ------------------------------------------------------------------------------------------
void UNetExchange::sigterm( int signo )
{
if( dlog.is_info() )
dlog.info() << myname << ": ********* SIGTERM(" << signo <<") ********" << endl;
dinfo << myname << ": ********* SIGTERM(" << signo <<") ********" << endl;
activated = false;
for( ReceiverList::iterator it=recvlist.begin(); it!=recvlist.end(); ++it )
{
......@@ -746,8 +718,7 @@ UNetExchange* UNetExchange::init_unetexchange( int argc, const char* argv[], Uni
return 0;
}
if( dlog.is_info() )
dlog.info() << "(unetexchange): name = " << name << "(" << ID << ")" << endl;
dinfo << "(unetexchange): name = " << name << "(" << ID << ")" << endl;
return new UNetExchange(ID,icID,ic,prefix);
}
// -----------------------------------------------------------------------------
......@@ -771,21 +742,19 @@ void UNetExchange::receiverEvent( UNetReceiver* r, UNetReceiver::Event ev )
it->r1->setLockUpdate(true);
it->r2->setLockUpdate(false);
if( dlog.is_info() )
dlog.info() << myname << "(event): " << r->getName()
dinfo << myname << "(event): " << r->getName()
<< ": timeout for channel1.. select channel 2" << endl;
return;
}
if( it->r2 == r )
{
// пропала связь по второму каналу...
// переключаемся на первый
it->r1->setLockUpdate(false);
it->r2->setLockUpdate(true);
if( dlog.is_info() )
dlog.info() << myname << "(event): " << r->getName()
dinfo << myname << "(event): " << r->getName()
<< ": timeout for channel2.. select channel 1" << endl;
return;
}
......
......@@ -64,17 +64,17 @@ a_cache_init_ok(false)
{
ostringstream s;
s << myname << ": " << e.what();
dlog.crit() << s.str() << std::endl;
dcrit << s.str() << std::endl;
throw SystemError(s.str());
}
catch( ... )
{
ostringstream s;
s << myname << ": catch...";
dlog.crit() << s.str() << std::endl;
dcrit << s.str() << std::endl;
throw SystemError(s.str());
}
r_thr = new ThreadCreator<UNetReceiver>(this, &UNetReceiver::receive);
u_thr = new ThreadCreator<UNetReceiver>(this, &UNetReceiver::update);
......@@ -177,13 +177,13 @@ void UNetReceiver::update()
}
catch( UniSetTypes::Exception& ex)
{
dlog.crit() << myname << "(update): " << ex << std::endl;
dcrit << myname << "(update): " << ex << std::endl;
}
catch(...)
{
dlog.crit() << myname << "(update): catch ..." << std::endl;
dcrit << myname << "(update): catch ..." << std::endl;
}
if( sidRespond!=DefaultObjectId )
{
try
......@@ -193,10 +193,10 @@ void UNetReceiver::update()
}
catch(Exception& ex)
{
dlog.crit() << myname << "(step): (respond) " << ex << std::endl;
dcrit << myname << "(step): (respond) " << ex << std::endl;
}
}
if( sidLostPackets!=DefaultObjectId )
{
try
......@@ -205,7 +205,7 @@ void UNetReceiver::update()
}
catch(Exception& ex)
{
dlog.crit() << myname << "(step): (lostPackets) " << ex << std::endl;
dcrit << myname << "(step): (lostPackets) " << ex << std::endl;
}
}
......@@ -279,14 +279,14 @@ void UNetReceiver::real_update()
{
try
{
long id = p.dID(i);
bool val = p.dValue(i);
ItemInfo& ii(d_icache[i]);
if( ii.id != id )
{
dlog.warn() << myname << "(update): reinit cache for sid=" << id << endl;
dwarn << myname << "(update): reinit cache for sid=" << id << endl;
ii.id = id;
shm->initIterator(ii.ioit);
}
......@@ -297,19 +297,19 @@ void UNetReceiver::real_update()
if( lockUpdate )
continue;
}
shm->localSetValue(ii.ioit,id,val,shm->ID());
}
catch( UniSetTypes::Exception& ex)
{
dlog.crit() << myname << "(update): " << ex << std::endl;
dcrit << myname << "(update): " << ex << std::endl;
}
catch(...)
{
dlog.crit() << myname << "(update): catch ..." << std::endl;
dcrit << myname << "(update): catch ..." << std::endl;
}
}
// Обработка аналоговых
for( size_t i=0; i<p.acount; i++ )
{
......@@ -319,7 +319,7 @@ void UNetReceiver::real_update()
ItemInfo& ii(a_icache[i]);
if( ii.id != d.id )
{
dlog.warn() << myname << "(update): reinit cache for sid=" << d.id << endl;
dwarn << myname << "(update): reinit cache for sid=" << d.id << endl;
ii.id = d.id;
shm->initIterator(ii.ioit);
}
......@@ -330,16 +330,16 @@ void UNetReceiver::real_update()
if( lockUpdate )
continue;
}
shm->localSetValue(ii.ioit,d.id,d.val,shm->ID());
}
catch( UniSetTypes::Exception& ex)
{
dlog.crit() << myname << "(update): " << ex << std::endl;
dcrit << myname << "(update): " << ex << std::endl;
}
catch(...)
{
dlog.crit() << myname << "(update): catch ..." << std::endl;
dcrit << myname << "(update): catch ..." << std::endl;
}
}
}
......@@ -356,8 +356,7 @@ void UNetReceiver::stop()
// -----------------------------------------------------------------------------
void UNetReceiver::receive()
{
if( dlog.is_info() )
dlog.info() << myname << ": ******************* receive start" << endl;
dinfo << myname << ": ******************* receive start" << endl;
{
uniset_rwmutex_wrlock l(tmMutex);
......@@ -377,19 +376,16 @@ void UNetReceiver::receive()
}
catch( UniSetTypes::Exception& ex)
{
if( dlog.is_warn() )
dlog.warn() << myname << "(receive): " << ex << std::endl;
dwarn << myname << "(receive): " << ex << std::endl;
}
catch( std::exception& e )
{
if( dlog.is_warn() )
dlog.warn() << myname << "(receive): " << e.what()<< std::endl;
dwarn << myname << "(receive): " << e.what()<< std::endl;
}
catch(...)
{
if( dlog.is_warn() )
dlog.warn() << myname << "(receive): catch ..." << std::endl;
}
dwarn << myname << "(receive): catch ..." << std::endl;
}
// делаем через промежуточную переменную
// чтобы поскорее освободить mutex
......@@ -410,8 +406,7 @@ void UNetReceiver::receive()
msleep(recvpause);
}
if( dlog.is_info() )
dlog.info() << myname << ": ************* receive FINISH **********" << endl;
dinfo << myname << ": ************* receive FINISH **********" << endl;
}
// -----------------------------------------------------------------------------
bool UNetReceiver::recv()
......@@ -424,7 +419,7 @@ bool UNetReceiver::recv()
size_t sz = UniSetUDP::UDPMessage::getMessage(pack,r_buf);
if( sz == 0 )
{
dlog.crit() << myname << "(receive): FAILED RECEIVE DATA ret=" << ret << endl;
dcrit << myname << "(receive): FAILED RECEIVE DATA ret=" << ret << endl;
return false;
}
......@@ -439,11 +434,11 @@ bool UNetReceiver::recv()
// Обычно "кольцевой". Т.е. если не успели обработать и "вынуть" из буфера информацию.. он будет переписан новыми данными
if( waitClean )
{
dlog.crit() << myname << "(receive): reset qtmp.." << endl;
dcrit << myname << "(receive): reset qtmp.." << endl;
while( !qtmp.empty() )
qtmp.pop();
}
waitClean = true;
}
......@@ -510,7 +505,7 @@ void UNetReceiver::initDCache( UniSetUDP::UDPMessage& pack, bool force )
if( !force && pack.dcount == d_icache.size() )
return;
dlog.info() << myname << ": init icache.." << endl;
dinfo << myname << ": init icache.." << endl;
d_cache_init_ok = true;
d_icache.resize(pack.dcount);
......@@ -532,7 +527,7 @@ void UNetReceiver::initACache( UniSetUDP::UDPMessage& pack, bool force )
if( !force && pack.acount == a_icache.size() )
return;
dlog.info() << myname << ": init icache.." << endl;
dinfo << myname << ": init icache.." << endl;
a_cache_init_ok = true;
a_icache.resize(pack.acount);
......
......@@ -31,11 +31,10 @@ s_thr(0)
// определяем фильтр
// s_field = conf->getArgParam("--udp-filter-field");
// s_fvalue = conf->getArgParam("--udp-filter-value");
dlog.info() << myname << "(init): read filter-field='" << s_field
dinfo << myname << "(init): read filter-field='" << s_field
<< "' filter-value='" << s_fvalue << "'" << endl;
if( dlog.is_info() )
dlog.info() << "(UNetSender): UDP set to " << s_host << ":" << port << endl;
dinfo << "(UNetSender): UDP set to " << s_host << ":" << port << endl;
ost::Thread::setException(ost::Thread::throwException);
try
......@@ -47,14 +46,14 @@ s_thr(0)
{
ostringstream s;
s << myname << ": " << e.what();
dlog.crit() << s.str() << std::endl;
dcrit << s.str() << std::endl;
throw SystemError(s.str());
}
catch( ... )
{
ostringstream s;
s << myname << ": catch...";
dlog.crit() << s.str() << std::endl;
dcrit << s.str() << std::endl;
throw SystemError(s.str());
}
......@@ -65,7 +64,7 @@ s_thr(0)
{
readConfiguration();
dlist.resize(maxItem);
dlog.info() << myname << "(init): dlist size = " << dlist.size() << endl;
dinfo << myname << "(init): dlist size = " << dlist.size() << endl;
}
else
ic->addReadItem( sigc::mem_fun(this,&UNetSender::readItem) );
......@@ -130,7 +129,7 @@ void UNetSender::updateItem( DMap::iterator& it, long value )
void UNetSender::send()
{
dlist.resize(maxItem);
dlog.info() << myname << "(send): dlist size = " << dlist.size() << endl;
dinfo << myname << "(send): dlist size = " << dlist.size() << endl;
/*
ost::IPV4Broadcast h = s_host.c_str();
try
......@@ -141,7 +140,7 @@ void UNetSender::send()
{
ostringstream s;
s << e.getString() << ": " << e.getSystemErrorString();
dlog.crit() << myname << "(poll): " << s.str() << endl;
dcrit << myname << "(poll): " << s.str() << endl;
throw SystemError(s.str());
}
*/
......@@ -151,30 +150,30 @@ void UNetSender::send()
{
if( !shm->isLocalwork() )
updateFromSM();
real_send();
}
catch( ost::SockException& e )
{
dlog.warn() << myname << "(send): " << e.getString() << endl;
dwarn << myname << "(send): " << e.getString() << endl;
}
catch( UniSetTypes::Exception& ex)
{
dlog.warn() << myname << "(send): " << ex << std::endl;
dwarn << myname << "(send): " << ex << std::endl;
}
catch( std::exception& e )
{
dlog.warn() << myname << "(send): " << e.what() << std::endl;
dwarn << myname << "(send): " << e.what() << std::endl;
}
catch(...)
{
dlog.warn() << myname << "(send): catch ..." << std::endl;
}
dwarn << myname << "(send): catch ..." << std::endl;
}
msleep(sendpause);
}
dlog.info() << "************* execute FINISH **********" << endl;
dinfo << "************* execute FINISH **********" << endl;
}
// -----------------------------------------------------------------------------
void UNetSender::real_send()
......@@ -191,7 +190,7 @@ void UNetSender::real_send()
mypack.transport_msg(s_msg);
size_t ret = udp->send( (char*)s_msg.data, s_msg.len );
if( ret < s_msg.len )
dlog.crit() << myname << "(real_send): FAILED ret=" << ret << " < sizeof=" << s_msg.len << endl;
dcrit << myname << "(real_send): FAILED ret=" << ret << " < sizeof=" << s_msg.len << endl;
}
// -----------------------------------------------------------------------------
void UNetSender::stop()
......@@ -258,18 +257,17 @@ bool UNetSender::initItem( UniXML_iterator& it )
if( sid == DefaultObjectId )
{
if( dlog )
dlog.crit() << myname << "(readItem): ID not found for "
dcrit << myname << "(readItem): ID not found for "
<< sname << endl;
return false;
}
UItem p;
p.iotype = UniSetTypes::getIOType(it.getProp("iotype"));
if( p.iotype == UniversalIO::UnknownIOType )
{
dlog.crit() << myname << "(readItem): Unknown iotype for sid=" << sid << endl;
dcrit << myname << "(readItem): Unknown iotype for sid=" << sid << endl;
return false;
}
......@@ -280,10 +278,10 @@ bool UNetSender::initItem( UniXML_iterator& it )
p.pack_ind = mypack.addDData(sid,0);
if ( p.pack_ind >= UniSetUDP::MaxDCount )
{
dlog.crit() << myname
dcrit << myname
<< "(readItem): OVERFLOW! MAX UDP DIGITAL DATA LIMIT! max="
<< UniSetUDP::MaxDCount << endl;
raise(SIGTERM);
return false;
}
......@@ -293,22 +291,21 @@ bool UNetSender::initItem( UniXML_iterator& it )
p.pack_ind = mypack.addAData(sid,0);
if ( p.pack_ind >= UniSetUDP::MaxACount )
{
dlog.crit() << myname
dcrit << myname
<< "(readItem): OVERFLOW! MAX UDP ANALOG DATA LIMIT! max="
<< UniSetUDP::MaxACount << endl;
raise(SIGTERM);
return false;
}
}
if( maxItem >= dlist.size() )
dlist.resize(maxItem+10);
dlist[maxItem] = p;
maxItem++;
if( dlog.is_info() )
dlog.info() << myname << "(initItem): add " << p << endl;
dinfo << myname << "(initItem): add " << p << endl;
return true;
}
......
......@@ -52,7 +52,7 @@ int main( int argc, const char** argv )
UNetExchange* unet = UNetExchange::init_unetexchange(argc,argv,shmID);
if( !unet )
{
dlog.crit() << "(unetexchange): init failed.." << endl;
dcrit << "(unetexchange): init failed.." << endl;
return 1;
}
......@@ -72,11 +72,11 @@ int main( int argc, const char** argv )
}
catch( Exception& ex )
{
dlog.crit() << "(unetexchange): " << ex << std::endl;
dcrit << "(unetexchange): " << ex << std::endl;
}
catch(...)
{
dlog.crit() << "(unetexchange): catch ..." << std::endl;
dcrit << "(unetexchange): catch ..." << std::endl;
}
while( waitpid(-1, 0, 0) > 0 );
......
......@@ -36,18 +36,18 @@ smReadyTimeout(15000)
s_field = conf->getArgParam("--" + prefix + "-filter-field");
s_fvalue = conf->getArgParam("--" + prefix + "-filter-value");
dlog.info() << myname << "(init): read fileter-field='" << s_field
dinfo << myname << "(init): read fileter-field='" << s_field
<< "' filter-value='" << s_fvalue << "'" << endl;
polltime = conf->getArgInt("--" + prefix + "-polltime",it.getProp("polltime"));
if( polltime <= 0 )
polltime = 200;
dlog.info() << myname << "(init): polltime=" << polltime << endl;
dinfo << myname << "(init): polltime=" << polltime << endl;
int updatetime = conf->getArgInt("--" + prefix + "-updatetime",it.getProp("updatetime"));
if( updatetime <= 0 )
updatetime = 200;
dlog.info() << myname << "(init): updatetime=" << polltime << endl;
dinfo << myname << "(init): updatetime=" << polltime << endl;
ptUpdate.setTiming(updatetime);
......@@ -57,7 +57,7 @@ smReadyTimeout(15000)
else if( smReadyTimeout < 0 )
smReadyTimeout = UniSetTimer::WaitUpTime;
dlog.info() << myname << "(init): smReadyTimeout=" << smReadyTimeout << endl;
dinfo << myname << "(init): smReadyTimeout=" << smReadyTimeout << endl;
if( it.goChildren() )
{
......@@ -97,7 +97,7 @@ smReadyTimeout(15000)
ni.node = node;
ni.sidConnection = conf->getSensorID(it.getProp("sid_connection"));
dlog.info() << myname << ": add point " << n << ":" << n1 << endl;
dinfo << myname << ": add point " << n << ":" << n1 << endl;
nlst.push_back(ni);
}
}
......@@ -150,23 +150,21 @@ void UniExchange::execute()
bool ok = false;
try
{
if( dlog.is_info() )
dlog.info() << myname << ": connect to id=" << it->id << " node=" << it->node << endl;
dinfo << myname << ": connect to id=" << it->id << " node=" << it->node << endl;
IOController_i::ShortMapSeq_var sseq = ui.getSensors( it->id, it->node );
ok = true;
if( dlog.is_info() )
dlog.info() << myname << " update sensors from id=" << it->id << " node=" << it->node << endl;
dinfo << myname << " update sensors from id=" << it->id << " node=" << it->node << endl;
it->update(sseq,shm);
}
catch( Exception& ex )
{
dlog.info() << myname << "(execute): " << ex << endl;
dwarn << myname << "(execute): " << ex << endl;
}
catch( ... )
{
dlog.info() << myname << "(execute): catch ..." << endl;
dwarn << myname << "(execute): catch ..." << endl;
}
if( it->sidConnection != DefaultObjectId )
......@@ -177,15 +175,14 @@ void UniExchange::execute()
}
catch(...)
{
if( dlog.is_crit() )
dlog.crit()<< myname << "(execute): sensor not avalible "
dcrit << myname << "(execute): sensor not avalible "
<< conf->oind->getNameById( it->sidConnection)
<< endl;
}
}
if( !ok && dlog.is_info() )
dlog.info() << myname << ": ****** cannot connect with node=" << it->node << endl;
if( !ok )
dinfo << myname << ": ****** cannot connect with node=" << it->node << endl;
}
if( ptUpdate.checkTime() )
......@@ -234,11 +231,11 @@ void UniExchange::NetNodeInfo::update( IOController_i::ShortMapSeq_var& map, SMI
}
catch( Exception& ex )
{
dlog.info() << "(update): " << ex << endl;
dwarn << "(update): " << ex << endl;
}
catch( ... )
{
dlog.info() << "(update): catch ..." << endl;
dwarn << "(update): catch ..." << endl;
}
}
}
......@@ -278,11 +275,11 @@ void UniExchange::updateLocalData()
}
catch( Exception& ex )
{
dlog.warn() << "(update): " << ex << endl;
dwarn << "(update): " << ex << endl;
}
catch( ... )
{
dlog.warn() << "(update): catch ..." << endl;
dwarn << "(update): catch ..." << endl;
}
}
......@@ -443,8 +440,7 @@ bool UniExchange::initItem( UniXML_iterator& it )
if( i.id == DefaultObjectId )
{
if( dlog )
dlog.crit() << myname << "(initItem): Unknown ID for "
dcrit << myname << "(initItem): Unknown ID for "
<< it.getProp("name") << endl;
return false;
}
......@@ -452,8 +448,7 @@ bool UniExchange::initItem( UniXML_iterator& it )
i.type = UniSetTypes::getIOType(it.getProp("iotype"));
if( i.type == UniversalIO::UnknownIOType )
{
if( dlog )
dlog.crit() << myname << "(initItem): Unknown iotype= "
dcrit << myname << "(initItem): Unknown iotype= "
<< it.getProp("iotype") << " for " << it.getProp("name") << endl;
return false;
}
......
......@@ -31,4 +31,21 @@ namespace UniSetExtensions
extern DebugStream dlog;
}
// -------------------------------------------------------------------------
// "синтаксический сахар"..для логов
#define dinfo if( UniSetExtensions::dlog.debugging(Debug::INFO) ) UniSetExtensions::dlog
#define dwarn if( UniSetExtensions::dlog.debugging(Debug::WARN) ) UniSetExtensions::dlog
#define dcrit if( UniSetExtensions::dlog.debugging(Debug::CRIT) ) UniSetExtensions::dlog
#define dlog1 if( UniSetExtensions::dlog.debugging(Debug::LEVEL1) ) UniSetExtensions::dlog
#define dlog2 if( UniSetExtensions::dlog.debugging(Debug::LEVEL2) ) UniSetExtensions::dlog
#define dlog3 if( UniSetExtensions::dlog.debugging(Debug::LEVEL3) ) UniSetExtensions::dlog
#define dlog4 if( UniSetExtensions::dlog.debugging(Debug::LEVEL4) ) UniSetExtensions::dlog
#define dlog5 if( UniSetExtensions::dlog.debugging(Debug::LEVEL5) ) UniSetExtensions::dlog
#define dlog6 if( UniSetExtensions::dlog.debugging(Debug::LEVEL6) ) UniSetExtensions::dlog
#define dlog7 if( UniSetExtensions::dlog.debugging(Debug::LEVEL7) ) UniSetExtensions::dlog
#define dlog8 if( UniSetExtensions::dlog.debugging(Debug::LEVEL8) ) UniSetExtensions::dlog
#define dlog9 if( UniSetExtensions::dlog.debugging(Debug::LEVEL9) ) UniSetExtensions::dlog
#define dlogsys if( UniSetExtensions::dlog.debugging(Debug::SYSTEM) ) UniSetExtensions::dlog
#define dlogrep if( UniSetExtensions::dlog.debugging(Debug::REPOSITORY) ) UniSetExtensions::dlog
// -------------------------------------------------------------------------
#endif // Extensions_H_
// -------------------------------------------------------------------------
......@@ -8,7 +8,7 @@
ВСЕ ВАШИ ИЗМЕНЕНИЯ БУДУТ ПОТЕРЯНЫ.
*/
// --------------------------------------------------------------------------
// generate timestamp: 2013-12-17+04:00
// generate timestamp: 2014-01-23+04:00
// -----------------------------------------------------------------------------
#ifndef UObject_SK_H_
#define UObject_SK_H_
......@@ -21,106 +21,120 @@
#include "DebugStream.h"
// -----------------------------------------------------------------------------
class UObject_SK:
public UniSetObject,
public LT_Object
public UniSetObject,
public LT_Object
{
public:
UObject_SK( UniSetTypes::ObjectId id, xmlNode* node=UniSetTypes::conf->getNode("UObject"), const std::string& argprefix="" );
UObject_SK();
virtual ~UObject_SK();
bool alarm( UniSetTypes::ObjectId sid, bool state );
long getValue( UniSetTypes::ObjectId sid );
void setValue( UniSetTypes::ObjectId sid, long value );
void askSensor( UniSetTypes::ObjectId sid, UniversalIO::UIOCommand, UniSetTypes::ObjectId node = UniSetTypes::conf->getLocalNode() );
void updateValues();
void setMsg( UniSetTypes::ObjectId code, bool state );
DebugStream dlog;
void init_dlog(DebugStream& dlog);
// Используемые идентификаторы
// Используемые идентификаторы сообщений
// Текущее значение и предыдущее значение
// --- public variables ---
// --- end of public variables ---
protected:
// --- protected variables ---
// ---- end of protected variables ----
virtual void callback();
virtual void processingMessage( UniSetTypes::VoidMessage* msg );
virtual void sysCommand( UniSetTypes::SystemMessage* sm );
virtual void askSensors( UniversalIO::UIOCommand cmd ){}
virtual void sensorInfo( UniSetTypes::SensorMessage* sm ){}
virtual void timerInfo( UniSetTypes::TimerMessage* tm ){}
virtual void sigterm( int signo );
virtual bool activateObject();
virtual void testMode( bool state );
void updatePreviousValues();
void checkSensors();
void updateOutputs( bool force );
void preAskSensors( UniversalIO::UIOCommand cmd );
void preSensorInfo( UniSetTypes::SensorMessage* sm );
void preTimerInfo( UniSetTypes::TimerMessage* tm );
void waitSM( int wait_msec, UniSetTypes::ObjectId testID = UniSetTypes::DefaultObjectId );
void resetMsg();
Trigger trResetMsg;
PassiveTimer ptResetMsg;
int resetMsgTime;
// Выполнение очередного шага программы
virtual void step()=0;
int sleep_msec; /*!< пауза между итерациями */
bool active;
UniSetTypes::ObjectId smTestID; /*!< идентификатор датчика для тестирования готовности SM */
// управление датчиком "сердцебиения"
PassiveTimer ptHeartBeat; /*! < период "сердцебиения" */
UniSetTypes::ObjectId idHeartBeat; /*! < идентификатор датчика (AI) "сердцебиения" */
int maxHeartBeat; /*! < сохраняемое значение */
xmlNode* confnode;
/*! получить числовое свойство из конф. файла по привязанной confnode */
int getIntProp(const std::string& name) { return UniSetTypes::conf->getIntProp(confnode, name); }
/*! получить текстовое свойство из конф. файла по привязанной confnode */
inline const std::string getProp(const std::string& name) { return UniSetTypes::conf->getProp(confnode, name); }
int smReadyTimeout; /*!< время ожидания готовности SM */
bool activated;
int activateTimeout; /*!< время ожидания готовности UniSetObject к работе */
PassiveTimer ptStartUpTimeout; /*!< время на блокировку обработки WatchDog, если недавно был StartUp */
int askPause; /*!< пауза между неудачными попытками заказать датчики */
IOController_i::SensorInfo si;
private:
// --- private variables ---
// --- end of private variables ---
bool end_private; // вспомогательное поле (для внутреннего использования при генерировании кода)
public:
UObject_SK( UniSetTypes::ObjectId id, xmlNode* node=UniSetTypes::conf->getNode("UObject"), const std::string& argprefix="" );
UObject_SK();
virtual ~UObject_SK();
bool alarm( UniSetTypes::ObjectId sid, bool state );
long getValue( UniSetTypes::ObjectId sid );
void setValue( UniSetTypes::ObjectId sid, long value );
void askSensor( UniSetTypes::ObjectId sid, UniversalIO::UIOCommand, UniSetTypes::ObjectId node = UniSetTypes::conf->getLocalNode() );
void updateValues();
void setMsg( UniSetTypes::ObjectId code, bool state );
DebugStream mylog;
void init_mylog( DebugStream& d );
// "синтаксический сахар"..для логов
#define myinfo if( mylog.debugging(Debug::INFO) ) mylog
#define mywarn if( mylog.debugging(Debug::WARN) ) mylog
#define mycrit if( mylog.debugging(Debug::CRIT) ) mylog
#define mylog1 if( mylog.debugging(Debug::LEVEL1) ) mylog
#define mylog2 if( mylog.debugging(Debug::LEVEL2) ) mylog
#define mylog3 if( mylog.debugging(Debug::LEVEL3) ) mylog
#define mylog4 if( mylog.debugging(Debug::LEVEL4) ) mylog
#define mylog5 if( mylog.debugging(Debug::LEVEL5) ) mylog
#define mylog6 if( mylog.debugging(Debug::LEVEL6) ) mylog
#define mylog7 if( mylog.debugging(Debug::LEVEL7) ) mylog
#define mylog8 if( mylog.debugging(Debug::LEVEL8) ) mylog
#define mylog9 if( mylog.debugging(Debug::LEVEL9) ) mylog
// Используемые идентификаторы
// Используемые идентификаторы сообщений
// Текущее значение и предыдущее значение
// --- public variables ---
// --- end of public variables ---
protected:
// --- protected variables ---
// ---- end of protected variables ----
virtual void callback();
virtual void processingMessage( UniSetTypes::VoidMessage* msg );
virtual void sysCommand( UniSetTypes::SystemMessage* sm );
virtual void askSensors( UniversalIO::UIOCommand cmd ){}
virtual void sensorInfo( UniSetTypes::SensorMessage* sm ){}
virtual void timerInfo( UniSetTypes::TimerMessage* tm ){}
virtual void sigterm( int signo );
virtual bool activateObject();
virtual void testMode( bool state );
void updatePreviousValues();
void checkSensors();
void updateOutputs( bool force );
void preAskSensors( UniversalIO::UIOCommand cmd );
void preSensorInfo( UniSetTypes::SensorMessage* sm );
void preTimerInfo( UniSetTypes::TimerMessage* tm );
void waitSM( int wait_msec, UniSetTypes::ObjectId testID = UniSetTypes::DefaultObjectId );
void resetMsg();
Trigger trResetMsg;
PassiveTimer ptResetMsg;
int resetMsgTime;
// Выполнение очередного шага программы
virtual void step()=0;
int sleep_msec; /*!< пауза между итерациями */
bool active;
UniSetTypes::ObjectId smTestID; /*!< идентификатор датчика для тестирования готовности SM */
// управление датчиком "сердцебиения"
PassiveTimer ptHeartBeat; /*! < период "сердцебиения" */
UniSetTypes::ObjectId idHeartBeat; /*! < идентификатор датчика (AI) "сердцебиения" */
int maxHeartBeat; /*! < сохраняемое значение */
xmlNode* confnode;
/*! получить числовое свойство из конф. файла по привязанной confnode */
int getIntProp(const std::string& name) { return UniSetTypes::conf->getIntProp(confnode, name); }
/*! получить текстовое свойство из конф. файла по привязанной confnode */
inline const std::string getProp(const std::string& name) { return UniSetTypes::conf->getProp(confnode, name); }
int smReadyTimeout; /*!< время ожидания готовности SM */
bool activated;
int activateTimeout; /*!< время ожидания готовности UniSetObject к работе */
PassiveTimer ptStartUpTimeout; /*!< время на блокировку обработки WatchDog, если недавно был StartUp */
int askPause; /*!< пауза между неудачными попытками заказать датчики */
IOController_i::SensorInfo si;
private:
// --- private variables ---
// --- end of private variables ---
bool end_private; // вспомогательное поле (для внутреннего использования при генерировании кода)
};
// -----------------------------------------------------------------------------
......
......@@ -24,7 +24,7 @@ namespace UniSetExtensions
{
ostringstream err;
err << ": Unknown ID for '" << sname << "'" << endl;
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw SystemError(err.str());
}
......@@ -46,18 +46,17 @@ namespace UniSetExtensions
cerr << err.str() << endl;
throw SystemError(err.str());
}
UniXML_iterator it(cnode);
heartBeatTime = it.getIntProp("time_msec");
if( heartBeatTime <= 0 )
{
heartBeatTime = 0;
dlog.warn() << "(getHeartBeatTime): механизм 'HEARTBEAT' ОТКЛЮЧЁН!" << endl;
dwarn << "(getHeartBeatTime): механизм 'HEARTBEAT' ОТКЛЮЧЁН!" << endl;
}
if( dlog.is_info() )
dlog.info() << "(getHeartBeatTime): heartbeat time = " << heartBeatTime << endl;
dinfo << "(getHeartBeatTime): heartbeat time = " << heartBeatTime << endl;
return heartBeatTime;
}
......@@ -114,7 +113,7 @@ namespace UniSetExtensions
{
ostringstream err;
err << "(buildCalibrationDiagram): НЕ НАЙДЕН корневой узел для калибровочных диаграмм";
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw SystemError( err.str());
}
......@@ -123,10 +122,10 @@ namespace UniSetExtensions
{
ostringstream err;
err << "(buildCalibrationDiagram): НЕ НАЙДЕНА калибровочная диаграмма '" << dname << "'";
dlog.crit() << err.str() << endl;
dcrit << err.str() << endl;
throw SystemError( err.str());
}
return new Calibration(dnode);
}
......
......@@ -537,7 +537,7 @@ bool IOBase::initItem( IOBase* b, UniXML_iterator& it, SMInterface* shm,
<< tai << endl;
return false;
}
b->ti.lowlimit = it.getIntProp("lowlimit");
b->ti.hilimit = it.getIntProp("hilimit");
b->ti.invert = it.getIntProp("threshold_invert");
......
......@@ -51,24 +51,24 @@ using namespace UniSetTypes;
} \
catch( IOController_i::NameNotFound &ex ) \
{ \
ulog.warn() << "(" << __STRING(fname) << "): " << ex.err << endl; \
uwarn << "(" << __STRING(fname) << "): " << ex.err << endl; \
} \
catch( IOController_i::IOBadParam &ex ) \
{ \
ulog.warn() << "(" << __STRING(fname) << "): " << ex.err << endl; \
uwarn << "(" << __STRING(fname) << "): " << ex.err << endl; \
} \
catch( Exception& ex ) \
{ \
ulog.warn() << "(" << __STRING(fname) << "): " << ex << endl; \
uwarn << "(" << __STRING(fname) << "): " << ex << endl; \
} \
catch(CORBA::SystemException& ex) \
{ \
ulog.warn() << "(" << __STRING(fname) << "): CORBA::SystemException: " \
uwarn << "(" << __STRING(fname) << "): CORBA::SystemException: " \
<< ex.NP_minorString() << endl; \
} \
catch(...) \
{ \
ulog.warn() << "(" << __STRING(fname) << "): catch ..." << endl; \
uwarn << "(" << __STRING(fname) << "): catch ..." << endl; \
} \
\
oref = CORBA::Object::_nil(); \
......@@ -77,7 +77,7 @@ using namespace UniSetTypes;
#define CHECK_IC_PTR(fname) \
if( !ic ) \
{ \
ulog.warn() << "(" << __STRING(fname) << "): function NOT DEFINED..." << endl; \
uwarn << "(" << __STRING(fname) << "): function NOT DEFINED..." << endl; \
throw UniSetTypes::TimeOut(); \
} \
......
......@@ -11,7 +11,7 @@
ВСЕ ВАШИ ИЗМЕНЕНИЯ БУДУТ ПОТЕРЯНЫ.
*/
// --------------------------------------------------------------------------
// generate timestamp: 2013-12-17+04:00
// generate timestamp: 2014-01-23+04:00
// -----------------------------------------------------------------------------
#include "Configuration.h"
#include "Exceptions.h"
......@@ -43,19 +43,19 @@ askPause(2000),
end_private(false)
{
ulog.crit() << "UObject: init failed!!!!!!!!!!!!!!!" << endl;
throw Exception( string(myname+": init failed!!!") );
ucrit << "UObject: init failed!!!!!!!!!!!!!!!" << endl;
throw Exception( string(myname+": init failed!!!") );
}
// -----------------------------------------------------------------------------
// ( val, confval, default val )
static const std::string init3_str( const std::string& s1, const std::string& s2, const std::string& s3 )
{
if( !s1.empty() )
return s1;
if( !s2.empty() )
return s2;
return s3;
if( !s1.empty() )
return s1;
if( !s2.empty() )
return s2;
return s3;
}
// -----------------------------------------------------------------------------
UObject_SK::UObject_SK( ObjectId id, xmlNode* cnode, const std::string& argprefix ):
......@@ -78,70 +78,69 @@ askPause(conf->getPIntProp(cnode,"askPause",2000)),
end_private(false)
{
if( UniSetTypes::findArgParam("--print-id-list",conf->getArgc(),conf->getArgv()) != -1 )
{
// abort();
}
if( getId() == DefaultObjectId )
{
ostringstream err;
err << "(UObject::init): Unknown ObjectID!";
throw SystemError( err.str() );
}
UniXML_iterator it(cnode);
string heart = conf->getArgParam("--heartbeat-id",it.getProp("heartbeat_id"));
if( !heart.empty() )
{
idHeartBeat = conf->getSensorID(heart);
if( idHeartBeat == DefaultObjectId )
{
ostringstream err;
err << myname << ": не найден идентификатор для датчика 'HeartBeat' " << heart;
throw SystemError(err.str());
}
int heartbeatTime = conf->getArgPInt("--heartbeat-time",it.getProp("heartbeatTime"),conf->getHeartBeatTime());
if( heartbeatTime>0 )
ptHeartBeat.setTiming(heartbeatTime);
else
ptHeartBeat.setTiming(UniSetTimer::WaitUpTime);
maxHeartBeat = conf->getArgPInt("--heartbeat-max",it.getProp("heartbeat_max"), 10);
}
// Инициализация значений
sleep_msec = conf->getArgPInt("--sleep-msec","150", 150);
resetMsgTime = conf->getPIntProp(cnode,"resetMsgTime", 2000);
ptResetMsg.setTiming(resetMsgTime);
smReadyTimeout = conf->getArgInt("--sm-ready-timeout","");
if( smReadyTimeout == 0 )
smReadyTimeout = 60000;
else if( smReadyTimeout < 0 )
smReadyTimeout = UniSetTimer::WaitUpTime;
std::string tmp_smtestID("");
smTestID = conf->getSensorID(init3_str(conf->getArgParam("--" + argprefix + "sm-test-id"),conf->getProp(cnode,"smTestID"),tmp_smtestID));
activateTimeout = conf->getArgPInt("--activate-timeout", 20000);
int msec = conf->getArgPInt("--startup-timeout", 10000);
ptStartUpTimeout.setTiming(msec);
// ===================== <variables> =====================
// ===================== end of <variables> =====================
if( UniSetTypes::findArgParam("--print-id-list",conf->getArgc(),conf->getArgv()) != -1 )
{
// abort();
}
if( getId() == DefaultObjectId )
{
ostringstream err;
err << "(UObject::init): Unknown ObjectID!";
throw SystemError( err.str() );
}
UniXML_iterator it(cnode);
string heart = conf->getArgParam("--heartbeat-id",it.getProp("heartbeat_id"));
if( !heart.empty() )
{
idHeartBeat = conf->getSensorID(heart);
if( idHeartBeat == DefaultObjectId )
{
ostringstream err;
err << myname << ": не найден идентификатор для датчика 'HeartBeat' " << heart;
throw SystemError(err.str());
}
int heartbeatTime = conf->getArgPInt("--heartbeat-time",it.getProp("heartbeatTime"),conf->getHeartBeatTime());
if( heartbeatTime>0 )
ptHeartBeat.setTiming(heartbeatTime);
else
ptHeartBeat.setTiming(UniSetTimer::WaitUpTime);
maxHeartBeat = conf->getArgPInt("--heartbeat-max",it.getProp("heartbeat_max"), 10);
}
// Инициализация значений
sleep_msec = conf->getArgPInt("--sleep-msec","150", 150);
resetMsgTime = conf->getPIntProp(cnode,"resetMsgTime", 2000);
ptResetMsg.setTiming(resetMsgTime);
smReadyTimeout = conf->getArgInt("--sm-ready-timeout","");
if( smReadyTimeout == 0 )
smReadyTimeout = 60000;
else if( smReadyTimeout < 0 )
smReadyTimeout = UniSetTimer::WaitUpTime;
smTestID = conf->getSensorID(init3_str(conf->getArgParam("--" + argprefix + "sm-test-id"),conf->getProp(cnode,"smTestID"),""));
activateTimeout = conf->getArgPInt("--activate-timeout", 20000);
int msec = conf->getArgPInt("--startup-timeout", 10000);
ptStartUpTimeout.setTiming(msec);
// ===================== <variables> =====================
// ===================== end of <variables> =====================
}
// -----------------------------------------------------------------------------
......@@ -152,47 +151,36 @@ UObject_SK::~UObject_SK()
// -----------------------------------------------------------------------------
void UObject_SK::updateValues()
{
// Опрашиваем все входы...
// Опрашиваем все входы...
}
// -----------------------------------------------------------------------------
void UObject_SK::updatePreviousValues()
{
}
// -----------------------------------------------------------------------------
void UObject_SK::checkSensors()
{
}
// -----------------------------------------------------------------------------
bool UObject_SK::alarm( UniSetTypes::ObjectId _code, bool _state )
{
if( _code == UniSetTypes::DefaultObjectId )
{
if( ulog.is_crit() )
ulog.crit() << getName()
<< "(alarm): попытка послать сообщение с DefaultObjectId"
<< endl;
return false;
}
if( ulog.is_level1() )
{
ulog.level1() << getName() << "(alarm): ";
if( _state )
ulog.level1(false) << "SEND ";
else
ulog.level1(false) << "RESET ";
ulog.level1(false) << endl;
}
if( ulog.is_level1() )
ulog.level1() << " not found MessgeOID?!!" << endl;
return false;
if( _code == UniSetTypes::DefaultObjectId )
{
ucrit << getName()
<< "(alarm): попытка послать сообщение с DefaultObjectId"
<< endl;
return false;
}
ulog1 << getName() << "(alarm): " << ( _state ? "SEND " : "RESET " ) << endl;
ulog1 << " not found MessgeOID?!!" << endl;
return false;
}
// -----------------------------------------------------------------------------
void UObject_SK::resetMsg()
......@@ -203,166 +191,161 @@ void UObject_SK::resetMsg()
// -----------------------------------------------------------------------------
void UObject_SK::testMode( bool _state )
{
if( !_state )
return;
if( !_state )
return;
// отключаем все выходы
// отключаем все выходы
}
// -----------------------------------------------------------------------------
// --------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void UObject_SK::init_dlog( DebugStream& d )
void UObject_SK::init_mylog( DebugStream& d )
{
UObject_SK::dlog = d;
UObject_SK::mylog = d;
}
// ------------------------------------------------------------------------------------------
void UObject_SK::processingMessage( UniSetTypes::VoidMessage* _msg )
{
try
{
switch( _msg->type )
{
case Message::SensorInfo:
{
SensorMessage _sm( _msg );
preSensorInfo( &_sm );
break;
}
case Message::Timer:
{
TimerMessage _tm(_msg);
preTimerInfo(&_tm);
break;
}
case Message::SysCommand:
{
SystemMessage _sm( _msg );
sysCommand( &_sm );
break;
}
default:
break;
}
}
catch(Exception& ex)
{
cout << myname << "(processingMessage): " << ex << endl;
}
try
{
switch( _msg->type )
{
case Message::SensorInfo:
{
SensorMessage _sm( _msg );
preSensorInfo( &_sm );
break;
}
case Message::Timer:
{
TimerMessage _tm(_msg);
preTimerInfo(&_tm);
break;
}
case Message::SysCommand:
{
SystemMessage _sm( _msg );
sysCommand( &_sm );
break;
}
default:
break;
}
}
catch( Exception& ex )
{
ucrit << myname << "(processingMessage): " << ex << endl;
}
}
// -----------------------------------------------------------------------------
void UObject_SK::sysCommand( SystemMessage* _sm )
{
switch( _sm->command )
{
case SystemMessage::WatchDog:
ulog << myname << "(sysCommand): WatchDog" << endl;
if( !active || !ptStartUpTimeout.checkTime() )
{
if( ulog.is_warn() )
ulog.warn() << myname << "(sysCommand): игнорируем WatchDog, потому-что только-что стартанули" << endl;
break;
}
case SystemMessage::StartUp:
{
waitSM(smReadyTimeout);
ptStartUpTimeout.reset();
// т.к. для io-переменных важно соблюдать последовательность!
// сперва обновить входы.. а потом уже выходы
updateValues();
updateOutputs(true); // принудительное обновление выходов
preAskSensors(UniversalIO::UIONotify);
askSensors(UniversalIO::UIONotify);
active = true;
break;
}
case SystemMessage::FoldUp:
case SystemMessage::Finish:
preAskSensors(UniversalIO::UIODontNotify);
askSensors(UniversalIO::UIODontNotify);
break;
case SystemMessage::LogRotate:
{
// переоткрываем логи
ulog << myname << "(sysCommand): logRotate" << endl;
string fname( ulog.getLogFile() );
if( !fname.empty() )
{
ulog.logFile(fname.c_str());
ulog << myname << "(sysCommand): ***************** ulog LOG ROTATE *****************" << endl;
}
}
break;
default:
break;
}
switch( _sm->command )
{
case SystemMessage::WatchDog:
ulog << myname << "(sysCommand): WatchDog" << endl;
if( !active || !ptStartUpTimeout.checkTime() )
{
uwarn << myname << "(sysCommand): игнорируем WatchDog, потому-что только-что стартанули" << endl;
break;
}
case SystemMessage::StartUp:
{
waitSM(smReadyTimeout);
ptStartUpTimeout.reset();
// т.к. для io-переменных важно соблюдать последовательность!
// сперва обновить входы.. а потом уже выходы
updateValues();
updateOutputs(true); // принудительное обновление выходов
preAskSensors(UniversalIO::UIONotify);
askSensors(UniversalIO::UIONotify);
active = true;
break;
}
case SystemMessage::FoldUp:
case SystemMessage::Finish:
preAskSensors(UniversalIO::UIODontNotify);
askSensors(UniversalIO::UIODontNotify);
break;
case SystemMessage::LogRotate:
{
// переоткрываем логи
mylog << myname << "(sysCommand): logRotate" << endl;
string fname( mylog.getLogFile() );
if( !fname.empty() )
{
mylog.logFile(fname.c_str());
mylog << myname << "(sysCommand): ***************** mylog LOG ROTATE *****************" << endl;
}
}
break;
default:
break;
}
}
// -----------------------------------------------------------------------------
void UObject_SK::sigterm( int signo )
{
UniSetObject::sigterm(signo);
active = false;
UniSetObject::sigterm(signo);
active = false;
}
// -----------------------------------------------------------------------------
bool UObject_SK::activateObject()
{
// блокирование обработки Startup
// пока не пройдёт инициализация датчиков
// см. sysCommand()
{
activated = false;
UniSetObject::activateObject();
activated = true;
}
return true;
// блокирование обработки Startup
// пока не пройдёт инициализация датчиков
// см. sysCommand()
{
activated = false;
UniSetObject::activateObject();
activated = true;
}
return true;
}
// -----------------------------------------------------------------------------
void UObject_SK::preTimerInfo( UniSetTypes::TimerMessage* _tm )
{
timerInfo(_tm);
timerInfo(_tm);
}
// ----------------------------------------------------------------------------
void UObject_SK::waitSM( int wait_msec, ObjectId _testID )
{
if( _testID == DefaultObjectId )
_testID = smTestID;
if( _testID == DefaultObjectId )
return;
if( ulog.is_info() )
{
ulog.info() << myname << "(waitSM): waiting SM ready "
<< wait_msec << " msec"
<< " testID=" << _testID << endl;
}
if( !ui.waitReady(_testID,wait_msec) )
{
ostringstream err;
err << myname
<< "(waitSM): Не дождались готовности(exist) SharedMemory к работе в течение "
<< wait_msec << " мсек";
if( ulog.is_crit() )
ulog.crit() << err.str() << endl;
terminate();
abort();
// kill(SIGTERM,getpid()); // прерываем (перезапускаем) процесс...
throw SystemError(err.str());
}
if( _testID == DefaultObjectId )
_testID = smTestID;
if( _testID == DefaultObjectId )
return;
uinfo << myname << "(waitSM): waiting SM ready "
<< wait_msec << " msec"
<< " testID=" << _testID << endl;
if( !ui.waitReady(_testID,wait_msec) )
{
ostringstream err;
err << myname
<< "(waitSM): Не дождались готовности(exist) SharedMemory к работе в течение "
<< wait_msec << " мсек";
ucrit << err.str() << endl;
terminate();
abort();
// kill(SIGTERM,getpid()); // прерываем (перезапускаем) процесс...
throw SystemError(err.str());
}
}
......@@ -371,161 +354,153 @@ void UObject_SK::waitSM( int wait_msec, ObjectId _testID )
// --------------------------------------------------------------------------
void UObject_SK::callback()
{
if( !active )
return;
try
{
// проверка таймеров
checkTimers(this);
if( resetMsgTime>0 && trResetMsg.hi(ptResetMsg.checkTime()) )
{
// cout << myname << ": ********* reset messages *********" << endl;
resetMsg();
}
// обработка сообщений (таймеров и т.п.)
for( int i=0; i<20; i++ )
{
if( !receiveMessage(msg) )
break;
processingMessage(&msg);
updateOutputs(false);
// updatePreviousValues();
}
// Выполнение шага программы
step();
// "сердцебиение"
if( idHeartBeat!=DefaultObjectId && ptHeartBeat.checkTime() )
{
ui.setValue(idHeartBeat,maxHeartBeat,UniversalIO::AI);
ptHeartBeat.reset();
}
// обновление выходов
updateOutputs(false);
updatePreviousValues();
}
catch( Exception& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(execute): " << ex << endl;
}
catch(CORBA::SystemException& ex)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(execute): СORBA::SystemException: "
if( !active )
return;
try
{
// проверка таймеров
checkTimers(this);
if( resetMsgTime>0 && trResetMsg.hi(ptResetMsg.checkTime()) )
{
// cout << myname << ": ********* reset messages *********" << endl;
resetMsg();
}
// обработка сообщений (таймеров и т.п.)
for( int i=0; i<20; i++ )
{
if( !receiveMessage(msg) )
break;
processingMessage(&msg);
updateOutputs(false);
// updatePreviousValues();
}
// Выполнение шага программы
step();
// "сердцебиение"
if( idHeartBeat!=DefaultObjectId && ptHeartBeat.checkTime() )
{
ui.setValue(idHeartBeat,maxHeartBeat,UniversalIO::AI);
ptHeartBeat.reset();
}
// обновление выходов
updateOutputs(false);
updatePreviousValues();
}
catch( Exception& ex )
{
ucrit << myname << "(execute): " << ex << endl;
}
catch(CORBA::SystemException& ex)
{
ucrit << myname << "(execute): СORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(execute): catch ..." << endl;
}
if( !active )
return;
msleep( sleep_msec );
}
catch(...)
{
ucrit << myname << "(execute): catch ..." << endl;
}
if( !active )
return;
msleep( sleep_msec );
}
// -----------------------------------------------------------------------------
void UObject_SK::setValue( UniSetTypes::ObjectId _sid, long _val )
{
// ui.setState(sid,state);
// ui.setState(sid,state);
}
// -----------------------------------------------------------------------------
void UObject_SK::updateOutputs( bool _force )
{
}
// -----------------------------------------------------------------------------
void UObject_SK::preSensorInfo( UniSetTypes::SensorMessage* _sm )
{
sensorInfo(_sm);
sensorInfo(_sm);
}
// -----------------------------------------------------------------------------
void UObject_SK::askSensor( UniSetTypes::ObjectId _sid, UniversalIO::UIOCommand _cmd, UniSetTypes::ObjectId _node )
{
ui.askRemoteSensor(_sid,_cmd,_node,getId());
ui.askRemoteSensor(_sid,_cmd,_node,getId());
}
// -----------------------------------------------------------------------------
long UObject_SK::getValue( UniSetTypes::ObjectId _sid )
{
try
{
try
{
if( ulog.is_crit() )
ulog.crit() << myname << "(getValue): Обращение к неизвестному датчику sid="
ucrit << myname << "(getValue): Обращение к неизвестному датчику sid="
<< _sid << endl;
}
catch(Exception& ex)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(getValue): " << ex << endl;
throw;
}
return 0;
}
catch(Exception& ex)
{
ucrit << myname << "(getValue): " << ex << endl;
throw;
}
return 0;
}
// -----------------------------------------------------------------------------
void UObject_SK::preAskSensors( UniversalIO::UIOCommand _cmd )
{
PassiveTimer ptAct(activateTimeout);
while( !activated && !ptAct.checkTime() )
{
cout << myname << "(preAskSensors): wait activate..." << endl;
msleep(300);
if( activated )
break;
}
if( !activated && ulog.is_crit() )
ulog.crit() << myname
<< "(preAskSensors): ************* don`t activated?! ************" << endl;
for( ;; )
{
try
{
return;
}
catch(SystemError& err)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(preAskSensors): " << err << endl;
}
catch(Exception& ex)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(preAskSensors): " << ex << endl;
}
catch(...)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(preAskSensors): catch(...)" << endl;
}
msleep(askPause);
}
PassiveTimer ptAct(activateTimeout);
while( !activated && !ptAct.checkTime() )
{
cout << myname << "(preAskSensors): wait activate..." << endl;
msleep(300);
if( activated )
break;
}
if( !activated )
ucrit << myname
<< "(preAskSensors): ************* don`t activated?! ************" << endl;
for( ;; )
{
try
{
return;
}
catch(SystemError& err)
{
ucrit << myname << "(preAskSensors): " << err << endl;
}
catch(Exception& ex)
{
ucrit << myname << "(preAskSensors): " << ex << endl;
}
catch(...)
{
ucrit << myname << "(preAskSensors): catch(...)" << endl;
}
msleep(askPause);
}
}
// -----------------------------------------------------------------------------
void UObject_SK::setMsg( UniSetTypes::ObjectId _code, bool _state )
{
// блокируем сброс (т.к. он автоматически по таймеру)
if( !_state )
{
ptResetMsg.reset();
return;
}
alarm( _code, _state );
ptResetMsg.reset();
}
// блокируем сброс (т.к. он автоматически по таймеру)
if( !_state )
{
ptResetMsg.reset();
return;
}
alarm( _code, _state );
ptResetMsg.reset();
}
// ----------------------------------------------------------------------------
......@@ -53,7 +53,7 @@ void TestProc::sysCommand( UniSetTypes::SystemMessage* sm )
void TestProc::sensorInfo( SensorMessage *sm )
{
/*
dlog.level2() << myname << "(sensorInfo): id=" << sm->id << " val=" << sm->value
mylog2 << myname << "(sensorInfo): id=" << sm->id << " val=" << sm->value
<< " " << timeToString(sm->sm_tv_sec,":")
<< "(" << setw(6) << sm->sm_tv_usec << "): "
<< endl;
......@@ -83,7 +83,7 @@ void TestProc::timerInfo( TimerMessage *tm )
{
state^=true;
out_lamp_c = ( state ? lmpBLINK : lmpOFF );
dlog.level2() << myname << ": state=" << state << " lmp=" << out_lamp_c << endl;
mylog2 << myname << ": state=" << state << " lmp=" << out_lamp_c << endl;
askTimer(tmCheckWorking,checkTime); // reset timer
}
else if( tm->id == tmCheckWorking )
......@@ -102,7 +102,7 @@ void TestProc::timerInfo( TimerMessage *tm )
cerr << "======= TEST LOG PRINT ======" << endl;
cerr << "LOGLEVEL: [" << (int)(*lit) << "] " << (*lit) << endl;
for( std::vector<Debug::type>::iterator it=loglevels.begin(); it!=loglevels.end(); ++it )
dlog[*it] << myname << ": test log print..." << endl;
mylog[*it] << myname << ": test log print..." << endl;
cerr << "======= END LOG PRINT ======" << endl;
}
......@@ -166,7 +166,7 @@ void TestProc::test_thresholds()
}
catch( Exception& ex )
{
dlog.level2() << myname << ": CHECK 'ask and get threshold' FAILED: " << ex << endl;
mylog2 << myname << ": CHECK 'ask and get threshold' FAILED: " << ex << endl;
}
}
// -----------------------------------------------------------------------------
......
......@@ -49,19 +49,19 @@ int main(int argc, const char **argv)
}
catch( SystemError& err )
{
ulog.crit() << "(smemory): " << err << endl;
ucrit << "(smemory): " << err << endl;
}
catch( Exception& ex )
{
ulog.crit() << "(smemory): " << ex << endl;
ucrit << "(smemory): " << ex << endl;
}
catch( std::exception& e )
{
ulog.crit() << "(smemory): " << e.what() << endl;
ucrit << "(smemory): " << e.what() << endl;
}
catch(...)
{
ulog.crit() << "(smemory): catch(...)" << endl;
ucrit << "(smemory): catch(...)" << endl;
}
return 1;
......
......@@ -73,7 +73,7 @@ namespace UniSetTypes
int getPIntField(const std::string& path, int def);
xmlNode* findNode(xmlNode* node, const std::string& searchnode, const std::string& name="" );
// Получить узел
xmlNode* getNode(const std::string& path);
// Получить указанное свойство пути
......@@ -92,7 +92,7 @@ namespace UniSetTypes
inline ObjectId getLocalNode() const { return localNode; } /*!< получение идентификатора локального узла */
inline std::string getLocalNodeName() const { return localNodeName; } /*!< получение название локального узла */
inline const std::string getNSName() const { return NSName; }
// repository
inline std::string getRootSection() const { return secRoot; }
inline std::string getSensorsSection() const { return secSensors; }
......@@ -108,7 +108,7 @@ namespace UniSetTypes
xmlNode* getXMLObjectNode( UniSetTypes::ObjectId );
UniversalIO::IOType getIOType( UniSetTypes::ObjectId );
UniversalIO::IOType getIOType( const std::string& name );
// net
inline unsigned int getCountOfNet() const { return countOfNet; }
inline unsigned int getRepeatTimeout() const { return repeatTimeout; }
......@@ -136,7 +136,7 @@ namespace UniSetTypes
inline bool isLocalIOR(){ return localIOR; }
inline bool isTransientIOR(){ return transientIOR; }
/*! получить значение указанного параметра, или значение по умолчанию */
std::string getArgParam(const std::string& name, const std::string& defval="");
/*! получить числовое значение параметра, если не число, то 0. Если параметра нет, используется значение defval */
......@@ -240,13 +240,28 @@ namespace UniSetTypes
/*! Глобальный объект для вывода логов */
extern DebugStream ulog;
// Инициализация UniSetTypes::conf.
// ( учитываются параметры командной строки --confile и --id-from-config )
void uniset_init( int argc, const char* const* argv, const std::string& xmlfile="configure.xml" );
} // end of UniSetTypes namespace
// --------------------------------------------------------------------------
// "синтаксический сахар"..для логов
#define uinfo if( UniSetTypes::ulog.debugging(Debug::INFO) ) UniSetTypes::ulog
#define uwarn if( UniSetTypes::ulog.debugging(Debug::WARN) ) UniSetTypes::ulog
#define ucrit if( UniSetTypes::ulog.debugging(Debug::CRIT) ) UniSetTypes::ulog
#define ulog1 if( UniSetTypes::ulog.debugging(Debug::LEVEL1) ) UniSetTypes::ulog
#define ulog2 if( UniSetTypes::ulog.debugging(Debug::LEVEL2) ) UniSetTypes::ulog
#define ulog3 if( UniSetTypes::ulog.debugging(Debug::LEVEL3) ) UniSetTypes::ulog
#define ulog4 if( UniSetTypes::ulog.debugging(Debug::LEVEL4) ) UniSetTypes::ulog
#define ulog5 if( UniSetTypes::ulog.debugging(Debug::LEVEL5) ) UniSetTypes::ulog
#define ulog6 if( UniSetTypes::ulog.debugging(Debug::LEVEL6) ) UniSetTypes::ulog
#define ulog7 if( UniSetTypes::ulog.debugging(Debug::LEVEL7) ) UniSetTypes::ulog
#define ulog8 if( UniSetTypes::ulog.debugging(Debug::LEVEL8) ) UniSetTypes::ulog
#define ulog9 if( UniSetTypes::ulog.debugging(Debug::LEVEL9) ) UniSetTypes::ulog
#define ulogsys if( UniSetTypes::ulog.debugging(Debug::SYSTEM) ) UniSetTypes::ulog
#define ulogrep if( UniSetTypes::ulog.debugging(Debug::REPOSITORY) ) UniSetTypes::ulog
// --------------------------------------------------------------------------
#endif // Configuration_H_
......@@ -184,7 +184,7 @@ long UInterface::getValue( ObjectId name, ObjectId node )
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(getValue): CORBA::SystemException" << endl;
// uwarn << "UI(getValue): CORBA::SystemException" << endl;
}
rcache.erase(name, node);
throw UniSetTypes::TimeOut(set_err("UI(getValue): TimeOut",name,node));
......@@ -202,7 +202,7 @@ void UInterface::setUndefinedState( IOController_i::SensorInfo& si, bool undefin
{
if( si.id == DefaultObjectId )
{
ulog.warn() << "UI(setUndefinedState): ID=UniSetTypes::DefaultObjectId" << endl;
uwarn << "UI(setUndefinedState): ID=UniSetTypes::DefaultObjectId" << endl;
return;
}
......@@ -240,7 +240,7 @@ void UInterface::setUndefinedState( IOController_i::SensorInfo& si, bool undefin
catch(IOController_i::NameNotFound &ex)
{
rcache.erase(si.id, si.node);
ulog.warn() << set_err("UI(setUndefinedState):"+string(ex.err),si.id,si.node) << endl;
uwarn << set_err("UI(setUndefinedState):"+string(ex.err),si.id,si.node) << endl;
}
catch(IOController_i::IOBadParam& ex)
{
......@@ -251,24 +251,24 @@ void UInterface::setUndefinedState( IOController_i::SensorInfo& si, bool undefin
{
rcache.erase(si.id, si.node);
// не смогли получить ссылку на объект
ulog.warn() << set_err("UI(setUndefinedState): resolve failed",si.id,si.node) << endl;
uwarn << set_err("UI(setUndefinedState): resolve failed",si.id,si.node) << endl;
}
catch(CORBA::NO_IMPLEMENT)
{
rcache.erase(si.id, si.node);
ulog.warn() << set_err("UI(setUndefinedState): method no implement",si.id,si.node) << endl;
}
uwarn << set_err("UI(setUndefinedState): method no implement",si.id,si.node) << endl;
}
catch(CORBA::OBJECT_NOT_EXIST)
{
rcache.erase(si.id, si.node);
ulog.warn() << set_err("UI(setUndefinedState): object not exist",si.id,si.node) << endl;
uwarn << set_err("UI(setUndefinedState): object not exist",si.id,si.node) << endl;
}
catch(CORBA::COMM_FAILURE){}
catch(CORBA::SystemException& ex){}
catch(...){}
rcache.erase(si.id, si.node);
ulog.warn() << set_err("UI(setUndefinedState): Timeout",si.id,si.node) << endl;
uwarn << set_err("UI(setUndefinedState): Timeout",si.id,si.node) << endl;
}
// ------------------------------------------------------------------------------------------------------------
/*!
......@@ -347,7 +347,7 @@ void UInterface::setValue(ObjectId name, long value, ObjectId node)
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(setValue): CORBA::SystemException" << endl;
// uwarn << "UI(setValue): CORBA::SystemException" << endl;
}
rcache.erase(name, node);
throw UniSetTypes::TimeOut(set_err("UI(setValue): Timeout",name,node));
......@@ -382,7 +382,7 @@ void UInterface::fastSetValue( IOController_i::SensorInfo& si, long value, UniSe
{
if ( si.id == DefaultObjectId )
{
ulog.warn() << "UI(fastSetValue): ID=UniSetTypes::DefaultObjectId" << endl;
uwarn << "UI(fastSetValue): ID=UniSetTypes::DefaultObjectId" << endl;
return;
}
......@@ -420,7 +420,7 @@ void UInterface::fastSetValue( IOController_i::SensorInfo& si, long value, UniSe
catch(IOController_i::NameNotFound &ex)
{
rcache.erase(si.id,si.node);
ulog.warn() << set_err("UI(fastSetValue): NameNotFound для объекта",si.id,si.node) << endl;
uwarn << set_err("UI(fastSetValue): NameNotFound для объекта",si.id,si.node) << endl;
}
catch(IOController_i::IOBadParam& ex)
{
......@@ -431,17 +431,17 @@ void UInterface::fastSetValue( IOController_i::SensorInfo& si, long value, UniSe
{
rcache.erase(si.id,si.node);
// не смогли получить ссылку на объект
ulog.warn() << set_err("UI(fastSetValue): resolve failed ",si.id,si.node) << endl;
uwarn << set_err("UI(fastSetValue): resolve failed ",si.id,si.node) << endl;
}
catch(CORBA::NO_IMPLEMENT)
{
rcache.erase(si.id,si.node);
ulog.warn() << set_err("UI(fastSetValue): method no implement",si.id,si.node) << endl;
uwarn << set_err("UI(fastSetValue): method no implement",si.id,si.node) << endl;
}
catch(CORBA::OBJECT_NOT_EXIST)
{
rcache.erase(si.id,si.node);
ulog.warn() << set_err("UI(fastSetValue): object not exist",si.id,si.node) << endl;
uwarn << set_err("UI(fastSetValue): object not exist",si.id,si.node) << endl;
}
catch(CORBA::COMM_FAILURE& ex)
{
......@@ -450,12 +450,12 @@ void UInterface::fastSetValue( IOController_i::SensorInfo& si, long value, UniSe
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(setValue): CORBA::SystemException" << endl;
// uwarn << "UI(setValue): CORBA::SystemException" << endl;
}
catch(...){}
rcache.erase(si.id,si.node);
ulog.warn() << set_err("UI(fastSetValue): Timeout",si.id,si.node) << endl;
uwarn << set_err("UI(fastSetValue): Timeout",si.id,si.node) << endl;
}
......@@ -542,12 +542,12 @@ void UInterface::askRemoteSensor( ObjectId name, UniversalIO::UIOCommand cmd, Ob
catch(CORBA::COMM_FAILURE& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(askSensor): ошибка системы коммуникации" << endl;
// uwarn << "UI(askSensor): ошибка системы коммуникации" << endl;
}
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(askSensor): CORBA::SystemException" << endl;
// uwarn << "UI(askSensor): CORBA::SystemException" << endl;
}
rcache.erase(name, node);
......@@ -628,12 +628,12 @@ IOType UInterface::getIOType(ObjectId name, ObjectId node)
catch(CORBA::COMM_FAILURE& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(getIOType): ошибка системы коммуникации" << endl;
// uwarn << "UI(getIOType): ошибка системы коммуникации" << endl;
}
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(getIOType): CORBA::SystemException" << endl;
// uwarn << "UI(getIOType): CORBA::SystemException" << endl;
}
rcache.erase(name, node);
......@@ -710,12 +710,12 @@ ObjectType UInterface::getType(ObjectId name, ObjectId node)
catch(CORBA::COMM_FAILURE& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(getType): ошибка системы коммуникации" << endl;
// uwarn << "UI(getType): ошибка системы коммуникации" << endl;
}
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(getType): CORBA::SystemException" << endl;
// uwarn << "UI(getType): CORBA::SystemException" << endl;
}
catch(UniSetTypes::TimeOut){}
......@@ -812,21 +812,11 @@ ObjectPtr UInterface::resolve( ObjectId rid , ObjectId node, int timeoutSec )
{
// если NameService недоступен то,
// сразу выдаём ошибку
// if( CORBA::is_nil(localctx) )
// {
if( ulog.is_warn() )
{
ulog.warn() << "not found IOR-file for " << uconf->oind->getNameById(rid,node) << endl;
}
throw UniSetTypes::ResolveNameError();
// }
// иначе пытаемся получить ссылку через NameService (omniNames)
// ulog.warn() << "не найден IOR-файл для " << uconf->oind->getNameById(rid,node)
// << " пытаемся получить доступ через NameService \n";
uwarn << "not found IOR-file for " << uconf->oind->getNameById(rid,node) << endl;
throw UniSetTypes::ResolveNameError();
}
}
if( node!=uconf->getLocalNode() )
{
// Получаем доступ к NameService на данном узле
......@@ -838,12 +828,10 @@ ObjectPtr UInterface::resolve( ObjectId rid , ObjectId node, int timeoutSec )
{
try
{
// // ulog.info() << "пытаемся связаться с "<< node << endl;
if( CORBA::is_nil(orb) )
orb = uconf->getORB();
ctx = ORepHelpers::getRootNamingContext( orb, nodeName.c_str() );
// // ulog.info() << "ok. "<< endl;
break;
}
// catch(CORBA::COMM_FAILURE& ex )
......@@ -860,7 +848,7 @@ ObjectPtr UInterface::resolve( ObjectId rid , ObjectId node, int timeoutSec )
if( CORBA::is_nil(ctx) )
{
// ulog.warn() << "NameService недоступен на узле "<< node << endl;
// uwarn << "NameService недоступен на узле "<< node << endl;
throw NSResolveError();
}
}
......@@ -918,7 +906,7 @@ ObjectPtr UInterface::resolve( ObjectId rid , ObjectId node, int timeoutSec )
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(resolve): CORBA::SystemException" << endl;
// uwarn << "UI(resolve): CORBA::SystemException" << endl;
throw UniSetTypes::TimeOut();
}
......@@ -977,12 +965,12 @@ void UInterface::send( ObjectId name, TransportMessage& msg, ObjectId node)
catch(CORBA::COMM_FAILURE& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(send): ошибка системы коммуникации" << endl;
// uwarn << "UI(send): ошибка системы коммуникации" << endl;
}
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(send): CORBA::SystemException" << endl;
// uwarn << "UI(send): CORBA::SystemException" << endl;
}
rcache.erase(name, node);
......@@ -1034,7 +1022,7 @@ IOController_i::ShortIOInfo UInterface::getChangedTime( UniSetTypes::ObjectId id
catch(IOController_i::NameNotFound &ex)
{
rcache.erase(si.id, si.node);
ulog.warn() << "UI(getChangedTime): " << ex.err << endl;
uwarn << "UI(getChangedTime): " << ex.err << endl;
}
catch(IOController_i::IOBadParam& ex )
{
......@@ -1044,30 +1032,30 @@ IOController_i::ShortIOInfo UInterface::getChangedTime( UniSetTypes::ObjectId id
catch(ORepFailed)
{
rcache.erase(si.id, si.node);
ulog.warn() << set_err("UI(getChangedTime): resolve failed ",si.id,si.node) << endl;
uwarn << set_err("UI(getChangedTime): resolve failed ",si.id,si.node) << endl;
}
catch(CORBA::NO_IMPLEMENT)
{
rcache.erase(si.id, si.node);
ulog.warn() << set_err("UI(getChangedTime): method no implement",si.id,si.node) << endl;
uwarn << set_err("UI(getChangedTime): method no implement",si.id,si.node) << endl;
}
catch(CORBA::OBJECT_NOT_EXIST)
{
rcache.erase(si.id, si.node);
ulog.warn() << set_err("UI(getChangedTime): object not exist",si.id,si.node) << endl;
uwarn << set_err("UI(getChangedTime): object not exist",si.id,si.node) << endl;
}
catch(CORBA::COMM_FAILURE)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(saveState): CORBA::COMM_FAILURE " << endl;
// uwarn << "UI(saveState): CORBA::COMM_FAILURE " << endl;
}
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(saveState): CORBA::SystemException" << endl;
}
// uwarn << "UI(saveState): CORBA::SystemException" << endl;
}
catch(...){}
rcache.erase(si.id, si.node);
throw UniSetTypes::TimeOut(set_err("UI(getChangedTime): Timeout",si.id, si.node));
}
......@@ -1086,11 +1074,11 @@ ObjectPtr UInterface::CacheOfResolve::resolve( ObjectId id, ObjectId node )
throw UniSetTypes::NameNotFound();
it->second.timestamp = time(NULL); // фиксируем время последнего обращения
// т.к. функция возвращает указатель
// и тот кто вызывает отвечает за освобождение памяти
// то мы делаем _duplicate....
if( !CORBA::is_nil(it->second.ptr) )
return CORBA::Object::_duplicate(it->second.ptr);
......@@ -1116,8 +1104,7 @@ bool UInterface::CacheOfResolve::clean()
{
UniSetTypes::uniset_rwmutex_wrlock l(cmutex);
if( ulog.is_info() )
ulog.info() << "UI: clean cache...."<< endl;
uinfo << "UI: clean cache...."<< endl;
time_t tm = time(NULL)-CleanTime*60;
// remove_if(mcache.begin(), mcache.end(),OldRef_eq(tm));
......@@ -1172,7 +1159,7 @@ bool UInterface::isExist( UniSetTypes::ObjectId id )
}
catch(UniSetTypes::Exception& ex)
{
// ulog.warn() << "UI(isExist): " << ex << endl;
// uwarn << "UI(isExist): " << ex << endl;
}
catch(...){}
return false;
......@@ -1303,12 +1290,12 @@ void UInterface::askRemoteThreshold( UniSetTypes::ObjectId sid, UniSetTypes::Obj
catch(CORBA::COMM_FAILURE& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(askThreshold): ошибка системы коммуникации" << endl;
// uwarn << "UI(askThreshold): ошибка системы коммуникации" << endl;
}
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(askThreshold): CORBA::SystemException" << endl;
// uwarn << "UI(askThreshold): CORBA::SystemException" << endl;
}
rcache.erase(sid, node);
throw UniSetTypes::TimeOut(set_err("UI(askThreshold): Timeout",sid,node));
......@@ -1390,7 +1377,7 @@ IONotifyController_i::ThresholdInfo
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(getValue): CORBA::SystemException" << endl;
// uwarn << "UI(getValue): CORBA::SystemException" << endl;
}
rcache.erase(si.id, si.node);
throw UniSetTypes::TimeOut(set_err("UI(getThresholdInfo): Timeout",si.id,si.node));
......@@ -1461,7 +1448,7 @@ long UInterface::getRawValue( const IOController_i::SensorInfo& si )
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(getValue): CORBA::SystemException" << endl;
// uwarn << "UI(getValue): CORBA::SystemException" << endl;
}
rcache.erase(si.id, si.node);
throw UniSetTypes::TimeOut(set_err("UI(getRawValue): Timeout",si.id,si.node));
......@@ -1541,7 +1528,7 @@ void UInterface::calibrate(const IOController_i::SensorInfo& si,
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(getValue): CORBA::SystemException" << endl;
// uwarn << "UI(getValue): CORBA::SystemException" << endl;
}
rcache.erase(si.id, si.node);
throw UniSetTypes::TimeOut(set_err("UI(calibrate): Timeout",si.id,si.node));
......@@ -1612,7 +1599,7 @@ IOController_i::CalibrateInfo UInterface::getCalibrateInfo( const IOController_i
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(getValue): CORBA::SystemException" << endl;
// uwarn << "UI(getValue): CORBA::SystemException" << endl;
}
rcache.erase(si.id, si.node);
throw UniSetTypes::TimeOut(set_err("UI(getCalibrateInfo): Timeout",si.id,si.node));
......@@ -1690,7 +1677,7 @@ IOController_i::SensorInfoSeq_var UInterface::getSensorSeq( UniSetTypes::IDList&
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(getValue): CORBA::SystemException" << endl;
// uwarn << "UI(getValue): CORBA::SystemException" << endl;
}
rcache.erase(sid,conf->getLocalNode());
throw UniSetTypes::TimeOut(set_err("UI(getSensorSeq): Timeout",sid,conf->getLocalNode()));
......@@ -1766,7 +1753,7 @@ IDSeq_var UInterface::setOutputSeq( const IOController_i::OutSeq& lst, UniSetTyp
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(getValue): CORBA::SystemException" << endl;
// uwarn << "UI(getValue): CORBA::SystemException" << endl;
}
rcache.erase(lst[0].si.id,lst[0].si.node);
throw UniSetTypes::TimeOut(set_err("UI(setOutputSeq): Timeout",lst[0].si.id,lst[0].si.node));
......@@ -1855,7 +1842,7 @@ UniSetTypes::IDSeq_var UInterface::askSensorsSeq( UniSetTypes::IDList& lst,
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(getValue): CORBA::SystemException" << endl;
// uwarn << "UI(getValue): CORBA::SystemException" << endl;
}
rcache.erase(sid,conf->getLocalNode());
throw UniSetTypes::TimeOut(set_err("UI(askSensorSeq): Timeout",sid,conf->getLocalNode()));
......@@ -1923,7 +1910,7 @@ IOController_i::ShortMapSeq* UInterface::getSensors( UniSetTypes::ObjectId id, U
catch(CORBA::SystemException& ex)
{
// ошибка системы коммуникации
// ulog.warn() << "UI(getValue): CORBA::SystemException" << endl;
// uwarn << "UI(getValue): CORBA::SystemException" << endl;
}
rcache.erase(id,node);
throw UniSetTypes::TimeOut(set_err("UI(getSensors): Timeout",id,node));
......
......@@ -54,7 +54,7 @@ void IORFile::setIOR( const ObjectId id, const ObjectId node, const string& sior
if( !ior_file )
{
ulog.crit() << "(IORFile): не смог открыть файл "+fname << endl;
ucrit << "(IORFile): не смог открыть файл "+fname << endl;
throw TimeOut("(IORFile): не смог создать ior-файл "+fname);
}
......
......@@ -45,8 +45,7 @@ namespace ORepHelpers
CosNaming::NamingContext_ptr getContext(const string& cname, int argc, const char* const* argv, const string& nsName )throw(ORepFailed)
{
CORBA::ORB_var orb = CORBA::ORB_init( argc, (char**)argv );
if( ulog.is_repository() )
ulog.repository() << "OREPHELP: orb init ok"<< endl;
ulogrep << "OREPHELP: orb init ok"<< endl;
return getContext(orb, cname, nsName);
}
// --------------------------------------------------------------------------
......@@ -54,26 +53,22 @@ namespace ORepHelpers
{
CosNaming::NamingContext_var rootC;
if( ulog.is_repository() )
ulog.repository() << "OREPHELPER(getContext): get rootcontext...(servname = "<< servname << ")" <<endl;
ulogrep << "OREPHELPER(getContext): get rootcontext...(servname = "<< servname << ")" <<endl;
rootC = getRootNamingContext(orb, servname);
if( ulog.is_repository() )
ulog.repository() << "OREPHELPER(getContext): get rootContect ok " << endl;
ulogrep << "OREPHELPER(getContext): get rootContect ok " << endl;
if( CORBA::is_nil(rootC) )
{
if( ulog.is_warn() )
ulog.warn() << "OREPHELPER: не смог получить ссылку на NameServices"<< endl;
uwarn << "OREPHELPER: не смог получить ссылку на NameServices"<< endl;
throw ORepFailed("OREPHELPER(getContext): не смог получить ссылку на NameServices");
}
if ( cname.empty() )
return rootC._retn();
if( ulog.is_repository() )
ulog.repository() << "OREPHELPER(getContext): get ref context " << cname << endl;
ulogrep << "OREPHELPER(getContext): get ref context " << cname << endl;
CosNaming::Name_var ctxName = omniURI::stringToName(cname.c_str());
CosNaming::NamingContext_var ctx;
......@@ -91,16 +86,14 @@ namespace ORepHelpers
{
ostringstream err;
err << "OREPHELPER(getContext): не смог получить ссылку на контекст " << cname;
if( ulog.is_warn() )
ulog.warn() << err.str() << endl;
uwarn << err.str() << endl;
throw ORepFailed(err.str());
}
catch(const CosNaming::NamingContext::NotFound &nf)
{
ostringstream err;
err << "OREPHELPER(getContext): не найден контекст " << cname;
if( ulog.warn() )
ulog.warn() << err.str() << endl;
uwarn << err.str() << endl;
throw ORepFailed(err.str());
}
catch(const CosNaming::NamingContext::CannotProceed &np)
......@@ -108,40 +101,33 @@ namespace ORepHelpers
ostringstream err;
err << "OREPHELPER(getContext): catch CannotProced " << cname;
err << " bad part=" << omniURI::nameToString(np.rest_of_name);
if( ulog.is_warn() )
ulog.warn() << err.str() << endl;
uwarn << err.str() << endl;
throw ORepFailed(err.str());
}
catch(CORBA::SystemException& ex)
{
ostringstream err;
err << "OREPHELPER(getContext): поймали CORBA::SystemException: " << ex.NP_minorString();
if( ulog.is_warn() )
ulog.warn() << err.str() << endl;
uwarn << err.str() << endl;
throw ORepFailed(err.str());
}
}
catch(CORBA::Exception&)
{
if( ulog.is_warn() )
ulog.warn() << "OREPHELPER(getContext): поймали CORBA::Exception." << endl;
uwarn << "OREPHELPER(getContext): поймали CORBA::Exception." << endl;
throw ORepFailed();
}
catch(omniORB::fatalException& fe)
{
ostringstream err;
err << "OREPHELPER(getContext): поймали omniORB::fatalException:";
if( ulog.is_warn() )
{
ulog.warn() << err << endl;
ulog.warn() << " file: " << fe.file() << endl;
ulog.warn() << " line: " << fe.line() << endl;
ulog.warn() << " mesg: " << fe.errmsg() << endl;
}
uwarn << err << endl;
uwarn << " file: " << fe.file() << endl;
uwarn << " line: " << fe.line() << endl;
uwarn << " mesg: " << fe.errmsg() << endl;
throw ORepFailed(err.str());
}
if( ulog.is_repository() )
ulog.repository() << "getContext: получили "<< cname << endl;
ulogrep << "getContext: получили "<< cname << endl;
// Если _var
// return CosNaming::NamingContext::_duplicate(ctx);
......@@ -160,8 +146,7 @@ namespace ORepHelpers
{
// cout << "ORepHelpers(getRootNamingContext): nsName->" << nsName << endl;
CORBA::Object_var initServ = orb->resolve_initial_references(nsName.c_str());
if( ulog.is_repository() )
ulog.repository() << "OREPHELP: get rootcontext...(nsName = "<< nsName << ")" <<endl;
ulogrep << "OREPHELP: get rootcontext...(nsName = "<< nsName << ")" <<endl;
rootContext = CosNaming::NamingContext::_narrow(initServ);
if (CORBA::is_nil(rootContext))
......@@ -169,16 +154,14 @@ namespace ORepHelpers
string err("ORepHelpers: Не удалось преобразовать ссылку к нужному типу.");
throw ORepFailed(err.c_str());
}
if( ulog.is_repository() )
ulog.repository() << "OREPHELP: init NameService ok"<< endl;
ulogrep << "OREPHELP: init NameService ok"<< endl;
}
catch(CORBA::ORB::InvalidName& ex)
{
ostringstream err;
err << "ORepHelpers(getRootNamingContext): InvalidName=" << nsName;
if( ulog.is_warn() )
ulog.warn() << err.str() << endl;
uwarn << err.str() << endl;
throw ORepFailed(err.str());
}
catch (CORBA::COMM_FAILURE& ex)
......@@ -198,8 +181,7 @@ namespace ORepHelpers
throw ORepFailed(err);
}
if( ulog.is_repository() )
ulog.repository() << "OREPHELP: get root context ok"<< endl;
ulogrep << "OREPHELP: get root context ok"<< endl;
// // Если создан как _ptr
// return rootContext;
......
......@@ -119,14 +119,9 @@ unsigned int ObjectIndex_XML::read_section( UniXML& xml, const std::string& sec,
{
if( (unsigned)ind >= omap.size() )
{
if( ulog.is_info() )
{
ostringstream msg;
msg << "(ObjectIndex_XML::build): не хватило размера массива maxSize=" << omap.size();
// throw OutOfRange(msg.str());
ulog.warn() << msg.str() << "... Делаем resize + 100\n";
}
uwarn << "(ObjectIndex_XML::build): не хватило размера массива maxSize=" << omap.size()
<< "... Делаем resize + 100" << endl;
omap.resize(omap.size()+100);
}
......@@ -135,7 +130,7 @@ unsigned int ObjectIndex_XML::read_section( UniXML& xml, const std::string& sec,
{
ostringstream msg;
msg << "(ObjectIndex_XML::build):: не нашли параметр RootSection в конф. файле ";
ulog.crit() << msg.str() << endl;
ucrit << msg.str() << endl;
throw SystemError(msg.str());
}
......@@ -144,6 +139,7 @@ unsigned int ObjectIndex_XML::read_section( UniXML& xml, const std::string& sec,
{
ostringstream msg;
msg << "(ObjectIndex_XML::build): не нашли корневого раздела " << sec;
ucrit << msg.str() << endl;
throw NameNotFound(msg.str());
}
......@@ -153,6 +149,7 @@ unsigned int ObjectIndex_XML::read_section( UniXML& xml, const std::string& sec,
{
ostringstream msg;
msg << "(ObjectIndex_XML::build): не удалось перейти к списку элементов " << sec;
ucrit << msg.str() << endl;
throw NameNotFound(msg.str());
}
......@@ -164,6 +161,7 @@ unsigned int ObjectIndex_XML::read_section( UniXML& xml, const std::string& sec,
{
ostringstream msg;
msg << "(ObjectIndex_XML::build): у секции " << sec << " не указано свойство 'name' ";
ucrit << msg.str() << endl;
throw NameNotFound(msg.str());
}
......@@ -173,7 +171,7 @@ unsigned int ObjectIndex_XML::read_section( UniXML& xml, const std::string& sec,
for( ;it.getCurrent(); it.goNext() )
{
omap[ind].id = ind;
// name
const string name(secname + xml.getProp(it,"name"));
delete[] omap[ind].repName;
......@@ -182,7 +180,7 @@ unsigned int ObjectIndex_XML::read_section( UniXML& xml, const std::string& sec,
// mok
mok[name] = ind; // mok[omap[ind].repName] = ind;
// textname
string textname(xml.getProp(it,"textname"));
if( textname.empty() )
......@@ -191,7 +189,7 @@ unsigned int ObjectIndex_XML::read_section( UniXML& xml, const std::string& sec,
delete[] omap[ind].textName;
omap[ind].textName = new char[textname.size()+1];
strcpy( omap[ind].textName, textname.c_str() );
omap[ind].data = (void*)(xmlNode*)it;
// cout << "read: " << "(" << ind << ") " << omap[ind].repName << "\t" << omap[ind].textName << endl;
......@@ -199,14 +197,9 @@ unsigned int ObjectIndex_XML::read_section( UniXML& xml, const std::string& sec,
if( (unsigned)ind >= omap.size() )
{
if( ulog.is_info() )
{
ostringstream msg;
msg << "(ObjectIndex_XML::build): не хватило размера массива maxSize=" << omap.size();
// throw OutOfRange(msg.str());
if( ulog.is_info() )
ulog.info() << msg.str() << "... Делаем resize + 100\n";
}
uinfo << "(ObjectIndex_XML::build): не хватило размера массива maxSize=" << omap.size()
<< "... Делаем resize + 100" << endl;
omap.resize(omap.size()+100);
}
}
......@@ -220,8 +213,7 @@ unsigned int ObjectIndex_XML::read_nodes( UniXML& xml, const std::string& sec, u
{
ostringstream msg;
msg << "(ObjectIndex_XML::build): не хватило размера массива maxSize=" << omap.size();
// throw OutOfRange(msg.str());
ulog.warn() << msg.str() << "... Делаем resize + 100\n";
uinfo << msg.str() << "... Делаем resize + 100\n";
omap.resize(omap.size()+100);
}
......@@ -276,8 +268,7 @@ unsigned int ObjectIndex_XML::read_nodes( UniXML& xml, const std::string& sec, u
{
ostringstream msg;
msg << "(ObjectIndex_XML::build): не хватило размера массива maxSize=" << omap.size();
// throw OutOfRange(msg.str());
ulog.warn() << msg.str() << "... Делаем resize + 100\n";
uwarn << msg.str() << "... Делаем resize + 100" << endl;
omap.resize(omap.size()+100);
}
}
......
......@@ -93,7 +93,7 @@ void ObjectIndex_idXML::read_section( UniXML& xml, const std::string& sec )
{
ostringstream msg;
msg << "(ObjectIndex_idXML::build):: не нашли параметр RootSection в конф. файле ";
ulog.crit() << msg.str() << endl;
ucrit << msg.str() << endl;
throw SystemError(msg.str());
}
......
......@@ -98,8 +98,7 @@ void ObjectRepository::registration(const string& name, const ObjectPtr oRef, co
{
ostringstream err;
if( ulog.is_info() )
ulog.info() << "ObjectRepository(registration): регистрируем " << name << endl;
uinfo << "ObjectRepository(registration): регистрируем " << name << endl;
// Проверка корректности имени
char bad = ORepHelpers::checkBadSymbols(name);
......@@ -118,28 +117,26 @@ void ObjectRepository::registration(const string& name, const ObjectPtr oRef, co
try
{
// Добавляем в репозиторий новую ссылку (заменяя если есть старую)
CORBA::ORB_var orb = uconf->getORB();
ctx = ORepHelpers::getContext(orb, section, nsName);
ctx->bind(oName, oRef);
return;
}
catch(const CosNaming::NamingContext::AlreadyBound &nf)
{
if( ulog.is_warn() )
ulog.warn() << "(registration): "<< name <<" уже зарегестрирован в "<< section << "!!!" << endl;
uwarn << "(registration): "<< name <<" уже зарегестрирован в "<< section << "!!!" << endl;
if( !force )
throw ObjectNameAlready();
// разрегистриуем, перед повтроной попыткой
ctx->unbind(oName);
continue;
}
catch(ORepFailed)
{
string er("ObjectRepository(registrartion): (getContext) не смог зарегистрировать "+name);
string er("ObjectRepository(registrartion): (getContext) не смог зарегистрировать "+name);
throw ORepFailed(er.c_str());
}
catch(CosNaming::NamingContext::NotFound)
......@@ -157,18 +154,13 @@ void ObjectRepository::registration(const string& name, const ObjectPtr oRef, co
}
catch(CORBA::SystemException& ex)
{
if( ulog.is_warn() )
ulog.warn() << "ObjectRepository(registrartion): поймали CORBA::SystemException: "
uwarn << "ObjectRepository(registrartion): поймали CORBA::SystemException: "
<< ex.NP_minorString() << endl;
err << "ObjectRepository(registrartion): поймали CORBA::SystemException: " << ex.NP_minorString();
}
// catch(...)
// {
// ulog.warn() << "поймали что-то неизвестное..."<< endl;
// }
}
throw ORepFailed(err.str().c_str());
}
// --------------------------------------------------------------------------
......@@ -203,23 +195,16 @@ void ObjectRepository::registration( const std::string& fullName, const UniSetTy
void ObjectRepository::unregistration(const string& name, const string& section)
throw(ORepFailed, NameNotFound)
{
// ulog.info() << "OREP: unregistration "<< name << " из "<< section << endl;
ostringstream err;
CosNaming::Name_var oName = omniURI::stringToName(name.c_str());
// ulog.info() << "OREP: string to name ok"<< endl;
CosNaming::NamingContext_var ctx;
CORBA::ORB_var orb = uconf->getORB();
ctx = ORepHelpers::getContext(orb, section, nsName);
// ulog.info() << "OREP: get context " << section <<" ok"<< endl;
try
{
// Удаляем запись об объекте
ctx->unbind(oName);
// ulog.info() << "OREP: ok" << endl;
return;
}
catch(const CosNaming::NamingContext::NotFound &nf)
......@@ -344,7 +329,6 @@ bool ObjectRepository::listSections(const string& in_section, ListObjectName *ls
bool ObjectRepository::list(const string& section, ListObjectName *ls, unsigned int how_many, ObjectType type)
{
// Возвращает false если вынут не весь список...
// ulog.info() << "получаем список из "<< section << endl;
CosNaming::NamingContext_var ctx;
try
{
......@@ -353,17 +337,16 @@ bool ObjectRepository::list(const string& section, ListObjectName *ls, unsigned
}
catch(ORepFailed)
{
ulog.warn() << "ORepository(list): не смог получить ссылку на "<< section << endl;
uwarn << "ORepository(list): не смог получить ссылку на "<< section << endl;
throw;
// return false;
}
if( CORBA::is_nil(ctx) )
{
ulog.warn() << "ORepository(list): не смог получить ссылку на "<< section << endl;
uwarn << "ORepository(list): не смог получить ссылку на "<< section << endl;
throw ORepFailed();
}
CosNaming::BindingList_var bl;
CosNaming::BindingIterator_var bi;
ctx->list(how_many,bl,bi);
......@@ -435,10 +418,10 @@ bool ObjectRepository::isExist( ObjectPtr oref )
catch(CORBA::Exception&){}
catch(omniORB::fatalException& fe)
{
ulog.warn() << "ObjectRepository(isExist): "<< "поймали omniORB::fatalException:" << endl;
ulog.warn() << " file: " << fe.file() << endl;
ulog.warn() << " line: " << fe.line() << endl;
ulog.warn() << " mesg: " << fe.errmsg() << endl;
uwarn << "ObjectRepository(isExist): "<< "поймали omniORB::fatalException:" << endl;
uwarn << " file: " << fe.file() << endl;
uwarn << " line: " << fe.line() << endl;
uwarn << " mesg: " << fe.errmsg() << endl;
}
catch(...){}
......
......@@ -64,14 +64,13 @@ bool ObjectRepositoryFactory::createSection( const char* name, const char* in_se
throw ( InvalidObjectName(err.str().c_str()) );
}
ulog.repository() << "CreateSection: name = "<< name << " in section = " << in_section << endl;
ulogrep << "CreateSection: name = "<< name << " in section = " << in_section << endl;
if( sizeof(in_section)==0 )
{
if( ulog.repository() )
ulog.repository() << "CreateSection: in_section=0"<< endl;
ulogrep << "CreateSection: in_section=0"<< endl;
return createRootSection(name);
}
int argc(uconf->getArgc());
const char * const* argv(uconf->getArgv());
CosNaming::NamingContext_var ctx = ORepHelpers::getContext(in_section, argc, argv, uconf->getNSName() );
......@@ -93,16 +92,13 @@ bool ObjectRepositoryFactory::createSectionF(const string& fullName)throw(ORepFa
string name(ObjectIndex::getBaseName(fullName));
string sec(ORepHelpers::getSectionName(fullName));
ulog.repository() << name << endl;
ulog.repository() << sec << endl;
ulogrep << name << endl;
ulogrep << sec << endl;
if ( sec.empty() )
{
if( ulog.repository() )
{
ulog.repository() << "SectionName is empty!!!"<< endl;
ulog.repository() << "Добавляем в "<< uconf->getRootSection() << endl;
}
ulogrep << "SectionName is empty!!!"<< endl;
ulogrep << "Добавляем в "<< uconf->getRootSection() << endl;
return createSection(name, uconf->getRootSection());
}
else
......@@ -129,59 +125,48 @@ bool ObjectRepositoryFactory::createContext(const char *cname, CosNaming::Naming
CosNaming::Name_var nc = omniURI::stringToName(cname);
try
{
if( ulog.repository() )
ulog.repository() << "ORepFactory(createContext): создаю новый контекст "<< cname << endl;
ulogrep << "ORepFactory(createContext): создаю новый контекст "<< cname << endl;
ctx->bind_new_context(nc);
if( ulog.repository() )
ulog.repository() << "ORepFactory(createContext): создал. " << endl;
ulogrep << "ORepFactory(createContext): создал. " << endl;
return true;
}
catch(const CosNaming::NamingContext::AlreadyBound &ab)
{
// ctx->resolve(nc);
if( ulog.repository() )
ulog.repository() <<"ORepFactory(createContext): context "<< cname << " уже есть"<< endl;
ulogrep << "ORepFactory(createContext): context "<< cname << " уже есть"<< endl;
return true;
}
catch(CosNaming::NamingContext::NotFound)
{
if( ulog.repository() )
ulog.repository() <<"ORepFactory(createContext): NotFound "<< cname << endl;
ulogrep << "ORepFactory(createContext): NotFound "<< cname << endl;
throw NameNotFound();
}
catch(const CosNaming::NamingContext::InvalidName &nf)
{
if( ulog.is_warn() )
ulog.warn() << "ORepFactory(createContext): (InvalidName) " << cname;
uwarn << "ORepFactory(createContext): (InvalidName) " << cname;
}
catch(const CosNaming::NamingContext::CannotProceed &cp)
{
if( ulog.is_crit() )
ulog.warn() << "ORepFactory(createContext): catch CannotProced "
uwarn << "ORepFactory(createContext): catch CannotProced "
<< cname << " bad part="
<< omniURI::nameToString(cp.rest_of_name);
throw NameNotFound();
}
catch( CORBA::SystemException& ex)
{
if( ulog.is_crit() )
ulog.crit() << "ORepFactory(createContext): CORBA::SystemException: "
<< ex.NP_minorString() << endl;
ucrit << "ORepFactory(createContext): CORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(CORBA::Exception&)
{
if( ulog.is_crit() )
ulog.crit() << "поймали CORBA::Exception." << endl;
ucrit << "поймали CORBA::Exception." << endl;
}
catch(omniORB::fatalException& fe)
{
if( ulog.is_crit() )
{
ulog.crit() << "поймали omniORB::fatalException:" << endl;
ulog.crit() << " file: " << fe.file() << endl;
ulog.crit() << " line: " << fe.line() << endl;
ulog.crit() << " mesg: " << fe.errmsg() << endl;
}
ucrit << "поймали omniORB::fatalException:" << endl;
ucrit << " file: " << fe.file() << endl;
ucrit << " line: " << fe.line() << endl;
ucrit << " mesg: " << fe.errmsg() << endl;
}
return false;
......@@ -264,22 +249,22 @@ bool ObjectRepositoryFactory::removeSection(const string& fullName, bool recursi
}
else if( bl[i].binding_type == CosNaming::ncontext)
{
if( recursive )
{
ulog.repository() << "ORepFactory: удаляем рекурсивно..." << endl;
ulogrep << "ORepFactory: удаляем рекурсивно..." << endl;
string rctx = fullName+"/"+omniURI::nameToString(bl[i].binding_name);
ulog.repository() << rctx << endl;
ulogrep << rctx << endl;
if ( !removeSection(rctx))
{
ulog.repository() << "рекурсивно удалить не удалось" << endl;
ulogrep << "рекурсивно удалить не удалось" << endl;
rem = false;
}
}
else
{
ulog.repository() << "ORepFactory: " << omniURI::nameToString(bl[i].binding_name) << " - контекст!!! ";
ulog.repository() << "ORepFactory: пока не удаляем" << endl;
ulogrep << "ORepFactory: " << omniURI::nameToString(bl[i].binding_name) << " - контекст!!! ";
ulogrep << "ORepFactory: пока не удаляем" << endl;
rem = false;
}
}
......@@ -305,17 +290,17 @@ bool ObjectRepositoryFactory::removeSection(const string& fullName, bool recursi
}
catch(const CosNaming::NamingContext::NotEmpty &ne)
{
ulog.repository() << "ORepFactory: контекст" << fullName << " не пустой " << endl;
rem = false;
ulogrep << "ORepFactory: контекст" << fullName << " не пустой " << endl;
rem = false;
}
catch( ORepFailed )
{
ulog.repository() << "ORepFactory: не удаось получить ссылку на контекст " << in_sec << endl;
ulogrep << "ORepFactory: не удаось получить ссылку на контекст " << in_sec << endl;
rem=false;
}
}
bi->destroy(); // ??
return rem;
}
......@@ -335,9 +320,7 @@ bool ObjectRepositoryFactory::renameSection( const string& newFName, const strin
string in_sec(ORepHelpers::getSectionName(newFName));
try
{
// ulog.repository() << "ORepFactory: в контексте "<< in_sec << endl;
// ulog.repository() << "ORepFactory: переименовываем " << oldFName << " в " << newFName << endl;
{
int argc(uconf->getArgc());
const char * const* argv(uconf->getArgv());
CosNaming::NamingContext_var in_ctx = ORepHelpers::getContext(in_sec, argc, argv, nsName);
......
......@@ -21,13 +21,13 @@
* \author Pavel Vainerman
*/
// --------------------------------------------------------------------------
#include <iomanip>
#include "ProxyManager.h"
#include "PassiveObject.h"
#include "ORepHelpers.h"
#include "Configuration.h"
// ------------------------------------------------------------------------------------------
using namespace std;
using namespace UniSetTypes;
// ------------------------------------------------------------------------------------------
PassiveObject::PassiveObject():
......@@ -117,14 +117,12 @@ void PassiveObject::processingMessage( UniSetTypes::VoidMessage* msg )
}
default:
//ulog.warn() << myname << ": неизвестное сообщение " << msg->type << endl;
break;
}
}
}
catch(Exception& ex)
catch( Exception& ex )
{
// ulog.warn()
// cerr << myname << "(processingMessage): " << ex << endl;
uwarn << myname << "(processingMessage): " << ex << endl;
}
}
// -------------------------------------------------------------------------
......@@ -135,8 +133,8 @@ void PassiveObject::sysCommand( SystemMessage *sm )
case SystemMessage::StartUp:
askSensors(UniversalIO::UIONotify);
break;
case SystemMessage::FoldUp:
case SystemMessage::FoldUp:
case SystemMessage::Finish:
askSensors(UniversalIO::UIODontNotify);
break;
......
......@@ -48,12 +48,12 @@ void ProxyManager::attachObject( PassiveObject* po, UniSetTypes::ObjectId id )
{
if( id == DefaultObjectId )
{
ulog.warn() << myname << "(attachObject): попытка добавить объект с id="
uwarn << myname << "(attachObject): попытка добавить объект с id="
<< DefaultObjectId << " PassiveObject=" << po->getName() << endl;
return;
}
PObjectMap::iterator it = omap.find(id);
if( it==omap.end() )
omap.insert(PObjectMap::value_type(id,po));
......@@ -81,36 +81,31 @@ bool ProxyManager::activateObject()
{
try
{
if( ulog.is_info() )
{
ulog.info() << myname << "(registered): попытка "
<< i+1 << " регистриую (id=" << it->first << ") "
<< " (pname=" << it->second->getName() << ") "
<< conf->oind->getNameById(it->first) << endl;
}
uinfo << myname << "(registered): попытка "
<< i+1 << " регистриую (id=" << it->first << ") "
<< " (pname=" << it->second->getName() << ") "
<< conf->oind->getNameById(it->first) << endl;
ui.registered(it->first, getRef(),true);
break;
}
catch( UniSetTypes::ObjectNameAlready& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(registered): СПЕРВА РАЗРЕГИСТРИРУЮ (ObjectNameAlready)" << endl;
{
ucrit << myname << "(registered): СПЕРВА РАЗРЕГИСТРИРУЮ (ObjectNameAlready)" << endl;
try
{
ui.unregister(it->first);
}
catch(Exception & ex)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(unregistered): " << ex << endl;
ucrit << myname << "(unregistered): " << ex << endl;
}
}
}
}
catch( Exception& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(activate): " << ex << endl;
ucrit << myname << "(activate): " << ex << endl;
}
}
......@@ -127,11 +122,10 @@ bool ProxyManager::disactivateObject()
}
catch(Exception& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(activate): " << ex << endl;
ucrit << myname << "(activate): " << ex << endl;
}
}
return UniSetObject::disactivateObject();
}
// -------------------------------------------------------------------------
......@@ -144,25 +138,22 @@ void ProxyManager::processingMessage( UniSetTypes::VoidMessage *msg )
case Message::SysCommand:
allMessage(msg);
break;
default:
{
PObjectMap::iterator it = omap.find(msg->consumer);
if( it!=omap.end() )
it->second->processingMessage(msg);
else if( ulog.is_crit() )
{
ulog.crit() << myname << "(processingMessage): не найден объект "
else
ucrit << myname << "(processingMessage): не найден объект "
<< " consumer= " << msg->consumer << endl;
}
}
break;
}
}
catch( Exception& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(processingMessage): " << ex << endl;
{
ucrit << myname << "(processingMessage): " << ex << endl;
}
}
// -------------------------------------------------------------------------
......@@ -175,9 +166,8 @@ void ProxyManager::allMessage( UniSetTypes::VoidMessage* msg )
it->second->processingMessage(msg);
}
catch( Exception& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(allMessage): " << ex << endl;
{
ucrit << myname << "(allMessage): " << ex << endl;
}
}
}
......
......@@ -105,7 +105,7 @@ void UniSetActivator::init()
poa = root_poa->create_POA("my poa", pman, pl);
if( CORBA::is_nil(poa) )
ulog.crit() << myname << "(init): init poa failed!!!" << endl;
ucrit << myname << "(init): init poa failed!!!" << endl;
gActivator=this;
atexit( UniSetActivator::normalexit );
......@@ -118,7 +118,7 @@ UniSetActivator::~UniSetActivator()
{
if(!procterm )
{
ulog.system() << myname << "(destructor): ..."<< endl << flush;
ulogsys << myname << "(destructor): ..."<< endl << flush;
if( !omDestroy )
oaDestroy();
......@@ -139,11 +139,11 @@ void UniSetActivator::oaDestroy(int signo)
if( !omDestroy )
{
omDestroy = true;
ulog.system() << myname << "(oaDestroy): begin..."<< endl;
ulogsys << myname << "(oaDestroy): begin..."<< endl;
ulog.system() << myname << "(oaDestroy): terminate... " << endl;
ulogsys << myname << "(oaDestroy): terminate... " << endl;
term(signo);
ulog.system() << myname << "(oaDestroy): terminate ok. " << endl;
ulogsys << myname << "(oaDestroy): terminate ok. " << endl;
try
{
......@@ -151,19 +151,18 @@ void UniSetActivator::oaDestroy(int signo)
}
catch(...){}
ulog.system() << myname << "(oaDestroy): pman deactivate... " << endl;
ulogsys << myname << "(oaDestroy): pman deactivate... " << endl;
pman->deactivate(false,true);
ulog.system() << myname << "(oaDestroy): pman deactivate ok. " << endl;
ulogsys << myname << "(oaDestroy): pman deactivate ok. " << endl;
ulog.system() << myname << "(oaDestroy): orb destroy... " << endl;
ulogsys << myname << "(oaDestroy): orb destroy... " << endl;
try
{
orb->destroy();
}
catch(...){}
if( ulog.is_system() )
ulog.system() << myname << "(oaDestroy): orb destroy ok."<< endl;
ulogsys << myname << "(oaDestroy): orb destroy ok."<< endl;
if( orbthr )
{
......@@ -186,40 +185,37 @@ void UniSetActivator::oaDestroy(int signo)
*/
void UniSetActivator::run(bool thread)
{
if( ulog.is_system() )
ulog.system() << myname << "(run): создаю менеджер "<< endl;
ulogsys << myname << "(run): создаю менеджер "<< endl;
UniSetManager::initPOA(this);
if( getId() == UniSetTypes::DefaultObjectId )
offThread(); // отключение потока обработки сообщений, раз не задан ObjectId
UniSetManager::activate(); // а там вызывается активация всех подчиненных объектов и менеджеров
getinfo(); // заполнение информации об объектах
active=true;
ulog.system() << myname << "(run): активизируем менеджер"<<endl;
ulogsys << myname << "(run): активизируем менеджер"<<endl;
pman->activate();
msleep(50);
set_signals(true);
if( thread )
{
if( ulog.is_info() )
ulog.info() << myname << "(run): запускаемся с созданием отдельного потока... "<< endl;
uinfo << myname << "(run): запускаемся с созданием отдельного потока... "<< endl;
orbthr = new ThreadCreator<UniSetActivator>(this, &UniSetActivator::work);
int ret = orbthr->start();
if( ret !=0 )
{
ulog.crit() << myname << "(run): НЕ СМОГЛИ СОЗДАТЬ ORB-поток"<<endl;
ucrit << myname << "(run): НЕ СМОГЛИ СОЗДАТЬ ORB-поток"<<endl;
throw SystemError("(UniSetActivator::run): CREATE ORB THREAD FAILED");
}
}
}
else
{
if( ulog.is_info() )
ulog.info() << myname << "(run): запускаемся без создания отдельного потока... "<< endl;
uinfo << myname << "(run): запускаемся без создания отдельного потока... "<< endl;
work();
}
}
......@@ -233,35 +229,28 @@ void UniSetActivator::stop()
// uniset_mutex_lock l(disactivateMutex, 500);
if( active )
{
active=false;
if( ulog.is_system() )
ulog.system() << myname << "(stop): disactivate... "<< endl;
active=false;
ulogsys << myname << "(stop): disactivate... "<< endl;
disactivate();
if( ulog.is_system() )
{
ulog.system() << myname << "(stop): disactivate ok. "<<endl;
ulog.system() << myname << "(stop): discard request..."<< endl;
}
ulogsys << myname << "(stop): disactivate ok. "<<endl;
ulogsys << myname << "(stop): discard request..."<< endl;
pman->discard_requests(true);
if( ulog.is_system() )
ulog.system() << myname << "(stop): discard request ok."<< endl;
ulogsys << myname << "(stop): discard request ok."<< endl;
/*
try
{
if( ulog.is_system() )
ulog.system() << myname << "(stop):: shutdown orb... "<<endl;
ulogsys << myname << "(stop):: shutdown orb... "<<endl;
orb->shutdown(false);
}
catch(...){}
if( ulog.is_system() )
ulog.system() << myname << "(stop): shutdown ok."<< endl;
ulogsys << myname << "(stop): shutdown ok."<< endl;
*/
}
}
......@@ -270,8 +259,7 @@ void UniSetActivator::stop()
void UniSetActivator::work()
{
if( ulog.is_system() )
ulog.system() << myname << "(work): запускаем orb на обработку запросов..."<< endl;
ulogsys << myname << "(work): запускаем orb на обработку запросов..."<< endl;
try
{
if(orbthr)
......@@ -283,42 +271,35 @@ void UniSetActivator::work()
}
catch(CORBA::SystemException& ex)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(work): поймали CORBA::SystemException: " << ex.NP_minorString() << endl;
ucrit << myname << "(work): поймали CORBA::SystemException: " << ex.NP_minorString() << endl;
}
catch(CORBA::Exception& ex)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(work): поймали CORBA::Exception." << endl;
ucrit << myname << "(work): поймали CORBA::Exception." << endl;
}
catch(omniORB::fatalException& fe)
{
if( ulog.is_crit() )
{
ulog.crit() << myname << "(work): : поймали omniORB::fatalException:" << endl;
ulog.crit() << myname << "(work): file: " << fe.file() << endl;
ulog.crit() << myname << "(work): line: " << fe.line() << endl;
ulog.crit() << myname << "(work): mesg: " << fe.errmsg() << endl;
}
ucrit << myname << "(work): : поймали omniORB::fatalException:" << endl;
ucrit << myname << "(work): file: " << fe.file() << endl;
ucrit << myname << "(work): line: " << fe.line() << endl;
ucrit << myname << "(work): mesg: " << fe.errmsg() << endl;
}
catch(...)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(work): catch ..." << endl;
ucrit << myname << "(work): catch ..." << endl;
}
if( ulog.is_system() )
ulog.system() << myname << "(work): orb стоп!!!"<< endl;
ulogsys << myname << "(work): orb стоп!!!"<< endl;
/*
ulog.system() << myname << "(oaDestroy): orb destroy... " << endl;
ulogsys << myname << "(oaDestroy): orb destroy... " << endl;
try
{
orb->destroy();
}
catch(...){}
ulog.system() << myname << "(oaDestroy): orb destroy ok."<< endl;
*/
ulogsys << myname << "(oaDestroy): orb destroy ok."<< endl;
*/
}
// ------------------------------------------------------------------------------------------
void UniSetActivator::getinfo()
......@@ -361,8 +342,7 @@ void UniSetActivator::processingMessage( UniSetTypes::VoidMessage *msg )
}
catch(Exception& ex)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(processingMessage): " << ex << endl;
ucrit << myname << "(processingMessage): " << ex << endl;
}
}
......@@ -373,8 +353,7 @@ void UniSetActivator::sysCommand( UniSetTypes::SystemMessage *sm )
{
case SystemMessage::LogRotate:
{
if( ulog.is_system() )
ulog.system() << myname << "(sysCommand): logRotate" << endl;
ulogsys << myname << "(sysCommand): logRotate" << endl;
// переоткрываем логи
string fname = ulog.getLogFile();
if( !fname.empty() )
......@@ -391,7 +370,7 @@ void UniSetActivator::sysCommand( UniSetTypes::SystemMessage *sm )
/*
void UniSetActivator::sig_child(int signo)
{
ulog.system() << gActivator->getName() << "(sig_child): дочерний процесс закончил работу...(sig=" << signo << ")" << endl;
ulogsys << gActivator->getName() << "(sig_child): дочерний процесс закончил работу...(sig=" << signo << ")" << endl;
while( waitpid(-1, 0, WNOHANG) > 0);
}
*/
......@@ -434,13 +413,12 @@ void UniSetActivator::finishterm( int signo )
{
if( !doneterm )
{
if( ulog.is_system() && gActivator )
ulog.system() << gActivator->getName()
ulogsys << ( gActivator ? gActivator->getName() : "" )
<< "(finishterm): прерываем процесс завершения...!" << endl<< flush;
if( gActivator )
gActivator->set_signals(false);
sigset(SIGALRM, SIG_DFL);
doneterm = 1;
raise(SIGKILL);
......@@ -458,25 +436,25 @@ void UniSetActivator::terminated( int signo )
uniset_rwmutex_wrlock l(signalMutex); //, TERMINATE_TIMEOUT*1000);
if( !procterm )
{
procterm = 1;
procterm = 1;
SIGNO = signo;
MYPID = getpid();
if( ulog.is_system() && gActivator )
{
ulog.system() << gActivator->getName() << "(terminated): catch SIGNO="<< signo << "("<< strsignal(signo) <<")"<< endl << flush;
ulog.system() << gActivator->getName() << "(terminated): устанавливаем timer завершения на "
<< TERMINATE_TIMEOUT << " сек " << endl << flush;
}
ulogsys << ( gActivator ? gActivator->getName() : "" ) << "(terminated): catch SIGNO="<< signo << "("
<< strsignal(signo) <<")"<< endl << flush
<< ( gActivator ? gActivator->getName() : "" ) << "(terminated): устанавливаем timer завершения на "
<< TERMINATE_TIMEOUT << " сек " << endl << flush;
sighold(SIGALRM);
sigset(SIGALRM, UniSetActivator::finishterm);
alarm(TERMINATE_TIMEOUT);
sigrelse(SIGALRM);
sigrelse(SIGALRM);
if( gActivator )
gActivator->oaDestroy(SIGNO); // gActivator->term(SIGNO);
doneterm = 1;
if( ulog.is_system() )
ulog.system() << gActivator->getName() << "(terminated): завершаемся..."<< endl<< flush;
ulogsys << ( gActivator ? gActivator->getName() : "" ) << "(terminated): завершаемся..."<< endl<< flush;
if( gActivator )
UniSetActivator::set_signals(false);
......@@ -489,45 +467,41 @@ void UniSetActivator::terminated( int signo )
void UniSetActivator::normalexit()
{
if( gActivator && ulog.is_system() )
ulog.system() << gActivator->getName() << "(default exit): good bye."<< endl << flush;
if( gActivator )
ulogsys << gActivator->getName() << "(default exit): good bye."<< endl << flush;
}
void UniSetActivator::normalterminate()
{
if( gActivator )
ulog.crit() << gActivator->getName() << "(default exception terminate): Никто не выловил исключение!!! Good bye."<< endl<< flush;
ucrit << gActivator->getName() << "(default exception terminate): Никто не выловил исключение!!! Good bye."<< endl<< flush;
// abort();
}
// ------------------------------------------------------------------------------------------
void UniSetActivator::term( int signo )
{
if( ulog.is_system() )
ulog.system() << myname << "(term): TERM" << endl;
ulogsys << myname << "(term): TERM" << endl;
if( doneterm )
return;
if( signo )
sig = true;
try
{
if( ulog.is_system() )
ulog.system() << myname << "(term): вызываем sigterm()" << endl;
ulogsys << myname << "(term): вызываем sigterm()" << endl;
sigterm(signo);
if( ulog.is_system() )
ulog.system() << myname << "(term): sigterm() ok." << endl;
ulogsys << myname << "(term): sigterm() ok." << endl;
}
catch(Exception& ex)
{
ulog.crit() << myname << "(term): " << ex << endl;
ucrit << myname << "(term): " << ex << endl;
}
catch(...){}
if( ulog.is_system() )
ulog.system() << myname << "(term): END TERM" << endl;
ulogsys << myname << "(term): END TERM" << endl;
}
// ------------------------------------------------------------------------------------------
void UniSetActivator::waitDestroy()
......
......@@ -137,12 +137,12 @@ void UniSetManager::initPOA( UniSetManager* rmngr )
poa = rmngr->getPOA();
if( CORBA::is_nil(poa) )
ulog.crit() << myname << "(initPOA): failed init poa " << endl;
ucrit << myname << "(initPOA): failed init poa " << endl;
// Инициализация самого менеджера и его подобъектов
UniSetObject::init(rmngr);
objects(initial);
managers(initial);
objects(initial);
managers(initial);
}
// ------------------------------------------------------------------------------------------
bool UniSetManager::addObject( UniSetObject *obj )
......@@ -152,9 +152,8 @@ bool UniSetManager::addObject( UniSetObject *obj )
ObjectsList::iterator li=find(olist.begin(),olist.end(), obj);
if( li==olist.end() )
{
if( ulog.is_info() )
ulog.info() << myname << "(activator): добавляем объект "<< obj->getName()<< endl;
olist.push_back(obj);
uinfo << myname << "(activator): добавляем объект "<< obj->getName()<< endl;
olist.push_back(obj);
}
} // unlock
return true;
......@@ -168,37 +167,36 @@ bool UniSetManager::removeObject(UniSetObject* obj)
ObjectsList::iterator li=find(olist.begin(),olist.end(), obj);
if( li!=olist.end() )
{
if( ulog.is_info() )
ulog.info() << myname << "(activator): удаляем объект "<< obj->getName()<< endl;
uinfo << myname << "(activator): удаляем объект "<< obj->getName()<< endl;
try
{
obj->disactivate();
}
catch(Exception& ex)
{
ulog.warn() << myname << "(removeObject): " << ex << endl;
uwarn << myname << "(removeObject): " << ex << endl;
}
catch(CORBA::SystemException& ex)
{
ulog.warn() << myname << "(removeObject): поймали CORBA::SystemException: " << ex.NP_minorString() << endl;
uwarn << myname << "(removeObject): поймали CORBA::SystemException: " << ex.NP_minorString() << endl;
}
catch(CORBA::Exception& ex)
{
ulog.warn() << myname << "(removeObject): CORBA::Exception" << endl;
uwarn << myname << "(removeObject): CORBA::Exception" << endl;
}
catch( omniORB::fatalException& fe )
{
ulog.crit() << myname << "(managers): Caught omniORB::fatalException:" << endl;
ulog.crit() << myname << "(managers): file: " << fe.file()
ucrit << myname << "(managers): Caught omniORB::fatalException:" << endl;
ucrit << myname << "(managers): file: " << fe.file()
<< " line: " << fe.line()
<< " mesg: " << fe.errmsg() << endl;
}
}
catch(...){}
olist.erase(li);
}
} // unlock
} // unlock
return true;
}
......@@ -208,8 +206,7 @@ bool UniSetManager::removeObject(UniSetObject* obj)
*/
void UniSetManager::managers(OManagerCommand cmd)
{
if( ulog.is_info() )
ulog.info() << myname <<"(managers): mlist.size="
uinfo << myname <<"(managers): mlist.size="
<< mlist.size() << " cmd=" << cmd << endl;
{ //lock
uniset_rwmutex_rlock lock(mlistMutex);
......@@ -241,32 +238,24 @@ void UniSetManager::managers(OManagerCommand cmd)
}
catch( Exception& ex )
{
if( ulog.is_crit() )
{
ulog.crit() << myname << "(managers): " << ex << endl;
ulog.crit() << myname << "(managers): не смог зарегистрировать (разрегистрировать) объект -->"<< (*li)->getName() << endl;
}
ucrit << myname << "(managers): " << ex << endl
<< " Не смог зарегистрировать (разрегистрировать) объект -->"<< (*li)->getName() << endl;
}
catch(CORBA::SystemException& ex)
catch( CORBA::SystemException& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(managers): поймали CORBA::SystemException:" << ex.NP_minorString() << endl;
ucrit << myname << "(managers): поймали CORBA::SystemException:" << ex.NP_minorString() << endl;
}
catch( CORBA::Exception& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(managers): Caught CORBA::Exception. " << ex._name() << endl;
ucrit << myname << "(managers): Caught CORBA::Exception. " << ex._name() << endl;
}
catch( omniORB::fatalException& fe )
catch( omniORB::fatalException& fe )
{
if( ulog.is_crit() )
{
ulog.crit() << myname << "(managers): Caught omniORB::fatalException:" << endl;
ulog.crit() << myname << "(managers): file: " << fe.file()
<< " line: " << fe.line()
<< " mesg: " << fe.errmsg() << endl;
}
}
ucrit << myname << "(managers): Caught omniORB::fatalException:" << endl;
ucrit << myname << "(managers): file: " << fe.file()
<< " line: " << fe.line()
<< " mesg: " << fe.errmsg() << endl;
}
}
} // unlock
}
......@@ -276,8 +265,7 @@ void UniSetManager::managers(OManagerCommand cmd)
*/
void UniSetManager::objects(OManagerCommand cmd)
{
if( ulog.is_info() )
ulog.info() << myname <<"(objects): olist.size="
uinfo << myname <<"(objects): olist.size="
<< olist.size() << " cmd=" << cmd << endl;
{ //lock
uniset_rwmutex_rlock lock(olistMutex);
......@@ -303,41 +291,33 @@ void UniSetManager::objects(OManagerCommand cmd)
case term:
(*li)->sigterm(sig);
break;
default:
break;
}
}
catch( Exception& ex )
{
if( ulog.is_crit() )
{
ulog.crit() << myname << "(objects): " << ex << endl;
ulog.crit() << myname << "(objects): не смог зарегистрировать (разрегистрировать) объект -->"<< (*li)->getName() << endl;
}
ucrit << myname << "(objects): " << ex << endl;
ucrit << myname << "(objects): не смог зарегистрировать (разрегистрировать) объект -->"<< (*li)->getName() << endl;
}
catch(CORBA::SystemException& ex)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(objects): поймали CORBA::SystemException:" << ex.NP_minorString() << endl;
ucrit << myname << "(objects): поймали CORBA::SystemException:" << ex.NP_minorString() << endl;
}
catch( CORBA::Exception& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(objects): Caught CORBA::Exception. "
<< ex._name()
<< " (" << (*li)->getName() << ")" << endl;
ucrit << myname << "(objects): Caught CORBA::Exception. "
<< ex._name()
<< " (" << (*li)->getName() << ")" << endl;
}
catch( omniORB::fatalException& fe )
{
if( ulog.is_crit() )
{
ulog.crit() << myname << "(objects): Caught omniORB::fatalException:" << endl;
ulog.crit() << myname << "(objects): file: " << fe.file()
<< " line: " << fe.line()
<< " mesg: " << fe.errmsg() << endl;
}
}
ucrit << myname << "(objects): Caught omniORB::fatalException:" << endl;
ucrit << myname << "(objects): file: " << fe.file()
<< " line: " << fe.line()
<< " mesg: " << fe.errmsg() << endl;
}
}
} // unlock
}
......@@ -348,8 +328,7 @@ void UniSetManager::objects(OManagerCommand cmd)
*/
bool UniSetManager::activateObject()
{
if( ulog.is_info() )
ulog.info() << myname << "(activateObjects): активизирую объекты"<< endl;
uinfo << myname << "(activateObjects): активизирую объекты"<< endl;
UniSetObject::activateObject();
managers(activ);
objects(activ);
......@@ -362,8 +341,7 @@ bool UniSetManager::activateObject()
*/
bool UniSetManager::disactivateObject()
{
if( ulog.is_info() )
ulog.info() << myname << "(disactivateObjects): деактивизирую объекты"<< endl;
uinfo << myname << "(disactivateObjects): деактивизирую объекты"<< endl;
// именно в такой последовательности!
objects(deactiv);
managers(deactiv);
......@@ -372,7 +350,6 @@ bool UniSetManager::disactivateObject()
// ------------------------------------------------------------------------------------------
void UniSetManager::sigterm( int signo )
{
// ulog.info() << "UniSetActivator: default processing signo="<< signo << endl;
sig=signo;
objects(term);
managers(term);
......@@ -409,13 +386,12 @@ bool UniSetManager::addManager( UniSetManager *child )
if(it == mlist.end() )
{
mlist.push_back( child );
if( ulog.is_info() )
ulog.info() << myname << ": добавляем менеджер "<< child->getName()<< endl;
uinfo << myname << ": добавляем менеджер "<< child->getName()<< endl;
}
else if( ulog.is_warn() )
ulog.warn() << myname << ": попытка повторного добавления объекта "<< child->getName() << endl;
} // unlock
else
uwarn << myname << ": попытка повторного добавления объекта "<< child->getName() << endl;
} // unlock
return true;
}
......@@ -499,19 +475,19 @@ int UniSetManager::getObjectsInfo( UniSetManager* mngr, SimpleInfoSeq* seq,
{
SimpleInfo_var si=(*it)->getInfo();
(*seq)[ind] = si;
ind++;
ind++;
if( ind>uplimit )
break;
}
catch(CORBA::Exception& ex)
{
ulog.warn() << myname << "(getObjectsInfo): CORBA::Exception" << endl;
uwarn << myname << "(getObjectsInfo): CORBA::Exception" << endl;
}
catch(...)
{
ulog.warn() << myname << "(getObjectsInfo): не смог получить у объекта "
uwarn << myname << "(getObjectsInfo): не смог получить у объекта "
<< conf->oind->getNameById( (*it)->getId() ) << " информацию" << endl;
}
}
}
if( ind > uplimit )
......
......@@ -59,9 +59,9 @@ void UniSetManager_LT::callback()
sleepTime=lt.checkTimers(this);
}
catch(Exception& ex)
catch( Exception& ex )
{
ulog.crit() << myname << "(callback): " << ex << endl;
ucrit << myname << "(callback): " << ex << endl;
}
}
// ------------------------------------------------------------------------------------------
......
......@@ -123,7 +123,7 @@ stCountOfQueueFull(0)
myid = ui.getIdByName(myname);
if( myid == DefaultObjectId )
{
ulog.warn() << "name: my ID not found!" << endl;
uwarn << "name: my ID not found!" << endl;
throw Exception(name+": my ID not found!");
}
......@@ -150,19 +150,15 @@ void UniSetObject::init_object()
mutex_act.setName(myname + "_mutex_act");
SizeOfMessageQueue = conf->getArgPInt("--uniset-object-size-message-queue",conf->getField("SizeOfMessageQueue"), 1000);
MaxCountRemoveOfMessage = conf->getArgInt("--uniset-object-maxcount-remove-message",conf->getField("MaxCountRemoveOfMessage"));
if( MaxCountRemoveOfMessage <= 0 )
MaxCountRemoveOfMessage = SizeOfMessageQueue / 4;
if( MaxCountRemoveOfMessage <= 0 )
MaxCountRemoveOfMessage = 10;
if( ulog.is_info() )
{
ulog.info() << myname << "(init): SizeOfMessageQueue=" << SizeOfMessageQueue
<< " MaxCountRemoveOfMessage=" << MaxCountRemoveOfMessage
<< endl;
}
uinfo << myname << "(init): SizeOfMessageQueue=" << SizeOfMessageQueue
<< " MaxCountRemoveOfMessage=" << MaxCountRemoveOfMessage
<< endl;
}
// ------------------------------------------------------------------------------------------
......@@ -172,11 +168,9 @@ void UniSetObject::init_object()
*/
bool UniSetObject::init( UniSetManager* om )
{
if( ulog.is_info() )
ulog.info() << myname << ": init..." << endl;
uinfo << myname << ": init..." << endl;
this->mymngr = om;
if( ulog.is_info() )
ulog.info() << myname << ": init ok..." << endl;
uinfo << myname << ": init ok..." << endl;
return true;
}
// ------------------------------------------------------------------------------------------
......@@ -201,14 +195,13 @@ bool UniSetObject::receiveMessage( VoidMessage& vm )
{
{ // lock
uniset_rwmutex_wrlock mlk(qmutex);
if( !queueMsg.empty() )
{
// контроль переполнения
if( queueMsg.size() > SizeOfMessageQueue )
{
if( ulog.is_crit() )
ulog.crit() << myname <<"(receiveMessages): messages queue overflow!" << endl << flush;
ucrit << myname <<"(receiveMessages): messages queue overflow!" << endl << flush;
cleanMsgQueue(queueMsg);
// обновляем статистику по переполнениям
stCountOfQueueFull++;
......@@ -217,19 +210,14 @@ bool UniSetObject::receiveMessage( VoidMessage& vm )
if( !queueMsg.empty() )
{
// if( ulog.is_crit() )
// ulog.crit() << myname <<"(receiveMessages): get new msg.." << endl << flush;
vm = queueMsg.top(); // получили сообщение
// Проверка на последовательное вынимание
// cout << myname << ": receive message....tm=" << vm.time << " msec=" << vm.time_msec << "\tprior="<< vm.priority << endl;
queueMsg.pop(); // удалили сообщение из очереди
return true;
}
}
}
} // unlock queue
return false;
return false;
}
// ------------------------------------------------------------------------------------------
......@@ -327,19 +315,17 @@ bool UniSetObject::waitMessage(VoidMessage& vm, timeout_t timeMS)
// ------------------------------------------------------------------------------------------
void UniSetObject::registered()
{
if( ulog.is_info() )
ulog.info() << myname << ": registration..." << endl;
uinfo << myname << ": registration..." << endl;
if( myid == UniSetTypes::DefaultObjectId )
{
if( ulog.is_info() )
ulog.info() << myname << "(registered): myid=DefaultObjectId \n";
uinfo << myname << "(registered): myid=DefaultObjectId \n";
return;
}
if( !mymngr )
{
ulog.warn() << myname << "(registered): unknown my manager" << endl;
uwarn << myname << "(registered): unknown my manager" << endl;
string err(myname+": unknown my manager");
throw ORepFailed(err.c_str());
}
......@@ -348,7 +334,7 @@ void UniSetObject::registered()
UniSetTypes::uniset_rwmutex_rlock lock(refmutex);
if( !oref )
{
ulog.crit() << myname << "(registered): oref is NULL!..." << endl;
ucrit << myname << "(registered): oref is NULL!..." << endl;
return;
}
}
......@@ -356,7 +342,7 @@ void UniSetObject::registered()
try
{
for( int i=0; i<2; i++ )
{
{
try
{
ui.registered(myid, getRef(),true);
......@@ -375,11 +361,9 @@ void UniSetObject::registered()
объект станет недоступен другим, а знать об этом не будет!!!
*/
ulog.crit() << myname << "(registered): replace object (ObjectNameAlready)" << endl;
ucrit << myname << "(registered): replace object (ObjectNameAlready)" << endl;
reg = true;
unregister();
// ulog.crit() << myname << "(registered): не смог зарегестрироваться в репозитории объектов (ObjectNameAlready)" << endl;
// throw al;
}
}
}
......@@ -390,7 +374,7 @@ void UniSetObject::registered()
}
catch(Exception& ex)
{
ulog.warn() << myname << "(registered): " << ex << endl;
uwarn << myname << "(registered): " << ex << endl;
string err(myname+": don`t registration in object reposotory");
throw ORepFailed(err.c_str());
}
......@@ -404,8 +388,7 @@ void UniSetObject::unregister()
if( myid == UniSetTypes::DefaultObjectId )
{
if( ulog.is_info() )
ulog.info() << myname << "(unregister): myid=DefaultObjectId \n";
uinfo << myname << "(unregister): myid=DefaultObjectId \n";
reg = false;
return;
}
......@@ -414,7 +397,7 @@ void UniSetObject::unregister()
UniSetTypes::uniset_rwmutex_rlock lock(refmutex);
if( !oref )
{
ulog.warn() << myname << "(unregister): oref NULL!" << endl;
uwarn << myname << "(unregister): oref NULL!" << endl;
reg = false;
return;
}
......@@ -423,19 +406,15 @@ void UniSetObject::unregister()
try
{
if( ulog.is_info() )
ulog.info() << myname << ": unregister "<< endl;
uinfo << myname << ": unregister "<< endl;
ui.unregister(myid);
if( ulog.is_info() )
ulog.info() << myname << ": unregister ok. "<< endl;
uinfo << myname << ": unregister ok. "<< endl;
}
catch(...)
{
ulog.warn() << myname << ": don`t registration in object repository" << endl;
uwarn << myname << ": don`t registration in object repository" << endl;
}
reg = false;
}
// ------------------------------------------------------------------------------------------
......@@ -463,21 +442,17 @@ void UniSetObject::push(const TransportMessage& tm)
// контроль переполнения
if( !queueMsg.empty() && queueMsg.size()>SizeOfMessageQueue )
{
if( ulog.is_crit() )
ulog.crit() << myname <<"(push): message queue overflow!" << endl << flush;
ucrit << myname <<"(push): message queue overflow!" << endl << flush;
cleanMsgQueue(queueMsg);
// обновляем статистику
stCountOfQueueFull++;
stMaxQueueMessages=0;
stMaxQueueMessages=0;
}
// if( ulog.is_crit() )
// ulog.crit() << myname <<"(push): push new msg.." << endl << flush;
VoidMessage v(tm);
queueMsg.push(v);
// максимальное число ( для статистики )
if( queueMsg.size() > stMaxQueueMessages )
stMaxQueueMessages = queueMsg.size();
......@@ -500,11 +475,8 @@ struct tmpConsumerInfo
void UniSetObject::cleanMsgQueue( MessagesQueue& q )
{
if( ulog.is_crit() )
{
ulog.crit() << myname << "(cleanMsgQueue): msg queue cleaning..." << endl << flush;
ulog.crit() << myname << "(cleanMsgQueue): current size of queue: " << q.size() << endl << flush;
}
ucrit << myname << "(cleanMsgQueue): msg queue cleaning..." << endl << flush;
ucrit << myname << "(cleanMsgQueue): current size of queue: " << q.size() << endl << flush;
// проходим по всем известным нам типам(базовым)
// ищем все совпадающие сообщения и оставляем только последние...
......@@ -561,7 +533,7 @@ void UniSetObject::cleanMsgQueue( MessagesQueue& q )
case Message::Unused:
// просто выкидываем (игнорируем)
break;
default:
// сразу помещаем в очередь
consumermap[m.consumer].lstOther.push_front(m);
......@@ -570,22 +542,18 @@ void UniSetObject::cleanMsgQueue( MessagesQueue& q )
}
}
if( ulog.is_crit() )
ulog.crit() << myname << "(cleanMsgQueue): ******** cleanup RESULT ********" << endl;
ucrit << myname << "(cleanMsgQueue): ******** cleanup RESULT ********" << endl;
for( map<UniSetTypes::ObjectId,tmpConsumerInfo>::iterator it0 = consumermap.begin();
it0!=consumermap.end(); ++it0 )
{
if( ulog.is_crit() )
{
ulog.crit() << myname << "(cleanMsgQueue): CONSUMER=" << it0->first << endl;
ulog.crit() << myname << "(cleanMsgQueue): after clean SensorMessage: " << it0->second.smap.size() << endl;
ulog.crit() << myname << "(cleanMsgQueue): after clean TimerMessage: " << it0->second.tmap.size() << endl;
ulog.crit() << myname << "(cleanMsgQueue): after clean SystemMessage: " << it0->second.sysmap.size() << endl;
ulog.crit() << myname << "(cleanMsgQueue): after clean ConfirmMessage: " << it0->second.cmap.size() << endl;
ulog.crit() << myname << "(cleanMsgQueue): after clean other: " << it0->second.lstOther.size() << endl;
}
ucrit << myname << "(cleanMsgQueue): CONSUMER=" << it0->first << endl;
ucrit << myname << "(cleanMsgQueue): after clean SensorMessage: " << it0->second.smap.size() << endl;
ucrit << myname << "(cleanMsgQueue): after clean TimerMessage: " << it0->second.tmap.size() << endl;
ucrit << myname << "(cleanMsgQueue): after clean SystemMessage: " << it0->second.sysmap.size() << endl;
ucrit << myname << "(cleanMsgQueue): after clean ConfirmMessage: " << it0->second.cmap.size() << endl;
ucrit << myname << "(cleanMsgQueue): after clean other: " << it0->second.lstOther.size() << endl;
// теперь ОСТАВШИЕСЯ запихиваем обратно в очередь...
map<UniSetTypes::KeyType,VoidMessage>::iterator it=it0->second.smap.begin();
for( ; it!=it0->second.smap.end(); ++it )
......@@ -616,21 +584,16 @@ void UniSetObject::cleanMsgQueue( MessagesQueue& q )
q.push(*it6);
}
if( ulog.is_crit() )
{
ulog.crit() << myname
ucrit << myname
<< "(cleanMsgQueue): ******* result size of queue: "
<< q.size()
<< " < " << getMaxSizeOfMessageQueue() << endl;
}
if( q.size() >= getMaxSizeOfMessageQueue() )
{
if( ulog.is_crit() )
{
ulog.crit() << myname << "(cleanMsgQueue): clean failed. size > " << q.size() << endl;
ulog.crit() << myname << "(cleanMsgQueue): remove " << getMaxCountRemoveOfMessage() << " old messages " << endl;
}
ucrit << myname << "(cleanMsgQueue): clean failed. size > " << q.size() << endl;
ucrit << myname << "(cleanMsgQueue): remove " << getMaxCountRemoveOfMessage() << " old messages " << endl;
for( unsigned int i=0; i<getMaxCountRemoveOfMessage(); i++ )
{
q.top();
......@@ -638,9 +601,8 @@ void UniSetObject::cleanMsgQueue( MessagesQueue& q )
if( q.empty() )
break;
}
if( ulog.is_crit() )
ulog.crit() << myname << "(cleanMsgQueue): result size=" << q.size() << endl;
ucrit << myname << "(cleanMsgQueue): result size=" << q.size() << endl;
}
}
// ------------------------------------------------------------------------------------------
......@@ -676,8 +638,7 @@ bool UniSetObject::disactivate()
try
{
if( ulog.is_info() )
ulog.info() << "disactivateObject..." << endl;
uinfo << "disactivateObject..." << endl;
PortableServer::POA_var poamngr = mymngr->getPOA();
if( !PortableServer::POA_Helper::is_nil(poamngr) )
......@@ -690,37 +651,30 @@ bool UniSetObject::disactivate()
unregister();
PortableServer::ObjectId_var oid = poamngr->servant_to_id(static_cast<PortableServer::ServantBase*>(this));
poamngr->deactivate_object(oid);
if( ulog.is_info() )
ulog.info() << "ok..." << endl;
uinfo << "ok..." << endl;
return true;
}
if( ulog.is_warn() )
ulog.warn() << "manager already destroyed.." << endl;
uwarn << "manager already destroyed.." << endl;
}
catch(CORBA::TRANSIENT)
{
if( ulog.is_warn() )
ulog.warn() << "isExist: нет связи..."<< endl;
uwarn << "isExist: нет связи..."<< endl;
}
catch( CORBA::SystemException& ex )
{
if( ulog.is_warn() )
ulog.warn() << "UniSetObject: "<<"поймали CORBA::SystemException: " << ex.NP_minorString() << endl;
uwarn << "UniSetObject: "<<"поймали CORBA::SystemException: " << ex.NP_minorString() << endl;
}
catch(CORBA::Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << "UniSetObject: "<<"поймали CORBA::Exception." << endl;
uwarn << "UniSetObject: "<<"поймали CORBA::Exception." << endl;
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << "UniSetObject: "<< ex << endl;
uwarn << "UniSetObject: "<< ex << endl;
}
catch(...)
{
if( ulog.is_warn() )
ulog.warn() << "UniSetObject: "<<" catch ..." << endl;
uwarn << "UniSetObject: "<<" catch ..." << endl;
}
return false;
......@@ -729,12 +683,11 @@ bool UniSetObject::disactivate()
// ------------------------------------------------------------------------------------------
bool UniSetObject::activate()
{
if( ulog.is_info() )
ulog.info() << myname << ": activate..." << endl;
uinfo << myname << ": activate..." << endl;
if( mymngr == NULL )
{
ulog.crit() << myname << "(activate): mymngr=NULL!!! activate failure..." << endl;
ucrit << myname << "(activate): mymngr=NULL!!! activate failure..." << endl;
return false;
}
......@@ -756,7 +709,7 @@ bool UniSetObject::activate()
// то myname = noname. ВСЕГДА!
if( myid == UniSetTypes::DefaultObjectId )
{
ulog.crit() << myname << "(activate): Не задан ID!!! activate failure..." << endl;
ucrit << myname << "(activate): Не задан ID!!! activate failure..." << endl;
// вызываем на случай если она переопределена в дочерних классах
// Например в UniSetManager, если здесь не вызвать, то не будут инициализированы подчинённые объекты.
// (см. UniSetManager::activateObject)
......@@ -792,32 +745,28 @@ bool UniSetObject::activate()
}
else
{
if( ulog.is_info() )
{
ulog.info() << myname << ": ?? не задан ObjectId...("
<< "myid=" << myid << " threadcreate=" << threadcreate
<< ")" << endl;
}
uinfo << myname << ": ?? не задан ObjectId...("
<< "myid=" << myid << " threadcreate=" << threadcreate
<< ")" << endl;
thread(false);
}
activateObject();
if( ulog.is_info() )
ulog.info() << myname << ": activate ok." << endl;
uinfo << myname << ": activate ok." << endl;
return true;
}
// ------------------------------------------------------------------------------------------
void UniSetObject::work()
{
if( ulog.is_info() )
ulog.info() << myname << ": thread processing messages run..." << endl;
uinfo << myname << ": thread processing messages run..." << endl;
if( thr )
msgpid = thr->getTID();
while( isActive() )
{
callback();
}
ulog.warn() << myname << ": thread processing messages stop..." << endl;
uinfo << myname << ": thread processing messages stop..." << endl;
}
// ------------------------------------------------------------------------------------------
void UniSetObject::callback()
......@@ -832,8 +781,7 @@ void UniSetObject::callback()
// ------------------------------------------------------------------------------------------
void UniSetObject::processingMessage( UniSetTypes::VoidMessage *msg )
{
if( ulog.is_info() )
ulog.info() << myname << ": default processing messages..." << endl;
uinfo << myname << ": default processing messages..." << endl;
}
// ------------------------------------------------------------------------------------------
UniSetTypes::SimpleInfo* UniSetObject::getInfo()
......
......@@ -61,7 +61,7 @@ void UniSetObject_LT::callback()
}
catch(Exception& ex)
{
ulog.crit() << myname << "(callback): " << ex << endl;
ucrit << myname << "(callback): " << ex << endl;
}
}
// ------------------------------------------------------------------------------------------
......
......@@ -89,8 +89,7 @@ void IOController::sensorsUnregistration()
}
catch(Exception& ex)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(sensorsUnregistration): "<< ex << endl;
ucrit << myname << "(sensorsUnregistration): "<< ex << endl;
}
catch(...){}
}
......@@ -117,8 +116,7 @@ void IOController::activateInit()
}
catch( Exception& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(activateInit): "<< ex << endl;
ucrit << myname << "(activateInit): "<< ex << endl;
}
catch(...){}
}
......@@ -150,9 +148,7 @@ long IOController::localGetValue( IOController::IOStateList::iterator& li,
err << myname << "(localGetValue): Not found sensor (" << si.id << ":" << si.node << ") "
<< conf->oind->getNameById(si.id);
if( ulog.is_info() )
ulog.info() << err.str() << endl;
uinfo << err.str() << endl;
throw IOController_i::NameNotFound(err.str().c_str());
}
// ------------------------------------------------------------------------------------------
......@@ -263,19 +259,15 @@ void IOController::localSetValue( IOController::IOStateList::iterator& li,
// фильтрам может потребоваться измениять исходное значение (например для усреднения)
// поэтому передаём (и затем сохраняем) напрямую(ссылку) value (а не const value)
bool blocked = ( li->second.blocked || li->second.undefined );
if( checkIOFilters(&li->second,value,sup_id) || blocked )
{
if( ulog.is_info() )
{
ulog.info() << myname << ": save sensor value (" << si.id << ":" << si.node << ")"
uinfo << myname << ": save sensor value (" << si.id << ":" << si.node << ")"
<< " name: " << conf->oind->getNameById(si.id)
<< " node: " << conf->oind->getMapName(si.node)
<< " value="<< value << endl;
}
long prev = li->second.value;
if( blocked )
......@@ -327,7 +319,6 @@ IOType IOController::getIOType( const IOController_i::SensorInfo& si )
ostringstream err;
err << myname << "(getIOType): датчик имя: " << conf->oind->getNameById(si.id) << " не найден";
// ulog.info() << err.str() << endl;
throw IOController_i::NameNotFound(err.str().c_str());
}
// ---------------------------------------------------------------------------
......@@ -338,8 +329,7 @@ void IOController::ioRegistration( const USensorInfo& ainf, bool force )
{
ostringstream err;
err << "(IOCOntroller::ioRegistration): КОНТРОЛЛЕРУ НЕ ЗАДАН ObjectId. Регистрация невозможна.";
if( ulog.is_warn() )
ulog.warn() << err.str() << endl;
uwarn << err.str() << endl;
throw ResolveNameError(err.str().c_str());
}
......@@ -380,35 +370,27 @@ void IOController::ioRegistration( const USensorInfo& ainf, bool force )
{
try
{
if( ulog.is_info() )
{
ulog.info() << myname
uinfo << myname
<< "(ioRegistration): регистрирую "
<< conf->oind->getNameById(ainf.si.id, ainf.si.node) << endl;
}
ui.registered( ainf.si.id, ainf.si.node, getRef(), true );
return;
}
catch(ObjectNameAlready& ex )
{
if( ulog.is_warn() )
{
ulog.warn() << myname
<< "(asRegistration): ЗАМЕНЯЮ СУЩЕСТВУЮЩИЙ ОБЪЕКТ (ObjectNameAlready)" << endl;
}
uwarn << myname << "(asRegistration): ЗАМЕНЯЮ СУЩЕСТВУЮЩИЙ ОБЪЕКТ (ObjectNameAlready)" << endl;
ui.unregister(ainf.si.id,ainf.si.node);
}
}
}
catch( Exception& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(ioRegistration): " << ex << endl;
ucrit << myname << "(ioRegistration): " << ex << endl;
}
catch(...)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(ioRegistration): catch ..."<< endl;
ucrit << myname << "(ioRegistration): catch ..."<< endl;
}
}
// ---------------------------------------------------------------------------
......@@ -428,7 +410,7 @@ void IOController::logging( UniSetTypes::SensorMessage& sm )
// значит на этом узле нет DBServer-а
if( dbID == UniSetTypes::DefaultObjectId )
return;
sm.consumer = dbID;
TransportMessage tm(sm.transport_msg());
ui.send(sm.consumer, tm);
......@@ -439,8 +421,7 @@ void IOController::logging( UniSetTypes::SensorMessage& sm )
if( isPingDBServer )
{
isPingDBServer = false;
if( ulog.is_crit() )
ulog.crit() << myname << "(logging): DBServer unavailable" << endl;
ucrit << myname << "(logging): DBServer unavailable" << endl;
}
}
}
......@@ -519,9 +500,8 @@ IOController_i::SensorIOInfo IOController::getSensorIOInfo( const IOController_i
err << myname << "(getSensorIOInfo): Unknown sensor (" << si.id << ":" << si.node << ")"
<< conf->oind->getNameById(si.id,si.node);
if( ulog.is_info() )
ulog.info() << err.str() << endl;
uinfo << err.str() << endl;
throw IOController_i::NameNotFound(err.str().c_str());
}
// --------------------------------------------------------------------------------------------------------------
......@@ -564,11 +544,10 @@ void IOController::calibrate(const IOController_i::SensorInfo& si,
throw IOController_i::NameNotFound(err.str().c_str());
}
if( ulog.is_info() )
ulog.info() << myname <<"(calibrate): from " << conf->oind->getNameById(adminId) << endl;
uinfo << myname <<"(calibrate): from " << conf->oind->getNameById(adminId) << endl;
it->second.ci = ci;
}
}
// --------------------------------------------------------------------------------------------------------------
IOController_i::CalibrateInfo IOController::getCalibrateInfo(const IOController_i::SensorInfo& si)
{
......@@ -736,8 +715,8 @@ IOController_i::ShortIOInfo IOController::getChangedTime( const IOController_i::
ostringstream err;
err << myname << "(getChangedTime): вход(выход) с именем "
<< conf->oind->getNameById(si.id) << " не найден";
if( ulog.is_info() )
ulog.info() << err.str() << endl;
uinfo << err.str() << endl;
throw IOController_i::NameNotFound(err.str().c_str());
}
// -----------------------------------------------------------------------------
......@@ -778,9 +757,7 @@ IOController::ChangeSignal IOController::signal_change_value( UniSetTypes::Objec
err << myname << "(signal_change_value): вход(выход) с именем "
<< conf->oind->getNameById(id) << " не найден";
if( ulog.is_info() )
ulog.info() << err.str() << endl;
uinfo << err.str() << endl;
throw IOController_i::NameNotFound(err.str().c_str());
}
......@@ -807,8 +784,7 @@ IOController::ChangeUndefinedStateSignal IOController::signal_change_undefined_s
err << myname << "(signal_change_undefine): вход(выход) с именем "
<< conf->oind->getNameById(id) << " не найден";
if( ulog.is_info() )
ulog.info() << err.str() << endl;
uinfo << err.str() << endl;
throw IOController_i::NameNotFound(err.str().c_str());
}
......
......@@ -135,7 +135,6 @@ bool IONotifyController::removeConsumer(ConsumerList& lst, const ConsumerInfo& c
if( li->id == cons.id && li->node == cons.node )
{
lst.erase(li);
// ulog.info() << name.c_name() <<": удаляем "<< name << " из списка потребителей" << endl;
return true;
}
}
......@@ -151,14 +150,11 @@ bool IONotifyController::removeConsumer(ConsumerList& lst, const ConsumerInfo& c
void IONotifyController::askSensor(const IOController_i::SensorInfo& si,
const UniSetTypes::ConsumerInfo& ci, UniversalIO::UIOCommand cmd )
{
if( ulog.is_info() )
{
ulog.info() << "(askSensor): поступил " << ( cmd == UIODontNotify ? "отказ" :"заказ" ) << " от "
uinfo << "(askSensor): поступил " << ( cmd == UIODontNotify ? "отказ" :"заказ" ) << " от "
<< conf->oind->getNameById(ci.id, ci.node)
<< " на аналоговый датчик "
<< conf->oind->getNameById(si.id,si.node) << endl;
}
// если такого аналогового датчика нет, здесь сработает исключение...
IOStateList::iterator li = myioEnd();
localGetValue(li,si);
......@@ -197,21 +193,18 @@ void IONotifyController::askSensor(const IOController_i::SensorInfo& si,
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << myname << "(askSensor): " << conf->oind->getNameById(si.id, si.node) << " catch "<< ex << endl;
uwarn << myname << "(askSensor): " << conf->oind->getNameById(si.id, si.node) << " catch "<< ex << endl;
}
catch( CORBA::SystemException& ex )
{
if( ulog.is_warn() )
ulog.warn() << conf->oind->getNameById(ci.id, ci.node)
<< " недоступен!!(CORBA::SystemException): "
<< ex.NP_minorString() << endl;
uwarn << myname << "(askSensor): " << conf->oind->getNameById(ci.id, ci.node)
<< " недоступен!!(CORBA::SystemException): "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( ulog.is_warn() )
ulog.warn() << conf->oind->getNameById(ci.id, ci.node)
<< " catch..." << endl;
uwarn << myname << "(askSensor): " << conf->oind->getNameById(ci.id, ci.node)
<< " catch..." << endl;
}
}
}
......@@ -243,13 +236,11 @@ void IONotifyController::ask(AskMap& askLst, const IOController_i::SensorInfo& s
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << myname << " не смогли сделать dump: " << ex << endl;
uwarn << myname << " не смогли сделать dump: " << ex << endl;
}
catch(...)
{
if( ulog.is_warn() )
ulog.warn() << myname << " не смогли сделать dump (catch...)" << endl;
uwarn << myname << " не смогли сделать dump (catch...)" << endl;
}
}
else
......@@ -262,13 +253,11 @@ void IONotifyController::ask(AskMap& askLst, const IOController_i::SensorInfo& s
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << myname << " не смогли сделать dump: " << ex << endl;
uwarn << myname << " не смогли сделать dump: " << ex << endl;
}
catch(...)
{
if( ulog.is_warn() )
ulog.warn() << myname << " не смогли сделать dump (catch...)" << endl;
{
uwarn << myname << " не смогли сделать dump (catch...)" << endl;
}
}
}
......@@ -291,20 +280,18 @@ void IONotifyController::ask(AskMap& askLst, const IOController_i::SensorInfo& s
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << myname << " не смогли сделать dump: " << ex << endl;
uwarn << myname << " не смогли сделать dump: " << ex << endl;
}
catch(...)
{
if( ulog.is_warn() )
ulog.warn() << myname << " не смогли сделать dump (catch...)" << endl;
{
uwarn << myname << " не смогли сделать dump (catch...)" << endl;
}
}
}
}
break;
}
default:
break;
}
......@@ -331,8 +318,7 @@ void IONotifyController::localSetValue( IOController::IOStateList::iterator& li,
err << myname << "(localSetValue): вход(выход) с именем "
<< conf->oind->getNameById(si.id) << " не найден";
if( ulog.is_info() )
ulog.info() << err.str() << endl;
uinfo << err.str() << endl;
throw IOController_i::NameNotFound(err.str().c_str());
}
......@@ -344,7 +330,7 @@ void IONotifyController::localSetValue( IOController::IOStateList::iterator& li,
SensorMessage sm(si.id,li->second.value);
{ // lock
uniset_rwmutex_rlock lock(li->second.val_lock);
if( prevValue == li->second.value )
return;
......@@ -409,25 +395,22 @@ void IONotifyController::send(ConsumerList& lst, UniSetTypes::SensorMessage& sm)
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << myname << "(IONotifyController::send): " << ex
uwarn << myname << "(IONotifyController::send): " << ex
<< " for " << conf->oind->getNameById(li->id, li->node) << endl;
}
catch( CORBA::SystemException& ex )
{
if( ulog.is_warn() )
ulog.warn() << myname << "(IONotifyController::send): "
uwarn << myname << "(IONotifyController::send): "
<< conf->oind->getNameById(li->id, li->node) << " (CORBA::SystemException): "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( ulog.is_crit() )
ulog.crit() << myname << "(IONotifyController::send): "
ucrit << myname << "(IONotifyController::send): "
<< conf->oind->getNameById(li->id, li->node)
<< " catch..." << endl;
}
if( maxAttemtps>0 && (--li->attempt <= 0) )
{
li = lst.erase(li);
......@@ -463,8 +446,7 @@ void IONotifyController::readDump()
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << myname << "(IONotifyController::readDump): " << ex << endl;
uwarn << myname << "(IONotifyController::readDump): " << ex << endl;
}
}
// --------------------------------------------------------------------------------------------------------------
......@@ -491,8 +473,7 @@ void IONotifyController::dumpOrdersList(const IOController_i::SensorInfo& si,
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << myname << "(IONotifyController::dumpOrderList): " << ex << endl;
uwarn << myname << "(IONotifyController::dumpOrderList): " << ex << endl;
}
}
// --------------------------------------------------------------------------------------------------------------
......@@ -511,8 +492,7 @@ void IONotifyController::dumpThresholdList(const IOController_i::SensorInfo& si,
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << myname << "(IONotifyController::dumpThresholdList): " << ex << endl;
uwarn << myname << "(IONotifyController::dumpThresholdList): " << ex << endl;
}
}
// --------------------------------------------------------------------------------------------------------------
......@@ -559,13 +539,11 @@ void IONotifyController::askThreshold(const IOController_i::SensorInfo& si, cons
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << myname << " не смогли сделать dump: " << ex << endl;
uwarn << myname << " не смогли сделать dump: " << ex << endl;
}
catch(...)
{
if( ulog.is_warn() )
ulog.warn() << myname << " не смогли сделать dump" << endl;
{
uwarn << myname << " не смогли сделать dump" << endl;
}
}
else
......@@ -578,20 +556,18 @@ void IONotifyController::askThreshold(const IOController_i::SensorInfo& si, cons
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << myname << "(askThreshold): dump: " << ex << endl;
uwarn << myname << "(askThreshold): dump: " << ex << endl;
}
catch(...)
{
if( ulog.is_warn() )
ulog.warn() << myname << "(askThreshold): dump catch..." << endl;
{
uwarn << myname << "(askThreshold): dump catch..." << endl;
}
}
}
if( cmd == UniversalIO::UIONotifyChange )
break;
// посылка первый раз состояния
try
{
......@@ -607,12 +583,12 @@ void IONotifyController::askThreshold(const IOController_i::SensorInfo& si, cons
sm.sm_tv_sec = ti.tv_sec;
sm.sm_tv_usec = ti.tv_usec;
sm.ci = li->second.ci;
// Проверка нижнего предела
if( val <= lowLimit )
{
sm.threshold = false;
CORBA::Object_var op = ui.resolve(ci.id, ci.node);
CORBA::Object_var op = ui.resolve(ci.id, ci.node);
UniSetObject_i_var ref = UniSetObject_i::_narrow(op);
if(!CORBA::is_nil(ref))
ref->push(sm.transport_msg());
......@@ -629,19 +605,16 @@ void IONotifyController::askThreshold(const IOController_i::SensorInfo& si, cons
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << myname << "(askThreshod): " << ex << endl;
uwarn << myname << "(askThreshod): " << ex << endl;
}
catch( CORBA::SystemException& ex )
{
if( ulog.is_warn() )
ulog.warn() << myname << "(askThreshod): CORBA::SystemException: "
uwarn << myname << "(askThreshod): CORBA::SystemException: "
<< ex.NP_minorString() << endl;
}
catch(...)
{
if( ulog.is_warn() )
ulog.warn() << myname << "(askThreshold): dump catch..." << endl;
{
uwarn << myname << "(askThreshold): dump catch..." << endl;
}
}
break;
......@@ -658,13 +631,11 @@ void IONotifyController::askThreshold(const IOController_i::SensorInfo& si, cons
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << myname << "(askThreshold): dump: " << ex << endl;
uwarn << myname << "(askThreshold): dump: " << ex << endl;
}
catch(...)
{
if( ulog.is_warn() )
ulog.warn() << myname << "(askThreshold): dump catch..." << endl;
{
uwarn << myname << "(askThreshold): dump catch..." << endl;
}
}
}
......@@ -817,8 +788,7 @@ void IONotifyController::checkThreshold( IOStateList::iterator& li,
}
catch( UniSetTypes::Exception& ex )
{
if( ulog.is_crit() )
ulog.crit() << myname << "(checkThreshold): " << ex << endl;
ucrit << myname << "(checkThreshold): " << ex << endl;
}
}
......@@ -863,9 +833,7 @@ IONotifyController_i::ThresholdInfo IONotifyController::getThresholdInfo( const
err << myname << "(getThresholds): Not found sensor (" << si.id << ":" << si.node << ") "
<< conf->oind->getNameById(si.id);
if( ulog.is_info() )
ulog.info() << err.str() << endl;
uinfo << err.str() << endl;
throw IOController_i::NameNotFound(err.str().c_str());
}
......@@ -879,9 +847,7 @@ IONotifyController_i::ThresholdInfo IONotifyController::getThresholdInfo( const
err << myname << "(getThresholds): Not found for sensor (" << si.id << ":" << si.node << ") "
<< conf->oind->getNameById(si.id) << " ThresholdID='" << tid << "'";
if( ulog.is_info() )
ulog.info() << err.str() << endl;
uinfo << err.str() << endl;
throw IOController_i::NameNotFound(err.str().c_str());
}
// --------------------------------------------------------------------------------------------------------------
......@@ -896,9 +862,7 @@ IONotifyController_i::ThresholdList* IONotifyController::getThresholds( const IO
err << myname << "(getThresholds): Not found sensor (" << si.id << ":" << si.node << ") "
<< conf->oind->getNameById(si.id);
if( ulog.is_info() )
ulog.info() << err.str() << endl;
uinfo << err.str() << endl;
throw IOController_i::NameNotFound(err.str().c_str());
}
......@@ -912,12 +876,11 @@ IONotifyController_i::ThresholdList* IONotifyController::getThresholds( const IO
}
catch( Exception& ex )
{
if( ulog.is_warn() )
ulog.warn() << myname << "(getThresholdsList): для датчика "
uwarn << myname << "(getThresholdsList): для датчика "
<< conf->oind->getNameById(it->second.si.id, it->second.si.node)
<< " " << ex << endl;
}
res->tlist.length( it->second.list.size() );
int k=0;
......@@ -937,8 +900,6 @@ IONotifyController_i::ThresholdList* IONotifyController::getThresholds( const IO
// --------------------------------------------------------------------------------------------------------------
IONotifyController_i::ThresholdsListSeq* IONotifyController::getThresholdsList()
{
// ulog.info() << myname << "(getThresholdsList): ...\n";
IONotifyController_i::ThresholdsListSeq* res = new IONotifyController_i::ThresholdsListSeq();
res->length( askTMap.size() );
......@@ -956,13 +917,12 @@ IONotifyController_i::ThresholdsListSeq* IONotifyController::getThresholdsList()
}
catch(Exception& ex)
{
if( ulog.is_warn() )
ulog.warn() << myname << "(getThresholdsList): для датчика "
uwarn << myname << "(getThresholdsList): для датчика "
<< conf->oind->getNameById(it->second.si.id, it->second.si.node)
<< " " << ex << endl;
continue;
}
(*res)[i].tlist.length( it->second.list.size() );
int k=0;
......
......@@ -60,9 +60,9 @@ void IONotifyController_LT::callback()
sleepTime=lt.checkTimers(this);
}
catch(Exception& ex)
catch( Exception& ex )
{
ulog.crit() << myname << "(callback): " << ex << endl;
ucrit << myname << "(callback): " << ex << endl;
}
}
// ------------------------------------------------------------------------------------------
......
......@@ -65,8 +65,7 @@ void NCRestorer::addlist( IONotifyController* ic, SInfo& inf, IONotifyController
break;
default:
if( ulog.is_crit() )
ulog.crit() << ic->getName() << "(askDumper::addlist): НЕИЗВЕСТНЫЙ ТИП ДАТЧИКА! -> "
ucrit << ic->getName() << "(askDumper::addlist): НЕИЗВЕСТНЫЙ ТИП ДАТЧИКА! -> "
<< conf->oind->getNameById(inf.si.id,inf.si.node) << endl;
return;
break;
......@@ -85,8 +84,7 @@ void NCRestorer::addlist( IONotifyController* ic, SInfo& inf, IONotifyController
break;
default:
if( ulog.is_crit() )
ulog.crit() << ic->getName() << "(NCRestorer::addlist): НЕИЗВЕСТНЫЙ ТИП ДАТЧИКА!-> "
ucrit << ic->getName() << "(NCRestorer::addlist): НЕИЗВЕСТНЫЙ ТИП ДАТЧИКА!-> "
<< conf->oind->getNameById(inf.si.id,inf.si.node) << endl;
break;
}
......@@ -113,7 +111,7 @@ void NCRestorer::addthresholdlist( IONotifyController* ic, SInfo& inf, IONotifyC
case UniversalIO::AO:
ic->ioRegistration(inf);
break;
default:
break;
}
......@@ -147,22 +145,20 @@ void NCRestorer::addthresholdlist( IONotifyController* ic, SInfo& inf, IONotifyC
ic->checkThreshold(it,inf.si,false);
}
break;
default:
break;
}
}
catch( Exception& ex )
{
if( ulog.is_warn() )
ulog.warn() << ic->getName() << "(NCRestorer::addthresholdlist): " << ex
uwarn << ic->getName() << "(NCRestorer::addthresholdlist): " << ex
<< " для " << conf->oind->getNameById(inf.si.id, inf.si.node) << endl;
throw;
}
catch( CORBA::SystemException& ex )
{
if( ulog.is_warn() )
ulog.warn() << ic->getName() << "(NCRestorer::addthresholdlist): "
uwarn << ic->getName() << "(NCRestorer::addthresholdlist): "
<< conf->oind->getNameById(inf.si.id,inf.si.node) << " недоступен!!(CORBA::SystemException): "
<< ex.NP_minorString() << endl;
throw;
......@@ -198,14 +194,13 @@ void NCRestorer::init_depends_signals( IONotifyController* ic )
if( it->second.d_si.id == DefaultObjectId )
continue;
if( ulog.is_info() )
ulog.info() << ic->getName() << "(NCRestorer::init_depends_signals): "
uinfo << ic->getName() << "(NCRestorer::init_depends_signals): "
<< " init depend: '" << conf->oind->getMapName(it->second.si.id) << "'"
<< " dep_name=(" << it->second.d_si.id << ")'" << conf->oind->getMapName(it->second.d_si.id) << "'"
<< endl;
IOController::ChangeSignal s = ic->signal_change_value(it->second.d_si);
s.connect( sigc::mem_fun( &it->second, &IOController::USensorInfo::checkDepend) );
}
}
}
// -----------------------------------------------------------------------------
......@@ -89,24 +89,22 @@ void NCRestorer_XML::init( const std::string& fname )
else
uxml = new UniXML(fname);
}
catch(UniSetTypes::NameNotFound& ex)
catch( UniSetTypes::NameNotFound& ex )
{
ulog.warn() << "(NCRestorer_XML): файл " << fname << " не найден, создаём новый...\n";
uwarn << "(NCRestorer_XML): файл " << fname << " не найден, создаём новый...\n";
}
}
// ------------------------------------------------------------------------------------------
void NCRestorer_XML::dump(IONotifyController* ic, SInfo& inf,
const IONotifyController::ConsumerList& lst)
{
if( ulog.is_warn() )
ulog.warn() << "NCRestorer_XML::dump NOT SUPPORT!!!!" << endl;
uwarn << "NCRestorer_XML::dump NOT SUPPORT!!!!" << endl;
}
// ------------------------------------------------------------------------------------------
void NCRestorer_XML::dumpThreshold(IONotifyController* ic, SInfo& inf,
const IONotifyController::ThresholdExtList& lst)
{
if( ulog.is_warn() )
ulog.warn() << "NCRestorer_XML::dumpThreshold NOT SUPPORT!!!!" << endl;
uwarn << "NCRestorer_XML::dumpThreshold NOT SUPPORT!!!!" << endl;
}
// ------------------------------------------------------------------------------------------
void NCRestorer_XML::read_list( UniXML& xml, xmlNode* node, IONotifyController* ic )
......@@ -119,16 +117,15 @@ void NCRestorer_XML::read_list( UniXML& xml, xmlNode* node, IONotifyController*
{
if( !check_list_item(it) )
continue;
NCRestorer_XML::SInfo inf;
if( !getSensorInfo(xml,it,inf) )
{
if( ulog.is_warn() )
ulog.warn() << ic->getName() << "(read_list): не смог получить информацию по датчику " << endl;
uwarn << ic->getName() << "(read_list): не смог получить информацию по датчику " << endl;
continue;
}
inf.undefined = false;
// т.к. в функции может обновится inf
......@@ -149,15 +146,15 @@ void NCRestorer_XML::read_list( UniXML& xml, xmlNode* node, IONotifyController*
}
catch(Exception& ex)
{
ulog.warn() << "(read_list): " << ex << endl;
uwarn << "(read_list): " << ex << endl;
}
}
break;
default:
break;
}
rslot(xml,it,node);
read_consumers(xml,it,inf,ic);
}
......@@ -223,8 +220,7 @@ bool NCRestorer_XML::getBaseInfo( UniXML& xml, xmlNode* it, IOController_i::Sens
string sname( xml.getProp(it,"name"));
if( sname.empty() )
{
if( ulog.is_warn() )
ulog.warn() << "(getBaseInfo): не указано имя датчика... пропускаем..." << endl;
uwarn << "(getBaseInfo): не указано имя датчика... пропускаем..." << endl;
return false;
}
......@@ -239,8 +235,7 @@ bool NCRestorer_XML::getBaseInfo( UniXML& xml, xmlNode* it, IOController_i::Sens
if( sid == UniSetTypes::DefaultObjectId )
{
if( ulog.is_crit() )
ulog.crit() << "(getBaseInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР датчика --> " << sname << endl;
ucrit << "(getBaseInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР датчика --> " << sname << endl;
return false;
}
......@@ -251,8 +246,7 @@ bool NCRestorer_XML::getBaseInfo( UniXML& xml, xmlNode* it, IOController_i::Sens
if( snode == UniSetTypes::DefaultObjectId )
{
if( ulog.is_crit() )
ulog.crit() << "(getBaseInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР узла --> " << snodename << endl;
ucrit << "(getBaseInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР узла --> " << snodename << endl;
return false;
}
......@@ -282,7 +276,7 @@ bool NCRestorer_XML::getSensorInfo( UniXML& xml, xmlNode* it, SInfo& inf )
inf.type = UniSetTypes::getIOType(xml.getProp(it,"iotype"));
if( inf.type == UniversalIO::UnknownIOType )
{
ulog.crit() << "(NCRestorer_XML:getSensorInfo): unknown iotype=" << xml.getProp(it,"iotype")
ucrit << "(NCRestorer_XML:getSensorInfo): unknown iotype=" << xml.getProp(it,"iotype")
<< " for " << xml.getProp(it,"name") << endl;
return false;
}
......@@ -317,8 +311,7 @@ bool NCRestorer_XML::getSensorInfo( UniXML& xml, xmlNode* it, SInfo& inf )
inf.d_si.id = conf->getSensorID(d_txt);
if( inf.d_si.id == UniSetTypes::DefaultObjectId )
{
if( ulog.is_crit() )
ulog.crit() << "(NCRestorer_XML:getSensorInfo): sensor='"
ucrit << "(NCRestorer_XML:getSensorInfo): sensor='"
<< xml.getProp(it,"name") << "' err: "
<< " Unknown SensorID for depend='" << d_txt
<< endl;
......@@ -345,22 +338,17 @@ void NCRestorer_XML::read_thresholds(UniXML& xml, xmlNode* node, IONotifyControl
{
if( !check_thresholds_item(it) )
continue;
NCRestorer_XML::SInfo inf;
if( !getSensorInfo(xml,it.getCurrent(),inf) )
{
ulog.warn() << ic->getName()
uwarn << ic->getName()
<< "(read_thresholds): не смог получить информацию по датчику" << endl;
continue;
}
if( ulog.is_info() )
{
ulog.info() << ic->getName() << "(read_thresholds): "
<< it.getProp("name") << endl;
// conf->oind->getNameById(inf.si.id,inf.si.node) << endl;
}
uinfo << ic->getName() << "(read_thresholds): " << it.getProp("name") << endl;
UniXML_iterator tit(it);
if( !tit.goChildren() )
continue;
......@@ -371,21 +359,18 @@ void NCRestorer_XML::read_thresholds(UniXML& xml, xmlNode* node, IONotifyControl
IONotifyController::ThresholdInfoExt ti(0,0,0,0);
if( !getThresholdInfo(xml,tit,ti) )
{
ulog.warn() << ic->getName()
uwarn << ic->getName()
<< "(read_thresholds): не смог получить информацию о пороге"
<< " для датчика "
<< conf->oind->getNameById(inf.si.id,inf.si.node) << endl;
continue;
}
if( ulog.is_info() )
{
ulog.info() << "(read_thresholds): \tthreshold low="
<< ti.lowlimit << " \thi=" << ti.hilimit
<< " \t sid=" << ti.sid
<< " \t invert=" << ti.invert
<< endl << flush;
}
uinfo << "(read_thresholds): \tthreshold low="
<< ti.lowlimit << " \thi=" << ti.hilimit
<< " \t sid=" << ti.sid
<< " \t invert=" << ti.invert
<< endl << flush;
xmlNode* cnode = find_node(xml,tit,"consumers","");
if( cnode )
......@@ -395,14 +380,14 @@ void NCRestorer_XML::read_thresholds(UniXML& xml, xmlNode* node, IONotifyControl
{
if( !getConsumerList(xml,ask_it,ti.clst) )
{
ulog.warn() << ic->getName()
uwarn << ic->getName()
<< "(read_thresholds): не смог получить список заказчиков"
<< " для порога " << ti.id
<< " датчика " << conf->oind->getNameById(inf.si.id,inf.si.node) << endl;
}
}
}
// порог добавляем в любом случае, даже если список заказчиков пуст...
tlst.push_back(ti);
rtslot(xml,tit,it);
......@@ -464,7 +449,7 @@ bool NCRestorer_XML::getThresholdInfo( UniXML& xml,xmlNode* node,
ti.sid = conf->getSensorID(sid_name);
if( ti.sid == UniSetTypes::DefaultObjectId )
{
ulog.crit() << "(NCRestorer_XML:getThresholdInfo): "
ucrit << "(NCRestorer_XML:getThresholdInfo): "
<< " Not found ID for " << sid_name << endl;
}
else
......@@ -473,11 +458,11 @@ bool NCRestorer_XML::getThresholdInfo( UniXML& xml,xmlNode* node,
// Пока что IONotifyController поддерживает работу только с 'DI'.
if( iotype != UniversalIO::DI )
{
ulog.crit() << "(NCRestorer_XML:getThresholdInfo): "
ucrit << "(NCRestorer_XML:getThresholdInfo): "
<< " Bad iotype(" << iotype << ") for " << sid_name << ". iotype must be 'DI'!" << endl;
return false;
}
}
}
......
......@@ -159,8 +159,7 @@ Configuration::Configuration( int argc, const char* const* argv, const string& f
void Configuration::initConfiguration( int argc, const char* const* argv )
{
// PassiveTimer pt(UniSetTimer::WaitUpTime);
if( ulog.is_system() )
ulog.system() << "*** configure from file: " << fileConfName << endl;
ulogsys << "*** configure from file: " << fileConfName << endl;
char curdir[FILENAME_MAX];
getcwd(curdir,FILENAME_MAX);
......@@ -184,8 +183,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
{
if( !unixml.isOpen() )
{
if( ulog.is_info() )
ulog.info() << "(Configuration): open from file " << fileConfName << endl;
uinfo << "(Configuration): open from file " << fileConfName << endl;
unixml.open(fileConfName);
}
}
......@@ -194,7 +192,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
ulog << "(Configuration): FAILED open configuration from " << fileConfName << endl;
throw;
}
// default value
heartbeat_msec = 5000;
......@@ -208,8 +206,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
UniXML_iterator it = unixml.findNode(unixml.getFirstNode(),"ObjectsMap");
if( it == NULL )
{
if( ulog.is_crit() )
ulog.crit()<< "(Configuration:init): not found <ObjectsMap> node in " << fileConfName << endl;
ucrit << "(Configuration:init): not found <ObjectsMap> node in " << fileConfName << endl;
throw SystemError("(Configuration:init): not found <ObjectsMap> node in " + fileConfName );
}
......@@ -222,8 +219,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
}
catch(Exception& ex )
{
if( ulog.is_crit() )
ulog.crit()<< "(Configuration:init): INIT FAILED! from " << fileConfName << endl;
ucrit << "(Configuration:init): INIT FAILED! from " << fileConfName << endl;
throw;
}
}
......@@ -232,9 +228,6 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
// Настраиваем отладочные логи
initDebug(ulog,"UniSetDebug");
// cerr << "*************** initConfiguration: oind: " << pt.getCurrent() << " msec " << endl;
// pt.reset();
// default init...
transientIOR = false;
localIOR = false;
......@@ -295,8 +288,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
param << "=corbaname::" << it->host << ":" << it->port;
new_argv[i+1] = strdup(param.str().c_str());
if( ulog.is_info() )
ulog.info() << "(Configuration): внесли параметр " << param.str() << endl;
uinfo << "(Configuration): внесли параметр " << param.str() << endl;
i+=2;
ostringstream uri;
......@@ -306,7 +298,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
assert( i < _argc );
}
// т..к _argc уже изменился, то и _argv надо обновить
// чтобы вызов getArgParam не привел к SIGSEGV
_argv = new_argv;
......@@ -315,7 +307,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
xmlNode* nsnode = getNode("NameService");
if( !nsnode )
{
ulog.warn() << "(Configuration): не нашли раздела 'NameService' \n";
uwarn << "(Configuration): не нашли раздела 'NameService' \n";
new_argv[i] = "";
new_argv[i+1] = "";
}
......@@ -323,14 +315,13 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
{
new_argv[i] = "-ORBInitRef";
new_argv[i+1] = ""; // сперва инициализиуем пустой строкой (т.к. будет вызываться getArgParam)
string defPort( getPort( getProp(nsnode,"port") ) ); // здесь вызывается getArgParam! проходящий по _argv
ostringstream param;
param << this << "NameService=corbaname::" << getProp(nsnode,"host") << ":" << defPort;
new_argv[i+1] = strdup(param.str().c_str());
if( ulog.is_info() )
ulog.info() << "(Configuration): внесли параметр " << param.str() << endl;
uinfo << "(Configuration): внесли параметр " << param.str() << endl;
{
ostringstream ns_name;
......@@ -341,7 +332,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
cerr << "**********************!!!! FAILED ADD name=" <<ns_name << " uri=" << uri.str() << endl;
}
}
_argv = new_argv;
// ------------- CORBA INIT -------------
// orb init
......@@ -350,7 +341,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
PortableServer::POA_var root_poa = PortableServer::POA::_narrow(obj);
CORBA::PolicyList pl;
if( transientIOR == false )
{
pl.length(3);
......@@ -374,12 +365,12 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
}
catch( Exception& ex )
{
ulog.crit()<< "Configuration:" << ex << endl;
ucrit << "Configuration:" << ex << endl;
throw;
}
catch(...)
{
ulog.crit()<< "Configuration: INIT FAILED!!!!"<< endl;
ucrit << "Configuration: INIT FAILED!!!!"<< endl;
throw Exception("Configuration: INIT FAILED!!!!");
}
......@@ -422,23 +413,21 @@ void Configuration::initParameters()
xmlNode* root = unixml.findNode( unixml.getFirstNode(),"UniSet" );
if( !root )
{
if( ulog.is_crit() )
ulog.crit()<< "Configuration: INIT PARAM`s FAILED! <UniSet>...</UniSet> not found"<< endl;
ucrit << "Configuration: INIT PARAM`s FAILED! <UniSet>...</UniSet> not found"<< endl;
throw Exception("Configuration: INIT PARAM`s FAILED! <UniSet>...</UniSet> not found!");
}
UniXML_iterator it(root);
if( !it.goChildren() )
{
if( ulog.is_crit() )
ulog.crit()<< "Configuration: INIT PARAM`s FAILED!!!!"<< endl;
ucrit << "Configuration: INIT PARAM`s FAILED!!!!"<< endl;
throw Exception("Configuration: INIT PARAM`s FAILED!!!!");
}
for( ; it.getCurrent(); it.goNext() )
{
string name( it.getName() );
if( name == "LocalNode" )
{
if( localNode == UniSetTypes::DefaultObjectId )
......@@ -457,8 +446,7 @@ void Configuration::initParameters()
{
ostringstream msg;
msg << "Configuration: DBServer '" << secDB << "' not found ServiceID in <services>!";
if( ulog.is_crit() )
ulog.crit()<< msg.str() << endl;
ucrit << msg.str() << endl;
throw Exception(msg.str());
}
}
......@@ -536,8 +524,7 @@ void Configuration::setLocalNode( const string& nodename )
{
stringstream err;
err << "(Configuration::setLocalNode): Not found node '" << nodename << "'";
if( ulog.is_crit() )
ulog.crit()<< err.str() << endl;
ucrit << err.str() << endl;
throw Exception(err.str());
}
......@@ -604,8 +591,7 @@ void Configuration::createNodesList()
xmlNode* omapnode = unixml.findNode(unixml.getFirstNode(), "ObjectsMap");
if( !omapnode )
{
if( ulog.is_crit() )
ulog.crit()<< "(Configuration): <ObjectsMap> not found!!!" << endl;
ucrit << "(Configuration): <ObjectsMap> not found!!!" << endl;
throw Exception("(Configuration): <ObjectsMap> not found!");
}
......@@ -613,8 +599,7 @@ void Configuration::createNodesList()
xmlNode* node = unixml.findNode(omapnode, "nodes");
if(!node)
{
if( ulog.is_crit() )
ulog.crit()<< "(Configuration): <nodes> section not found!"<< endl;
ucrit << "(Configuration): <nodes> section not found!"<< endl;
throw Exception("(Configiuration): <nodes> section not found");
}
......@@ -630,8 +615,7 @@ void Configuration::createNodesList()
string sname(getProp(it,"name"));
if(sname.empty())
{
if( ulog.is_crit() )
ulog.crit()<< "Configuration(createNodesList): unknown name='' in <nodes> "<< endl;
ucrit << "Configuration(createNodesList): unknown name='' in <nodes> "<< endl;
throw Exception("Configuration(createNodesList: unknown name='' in <nodes>");
}
......@@ -641,15 +625,13 @@ void Configuration::createNodesList()
nodename = oind->mkFullNodeName(nodename,nodename);
NodeInfo ninf;
// ulog.info() << "Configuration(createNodesList): вносим узел " << nodename << endl;
ninf.id = oind->getIdByName(nodename);
if( ninf.id == DefaultObjectId )
{
if( ulog.is_crit() )
ulog.crit()<< "Configuration(createNodesList): Not found ID for node '" << nodename << "'" << endl;
ucrit << "Configuration(createNodesList): Not found ID for node '" << nodename << "'" << endl;
throw Exception("Configuration(createNodesList): Not found ID for node '"+nodename+"'");
}
ninf.host = getProp(it,"ip").c_str();
string tp(getProp(it,"port"));
if( tp.empty() )
......@@ -658,7 +640,7 @@ void Configuration::createNodesList()
ninf.port = tp.c_str();
string tmp(it.getProp("dbserver"));
if( tmp.empty() )
ninf.dbserver = UniSetTypes::DefaultObjectId;
else
......@@ -667,8 +649,7 @@ void Configuration::createNodesList()
ninf.dbserver = oind->getIdByName(dname);
if( ninf.dbserver == DefaultObjectId )
{
if( ulog.is_crit() )
ulog.crit()<< "Configuration(createNodesList): Not found ID for DBServer name='" << dname << "'" << endl;
ucrit << "Configuration(createNodesList): Not found ID for DBServer name='" << dname << "'" << endl;
throw Exception("Configuration(createNodesList: Not found ID for DBServer name='"+dname+"'");
}
}
......@@ -677,16 +658,13 @@ void Configuration::createNodesList()
localDBServer = ninf.dbserver;
ninf.connected = false;
initNode(ninf, it);
if( ulog.is_info() )
ulog.info() << "Configuration(createNodesList): add to list of nodes: node=" << nodename << " id=" << ninf.id << endl;
initNode(ninf, it);
uinfo << "Configuration(createNodesList): add to list of nodes: node=" << nodename << " id=" << ninf.id << endl;
lnodes.push_back(ninf);
}
}
if( ulog.is_info() )
ulog.info() << "Configuration(createNodesList): size of node list " << lnodes.size() << endl;
uinfo << "Configuration(createNodesList): size of node list " << lnodes.size() << endl;
}
// -------------------------------------------------------------------------
void Configuration::initNode( UniSetTypes::NodeInfo& ninfo, UniXML_iterator& it )
......@@ -748,12 +726,12 @@ xmlNode* Configuration::initDebug( DebugStream& deb, const string& _debname )
if( !debug_file.empty() )
deb.logFile(debug_file);
}
// теперь смотрим командную строку
string log_in("--"+debname+"-log-in-file");
string add_level("--"+debname+"-add-levels");
string del_level("--"+debname+"-del-levels");
// смотрим командную строку
for (int i=1; i < (_argc - 1); i++)
{
......@@ -782,8 +760,7 @@ void Configuration::initRepSections()
{
ostringstream msg;
msg << "Configuration(initRepSections): Not found section <RootSection> in " << fileConfName;
if( ulog.is_crit() )
ulog.crit()<< msg.str() << endl;
ucrit << msg.str() << endl;
throw SystemError(msg.str());
}
......@@ -801,8 +778,7 @@ string Configuration::getRepSectionName( const string& sec, xmlNode* secnode )
{
ostringstream msg;
msg << "Configuration(initRepSections): Not found section '" << sec << "' in " << fileConfName;
if( ulog.is_crit() )
ulog.crit()<< msg.str() << endl;
ucrit << msg.str() << endl;
throw SystemError(msg.str());
}
......@@ -842,8 +818,7 @@ void Configuration::setConfFileName( const string& fn )
msg << "\n\n***** CRIT: Unknown configure file." << endl
<< " Use --confile filename " << endl
<< " OR define enviropment variable UNISET_CONFILE" << endl;
if( ulog.is_crit() )
ulog.crit()<< msg.str();
ucrit << msg.str();
throw SystemError(msg.str());
}
}
......@@ -874,7 +849,7 @@ ObjectId Configuration::getSensorID( const std::string& name )
{
if( name.empty() )
return DefaultObjectId;
return oind->getIdByName(getSensorsSection()+"/"+name);
}
// -------------------------------------------------------------------------
......@@ -960,7 +935,7 @@ xmlNode* Configuration::getXMLNodesSection()
{
if( xmlNodesSec )
return xmlNodesSec;
xmlNodesSec = unixml.findNode(unixml.getFirstNode(),"nodes");
return xmlNodesSec;
}
......
......@@ -112,7 +112,7 @@ timeout_t LT_Object::checkTimers( UniSetObject* obj )
}
catch(Exception& ex)
{
ulog.crit() << "(checkTimers): " << ex << endl;
ucrit << "(checkTimers): " << ex << endl;
}
return sleepTime;
......@@ -125,11 +125,11 @@ timeout_t LT_Object::askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, c
{
if( timeMS < UniSetTimer::MinQuantityTime )
{
ulog.crit() << "(LT_askTimer): [мс] попытка заказть таймер со временем срабатыания "
ucrit << "(LT_askTimer): [мс] попытка заказть таймер со временем срабатыания "
<< " меньше разрешённого " << UniSetTimer::MinQuantityTime << endl;
timeMS = UniSetTimer::MinQuantityTime;
}
{ // lock
uniset_rwmutex_wrlock lock(lstMutex);
// поищем а может уж такой есть
......@@ -141,11 +141,8 @@ timeout_t LT_Object::askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, c
{
li->curTick = ticks;
li->tmr.setTiming(timeMS);
if( ulog.is_info() )
{
ulog.info() << "(LT_askTimer): заказ на таймер(id="
uinfo << "(LT_askTimer): заказ на таймер(id="
<< timerid << ") " << timeMS << " [мс] уже есть..." << endl;
}
return sleepTime;
}
}
......@@ -155,14 +152,12 @@ timeout_t LT_Object::askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, c
tlst.push_back(newti);
newti.reset();
} // unlock
if( ulog.is_info() )
ulog.info() << "(LT_askTimer): поступил заказ на таймер(id="<< timerid << ") " << timeMS << " [мс]\n";
uinfo << "(LT_askTimer): поступил заказ на таймер(id="<< timerid << ") " << timeMS << " [мс]\n";
}
else // отказ (при timeMS == 0)
{
if( ulog.is_info() )
ulog.info() << "(LT_askTimer): поступил отказ по таймеру id="<< timerid << endl;
uinfo << "(LT_askTimer): поступил отказ по таймеру id="<< timerid << endl;
{ // lock
uniset_rwmutex_wrlock lock(lstMutex);
tlst.remove_if(Timer_eq(timerid)); // STL - способ
......
......@@ -112,9 +112,9 @@ uniset_mutex_lock::uniset_mutex_lock( uniset_mutex& m, int timeMS ):
mutex->mtx.lock();
if( !mutex->cnd->timedwait(sec, msec) )
{
if( !mutex->name().empty() && ulog.is_level9() )
if( !mutex->name().empty() )
{
ulog.level9() << "(mutex_lock): вышло заданное время ожидания "
ulog9 << "(mutex_lock): вышло заданное время ожидания "
<< timeMS << " msec для " << mutex->name() << endl;
}
......
......@@ -59,15 +59,14 @@ void Restorer_XML::setConsumerFilter( const string& field, const string& val )
// -----------------------------------------------------------------------------
bool Restorer_XML::getConsumerInfo( UniXML_iterator& it,
ObjectId& cid, ObjectId& cnode )
{
{
if( !check_consumer_item(it) )
return false;
string cname( it.getProp("name"));
if( cname.empty() )
{
if( ulog.is_warn() )
ulog.warn() << "(Restorer_XML:getConsumerInfo): не указано имя заказчика..." << endl;
uwarn << "(Restorer_XML:getConsumerInfo): не указано имя заказчика..." << endl;
return false;
}
......@@ -80,23 +79,19 @@ bool Restorer_XML::getConsumerInfo( UniXML_iterator& it,
cname = conf->getServicesSection()+"/"+cname;
else
{
if( ulog.is_warn() )
{
ulog.warn() << "(Restorer_XML:getConsumerInfo): неизвестный тип объекта "
uwarn << "(Restorer_XML:getConsumerInfo): неизвестный тип объекта "
<< otype << endl;
}
return false;
}
cid = conf->oind->getIdByName(cname);
if( cid == UniSetTypes::DefaultObjectId )
{
if( ulog.is_crit() )
ulog.crit() << "(Restorer_XML:getConsumerInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР заказчика -->"
ucrit << "(Restorer_XML:getConsumerInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР заказчика -->"
<< cname << endl;
return false;
}
string cnodename(it.getProp("node"));
if( !cnodename.empty() )
{
......@@ -111,17 +106,12 @@ bool Restorer_XML::getConsumerInfo( UniXML_iterator& it,
if( cnode == UniSetTypes::DefaultObjectId )
{
if( ulog.is_crit() )
ulog.crit() << "(Restorer_XML:getConsumerInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР узла -->"
ucrit << "(Restorer_XML:getConsumerInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР узла -->"
<< cnodename << endl;
return false;
}
if( ulog.is_info() )
{
ulog.info() << "(Restorer_XML:getConsumerInfo): "
<< cname << ":" << cnodename << endl;
}
uinfo << "(Restorer_XML:getConsumerInfo): " << cname << ":" << cnodename << endl;
return true;
}
// -----------------------------------------------------------------------------
......@@ -147,7 +137,7 @@ xmlNode* Restorer_XML::find_node( UniXML& xml, xmlNode* root,
{
if( nm.empty() )
return it;
if( xml.getProp(it, "name") == nm )
return it;
}
......
......@@ -71,8 +71,7 @@ bool RunLock::isLocked(const string& name)
}
}
*/
if( ulog.is_info() )
ulog.info() << "(RunLock): programm " << name << " already run" << endl;
uinfo << "(RunLock): programm " << name << " already run" << endl;
fclose(out);
closedir(d);
......
......@@ -60,7 +60,6 @@ UniXML::UniXML():
UniXML::~UniXML()
{
//ulog.< "UniXML destr" << endl;
close();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment