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
c8ca205c
Commit
c8ca205c
authored
Aug 01, 2009
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add new properties for history logging in SharedMemory)
parent
156bb372
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
58 additions
and
19 deletions
+58
-19
test.xml
conf/test.xml
+3
-3
SharedMemory.cc
extensions/SharedMemory/SharedMemory.cc
+47
-12
SharedMemory.h
extensions/SharedMemory/SharedMemory.h
+8
-4
No files found.
conf/test.xml
View file @
c8ca205c
...
...
@@ -46,8 +46,8 @@
<SharedMemory
name=
"SharedMemory"
shmID=
"SharedMemory"
>
<History
savetime=
"200"
>
<item
id=
"1"
fuse
=
"AlarmFuse1_S
"
size=
"30"
filter=
"a1"
/>
<item
id=
"2"
fuse
=
"AlarmFuse2_S
"
size=
"30"
filter=
"a2"
/>
<item
id=
"1"
fuse
_id=
"AlarmFuse1_S"
fuse_invert=
"1
"
size=
"30"
filter=
"a1"
/>
<item
id=
"2"
fuse
_id=
"AlarmFuse2_AS"
fuse_value=
"2
"
size=
"30"
filter=
"a2"
/>
</History>
</SharedMemory>
...
...
@@ -129,7 +129,7 @@
<item
name=
"NoRespondRTU2_S"
textname=
"no respond rtu"
node=
""
iotype=
"DI"
/>
<item
name=
"AlarmFuse1_S"
textname=
"alarm fuse sensor 1"
node=
""
iotype=
"DI"
priority=
"Medium"
/>
<item
name=
"AlarmFuse2_
S"
textname=
"alarm fuse sensor 2"
node=
""
iotype=
"D
I"
priority=
"Medium"
/>
<item
name=
"AlarmFuse2_
AS"
textname=
"alarm fuse sensor 2"
node=
""
iotype=
"A
I"
priority=
"Medium"
/>
<item
name=
"DumpSensor1_S"
textname=
"alarm dumpm sensor 1"
a1=
"1"
node=
""
iotype=
"DI"
priority=
"Medium"
/>
<item
name=
"DumpSensor2_S"
textname=
"alarm dumpm sensor 2"
a1=
"1"
node=
""
iotype=
"DI"
priority=
"Medium"
/>
...
...
extensions/SharedMemory/SharedMemory.cc
View file @
c8ca205c
...
...
@@ -216,7 +216,7 @@ void SharedMemory::askSensors( UniversalIO::UIOCommand cmd )
/*
for( History::iterator it=hist.begin(); it!=hist.end(); ++it )
{
if( sm->id == it->
idFuse
)
if( sm->id == it->
fuse_id
)
{
try
{
...
...
@@ -584,17 +584,23 @@ void SharedMemory::buildHistoryList( xmlNode* cnode )
if
(
hi
.
filter
.
empty
()
)
continue
;
hi
.
idFuse
=
conf
->
getSensorID
(
it
.
getProp
(
"fuse
"
));
if
(
hi
.
idFuse
==
DefaultObjectId
)
hi
.
fuse_id
=
conf
->
getSensorID
(
it
.
getProp
(
"fuse_id
"
));
if
(
hi
.
fuse_id
==
DefaultObjectId
)
{
dlog
[
Debug
::
WARN
]
<<
myname
<<
"(buildHistory): not found sensor ID for "
<<
it
.
getProp
(
"
idFuse
"
)
<<
it
.
getProp
(
"
fuse_id
"
)
<<
" history item id="
<<
it
.
getProp
(
"id"
)
<<
" ..ignore.."
<<
endl
;
continue
;
}
hi
.
invert
=
uni_atoi
(
it
.
getProp
(
"invert"
).
c_str
());
hi
.
fuse_invert
=
uni_atoi
(
it
.
getProp
(
"fuse_invert"
).
c_str
());
if
(
!
it
.
getProp
(
"fuse_value"
).
empty
()
)
{
hi
.
fuse_use_val
=
true
;
hi
.
fuse_val
=
uni_atoi
(
it
.
getProp
(
"fuse_value"
).
c_str
());
}
// WARNING: no check duplicates...
hist
.
push_back
(
hi
);
...
...
@@ -671,15 +677,44 @@ void SharedMemory::updateHistory( UniSetTypes::SensorMessage* sm )
for
(
History
::
iterator
it
=
hist
.
begin
();
it
!=
hist
.
end
();
++
it
)
{
if
(
sm
->
id
==
it
->
idFuse
)
if
(
sm
->
id
==
it
->
fuse_id
)
{
bool
st
=
it
->
invert
?
!
sm
->
state
:
sm
->
state
;
if
(
s
t
)
if
(
sm
->
sensor_type
==
UniversalIO
::
DigitalInput
||
sm
->
sensor_type
==
UniversalIO
::
DigitalOutpu
t
)
{
if
(
dlog
.
debugging
(
Debug
::
INFO
)
)
dlog
[
Debug
::
INFO
]
<<
myname
<<
"(updateHistory): HISTORY EVENT for "
<<
(
*
it
)
<<
endl
;
bool
st
=
it
->
fuse_invert
?
!
sm
->
state
:
sm
->
state
;
if
(
st
)
{
if
(
dlog
.
debugging
(
Debug
::
INFO
)
)
dlog
[
Debug
::
INFO
]
<<
myname
<<
"(updateHistory): HISTORY EVENT for "
<<
(
*
it
)
<<
endl
;
m_historySignal
.
emit
(
&
(
*
it
)
);
}
}
else
if
(
sm
->
sensor_type
==
UniversalIO
::
AnalogInput
||
sm
->
sensor_type
==
UniversalIO
::
AnalogOutput
)
{
if
(
!
it
->
fuse_use_val
)
{
bool
st
=
it
->
fuse_invert
?
!
sm
->
state
:
sm
->
state
;
if
(
!
st
)
{
if
(
dlog
.
debugging
(
Debug
::
INFO
)
)
dlog
[
Debug
::
INFO
]
<<
myname
<<
"(updateHistory): HISTORY EVENT for "
<<
(
*
it
)
<<
endl
;
m_historySignal
.
emit
(
&
(
*
it
)
);
m_historySignal
.
emit
(
&
(
*
it
)
);
}
}
else
{
if
(
sm
->
value
==
it
->
fuse_val
)
{
if
(
dlog
.
debugging
(
Debug
::
INFO
)
)
dlog
[
Debug
::
INFO
]
<<
myname
<<
"(updateHistory): HISTORY EVENT for "
<<
(
*
it
)
<<
endl
;
m_historySignal
.
emit
(
&
(
*
it
)
);
}
}
}
}
}
...
...
@@ -687,7 +722,7 @@ void SharedMemory::updateHistory( UniSetTypes::SensorMessage* sm )
// -----------------------------------------------------------------------------
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
const
SharedMemory
::
HistoryInfo
&
h
)
{
os
<<
"id="
<<
h
.
id
<<
"
idFuse="
<<
h
.
idFuse
;
os
<<
"id="
<<
h
.
id
<<
"
fuse_id="
<<
h
.
fuse_id
;
return
os
;
}
// ------------------------------------------------------------------------------------------
extensions/SharedMemory/SharedMemory.h
View file @
c8ca205c
...
...
@@ -75,15 +75,19 @@ class SharedMemory:
struct
HistoryInfo
{
HistoryInfo
()
:
id
(
0
),
idFuse
(
UniSetTypes
::
DefaultObjectId
),
size
(
0
),
filter
(
""
),
invert
(
false
){}
id
(
0
),
size
(
0
),
filter
(
""
),
fuse_id
(
UniSetTypes
::
DefaultObjectId
),
fuse_invert
(
false
),
fuse_use_val
(
false
),
fuse_val
(
0
){}
long
id
;
// ID
UniSetTypes
::
ObjectId
idFuse
;
// fuse sesnsor
HistoryList
hlst
;
// history list
int
size
;
std
::
string
filter
;
// filter field
bool
invert
;
UniSetTypes
::
ObjectId
fuse_id
;
// fuse sesnsor
bool
fuse_invert
;
bool
fuse_use_val
;
long
fuse_val
;
};
friend
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
const
HistoryInfo
&
h
);
...
...
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