Commit 38da890e authored by Pavel Vainerman's avatar Pavel Vainerman

(uniset-codegen): Повторно исправил баг в uniset-codegen.

Заодно сделал небольшую оптимизацию в конструкторе SensorMessage.
parent c4290d29
...@@ -401,7 +401,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code ...@@ -401,7 +401,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout &lt;&lt; myname &lt;&lt; ": (DI) change state <xsl:value-of select="../../@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (DI) change state <xsl:value-of select="../../@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="../../@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>); SensorMessage _sm( <xsl:value-of select="../../@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>, Message::Medium);
_sm.sensor_type = UniversalIO::DigitalInput; _sm.sensor_type = UniversalIO::DigitalInput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
...@@ -415,7 +415,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code ...@@ -415,7 +415,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout &lt;&lt; myname &lt;&lt; ": (AI) change value <xsl:value-of select="../../@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (AI) change value <xsl:value-of select="../../@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="../../@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>); // приходится искуственно использовать третий параметр,
// что-бы компилятор выбрал
// правильный(для аналоговых) конструктор у SensorMessage
IOController_i::CalibrateInfo _ci;
SensorMessage _sm( <xsl:value-of select="../../@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>, _ci);
_sm.sensor_type = UniversalIO::AnalogInput; _sm.sensor_type = UniversalIO::AnalogInput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
...@@ -429,7 +433,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code ...@@ -429,7 +433,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout &lt;&lt; myname &lt;&lt; ": (DO) change state <xsl:value-of select="../../@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (DO) change state <xsl:value-of select="../../@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="../../@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>); SensorMessage _sm( <xsl:value-of select="../../@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>, Message::Medium);
_sm.sensor_type = UniversalIO::DigitalOutput; _sm.sensor_type = UniversalIO::DigitalOutput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
...@@ -443,7 +447,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code ...@@ -443,7 +447,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout &lt;&lt; myname &lt;&lt; ": (AO) change value <xsl:value-of select="../../@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (AO) change value <xsl:value-of select="../../@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="../../@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>); // приходится искуственно использовать третий параметр,
// что-бы компилятор выбрал
// правильный(для аналоговых) конструктор у SensorMessage
IOController_i::CalibrateInfo _ci;
SensorMessage _sm( <xsl:value-of select="../../@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>, _ci);
_sm.sensor_type = UniversalIO::AnalogOutput; _sm.sensor_type = UniversalIO::AnalogOutput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
......
...@@ -129,7 +129,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::askState( UniSetTypes::ObjectId _si ...@@ -129,7 +129,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::askState( UniSetTypes::ObjectId _si
{ {
if( _cmd == UniversalIO::UIONotify ) if( _cmd == UniversalIO::UIONotify )
{ {
SensorMessage _sm( _sid, (bool)ui.getState(_sid,_node) ); SensorMessage _sm( _sid, (bool)ui.getState(_sid,_node), Message::Medium );
_sm.sensor_type = UniversalIO::DigitalInput; _sm.sensor_type = UniversalIO::DigitalInput;
_sm.node = _node; _sm.node = _node;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
...@@ -140,7 +140,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::askValue( UniSetTypes::ObjectId _si ...@@ -140,7 +140,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::askValue( UniSetTypes::ObjectId _si
{ {
if( _cmd == UniversalIO::UIONotify ) if( _cmd == UniversalIO::UIONotify )
{ {
SensorMessage _sm( _sid, (long)ui.getValue(_sid,_node) ); // приходится искуственно использовать третий параметр,
// что-бы компилятор выбрал
// правильный(для аналоговых) конструктор у SensorMessage
IOController_i::CalibrateInfo _ci;
SensorMessage _sm( _sid, (long)ui.getValue(_sid,_node), _ci );
_sm.node = _node; _sm.node = _node;
_sm.sensor_type = UniversalIO::AnalogInput; _sm.sensor_type = UniversalIO::AnalogInput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
...@@ -328,7 +332,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code ...@@ -328,7 +332,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout &lt;&lt; myname &lt;&lt; ": (DI) change state <xsl:value-of select="../../@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (DI) change state <xsl:value-of select="../../@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="../../@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>); SensorMessage _sm( <xsl:value-of select="../../@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>, Message::Medium);
_sm.sensor_type = UniversalIO::DigitalInput; _sm.sensor_type = UniversalIO::DigitalInput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
...@@ -342,7 +346,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code ...@@ -342,7 +346,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout &lt;&lt; myname &lt;&lt; ": (AI) change value <xsl:value-of select="../../@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (AI) change value <xsl:value-of select="../../@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="../../@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>); // приходится искуственно использовать третий параметр,
// что-бы компилятор выбрал
// правильный(для аналоговых) конструктор у SensorMessage
IOController_i::CalibrateInfo _ci;
SensorMessage _sm( <xsl:value-of select="../../@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>, _ci);
_sm.sensor_type = UniversalIO::AnalogInput; _sm.sensor_type = UniversalIO::AnalogInput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
...@@ -356,7 +364,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code ...@@ -356,7 +364,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout &lt;&lt; myname &lt;&lt; ": (DO) change state <xsl:value-of select="../../@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (DO) change state <xsl:value-of select="../../@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="../../@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>); SensorMessage _sm( <xsl:value-of select="../../@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>, Message::Medium);
_sm.sensor_type = UniversalIO::DigitalOutput; _sm.sensor_type = UniversalIO::DigitalOutput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
...@@ -370,7 +378,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code ...@@ -370,7 +378,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout &lt;&lt; myname &lt;&lt; ": (AO) change value <xsl:value-of select="../../@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (AO) change value <xsl:value-of select="../../@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="../../@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>); // приходится искуственно использовать третий параметр,
// что-бы компилятор выбрал
// правильный(для аналоговых) конструктор у SensorMessage
IOController_i::CalibrateInfo _ci;
SensorMessage _sm( <xsl:value-of select="../../@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="../../@name"/>, _ci);
_sm.sensor_type = UniversalIO::AnalogOutput; _sm.sensor_type = UniversalIO::AnalogOutput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
......
...@@ -358,7 +358,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code ...@@ -358,7 +358,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout &lt;&lt; myname &lt;&lt; ": (DI) change state <xsl:value-of select="@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (DI) change state <xsl:value-of select="@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>); SensorMessage _sm( <xsl:value-of select="@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>, Message::Medium);
_sm.sensor_type = UniversalIO::DigitalInput; _sm.sensor_type = UniversalIO::DigitalInput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
...@@ -375,7 +375,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code ...@@ -375,7 +375,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout &lt;&lt; myname &lt;&lt; ": (AI) change value <xsl:value-of select="@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (AI) change value <xsl:value-of select="@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>); // приходится искуственно использовать третий параметр,
// что-бы компилятор выбрал
// правильный(для аналоговых) конструктор у SensorMessage
IOController_i::CalibrateInfo _ci;
SensorMessage _sm( <xsl:value-of select="@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>, _ci);
_sm.sensor_type = UniversalIO::AnalogInput; _sm.sensor_type = UniversalIO::AnalogInput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
...@@ -383,7 +387,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code ...@@ -383,7 +387,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
</xsl:when> </xsl:when>
<xsl:when test="normalize-space(@iotype)='DO'"> <xsl:when test="normalize-space(@iotype)='DO'">
<xsl:if test="normalize-space($onlymsg)=''"> <xsl:if test="normalize-space($onlymsg)=''">
if( prev_<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> != <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> ) if( prev_<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> != <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>, Message::Medium)
</xsl:if> </xsl:if>
{ {
if( <xsl:value-of select="@name"/> != DefaultObjectId ) if( <xsl:value-of select="@name"/> != DefaultObjectId )
...@@ -392,7 +396,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code ...@@ -392,7 +396,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout &lt;&lt; myname &lt;&lt; ": (DO) change state <xsl:value-of select="@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (DO) change state <xsl:value-of select="@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>); SensorMessage _sm( <xsl:value-of select="@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>, Message::Medium);
_sm.sensor_type = UniversalIO::DigitalOutput; _sm.sensor_type = UniversalIO::DigitalOutput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
...@@ -409,7 +413,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code ...@@ -409,7 +413,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout &lt;&lt; myname &lt;&lt; ": (AO) change value <xsl:value-of select="@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (AO) change value <xsl:value-of select="@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>); // приходится искуственно использовать третий параметр,
// что-бы компилятор выбрал
// правильный(для аналоговых) конструктор у SensorMessage
IOController_i::CalibrateInfo _ci;
SensorMessage _sm( <xsl:value-of select="@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>, _ci);
_sm.sensor_type = UniversalIO::AnalogOutput; _sm.sensor_type = UniversalIO::AnalogOutput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
......
...@@ -161,7 +161,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::askState( UniSetTypes::ObjectId sid ...@@ -161,7 +161,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::askState( UniSetTypes::ObjectId sid
{ {
if( cmd == UniversalIO::UIONotify ) if( cmd == UniversalIO::UIONotify )
{ {
SensorMessage sm( sid, (bool)ui.getState(sid,node) ); SensorMessage sm( sid, (bool)ui.getState(sid,node), Message::Medium );
sm.sensor_type = UniversalIO::DigitalInput; sm.sensor_type = UniversalIO::DigitalInput;
sm.node = node; sm.node = node;
sensorInfo(&amp;sm); sensorInfo(&amp;sm);
...@@ -172,7 +172,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::askValue( UniSetTypes::ObjectId sid ...@@ -172,7 +172,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::askValue( UniSetTypes::ObjectId sid
{ {
if( cmd == UniversalIO::UIONotify ) if( cmd == UniversalIO::UIONotify )
{ {
SensorMessage sm( sid, (long)ui.getValue(sid,node) ); // приходится искуственно использовать третий параметр,
// что-бы компилятор выбрал
// правильный(для аналоговых) конструктор у SensorMessage
IOController_i::CalibrateInfo _ci;
SensorMessage sm( sid, (long)ui.getValue(sid,node), _ci );
sm.sensor_type = UniversalIO::AnalogInput; sm.sensor_type = UniversalIO::AnalogInput;
sm.node = node; sm.node = node;
sensorInfo(&amp;sm); sensorInfo(&amp;sm);
...@@ -323,7 +327,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code, ...@@ -323,7 +327,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code,
// cout &lt;&lt; myname &lt;&lt; ": (DI) change state <xsl:value-of select="@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (DI) change state <xsl:value-of select="@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>); SensorMessage _sm( <xsl:value-of select="@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>, Message::Medium);
_sm.sensor_type = UniversalIO::DigitalInput; _sm.sensor_type = UniversalIO::DigitalInput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
...@@ -338,7 +342,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code, ...@@ -338,7 +342,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code,
// cout &lt;&lt; myname &lt;&lt; ": (AI) change value <xsl:value-of select="@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (AI) change value <xsl:value-of select="@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>); // приходится искуственно использовать третий параметр,
// что-бы компилятор выбрал
// правильный(для аналоговых) конструктор у SensorMessage
IOController_i::CalibrateInfo _ci;
SensorMessage _sm( <xsl:value-of select="@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>, _ci);
_sm.sensor_type = UniversalIO::AnalogInput; _sm.sensor_type = UniversalIO::AnalogInput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
...@@ -354,7 +362,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code, ...@@ -354,7 +362,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code,
// cout &lt;&lt; myname &lt;&lt; ": (DO) change state <xsl:value-of select="@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (DO) change state <xsl:value-of select="@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>); SensorMessage _sm( <xsl:value-of select="@name"/>, (bool)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>, Message::Medium);
_sm.sensor_type = UniversalIO::DigitalOutput; _sm.sensor_type = UniversalIO::DigitalOutput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
...@@ -371,7 +379,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code, ...@@ -371,7 +379,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code,
// cout &lt;&lt; myname &lt;&lt; ": (AO) change value <xsl:value-of select="@name"/> set " // cout &lt;&lt; myname &lt;&lt; ": (AO) change value <xsl:value-of select="@name"/> set "
// &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl; // &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/> &lt;&lt; endl;
</xsl:if> </xsl:if>
SensorMessage _sm( <xsl:value-of select="@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>); // приходится искуственно использовать третий параметр,
// что-бы компилятор выбрал
// правильный(для аналоговых) конструктор у SensorMessage
IOController_i::CalibrateInfo _ci;
SensorMessage _sm( <xsl:value-of select="@name"/>, (long)<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>, _ci);
_sm.sensor_type = UniversalIO::AnalogOutput; _sm.sensor_type = UniversalIO::AnalogOutput;
sensorInfo(&amp;_sm); sensorInfo(&amp;_sm);
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
Name: libuniset Name: libuniset
Version: 1.0 Version: 1.0
Release: alt9 Release: alt10
Summary: UniSet - library for building distributed industrial control systems Summary: UniSet - library for building distributed industrial control systems
License: GPL License: GPL
Group: Development/C++ Group: Development/C++
...@@ -191,6 +191,9 @@ rm -f %buildroot%_libdir/*.la ...@@ -191,6 +191,9 @@ rm -f %buildroot%_libdir/*.la
%exclude %_pkgconfigdir/libUniSet.pc %exclude %_pkgconfigdir/libUniSet.pc
%changelog %changelog
* Sun Mar 13 2011 Pavel Vainerman <pv@altlinux.ru> 1.0-alt10
- fixed bug in uniset-codegen (again)
* Sun Mar 13 2011 Pavel Vainerman <pv@altlinux.ru> 1.0-alt9 * Sun Mar 13 2011 Pavel Vainerman <pv@altlinux.ru> 1.0-alt9
- fixed bug in uniset-codegen - fixed bug in uniset-codegen
......
...@@ -127,7 +127,7 @@ namespace UniSetTypes ...@@ -127,7 +127,7 @@ namespace UniSetTypes
UniversalIO::IOTypes st = UniversalIO::DigitalInput, UniversalIO::IOTypes st = UniversalIO::DigitalInput,
ObjectId consumer=UniSetTypes::DefaultObjectId); ObjectId consumer=UniSetTypes::DefaultObjectId);
SensorMessage(ObjectId id, long value, IOController_i::CalibrateInfo ci, SensorMessage(ObjectId id, long value, IOController_i::CalibrateInfo& ci,
Priority priority = Message::Medium, Priority priority = Message::Medium,
UniversalIO::IOTypes st = UniversalIO::AnalogInput, UniversalIO::IOTypes st = UniversalIO::AnalogInput,
ObjectId consumer=UniSetTypes::DefaultObjectId); ObjectId consumer=UniSetTypes::DefaultObjectId);
......
...@@ -116,7 +116,7 @@ tid(UniSetTypes::DefaultThresholdId) ...@@ -116,7 +116,7 @@ tid(UniSetTypes::DefaultThresholdId)
ci.precision = 0; ci.precision = 0;
} }
SensorMessage::SensorMessage(ObjectId id, long value, IOController_i::CalibrateInfo ci, SensorMessage::SensorMessage(ObjectId id, long value, IOController_i::CalibrateInfo& ci,
Priority priority, Priority priority,
UniversalIO::IOTypes st, ObjectId consumer): UniversalIO::IOTypes st, ObjectId consumer):
id(id), id(id),
......
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