Commit 7f491151 authored by Pavel Vainerman's avatar Pavel Vainerman

(codegen): Исправление ошибки в предыдущем коммитте (SEGFAULT),

переделал вывод вместо ulog в mylog.
parent 115a78aa
......@@ -181,7 +181,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"/> )
{
ulog2 &lt;&lt; "(setValue): <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> = " &lt;&lt; _val &lt;&lt; endl;
mylog8 &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;
......
......@@ -154,7 +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"/> )
{
ulog2 &lt;&lt; "(setValue): <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> = " &lt;&lt; _val &lt;&lt; endl;
mylog8 &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;
}
......
......@@ -112,7 +112,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"/> )
{
ulog2 &lt;&lt; "(setState): <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> = " &lt;&lt; _val &lt;&lt; endl;
mylog8 &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;
......
......@@ -116,7 +116,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"/> )
{
ulog2 &lt;&lt; "(setValue): <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> = " &lt;&lt; val &lt;&lt; endl;
mylog8 &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;
}
......
......@@ -106,7 +106,7 @@
<xsl:when test="$GENTYPE='A'">
if( _code == mid_<xsl:value-of select="../../@name"/> )
{
ulog8 &lt;&lt; "<xsl:value-of select="../../@name"/>" &lt;&lt; endl;
mylog8 &lt;&lt; "<xsl:value-of select="../../@name"/>" &lt;&lt; endl;
m_<xsl:value-of select="../../@name"/> = _state;
try
{
......@@ -133,7 +133,7 @@
}
catch( const UniSetTypes::Exception&amp; ex )
{
ulog1 &lt;&lt; getName() &lt;&lt; ex &lt;&lt; endl;
mywarn &lt;&lt; getName() &lt;&lt; ex &lt;&lt; endl;
}
}
</xsl:when>
......@@ -175,19 +175,45 @@
void init_dlog( std::shared_ptr&lt;DebugStream&gt; d );
// "синтаксический сахар"..для логов
#define myinfo if( mylog->debugging(Debug::INFO) ) mylog->info()
#define mywarn if( mylog->debugging(Debug::WARN) ) mylog->warn()
#define mycrit if( mylog->debugging(Debug::CRIT) ) mylog->crit()
#define mylog1 if( mylog->debugging(Debug::LEVEL1) ) mylog->level1()
#define mylog2 if( mylog->debugging(Debug::LEVEL2) ) mylog->level2()
#define mylog3 if( mylog->debugging(Debug::LEVEL3) ) mylog->level3()
#define mylog4 if( mylog->debugging(Debug::LEVEL4) ) mylog->level4()
#define mylog5 if( mylog->debugging(Debug::LEVEL5) ) mylog->level5()
#define mylog6 if( mylog->debugging(Debug::LEVEL6) ) mylog->level6()
#define mylog7 if( mylog->debugging(Debug::LEVEL7) ) mylog->level7()
#define mylog8 if( mylog->debugging(Debug::LEVEL8) ) mylog->level8()
#define mylog9 if( mylog->debugging(Debug::LEVEL9) ) mylog->level9()
#define mylogany mylog->any()
#ifndef myinfo
#define myinfo if( mylog->debugging(Debug::INFO) ) mylog->info()
#endif
#ifndef mywarn
#define mywarn if( mylog->debugging(Debug::WARN) ) mylog->warn()
#endif
#ifndef mycrit
#define mycrit if( mylog->debugging(Debug::CRIT) ) mylog->crit()
#endif
#ifndef mylog1
#define mylog1 if( mylog->debugging(Debug::LEVEL1) ) mylog->level1()
#endif
#ifndef mylog2
#define mylog2 if( mylog->debugging(Debug::LEVEL2) ) mylog->level2()
#endif
#ifndef mylog3
#define mylog3 if( mylog->debugging(Debug::LEVEL3) ) mylog->level3()
#endif
#ifndef mylog4
#define mylog4 if( mylog->debugging(Debug::LEVEL4) ) mylog->level4()
#endif
#ifndef mylog5
#define mylog5 if( mylog->debugging(Debug::LEVEL5) ) mylog->level5()
#endif
#ifndef mylog6
#define mylog6 if( mylog->debugging(Debug::LEVEL6) ) mylog->level6()
#endif
#ifndef mylog7
#define mylog7 if( mylog->debugging(Debug::LEVEL7) ) mylog->level7()
#endif
#ifndef mylog8
#define mylog8 if( mylog->debugging(Debug::LEVEL8) ) mylog->level8()
#endif
#ifndef mylog9
#define mylog9 if( mylog->debugging(Debug::LEVEL9) ) mylog->level9()
#endif
#ifndef mylogany
#define mylogany mylog->any()
#endif
</xsl:template>
<xsl:template name="COMMON-HEAD-PROTECTED">
......@@ -458,28 +484,28 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::waitSM( int wait_msec, ObjectId _te
</xsl:template>
<xsl:template name="init-variables">
<xsl:if test="normalize-space(@type)='int'">
<xsl:value-of select="normalize-space(@name)"/>(uni_atoi( init3_str(uniset_conf()->getArgParam("--" + argprefix + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>"))),
<xsl:value-of select="normalize-space(@name)"/>(uni_atoi( init3_str(uniset_conf()->getArgParam("--" + (_argprefix.empty() ? myname+"-" : _argprefix) + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>"))),
</xsl:if>
<xsl:if test="normalize-space(@type)='long'">
<xsl:value-of select="normalize-space(@name)"/>(uni_atoi( init3_str(uniset_conf()->getArgParam("--" + argprefix + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>"))),
<xsl:value-of select="normalize-space(@name)"/>(uni_atoi( init3_str(uniset_conf()->getArgParam("--" + (_argprefix.empty() ? myname+"-" : _argprefix) + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>"))),
</xsl:if>
<xsl:if test="normalize-space(@type)='float'">
<xsl:value-of select="normalize-space(@name)"/>(atof( init3_str(uniset_conf()->getArgParam("--" + argprefix + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>").c_str())),
<xsl:value-of select="normalize-space(@name)"/>(atof( init3_str(uniset_conf()->getArgParam("--" + (_argprefix.empty() ? myname+"-" : _argprefix) + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>").c_str())),
</xsl:if>
<xsl:if test="normalize-space(@type)='double'">
<xsl:value-of select="normalize-space(@name)"/>(atof( init3_str(uniset_conf()->getArgParam("--" + argprefix + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>").c_str())),
<xsl:value-of select="normalize-space(@name)"/>(atof( init3_str(uniset_conf()->getArgParam("--" + (_argprefix.empty() ? myname+"-" : _argprefix) + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>").c_str())),
</xsl:if>
<xsl:if test="normalize-space(@type)='bool'">
<xsl:value-of select="normalize-space(@name)"/>(uni_atoi( init3_str(uniset_conf()->getArgParam("--" + argprefix + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>"))),
<xsl:value-of select="normalize-space(@name)"/>(uni_atoi( init3_str(uniset_conf()->getArgParam("--" + (_argprefix.empty() ? myname+"-" : _argprefix) + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>"))),
</xsl:if>
<xsl:if test="normalize-space(@type)='str'">
<xsl:value-of select="normalize-space(@name)"/>(init3_str(uniset_conf()->getArgParam("--" + argprefix + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>")),
<xsl:value-of select="normalize-space(@name)"/>(init3_str(uniset_conf()->getArgParam("--" + (_argprefix.empty() ? myname+"-" : _argprefix) + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>")),
</xsl:if>
<xsl:if test="normalize-space(@type)='sensor'">
<xsl:value-of select="normalize-space(@name)"/>(uniset_conf()->getSensorID(init3_str(uniset_conf()->getArgParam("--" + argprefix + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>"))),
<xsl:value-of select="normalize-space(@name)"/>(uniset_conf()->getSensorID(init3_str(uniset_conf()->getArgParam("--" + (_argprefix.empty() ? myname+"-" : _argprefix) + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>"))),
</xsl:if>
<xsl:if test="normalize-space(@type)='object'">
<xsl:value-of select="normalize-space(@name)"/>(uniset_conf()->getObjectID(init3_str(uniset_conf()->getArgParam("--" + argprefix + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>"))),
<xsl:value-of select="normalize-space(@name)"/>(uniset_conf()->getObjectID(init3_str(uniset_conf()->getArgParam("--" + (_argprefix.empty() ? myname+"-" : _argprefix) + "<xsl:value-of select="@name"/>"),uniset_conf()->getProp(cnode,"<xsl:value-of select="@name"/>"),"<xsl:value-of select="normalize-space(@default)"/>"))),
</xsl:if>
</xsl:template>
......@@ -571,7 +597,7 @@ static const std::string init3_str( const std::string&amp; s1, const std::string
<xsl:value-of select="$CLASSNAME"/>_SK::<xsl:value-of select="$CLASSNAME"/>_SK( ObjectId id, xmlNode* cnode, const std::string&amp; _argprefix ):
<xsl:if test="normalize-space($BASECLASS)!=''"><xsl:value-of select="normalize-space($BASECLASS)"/>(id),</xsl:if>
<xsl:if test="normalize-space($BASECLASS)=''">UniSetObject(id),</xsl:if>
argprefix( (_argprefix.empty() ? myname+"-" : argprefix) ),
argprefix( (_argprefix.empty() ? myname+"-" : _argprefix) ),
// Инициализация идентификаторов (имена берутся из конф. файла)
<xsl:for-each select="//smap/item">
<xsl:if test="normalize-space(@vartype)!='io'">
......@@ -809,18 +835,18 @@ bool <xsl:value-of select="$CLASSNAME"/>_SK::alarm( UniSetTypes::ObjectId _code,
{
if( _code == UniSetTypes::DefaultObjectId )
{
ucrit &lt;&lt; getName()
mycrit &lt;&lt; getName()
&lt;&lt; "(alarm): попытка послать сообщение с DefaultObjectId"
&lt;&lt; endl;
return false;
}
ulog1 &lt;&lt; getName() &lt;&lt; "(alarm): " &lt;&lt; ( _state ? "SEND " : "RESET " ) &lt;&lt; endl;
mylog8 &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"/> )
{
ulog1 &lt;&lt; "<xsl:value-of select="@name"/>" &lt;&lt; endl;
mylog8 &lt;&lt; "<xsl:value-of select="@name"/>" &lt;&lt; endl;
try
{
m_<xsl:value-of select="@name"/> = _state;
......@@ -832,14 +858,14 @@ bool <xsl:value-of select="$CLASSNAME"/>_SK::alarm( UniSetTypes::ObjectId _code,
}
catch( const std::exception&amp;ex )
{
ucrit &lt;&lt; myname &lt;&lt; "(execute): catch " &lt;&lt; ex.what() &lt;&lt; endl;
mycrit &lt;&lt; myname &lt;&lt; "(execute): catch " &lt;&lt; ex.what() &lt;&lt; endl;
}
return false;
}
</xsl:for-each>
ulog1 &lt;&lt; " not found MessgeOID?!!" &lt;&lt; endl;
mylog8 &lt;&lt; " not found MessgeOID?!!" &lt;&lt; endl;
return false;
}
// -----------------------------------------------------------------------------
......@@ -858,7 +884,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::resetMsg()
}
catch( const UniSetTypes::Exception&amp; ex )
{
ulog1 &lt;&lt; getName() &lt;&lt; ex &lt;&lt; endl;
mywarn &lt;&lt; getName() &lt;&lt; ex &lt;&lt; endl;
}
}
</xsl:for-each>
......@@ -917,7 +943,7 @@ activated(false),
askPause(2000),
forceOut(false)
{
ucrit &lt;&lt; "<xsl:value-of select="$CLASSNAME"/>: init failed!!!!!!!!!!!!!!!" &lt;&lt; endl;
mycrit &lt;&lt; "<xsl:value-of select="$CLASSNAME"/>: init failed!!!!!!!!!!!!!!!" &lt;&lt; endl;
throw Exception( string(myname+": init failed!!!") );
}
// -----------------------------------------------------------------------------
......@@ -1094,13 +1120,13 @@ bool <xsl:value-of select="$CLASSNAME"/>_SK::alarm( UniSetTypes::ObjectId _code,
{
if( _code == UniSetTypes::DefaultObjectId )
{
ucrit &lt;&lt; getName()
mycrit &lt;&lt; getName()
&lt;&lt; "(alarm): попытка послать сообщение с DefaultObjectId"
&lt;&lt; endl;
return false;
}
ulog1 &lt;&lt; getName() &lt;&lt; "(alarm): (" &lt;&lt; _code &lt;&lt; ")" &lt;&lt; ( _state ? "SEND" : "RESET" ) &lt;&lt; endl;
mylog8 &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">
......@@ -1108,7 +1134,7 @@ bool <xsl:value-of select="$CLASSNAME"/>_SK::alarm( UniSetTypes::ObjectId _code,
</xsl:call-template>
</xsl:for-each>
ulog8 &lt;&lt; " not found MessgeOID?!!" &lt;&lt; endl;
mylog8 &lt;&lt; " not found MessgeOID?!!" &lt;&lt; endl;
return false;
}
// -----------------------------------------------------------------------------
......
......@@ -12,7 +12,7 @@
Name: libuniset2
Version: 2.0
Release: alt18
Release: alt19
Summary: UniSet - library for building distributed industrial control systems
......@@ -409,6 +409,10 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
# ..
%changelog
* Fri Mar 06 2015 Pavel Vainerman <pv@altlinux.ru> 2.0-alt19
- codegen: fixed bug (in previous commit)
- codegen: fixed warning (redefined mylog macroses)
* Sat Feb 28 2015 Pavel Vainerman <pv@altlinux.ru> 2.0-alt18
- codegen: set default argprefix=myname (object name)
- codegen: fixed minor bug in mylog..
......
......@@ -55,13 +55,13 @@ TEST_CASE("MBTCPMaster: 0x01 (read coil status)","[modbus][0x01][mbmaster][mbtcp
CHECK( ui->isExist(mbID) );
mbs->setReply(65535);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1000) == 1 );
REQUIRE( ui->getValue(1001) == 1 );
REQUIRE( ui->getValue(1002) == 1 );
mbs->setReply(0);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1000) == 0 );
REQUIRE( ui->getValue(1001) == 0 );
REQUIRE( ui->getValue(1002) == 0 );
......@@ -73,13 +73,13 @@ TEST_CASE("MBTCPMaster: 0x02 (read input status)","[modbus][0x02][mbmaster][mbtc
CHECK( ui->isExist(mbID) );
mbs->setReply(65535);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1040) == 1 );
REQUIRE( ui->getValue(1041) == 1 );
REQUIRE( ui->getValue(1042) == 1 );
mbs->setReply(0);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1040) == 0 );
REQUIRE( ui->getValue(1041) == 0 );
REQUIRE( ui->getValue(1042) == 0 );
......@@ -91,25 +91,25 @@ TEST_CASE("MBTCPMaster: 0x03 (read register outputs or memories or read word out
CHECK( ui->isExist(mbID) );
mbs->setReply(10);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1003) == 10 );
REQUIRE( ui->getValue(1004) == 10 );
REQUIRE( ui->getValue(1005) == 10 );
REQUIRE( ui->getValue(1006) == 10 );
mbs->setReply(-10);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1003) == -10 );
REQUIRE( ui->getValue(1004) == -10 );
REQUIRE( ui->getValue(1005) == -10 );
REQUIRE( ui->getValue(1006) == -10 );
mbs->setReply(0);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1003) == 0 );
REQUIRE( ui->getValue(1004) == 0 );
REQUIRE( ui->getValue(1005) == 0 );
REQUIRE( ui->getValue(1006) == 0 );
mbs->setReply(65535);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1003) == -1 );
REQUIRE( ui->getValue(1004) == -1 );
REQUIRE( ui->getValue(1005) == -1 );
......@@ -117,11 +117,11 @@ TEST_CASE("MBTCPMaster: 0x03 (read register outputs or memories or read word out
REQUIRE( ui->getValue(1007) == 65535 ); // unsigned
mbs->setReply(0xffff);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1008) == 0xffffffff ); // I2
REQUIRE( ui->getValue(1009) == 0xffffffff ); // U2
mbs->setReply(0xff);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1008) == 0x00ff00ff ); // I2
REQUIRE( ui->getValue(1009) == 0x00ff00ff ); // U2
......@@ -136,25 +136,25 @@ TEST_CASE("MBTCPMaster: 0x04 (read input registers or memories or read word outp
CHECK( ui->isExist(mbID) );
mbs->setReply(10);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1010) == 10 );
REQUIRE( ui->getValue(1011) == 10 );
REQUIRE( ui->getValue(1012) == 10 );
REQUIRE( ui->getValue(1013) == 10 );
mbs->setReply(-10);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1010) == -10 );
REQUIRE( ui->getValue(1011) == -10 );
REQUIRE( ui->getValue(1012) == -10 );
REQUIRE( ui->getValue(1013) == -10 );
mbs->setReply(0);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1010) == 0 );
REQUIRE( ui->getValue(1011) == 0 );
REQUIRE( ui->getValue(1012) == 0 );
REQUIRE( ui->getValue(1013) == 0 );
mbs->setReply(65535);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1010) == -1 );
REQUIRE( ui->getValue(1011) == -1 );
REQUIRE( ui->getValue(1012) == -1 );
......@@ -162,11 +162,11 @@ TEST_CASE("MBTCPMaster: 0x04 (read input registers or memories or read word outp
REQUIRE( ui->getValue(1014) == 65535 ); // unsigned
mbs->setReply(0xffff);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1015) == 0xffffffff ); // I2
REQUIRE( ui->getValue(1016) == 0xffffffff ); // U2
mbs->setReply(0xff);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1015) == 0x00ff00ff ); // I2
REQUIRE( ui->getValue(1016) == 0x00ff00ff ); // U2
......@@ -182,17 +182,17 @@ TEST_CASE("MBTCPMaster: 0x05 (forces a single coil to either ON or OFF)","[modbu
CHECK( ui->isExist(mbID) );
ui->setValue(1017,0);
REQUIRE( ui->getValue(1017) == 0 );
msleep(polltime+100);
msleep(polltime+200);
CHECK_FALSE( mbs->getForceSingleCoilCmd() );
ui->setValue(1017,1);
REQUIRE( ui->getValue(1017) == 1 );
msleep(polltime+100);
msleep(polltime+200);
CHECK( mbs->getForceSingleCoilCmd() );
ui->setValue(1017,0);
REQUIRE( ui->getValue(1017) == 0 );
msleep(polltime+100);
msleep(polltime+200);
CHECK_FALSE( mbs->getForceSingleCoilCmd() );
}
// -----------------------------------------------------------------------------
......@@ -203,22 +203,22 @@ TEST_CASE("MBTCPMaster: 0x06 (write register outputs or memories)","[modbus][0x0
CHECK( ui->isExist(mbID) );
ui->setValue(1018,0);
REQUIRE( ui->getValue(1018) == 0 );
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( mbs->getLastWriteOutputSingleRegister() == 0 );
ui->setValue(1018,100);
REQUIRE( ui->getValue(1018) == 100 );
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( mbs->getLastWriteOutputSingleRegister() == 100 );
ui->setValue(1018,-100);
REQUIRE( ui->getValue(1018) == -100 );
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( mbs->getLastWriteOutputSingleRegister() == -100 );
ui->setValue(1018,0);
REQUIRE( ui->getValue(1018) == 0 );
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( mbs->getLastWriteOutputSingleRegister() == 0 );
}
// -----------------------------------------------------------------------------
......@@ -234,7 +234,7 @@ TEST_CASE("MBTCPMaster: 0x0F (force multiple coils)","[modbus][0x0F][mbmaster][m
REQUIRE( ui->getValue(1024) == 0 );
REQUIRE( ui->getValue(1025) == 0 );
REQUIRE( ui->getValue(1026) == 0 );
msleep(polltime+100);
msleep(polltime+200);
ModbusRTU::ForceCoilsMessage q = mbs->getLastForceCoilsQ();
REQUIRE( q.start == 38 );
......@@ -245,7 +245,7 @@ TEST_CASE("MBTCPMaster: 0x0F (force multiple coils)","[modbus][0x0F][mbmaster][m
{
ui->setValue(1025,1);
REQUIRE( ui->getValue(1025) == 1 );
msleep(polltime+100);
msleep(polltime+200);
ModbusRTU::ForceCoilsMessage q = mbs->getLastForceCoilsQ();
REQUIRE( q.start == 38 );
......@@ -256,7 +256,7 @@ TEST_CASE("MBTCPMaster: 0x0F (force multiple coils)","[modbus][0x0F][mbmaster][m
{
ui->setValue(1024,1);
REQUIRE( ui->getValue(1024) == 1 );
msleep(polltime+100);
msleep(polltime+200);
ModbusRTU::ForceCoilsMessage q = mbs->getLastForceCoilsQ();
REQUIRE( q.start == 38 );
......@@ -271,7 +271,7 @@ TEST_CASE("MBTCPMaster: 0x0F (force multiple coils)","[modbus][0x0F][mbmaster][m
REQUIRE( ui->getValue(1024) == 0 );
REQUIRE( ui->getValue(1025) == 0 );
REQUIRE( ui->getValue(1026) == 0 );
msleep(polltime+100);
msleep(polltime+200);
ModbusRTU::ForceCoilsMessage q = mbs->getLastForceCoilsQ();
REQUIRE( q.start == 38 );
......@@ -293,7 +293,7 @@ TEST_CASE("MBTCPMaster: 0x10 (write register outputs or memories)","[modbus][0x1
REQUIRE( ui->getValue(1020) == 0 );
REQUIRE( ui->getValue(1021) == 0 );
REQUIRE( ui->getValue(1022) == 0 );
msleep(polltime+100);
msleep(polltime+200);
ModbusRTU::WriteOutputMessage q = mbs->getLastWriteOutput();
REQUIRE( q.addr == slaveADDR );
......@@ -313,7 +313,7 @@ TEST_CASE("MBTCPMaster: 0x10 (write register outputs or memories)","[modbus][0x1
REQUIRE( ui->getValue(1020) == 1 );
REQUIRE( ui->getValue(1021) == 10 );
REQUIRE( ui->getValue(1022) == 65535 );
msleep(polltime+100);
msleep(polltime+200);
ModbusRTU::WriteOutputMessage q = mbs->getLastWriteOutput();
REQUIRE( q.addr == slaveADDR );
......@@ -331,7 +331,7 @@ TEST_CASE("MBTCPMaster: 0x10 (write register outputs or memories)","[modbus][0x1
REQUIRE( ui->getValue(1019) == -100 );
REQUIRE( ui->getValue(1021) == -10 );
REQUIRE( ui->getValue(1022) == -32767 );
msleep(polltime+100);
msleep(polltime+200);
ModbusRTU::WriteOutputMessage q = mbs->getLastWriteOutput();
REQUIRE( q.addr == slaveADDR );
......@@ -346,7 +346,7 @@ TEST_CASE("MBTCPMaster: 0x10 (write register outputs or memories)","[modbus][0x1
{
ui->setValue(1023,0xffffffff);
REQUIRE( ui->getValue(1023) == 0xffffffff );
msleep(polltime+100);
msleep(polltime+200);
ModbusRTU::WriteOutputMessage q = mbs->getLastWriteOutput();
REQUIRE( q.addr == slaveADDR );
......@@ -366,14 +366,14 @@ TEST_CASE("MBTCPMaster: exchangeMode","[modbus][exchangemode][mbmaster][mbtcpmas
SECTION("read")
{
mbs->setReply(10);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1003) == 10 );
}
SECTION("write")
{
ui->setValue(1018,10);
REQUIRE( ui->getValue(1018) == 10 );
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( mbs->getLastWriteOutputSingleRegister() == 10 );
}
}
......@@ -387,10 +387,10 @@ TEST_CASE("MBTCPMaster: exchangeMode","[modbus][exchangemode][mbmaster][mbtcpmas
SECTION("read")
{
mbs->setReply(150);
msleep(2*polltime+100);
msleep(2*polltime+200);
REQUIRE( ui->getValue(1003) != 150 );
mbs->setReply(-10);
msleep(2*polltime+100);
msleep(2*polltime+200);
REQUIRE( ui->getValue(1003) != -10 );
REQUIRE( ui->getValue(1003) != 150 );
}
......@@ -398,11 +398,11 @@ TEST_CASE("MBTCPMaster: exchangeMode","[modbus][exchangemode][mbmaster][mbtcpmas
{
ui->setValue(1018,150);
REQUIRE( ui->getValue(1018) == 150 );
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( mbs->getLastWriteOutputSingleRegister() == 150 );
ui->setValue(1018,155);
REQUIRE( ui->getValue(1018) == 155 );
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( mbs->getLastWriteOutputSingleRegister() == 155 );
}
}
......@@ -416,21 +416,21 @@ TEST_CASE("MBTCPMaster: exchangeMode","[modbus][exchangemode][mbmaster][mbtcpmas
SECTION("read")
{
mbs->setReply(150);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1003) == 150 );
mbs->setReply(-100);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1003) == -100 );
}
SECTION("write")
{
ui->setValue(1018,50);
REQUIRE( ui->getValue(1018) == 50 );
msleep(2*polltime+100);
msleep(2*polltime+200);
REQUIRE( mbs->getLastWriteOutputSingleRegister() != 50 );
ui->setValue(1018,55);
REQUIRE( ui->getValue(1018) == 55 );
msleep(2*polltime+100);
msleep(2*polltime+200);
REQUIRE( mbs->getLastWriteOutputSingleRegister() != 55 );
REQUIRE( mbs->getLastWriteOutputSingleRegister() != 50 );
}
......@@ -445,7 +445,7 @@ TEST_CASE("MBTCPMaster: exchangeMode","[modbus][exchangemode][mbmaster][mbtcpmas
SECTION("read")
{
mbs->setReply(50);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1003) != 50 );
}
SECTION("write")
......@@ -453,11 +453,11 @@ TEST_CASE("MBTCPMaster: exchangeMode","[modbus][exchangemode][mbmaster][mbtcpmas
// а write работает в этом режиме.. (а чем отличается от writeOnly?)
ui->setValue(1018,60);
REQUIRE( ui->getValue(1018) == 60 );
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( mbs->getLastWriteOutputSingleRegister() == 60 );
ui->setValue(1018,65);
REQUIRE( ui->getValue(1018) == 65 );
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( mbs->getLastWriteOutputSingleRegister() == 65 );
}
}
......@@ -471,14 +471,14 @@ TEST_CASE("MBTCPMaster: exchangeMode","[modbus][exchangemode][mbmaster][mbtcpmas
SECTION("read")
{
mbs->setReply(70);
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( ui->getValue(1003) != 70 );
}
SECTION("write")
{
ui->setValue(1018,70);
REQUIRE( ui->getValue(1018) == 70 );
msleep(polltime+100);
msleep(polltime+200);
REQUIRE( mbs->getLastWriteOutputSingleRegister() != 70 );
}
......
......@@ -8,7 +8,7 @@
ВСЕ ВАШИ ИЗМЕНЕНИЯ БУДУТ ПОТЕРЯНЫ.
*/
// --------------------------------------------------------------------------
// generate timestamp: 2015-02-28+03:00
// generate timestamp: 2015-03-06+03:00
// -----------------------------------------------------------------------------
#ifndef UObject_SK_H_
#define UObject_SK_H_
......@@ -42,19 +42,45 @@ class UObject_SK:
void init_dlog( std::shared_ptr<DebugStream> d );
// "синтаксический сахар"..для логов
#define myinfo if( mylog->debugging(Debug::INFO) ) mylog->info()
#define mywarn if( mylog->debugging(Debug::WARN) ) mylog->warn()
#define mycrit if( mylog->debugging(Debug::CRIT) ) mylog->crit()
#define mylog1 if( mylog->debugging(Debug::LEVEL1) ) mylog->level1()
#define mylog2 if( mylog->debugging(Debug::LEVEL2) ) mylog->level2()
#define mylog3 if( mylog->debugging(Debug::LEVEL3) ) mylog->level3()
#define mylog4 if( mylog->debugging(Debug::LEVEL4) ) mylog->level4()
#define mylog5 if( mylog->debugging(Debug::LEVEL5) ) mylog->level5()
#define mylog6 if( mylog->debugging(Debug::LEVEL6) ) mylog->level6()
#define mylog7 if( mylog->debugging(Debug::LEVEL7) ) mylog->level7()
#define mylog8 if( mylog->debugging(Debug::LEVEL8) ) mylog->level8()
#define mylog9 if( mylog->debugging(Debug::LEVEL9) ) mylog->level9()
#define mylogany mylog->any()
#ifndef myinfo
#define myinfo if( mylog->debugging(Debug::INFO) ) mylog->info()
#endif
#ifndef mywarn
#define mywarn if( mylog->debugging(Debug::WARN) ) mylog->warn()
#endif
#ifndef mycrit
#define mycrit if( mylog->debugging(Debug::CRIT) ) mylog->crit()
#endif
#ifndef mylog1
#define mylog1 if( mylog->debugging(Debug::LEVEL1) ) mylog->level1()
#endif
#ifndef mylog2
#define mylog2 if( mylog->debugging(Debug::LEVEL2) ) mylog->level2()
#endif
#ifndef mylog3
#define mylog3 if( mylog->debugging(Debug::LEVEL3) ) mylog->level3()
#endif
#ifndef mylog4
#define mylog4 if( mylog->debugging(Debug::LEVEL4) ) mylog->level4()
#endif
#ifndef mylog5
#define mylog5 if( mylog->debugging(Debug::LEVEL5) ) mylog->level5()
#endif
#ifndef mylog6
#define mylog6 if( mylog->debugging(Debug::LEVEL6) ) mylog->level6()
#endif
#ifndef mylog7
#define mylog7 if( mylog->debugging(Debug::LEVEL7) ) mylog->level7()
#endif
#ifndef mylog8
#define mylog8 if( mylog->debugging(Debug::LEVEL8) ) mylog->level8()
#endif
#ifndef mylog9
#define mylog9 if( mylog->debugging(Debug::LEVEL9) ) mylog->level9()
#endif
#ifndef mylogany
#define mylogany mylog->any()
#endif
// Используемые идентификаторы
......
......@@ -11,7 +11,7 @@
ВСЕ ВАШИ ИЗМЕНЕНИЯ БУДУТ ПОТЕРЯНЫ.
*/
// --------------------------------------------------------------------------
// generate timestamp: 2015-02-28+03:00
// generate timestamp: 2015-03-06+03:00
// -----------------------------------------------------------------------------
#include <memory>
#include "Configuration.h"
......@@ -62,7 +62,7 @@ static const std::string init3_str( const std::string& s1, const std::string& s2
// -----------------------------------------------------------------------------
UObject_SK::UObject_SK( ObjectId id, xmlNode* cnode, const std::string& _argprefix ):
UniSetObject(id),
argprefix( (_argprefix.empty() ? myname+"-" : argprefix) ),
argprefix( (_argprefix.empty() ? myname+"-" : _argprefix) ),
// Инициализация идентификаторов (имена берутся из конф. файла)
// Используемые идентификаторы сообщений (имена берутся из конф. файла)
......@@ -103,7 +103,7 @@ end_private(false)
mylog->setLogName(myname);
{
ostringstream s;
s << argprefix << "-log";
s << argprefix << "log";
conf->initLogStream(mylog,s.str());
}
......@@ -186,17 +186,17 @@ bool UObject_SK::alarm( UniSetTypes::ObjectId _code, bool _state )
{
if( _code == UniSetTypes::DefaultObjectId )
{
ucrit << getName()
mycrit << getName()
<< "(alarm): попытка послать сообщение с DefaultObjectId"
<< endl;
return false;
}
ulog1 << getName() << "(alarm): " << ( _state ? "SEND " : "RESET " ) << endl;
mylog8 << getName() << "(alarm): " << ( _state ? "SEND " : "RESET " ) << endl;
ulog1 << " not found MessgeOID?!!" << endl;
mylog8 << " not found MessgeOID?!!" << endl;
return false;
}
// -----------------------------------------------------------------------------
......
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