Commit 2d07bd4e authored by Pavel Vainerman's avatar Pavel Vainerman

(codegen): слелал resetMsgTime настриваемым через аргумент командной строки

и через <settings>.
parent 08f298a9
......@@ -769,7 +769,11 @@ end_private(false)
sleep_msec = conf->getArgPInt("--" + argprefix + "sleep-msec","<xsl:call-template name="settings"><xsl:with-param name="varname" select="'sleep-msec'"/></xsl:call-template>", <xsl:call-template name="settings"><xsl:with-param name="varname" select="'sleep-msec'"/></xsl:call-template>);
resetMsgTime = conf->getPIntProp(cnode,"resetMsgTime", 2000);
string s_resetTime("<xsl:call-template name="settings"><xsl:with-param name="varname" select="'resetMsgTime'"/></xsl:call-template>");
if( s_resetTime.empty() )
s_resetTime = "500";
resetMsgTime = uni_atoi(init3_str(conf->getArgParam("--" + argprefix + "resetMsgTime"),conf->getProp(cnode,"resetMsgTime"),s_resetTime));
ptResetMsg.setTiming(resetMsgTime);
smReadyTimeout = conf->getArgInt("--" + argprefix + "sm-ready-timeout","<xsl:call-template name="settings"><xsl:with-param name="varname" select="'smReadyTimeout'"/></xsl:call-template>");
......@@ -1098,7 +1102,11 @@ askPause(uniset_conf()->getPIntProp(cnode,"askPause",2000))
sleep_msec = conf->getArgPInt("--" + argprefix + "sleep-msec","<xsl:call-template name="settings-alone"><xsl:with-param name="varname" select="'sleep-msec'"/></xsl:call-template>", <xsl:call-template name="settings-alone"><xsl:with-param name="varname" select="'sleep-msec'"/></xsl:call-template>);
resetMsgTime = conf->getPIntProp(cnode,"resetMsgTime", 2000);
string s_resetTime("<xsl:call-template name="settings-alone"><xsl:with-param name="varname" select="'sleep-msec'"/></xsl:call-template>");
if( s_resetTime.empty() )
s_resetTime = "500";
resetMsgTime = uni_atoi(init3_str(conf->getArgParam("--" + argprefix + "resetMsgTime"),conf->getProp(cnode,"resetMsgTime"),s_resetTime));
ptResetMsg.setTiming(resetMsgTime);
smReadyTimeout = conf->getArgInt("--" + argprefix + "sm-ready-timeout","<xsl:call-template name="settings"><xsl:with-param name="varname" select="'smReadyTimeout'"/></xsl:call-template>");
......
......@@ -16,6 +16,7 @@
<set name="msg-count" val="20"/>
<set name="sleep-msec" val="150"/>
<set name="arg-prefix" val="test-"/>
<set name="resetMsgTime" val="300"/>
</settings>
<variables>
<!-- type = [int,str,bool,float]
......
......@@ -132,10 +132,17 @@
В секции \<msgmap> описываются поля связанные с идентификаторами сообщений. По сути, сообщения это тоже датчики, только
используемые специальным образом. Для посылки сообщения датчик выставляется в "1" и через некоторое время должен быть сброшен.
(чтобы можно было опять послать тоже самое сообщение). Т.е. само событие "сообщение" это переход датчика "0" --> "1".
В сгенерированном коде реализован "автоматический" сброс сообщения через \b resetMsgTime миллисекунд.
\warning В сгенерированном коде реализован "автоматический" сброс сообщения через \b resetMsgTime миллисекунд.
\b resetMsgTime настраивается через конфигурационную секцию (см. \ref pg_Codegen_Configuration ). Следует иметь ввиду,
что это время должно быть достаточным чтобы датчик (изменение "0"-->"1") успел быть переданным по сети на другие узлы
(зависит от используемого протокола передачи).
(зависит от используемого протокола передачи). Либо можно переопределить значение аргументом командной строки
\a --argprefix-resetMsgTime \a msec, либо задать в файле описания в секции \b <settings>
\code
<settings>
...
<set name="resetMsgTime" val="500"/>
</settings>
\endcode
Для сообщений генерируется такой же набор "переменных" как и для полей указанных в \<smap> (см. \ref pg_Codegen_SMap). За исключением того,
что генерируется имя с префиксом \b mid_. И "привязка" идентификаторов не является обязательной.
\warning Датчики-сообщений \b ОБЯЗАТЕЛЬНО должны иметь тип \b "DI"
......
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