Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
U
uniset2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
UniSet project repositories
uniset2
Commits
38da890e
Commit
38da890e
authored
Mar 13, 2011
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(uniset-codegen): Повторно исправил баг в uniset-codegen.
Заодно сделал небольшую оптимизацию в конструкторе SensorMessage.
parent
c4290d29
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
67 additions
and
24 deletions
+67
-24
ctl-cpp-cc-alone-ask.xsl
Utilities/codegen/ctl-cpp-cc-alone-ask.xsl
+12
-4
ctl-cpp-cc-alone.xsl
Utilities/codegen/ctl-cpp-cc-alone.xsl
+18
-6
ctl-cpp-cc-ask.xsl
Utilities/codegen/ctl-cpp-cc-ask.xsl
+13
-5
ctl-cpp-cc.xsl
Utilities/codegen/ctl-cpp-cc.xsl
+18
-6
libuniset.spec
conf/libuniset.spec
+4
-1
MessageType.h
include/MessageType.h
+1
-1
MessageType.cc
src/Various/MessageType.cc
+1
-1
No files found.
Utilities/codegen/ctl-cpp-cc-alone-ask.xsl
View file @
38da890e
...
...
@@ -401,7 +401,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout
<<
myname
<<
": (DI) change state
<xsl:value-of
select=
"../../@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"../../@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
@@ -415,7 +415,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout
<<
myname
<<
": (AI) change value
<xsl:value-of
select=
"../../@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"../../@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
@@ -429,7 +433,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout
<<
myname
<<
": (DO) change state
<xsl:value-of
select=
"../../@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"../../@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
@@ -443,7 +447,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout
<<
myname
<<
": (AO) change value
<xsl:value-of
select=
"../../@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"../../@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
Utilities/codegen/ctl-cpp-cc-alone.xsl
View file @
38da890e
...
...
@@ -129,7 +129,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::askState( UniSetTypes::ObjectId _si
{
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.node = _node;
sensorInfo(
&
_sm);
...
...
@@ -140,7 +140,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::askValue( UniSetTypes::ObjectId _si
{
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.sensor_type = UniversalIO::AnalogInput;
sensorInfo(
&
_sm);
...
...
@@ -328,7 +332,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout
<<
myname
<<
": (DI) change state
<xsl:value-of
select=
"../../@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"../../@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
@@ -342,7 +346,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout
<<
myname
<<
": (AI) change value
<xsl:value-of
select=
"../../@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"../../@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
@@ -356,7 +364,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout
<<
myname
<<
": (DO) change state
<xsl:value-of
select=
"../../@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"../../@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
@@ -370,7 +378,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout
<<
myname
<<
": (AO) change value
<xsl:value-of
select=
"../../@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"../../@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
Utilities/codegen/ctl-cpp-cc-ask.xsl
View file @
38da890e
...
...
@@ -358,7 +358,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout
<<
myname
<<
": (DI) change state
<xsl:value-of
select=
"@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
@@ -375,7 +375,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout
<<
myname
<<
": (AI) change value
<xsl:value-of
select=
"@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
@@ -383,7 +387,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
</xsl:when>
<xsl:when
test=
"normalize-space(@iotype)='DO'"
>
<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>
{
if(
<xsl:value-of
select=
"@name"
/>
!= DefaultObjectId )
...
...
@@ -392,7 +396,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout
<<
myname
<<
": (DO) change state
<xsl:value-of
select=
"@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
@@ -409,7 +413,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId _code
// cout
<<
myname
<<
": (AO) change value
<xsl:value-of
select=
"@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
Utilities/codegen/ctl-cpp-cc.xsl
View file @
38da890e
...
...
@@ -161,7 +161,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::askState( UniSetTypes::ObjectId sid
{
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.node = node;
sensorInfo(
&
sm);
...
...
@@ -172,7 +172,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::askValue( UniSetTypes::ObjectId sid
{
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.node = node;
sensorInfo(
&
sm);
...
...
@@ -323,7 +327,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code,
// cout
<<
myname
<<
": (DI) change state
<xsl:value-of
select=
"@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
@@ -338,7 +342,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code,
// cout
<<
myname
<<
": (AI) change value
<xsl:value-of
select=
"@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
@@ -354,7 +362,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code,
// cout
<<
myname
<<
": (DO) change state
<xsl:value-of
select=
"@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
@@ -371,7 +379,11 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code,
// cout
<<
myname
<<
": (AO) change value
<xsl:value-of
select=
"@name"
/>
set "
//
<<
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"@name"
/>
<<
endl;
</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;
sensorInfo(
&
_sm);
}
...
...
conf/libuniset.spec
View file @
38da890e
...
...
@@ -3,7 +3,7 @@
Name: libuniset
Version: 1.0
Release: alt
9
Release: alt
10
Summary: UniSet - library for building distributed industrial control systems
License: GPL
Group: Development/C++
...
...
@@ -191,6 +191,9 @@ rm -f %buildroot%_libdir/*.la
%exclude %_pkgconfigdir/libUniSet.pc
%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
- fixed bug in uniset-codegen
...
...
include/MessageType.h
View file @
38da890e
...
...
@@ -127,7 +127,7 @@ namespace UniSetTypes
UniversalIO
::
IOTypes
st
=
UniversalIO
::
DigitalInput
,
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
,
UniversalIO
::
IOTypes
st
=
UniversalIO
::
AnalogInput
,
ObjectId
consumer
=
UniSetTypes
::
DefaultObjectId
);
...
...
src/Various/MessageType.cc
View file @
38da890e
...
...
@@ -116,7 +116,7 @@ tid(UniSetTypes::DefaultThresholdId)
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
,
UniversalIO
::
IOTypes
st
,
ObjectId
consumer
)
:
id
(
id
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment