Commit bd6b3433 authored by Pavel Vainerman's avatar Pavel Vainerman

(codegen): Убрал по умолчанию всё касающееся "тестового режима".

Добавил возможность задать какой датчик использовать в качестве теста, для доступности SM.
parent b1553de9
...@@ -15,6 +15,9 @@ ...@@ -15,6 +15,9 @@
<xsl:variable name="OID"> <xsl:variable name="OID">
<xsl:call-template name="settings-alone"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template> <xsl:call-template name="settings-alone"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template>
</xsl:variable> </xsl:variable>
<xsl:variable name="TESTMODE">
<xsl:call-template name="settings"><xsl:with-param name="varname" select="'testmode'"/></xsl:call-template>
</xsl:variable>
<xsl:template match="/"> <xsl:template match="/">
<!-- BEGIN CC-FILE --> <!-- BEGIN CC-FILE -->
...@@ -31,7 +34,8 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback() ...@@ -31,7 +34,8 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback()
if( !active ) if( !active )
return; return;
try try
{ {
<xsl:if test="normalize-space($TESTMODE)!=''">
isTestMode = checkTestMode(); isTestMode = checkTestMode();
if( trTestMode.change(isTestMode) ) if( trTestMode.change(isTestMode) )
testMode(isTestMode); testMode(isTestMode);
...@@ -44,7 +48,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback() ...@@ -44,7 +48,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback()
msleep( sleep_msec ); msleep( sleep_msec );
return; return;
} }
</xsl:if>
// проверка таймеров // проверка таймеров
checkTimers(this); checkTimers(this);
......
...@@ -15,6 +15,9 @@ ...@@ -15,6 +15,9 @@
<xsl:variable name="OID"> <xsl:variable name="OID">
<xsl:call-template name="settings-alone"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template> <xsl:call-template name="settings-alone"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template>
</xsl:variable> </xsl:variable>
<xsl:variable name="TESTMODE">
<xsl:call-template name="settings"><xsl:with-param name="varname" select="'testmode'"/></xsl:call-template>
</xsl:variable>
<xsl:template match="/"> <xsl:template match="/">
<!-- BEGIN CC-FILE --> <!-- BEGIN CC-FILE -->
...@@ -33,7 +36,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback() ...@@ -33,7 +36,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback()
// NOTE: Нужно ли здесь опрашивать текущее значение выходов?!! // NOTE: Нужно ли здесь опрашивать текущее значение выходов?!!
// Опрос входов // Опрос входов
updateValues(); updateValues();
<xsl:if test="normalize-space($TESTMODE)!=''">
if( idLocalTestMode_S != DefaultObjectId ) if( idLocalTestMode_S != DefaultObjectId )
{ {
isTestMode = checkTestMode(); isTestMode = checkTestMode();
...@@ -49,7 +52,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback() ...@@ -49,7 +52,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback()
return; return;
} }
} }
</xsl:if>
// проверка таймеров // проверка таймеров
checkTimers(this); checkTimers(this);
......
...@@ -14,6 +14,9 @@ ...@@ -14,6 +14,9 @@
<xsl:variable name="OID"> <xsl:variable name="OID">
<xsl:call-template name="settings"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template> <xsl:call-template name="settings"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template>
</xsl:variable> </xsl:variable>
<xsl:variable name="TESTMODE">
<xsl:call-template name="settings"><xsl:with-param name="varname" select="'testmode'"/></xsl:call-template>
</xsl:variable>
<!-- Генерирование cc-файла --> <!-- Генерирование cc-файла -->
<xsl:template match="/"> <xsl:template match="/">
...@@ -32,7 +35,8 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback() ...@@ -32,7 +35,8 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback()
if( !active ) if( !active )
return; return;
try try
{ {
<xsl:if test="normalize-space($TESTMODE)!=''">
isTestMode = checkTestMode(); isTestMode = checkTestMode();
if( trTestMode.change(isTestMode) ) if( trTestMode.change(isTestMode) )
testMode(isTestMode); testMode(isTestMode);
...@@ -45,7 +49,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback() ...@@ -45,7 +49,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback()
msleep( sleep_msec ); msleep( sleep_msec );
return; return;
} }
</xsl:if>
// проверка таймеров // проверка таймеров
checkTimers(this); checkTimers(this);
......
...@@ -14,7 +14,9 @@ ...@@ -14,7 +14,9 @@
<xsl:variable name="OID"> <xsl:variable name="OID">
<xsl:call-template name="settings"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template> <xsl:call-template name="settings"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template>
</xsl:variable> </xsl:variable>
<xsl:variable name="TESTMODE">
<xsl:call-template name="settings"><xsl:with-param name="varname" select="'testmode'"/></xsl:call-template>
</xsl:variable>
<!-- Генерирование cc-файла --> <!-- Генерирование cc-файла -->
<xsl:template match="/"> <xsl:template match="/">
...@@ -35,7 +37,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback() ...@@ -35,7 +37,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback()
// NOTE: Нужно ли здесь опрашивать текущее значение выходов?!! // NOTE: Нужно ли здесь опрашивать текущее значение выходов?!!
// Опрос входов // Опрос входов
updateValues(); updateValues();
<xsl:if test="normalize-space($TESTMODE)!=''">
if( idLocalTestMode_S != DefaultObjectId ) if( idLocalTestMode_S != DefaultObjectId )
{ {
isTestMode = checkTestMode(); isTestMode = checkTestMode();
...@@ -51,7 +53,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback() ...@@ -51,7 +53,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::callback()
return; return;
} }
} }
</xsl:if>
checkSensors(); checkSensors();
// проверка таймеров // проверка таймеров
......
...@@ -180,7 +180,9 @@ ...@@ -180,7 +180,9 @@
void updatePreviousValues(); void updatePreviousValues();
void checkSensors(); void checkSensors();
void updateOutputs( bool force ); void updateOutputs( bool force );
<xsl:if test="normalize-space($TESTMODE)!=''">
bool checkTestMode(); bool checkTestMode();
</xsl:if>
void preSensorInfo( UniSetTypes::SensorMessage* sm ); void preSensorInfo( UniSetTypes::SensorMessage* sm );
void preTimerInfo( UniSetTypes::TimerMessage* tm ); void preTimerInfo( UniSetTypes::TimerMessage* tm );
void waitSM( int wait_msec, UniSetTypes::ObjectId testID = UniSetTypes::DefaultObjectId ); void waitSM( int wait_msec, UniSetTypes::ObjectId testID = UniSetTypes::DefaultObjectId );
...@@ -195,12 +197,15 @@ ...@@ -195,12 +197,15 @@
int sleep_msec; /*!&lt; пауза между итерациями */ int sleep_msec; /*!&lt; пауза между итерациями */
bool active; bool active;
<xsl:if test="normalize-space($TESTMODE)!=''">
bool isTestMode; bool isTestMode;
Trigger trTestMode; Trigger trTestMode;
UniSetTypes::ObjectId idTestMode_S; /*!&lt; идентификатор для флага тестовго режима (для всех) */ UniSetTypes::ObjectId idTestMode_S; /*!&lt; идентификатор для флага тестовго режима (для всех) */
UniSetTypes::ObjectId idLocalTestMode_S; /*!&lt; идентификатор для флага тестовго режима (для данного узла) */ UniSetTypes::ObjectId idLocalTestMode_S; /*!&lt; идентификатор для флага тестовго режима (для данного узла) */
bool in_TestMode_S; bool in_TestMode_S;
bool in_LocalTestMode_S; bool in_LocalTestMode_S;
</xsl:if>
UniSetTypes::ObjectId smTestID; /*!&lt; идентификатор датчика для тестирования готовности SM */
// управление датчиком "сердцебиения" // управление датчиком "сердцебиения"
PassiveTimer ptHeartBeat; /*! &lt; период "сердцебиения" */ PassiveTimer ptHeartBeat; /*! &lt; период "сердцебиения" */
...@@ -301,14 +306,6 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::sysCommand( SystemMessage* _sm ) ...@@ -301,14 +306,6 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::sysCommand( SystemMessage* _sm )
unideb.logFile(fname.c_str()); unideb.logFile(fname.c_str());
unideb &lt;&lt; myname &lt;&lt; "(sysCommand): ***************** UNIDEB LOG ROTATE *****************" &lt;&lt; endl; unideb &lt;&lt; myname &lt;&lt; "(sysCommand): ***************** UNIDEB LOG ROTATE *****************" &lt;&lt; endl;
} }
unideb &lt;&lt; myname &lt;&lt; "(sysCommand): logRotate" &lt;&lt; endl;
fname = unideb.getLogFile();
if( !fname.empty() )
{
unideb.logFile(fname.c_str());
unideb &lt;&lt; myname &lt;&lt; "(sysCommand): ***************** GGDEB LOG ROTATE *****************" &lt;&lt; endl;
}
} }
break; break;
...@@ -322,11 +319,13 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setState( UniSetTypes::ObjectId _si ...@@ -322,11 +319,13 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setState( UniSetTypes::ObjectId _si
setValue(_sid, _state ? 1 : 0 ); setValue(_sid, _state ? 1 : 0 );
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
<xsl:if test="normalize-space($TESTMODE)!=''">
bool <xsl:value-of select="$CLASSNAME"/>_SK::checkTestMode() bool <xsl:value-of select="$CLASSNAME"/>_SK::checkTestMode()
{ {
return (in_TestMode_S &amp;&amp; in_LocalTestMode_S); return (in_TestMode_S &amp;&amp; in_LocalTestMode_S);
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
</xsl:if>
void <xsl:value-of select="$CLASSNAME"/>_SK::sigterm( int signo ) void <xsl:value-of select="$CLASSNAME"/>_SK::sigterm( int signo )
{ {
<xsl:if test="normalize-space($BASECLASS)!=''"><xsl:value-of select="normalize-space($BASECLASS)"/>::sigterm(signo);</xsl:if> <xsl:if test="normalize-space($BASECLASS)!=''"><xsl:value-of select="normalize-space($BASECLASS)"/>::sigterm(signo);</xsl:if>
...@@ -356,9 +355,14 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::preTimerInfo( UniSetTypes::TimerMes ...@@ -356,9 +355,14 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::preTimerInfo( UniSetTypes::TimerMes
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
void <xsl:value-of select="$CLASSNAME"/>_SK::waitSM( int wait_msec, ObjectId _testID ) void <xsl:value-of select="$CLASSNAME"/>_SK::waitSM( int wait_msec, ObjectId _testID )
{ {
<xsl:if test="normalize-space($TESTMODE)!=''">
if( _testID == DefaultObjectId ) if( _testID == DefaultObjectId )
_testID = idTestMode_S; _testID = idTestMode_S;
</xsl:if>
if( _testID == DefaultObjectId )
_testID = smTestID;
if( _testID == DefaultObjectId ) if( _testID == DefaultObjectId )
return; return;
...@@ -383,6 +387,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::waitSM( int wait_msec, ObjectId _te ...@@ -383,6 +387,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::waitSM( int wait_msec, ObjectId _te
throw SystemError(err.str()); throw SystemError(err.str());
} }
<xsl:if test="normalize-space($TESTMODE)!=''">
if( idTestMode_S != DefaultObjectId ) if( idTestMode_S != DefaultObjectId )
{ {
if( !ui.waitWorking(idTestMode_S,wait_msec) ) if( !ui.waitWorking(idTestMode_S,wait_msec) )
...@@ -399,6 +404,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::waitSM( int wait_msec, ObjectId _te ...@@ -399,6 +404,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::waitSM( int wait_msec, ObjectId _te
throw SystemError(err.str()); throw SystemError(err.str());
} }
} }
</xsl:if>
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
</xsl:template> </xsl:template>
...@@ -462,9 +468,11 @@ node_<xsl:value-of select="@name"/>(DefaultObjectId), ...@@ -462,9 +468,11 @@ node_<xsl:value-of select="@name"/>(DefaultObjectId),
</xsl:if> </xsl:if>
</xsl:for-each> </xsl:for-each>
active(false), active(false),
<xsl:if test="normalize-space($TESTMODE)!=''">
isTestMode(false), isTestMode(false),
idTestMode_S(DefaultObjectId), idTestMode_S(DefaultObjectId),
idLocalTestMode_S(DefaultObjectId), idLocalTestMode_S(DefaultObjectId),
</xsl:if>
idHeartBeat(DefaultObjectId), idHeartBeat(DefaultObjectId),
maxHeartBeat(10), maxHeartBeat(10),
confnode(0), confnode(0),
...@@ -516,11 +524,13 @@ node_<xsl:value-of select="normalize-space(@name)"/>(conf->getNodeID( conf->getP ...@@ -516,11 +524,13 @@ node_<xsl:value-of select="normalize-space(@name)"/>(conf->getNodeID( conf->getP
</xsl:for-each> </xsl:for-each>
sleep_msec(<xsl:call-template name="settings"><xsl:with-param name="varname" select="'sleep-msec'"/></xsl:call-template>), sleep_msec(<xsl:call-template name="settings"><xsl:with-param name="varname" select="'sleep-msec'"/></xsl:call-template>),
active(true), active(true),
<xsl:if test="normalize-space($TESTMODE)!=''">
isTestMode(false), isTestMode(false),
idTestMode_S(conf->getSensorID("TestMode_S")), idTestMode_S(conf->getSensorID("TestMode_S")),
idLocalTestMode_S(conf->getSensorID(conf->getProp(cnode,"LocalTestMode_S"))), idLocalTestMode_S(conf->getSensorID(conf->getProp(cnode,"LocalTestMode_S"))),
in_TestMode_S(false), in_TestMode_S(false),
in_LocalTestMode_S(false), in_LocalTestMode_S(false),
</xsl:if>
idHeartBeat(DefaultObjectId), idHeartBeat(DefaultObjectId),
maxHeartBeat(10), maxHeartBeat(10),
confnode(cnode), confnode(cnode),
...@@ -612,6 +622,12 @@ askPause(conf->getPIntProp(cnode,"askPause",2000)) ...@@ -612,6 +622,12 @@ askPause(conf->getPIntProp(cnode,"askPause",2000))
else if( smReadyTimeout &lt; 0 ) else if( smReadyTimeout &lt; 0 )
smReadyTimeout = UniSetTimer::WaitUpTime; smReadyTimeout = UniSetTimer::WaitUpTime;
std::string tmp_smtestID("");
<xsl:for-each select="//smap/item">
<xsl:if test="normalize-space(@smTestID)!=''">tmp_smtestID = "<xsl:value-of select="@name"/>";</xsl:if>
</xsl:for-each>
smTestID = conf->getSensorID(init3_str(conf->getArgParam("--<xsl:value-of select="../@arg_prefix"/>sm-test-id"),conf->getProp(cnode,"smTestID"),tmp_smtestID));
activateTimeout = conf->getArgPInt("--activate-timeout", 20000); activateTimeout = conf->getArgPInt("--activate-timeout", 20000);
int msec = conf->getArgPInt("--startup-timeout", 10000); int msec = conf->getArgPInt("--startup-timeout", 10000);
...@@ -647,9 +663,10 @@ askPause(conf->getPIntProp(cnode,"askPause",2000)) ...@@ -647,9 +663,10 @@ askPause(conf->getPIntProp(cnode,"askPause",2000))
void <xsl:value-of select="$CLASSNAME"/>_SK::updateValues() void <xsl:value-of select="$CLASSNAME"/>_SK::updateValues()
{ {
// Опрашиваем все входы... // Опрашиваем все входы...
<xsl:if test="normalize-space($TESTMODE)!=''">
in_TestMode_S = (idTestMode_S!=DefaultObjectId) ? ui.getState(idTestMode_S):false; in_TestMode_S = (idTestMode_S!=DefaultObjectId) ? ui.getState(idTestMode_S):false;
in_LocalTestMode_S = (idLocalTestMode_S!=DefaultObjectId) ? ui.getState(idLocalTestMode_S):false; in_LocalTestMode_S = (idLocalTestMode_S!=DefaultObjectId) ? ui.getState(idLocalTestMode_S):false;
</xsl:if>
<xsl:for-each select="//smap/item"> <xsl:for-each select="//smap/item">
<xsl:choose> <xsl:choose>
<xsl:when test="normalize-space(@vartype)='in'"><xsl:call-template name="getdata"/></xsl:when> <xsl:when test="normalize-space(@vartype)='in'"><xsl:call-template name="getdata"/></xsl:when>
...@@ -765,6 +782,17 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::testMode( bool _state ) ...@@ -765,6 +782,17 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::testMode( bool _state )
<xsl:template name="COMMON-CC-ALONE-FUNCS"> <xsl:template name="COMMON-CC-ALONE-FUNCS">
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// ( 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;
}
// -----------------------------------------------------------------------------
<xsl:value-of select="$CLASSNAME"/>_SK::<xsl:value-of select="$CLASSNAME"/>_SK(): <xsl:value-of select="$CLASSNAME"/>_SK::<xsl:value-of select="$CLASSNAME"/>_SK():
<xsl:for-each select="//sensors/item"> <xsl:for-each select="//sensors/item">
<xsl:call-template name="setvar"> <xsl:call-template name="setvar">
...@@ -777,9 +805,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::testMode( bool _state ) ...@@ -777,9 +805,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::testMode( bool _state )
</xsl:call-template> </xsl:call-template>
</xsl:for-each> </xsl:for-each>
active(false), active(false),
<xsl:if test="normalize-space($TESTMODE)!=''">
isTestMode(false), isTestMode(false),
idTestMode_S(DefaultObjectId), idTestMode_S(DefaultObjectId),
idLocalTestMode_S(DefaultObjectId), idLocalTestMode_S(DefaultObjectId),
</xsl:if>
idHeartBeat(DefaultObjectId), idHeartBeat(DefaultObjectId),
maxHeartBeat(10), maxHeartBeat(10),
confnode(0), confnode(0),
...@@ -807,11 +837,13 @@ askPause(2000) ...@@ -807,11 +837,13 @@ askPause(2000)
</xsl:for-each> </xsl:for-each>
sleep_msec(<xsl:call-template name="settings-alone"><xsl:with-param name="varname" select="'sleep-msec'"/></xsl:call-template>), sleep_msec(<xsl:call-template name="settings-alone"><xsl:with-param name="varname" select="'sleep-msec'"/></xsl:call-template>),
active(true), active(true),
<xsl:if test="normalize-space($TESTMODE)!=''">
isTestMode(false), isTestMode(false),
idTestMode_S(conf->getSensorID("TestMode_S")), idTestMode_S(conf->getSensorID("TestMode_S")),
idLocalTestMode_S(conf->getSensorID(conf->getProp(cnode,"LocalTestMode_S"))), idLocalTestMode_S(conf->getSensorID(conf->getProp(cnode,"LocalTestMode_S"))),
in_TestMode_S(false), in_TestMode_S(false),
in_LocalTestMode_S(false), in_LocalTestMode_S(false),
</xsl:if>
idHeartBeat(DefaultObjectId), idHeartBeat(DefaultObjectId),
maxHeartBeat(10), maxHeartBeat(10),
confnode(cnode), confnode(cnode),
...@@ -860,6 +892,7 @@ askPause(conf->getPIntProp(cnode,"askPause",2000)) ...@@ -860,6 +892,7 @@ askPause(conf->getPIntProp(cnode,"askPause",2000))
else if( smReadyTimeout &lt; 0 ) else if( smReadyTimeout &lt; 0 )
smReadyTimeout = UniSetTimer::WaitUpTime; smReadyTimeout = UniSetTimer::WaitUpTime;
smTestID = conf->getSensorID(init3_str(conf->getArgParam("--<xsl:value-of select="../@arg_prefix"/>sm-test-id"),conf->getProp(cnode,"smTestID"),""));
activateTimeout = conf->getArgPInt("--activate-timeout", 20000); activateTimeout = conf->getArgPInt("--activate-timeout", 20000);
int msec = conf->getArgPInt("--startup-timeout", 10000); int msec = conf->getArgPInt("--startup-timeout", 10000);
...@@ -874,9 +907,10 @@ askPause(conf->getPIntProp(cnode,"askPause",2000)) ...@@ -874,9 +907,10 @@ askPause(conf->getPIntProp(cnode,"askPause",2000))
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void <xsl:value-of select="$CLASSNAME"/>_SK::updateValues() void <xsl:value-of select="$CLASSNAME"/>_SK::updateValues()
{ {
<xsl:if test="normalize-space($TESTMODE)!=''">
in_TestMode_S = (idTestMode_S!=DefaultObjectId) ? ui.getState(idTestMode_S):false; in_TestMode_S = (idTestMode_S!=DefaultObjectId) ? ui.getState(idTestMode_S):false;
in_LocalTestMode_S = (idLocalTestMode_S!=DefaultObjectId) ? ui.getState(idLocalTestMode_S):false; in_LocalTestMode_S = (idLocalTestMode_S!=DefaultObjectId) ? ui.getState(idLocalTestMode_S):false;
</xsl:if>
// Опрашиваем все входы... // Опрашиваем все входы...
<xsl:for-each select="//sensors/item/consumers/consumer"> <xsl:for-each select="//sensors/item/consumers/consumer">
<xsl:choose> <xsl:choose>
......
...@@ -14,7 +14,9 @@ ...@@ -14,7 +14,9 @@
<xsl:variable name="OID"> <xsl:variable name="OID">
<xsl:call-template name="settings-alone"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template> <xsl:call-template name="settings-alone"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template>
</xsl:variable> </xsl:variable>
<xsl:variable name="TESTMODE">
<xsl:call-template name="settings"><xsl:with-param name="varname" select="'testmode'"/></xsl:call-template>
</xsl:variable>
<!-- Генерирование заголовочного файла --> <!-- Генерирование заголовочного файла -->
<xsl:template match="/"> <xsl:template match="/">
......
...@@ -14,6 +14,9 @@ ...@@ -14,6 +14,9 @@
<xsl:variable name="OID"> <xsl:variable name="OID">
<xsl:call-template name="settings"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template> <xsl:call-template name="settings"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template>
</xsl:variable> </xsl:variable>
<xsl:variable name="TESTMODE">
<xsl:call-template name="settings"><xsl:with-param name="varname" select="'testmode'"/></xsl:call-template>
</xsl:variable>
<!-- Генерирование заголовочного файла --> <!-- Генерирование заголовочного файла -->
<xsl:template match="/"> <xsl:template match="/">
......
...@@ -14,7 +14,9 @@ ...@@ -14,7 +14,9 @@
<xsl:variable name="OID"> <xsl:variable name="OID">
<xsl:call-template name="settings"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template> <xsl:call-template name="settings"><xsl:with-param name="varname" select="'ID'"/></xsl:call-template>
</xsl:variable> </xsl:variable>
<xsl:variable name="TESTMODE">
<xsl:call-template name="settings"><xsl:with-param name="varname" select="'testmode'"/></xsl:call-template>
</xsl:variable>
<!-- Генерирование main для UniSet_FSM --> <!-- Генерирование main для UniSet_FSM -->
<xsl:template match="/"> <xsl:template match="/">
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
</variables> </variables>
<smap> <smap>
<!-- name - название переменной в конф. файле --> <!-- name - название переменной в конф. файле -->
<item name="input1_s" vartype="in" iotype="DI" comment="comment for input1"/> <item name="input1_s" vartype="in" iotype="DI" comment="comment for input1" smTestID="1"/>
<item name="input2_s" vartype="in" iotype="DI" comment="comment for input2" /> <item name="input2_s" vartype="in" iotype="DI" comment="comment for input2" />
<item name="output1_c" vartype="out" iotype="DO" omment="comment for output1" no_check_id="1"/> <item name="output1_c" vartype="out" iotype="DO" omment="comment for output1" no_check_id="1"/>
</smap> </smap>
......
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