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
f4be5a48
Commit
f4be5a48
authored
Feb 04, 2014
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Перешёл на использование -std=c++0x, использование auto,
циклов for( auto ...) и т.п.
parent
f15984b2
Show whitespace changes
Inline
Side-by-side
Showing
45 changed files
with
648 additions
and
633 deletions
+648
-633
libuniset2.spec
conf/libuniset2.spec
+4
-1
configure.ac
configure.ac
+1
-1
IOControl.cc
extensions/IOControl/IOControl.cc
+125
-128
Element.cc
extensions/LogicProcessor/Element.cc
+12
-13
LProcessor.cc
extensions/LogicProcessor/LProcessor.cc
+8
-8
PassiveLProcessor.cc
extensions/LogicProcessor/PassiveLProcessor.cc
+9
-9
Schema.cc
extensions/LogicProcessor/Schema.cc
+23
-23
TAND.cc
extensions/LogicProcessor/TAND.cc
+6
-6
TOR.cc
extensions/LogicProcessor/TOR.cc
+6
-6
MBExchange.cc
extensions/ModbusMaster/MBExchange.cc
+58
-60
MBExchange.h
extensions/ModbusMaster/MBExchange.h
+1
-1
MBTCPMultiMaster.cc
extensions/ModbusMaster/MBTCPMultiMaster.cc
+7
-7
RTUExchange.cc
extensions/ModbusMaster/RTUExchange.cc
+8
-8
MBSlave.cc
extensions/ModbusSlave/MBSlave.cc
+21
-22
RRDServer.cc
extensions/RRDServer/RRDServer.cc
+19
-19
SharedMemory.cc
extensions/SharedMemory/SharedMemory.cc
+36
-36
UNetExchange.cc
extensions/UNetUDP/UNetExchange.cc
+29
-29
UNetReceiver.cc
extensions/UNetUDP/UNetReceiver.cc
+4
-4
UNetSender.cc
extensions/UNetUDP/UNetSender.cc
+4
-4
UniExchange.cc
extensions/UniNetwork/UniExchange.cc
+19
-19
Calibration.cc
extensions/lib/Calibration.cc
+17
-17
DigitalFilter.cc
extensions/lib/DigitalFilter.cc
+18
-24
MTR.cc
extensions/lib/MTR.cc
+2
-2
Makefile.am
extensions/tests/Makefile.am
+5
-1
TestProc.cc
extensions/tests/SMemoryTest/TestProc.cc
+2
-2
calibration.cc
extensions/tests/calibration.cc
+2
-2
digitalfilter.cc
extensions/tests/digitalfilter.cc
+46
-0
ModbusTypes.cc
src/Communications/Modbus/ModbusTypes.cc
+5
-5
UInterface.cc
src/Interfaces/UInterface.cc
+4
-4
ObjectIndex_Array.cc
src/ObjectRepository/ObjectIndex_Array.cc
+2
-2
ObjectIndex_XML.cc
src/ObjectRepository/ObjectIndex_XML.cc
+3
-3
ObjectIndex_idXML.cc
src/ObjectRepository/ObjectIndex_idXML.cc
+6
-6
ObjectRepositoryFactory.cc
src/ObjectRepository/ObjectRepositoryFactory.cc
+3
-9
ProxyManager.cc
src/ObjectRepository/ProxyManager.cc
+11
-11
UniSetActivator.cc
src/ObjectRepository/UniSetActivator.cc
+2
-4
UniSetManager.cc
src/ObjectRepository/UniSetManager.cc
+24
-26
UniSetObject.cc
src/ObjectRepository/UniSetObject.cc
+17
-31
UniSetTypes.cc
src/ObjectRepository/UniSetTypes.cc
+10
-10
IOController.cc
src/Processes/IOController.cc
+33
-34
IONotifyController.cc
src/Processes/IONotifyController.cc
+21
-21
NCRestorer.cc
src/Processes/NCRestorer.cc
+3
-3
Configuration.cc
src/Various/Configuration.cc
+4
-4
LT_Object.cc
src/Various/LT_Object.cc
+2
-2
SMonitor.cc
src/Various/SMonitor.cc
+5
-5
Makefile.am
tests/Makefile.am
+1
-1
No files found.
conf/libuniset2.spec
View file @
f4be5a48
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
Name: libuniset2
Name: libuniset2
Version: 2.0
Version: 2.0
Release: alt0.
8
Release: alt0.
9
Summary: UniSet - library for building distributed industrial control systems
Summary: UniSet - library for building distributed industrial control systems
...
@@ -333,6 +333,9 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
...
@@ -333,6 +333,9 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
%exclude %_pkgconfigdir/libUniSet2.pc
%exclude %_pkgconfigdir/libUniSet2.pc
%changelog
%changelog
* Tue Feb 04 2014 Pavel Vainerman <pv@altlinux.ru> 2.0-alt0.9
- use -std=c++0x (auto, for( auto..), etc)
* Mon Feb 03 2014 Pavel Vainerman <pv@altlinux.ru> 2.0-alt0.8
* Mon Feb 03 2014 Pavel Vainerman <pv@altlinux.ru> 2.0-alt0.8
- fixed bug in LT_Object
- fixed bug in LT_Object
...
...
configure.ac
View file @
f4be5a48
...
@@ -58,7 +58,7 @@ AM_CONDITIONAL(DISABLE_SQLITE, test ${buildsqlite} = false)
...
@@ -58,7 +58,7 @@ AM_CONDITIONAL(DISABLE_SQLITE, test ${buildsqlite} = false)
# export
# export
LDFLAGS="${OMNI_LIBS} ${XML_LIBS}"
LDFLAGS="${OMNI_LIBS} ${XML_LIBS}"
CXXFLAGS="-pedantic -Wall -funsigned-char -g -D_GNU_SOURCE ${OMNI_CFLAGS} ${XML_CFLAGS} -I\$(top_builddir)/include"
CXXFLAGS="-pedantic -Wall -funsigned-char -
std=c++0x -
g -D_GNU_SOURCE ${OMNI_CFLAGS} ${XML_CFLAGS} -I\$(top_builddir)/include"
AC_SUBST(LDFLAGS)
AC_SUBST(LDFLAGS)
AC_SUBST(CXXFLAGS)
AC_SUBST(CXXFLAGS)
...
...
extensions/IOControl/IOControl.cc
View file @
f4be5a48
...
@@ -271,10 +271,10 @@ void IOControl::execute()
...
@@ -271,10 +271,10 @@ void IOControl::execute()
iomap
.
resize
(
maxItem
);
iomap
.
resize
(
maxItem
);
// init iterators
// init iterators
for
(
IOMap
::
iterator
it
=
iomap
.
begin
();
it
!=
iomap
.
end
();
++
it
)
for
(
auto
&
it
:
iomap
)
{
{
shm
->
initIterator
(
it
->
ioit
);
shm
->
initIterator
(
it
.
ioit
);
shm
->
initIterator
(
it
->
t_ait
);
shm
->
initIterator
(
it
.
t_ait
);
}
}
readconf_ok
=
true
;
// т.к. waitSM() уже был...
readconf_ok
=
true
;
// т.к. waitSM() уже был...
...
@@ -403,18 +403,18 @@ void IOControl::iopoll()
...
@@ -403,18 +403,18 @@ void IOControl::iopoll()
return
;
return
;
// Опрос приоритетной очереди
// Опрос приоритетной очереди
for
(
PIOMap
::
iterator
it
=
pmap
.
begin
();
it
!=
pmap
.
end
();
++
it
)
for
(
auto
it
:
pmap
)
{
{
if
(
it
->
priority
>
0
)
if
(
it
.
priority
>
0
)
{
{
ioread
(
&
(
iomap
[
it
->
index
])
);
ioread
(
&
(
iomap
[
it
.
index
])
);
IOBase
::
processingThreshold
((
IOBase
*
)
&
(
iomap
[
it
->
index
]),
shm
,
force
);
IOBase
::
processingThreshold
((
IOBase
*
)
&
(
iomap
[
it
.
index
]),
shm
,
force
);
}
}
}
}
bool
prior
=
false
;
bool
prior
=
false
;
unsigned
int
i
=
0
;
unsigned
int
i
=
0
;
for
(
IOMap
::
iterator
it
=
iomap
.
begin
();
it
!=
iomap
.
end
();
++
it
,
i
++
)
for
(
auto
it
=
iomap
.
begin
();
it
!=
iomap
.
end
();
++
it
,
i
++
)
{
{
if
(
it
->
ignore
)
if
(
it
->
ignore
)
continue
;
continue
;
...
@@ -427,12 +427,12 @@ void IOControl::iopoll()
...
@@ -427,12 +427,12 @@ void IOControl::iopoll()
// опять опросим приоритетные
// опять опросим приоритетные
if
(
!
prior
&&
i
>
maxHalf
)
if
(
!
prior
&&
i
>
maxHalf
)
{
{
for
(
PIOMap
::
iterator
it
=
pmap
.
begin
();
it
!=
pmap
.
end
();
++
it
)
for
(
auto
&
p
:
pmap
)
{
{
if
(
it
->
priority
>
1
)
if
(
p
.
priority
>
1
)
{
{
ioread
(
&
(
iomap
[
it
->
index
])
);
ioread
(
&
(
iomap
[
p
.
index
])
);
IOBase
::
processingThreshold
((
IOBase
*
)
&
(
iomap
[
it
->
index
]),
shm
,
force
);
IOBase
::
processingThreshold
((
IOBase
*
)
&
(
iomap
[
p
.
index
]),
shm
,
force
);
}
}
}
}
...
@@ -441,12 +441,12 @@ void IOControl::iopoll()
...
@@ -441,12 +441,12 @@ void IOControl::iopoll()
}
}
// Опрос приоритетной очереди
// Опрос приоритетной очереди
for
(
PIOMap
::
iterator
it
=
pmap
.
begin
();
it
!=
pmap
.
end
();
++
it
)
for
(
auto
&
it
:
pmap
)
{
{
if
(
it
->
priority
>
2
)
if
(
it
.
priority
>
2
)
{
{
ioread
(
&
(
iomap
[
it
->
index
])
);
ioread
(
&
(
iomap
[
it
.
index
])
);
IOBase
::
processingThreshold
((
IOBase
*
)
&
(
iomap
[
it
->
index
]),
shm
,
force
);
IOBase
::
processingThreshold
((
IOBase
*
)
&
(
iomap
[
it
.
index
]),
shm
,
force
);
}
}
}
}
}
}
...
@@ -802,29 +802,29 @@ void IOControl::sigterm( int signo )
...
@@ -802,29 +802,29 @@ void IOControl::sigterm( int signo )
return
;
return
;
// выставляем безопасные состояния
// выставляем безопасные состояния
for
(
IOMap
::
iterator
it
=
iomap
.
begin
();
it
!=
iomap
.
end
();
++
it
)
for
(
auto
&
it
:
iomap
)
{
{
if
(
it
->
ignore
)
if
(
it
.
ignore
)
continue
;
continue
;
ComediInterface
*
card
=
cards
.
getCard
(
it
->
ncard
);
ComediInterface
*
card
=
cards
.
getCard
(
it
.
ncard
);
if
(
card
==
NULL
)
if
(
card
==
NULL
)
continue
;
continue
;
try
try
{
{
if
(
it
->
subdev
==
DefaultSubdev
||
it
->
safety
==
NoSafety
)
if
(
it
.
subdev
==
DefaultSubdev
||
it
.
safety
==
NoSafety
)
continue
;
continue
;
if
(
it
->
stype
==
UniversalIO
::
DO
||
it
->
lamp
)
if
(
it
.
stype
==
UniversalIO
::
DO
||
it
.
lamp
)
{
{
bool
set
=
it
->
invert
?
!
((
bool
)
it
->
safety
)
:
(
bool
)
it
->
safety
;
bool
set
=
it
.
invert
?
!
((
bool
)
it
.
safety
)
:
(
bool
)
it
.
safety
;
card
->
setDigitalChannel
(
it
->
subdev
,
it
->
channel
,
set
);
card
->
setDigitalChannel
(
it
.
subdev
,
it
.
channel
,
set
);
}
}
else
if
(
it
->
stype
==
UniversalIO
::
AO
)
else
if
(
it
.
stype
==
UniversalIO
::
AO
)
{
{
card
->
setAnalogChannel
(
it
->
subdev
,
it
->
channel
,
it
->
safety
,
it
->
range
,
it
->
aref
);
card
->
setAnalogChannel
(
it
.
subdev
,
it
.
channel
,
it
.
safety
,
it
.
range
,
it
.
aref
);
}
}
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
...
@@ -843,24 +843,24 @@ void IOControl::initOutputs()
...
@@ -843,24 +843,24 @@ void IOControl::initOutputs()
return
;
return
;
// выставляем значение по умолчанию
// выставляем значение по умолчанию
for
(
IOMap
::
iterator
it
=
iomap
.
begin
();
it
!=
iomap
.
end
();
++
it
)
for
(
auto
&
it
:
iomap
)
{
{
if
(
it
->
ignore
)
if
(
it
.
ignore
)
continue
;
continue
;
ComediInterface
*
card
=
cards
.
getCard
(
it
->
ncard
);
ComediInterface
*
card
=
cards
.
getCard
(
it
.
ncard
);
if
(
card
==
NULL
||
it
->
subdev
==
DefaultSubdev
||
it
->
channel
==
DefaultChannel
)
if
(
card
==
NULL
||
it
.
subdev
==
DefaultSubdev
||
it
.
channel
==
DefaultChannel
)
continue
;
continue
;
try
try
{
{
if
(
it
->
lamp
)
if
(
it
.
lamp
)
card
->
setDigitalChannel
(
it
->
subdev
,
it
->
channel
,(
bool
)
it
->
defval
);
card
->
setDigitalChannel
(
it
.
subdev
,
it
.
channel
,(
bool
)
it
.
defval
);
else
if
(
it
->
stype
==
UniversalIO
::
DO
)
else
if
(
it
.
stype
==
UniversalIO
::
DO
)
card
->
setDigitalChannel
(
it
->
subdev
,
it
->
channel
,(
bool
)
it
->
defval
);
card
->
setDigitalChannel
(
it
.
subdev
,
it
.
channel
,(
bool
)
it
.
defval
);
else
if
(
it
->
stype
==
UniversalIO
::
AO
)
else
if
(
it
.
stype
==
UniversalIO
::
AO
)
card
->
setAnalogChannel
(
it
->
subdev
,
it
->
channel
,
it
->
defval
,
it
->
range
,
it
->
aref
);
card
->
setAnalogChannel
(
it
.
subdev
,
it
.
channel
,
it
.
defval
,
it
.
range
,
it
.
aref
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
...
@@ -874,38 +874,38 @@ void IOControl::initIOCard()
...
@@ -874,38 +874,38 @@ void IOControl::initIOCard()
if
(
noCards
)
if
(
noCards
)
return
;
return
;
for
(
IOMap
::
iterator
it
=
iomap
.
begin
();
it
!=
iomap
.
end
();
++
it
)
for
(
auto
&
it
:
iomap
)
{
{
if
(
it
->
subdev
==
DefaultSubdev
)
if
(
it
.
subdev
==
DefaultSubdev
)
continue
;
continue
;
ComediInterface
*
card
=
cards
.
getCard
(
it
->
ncard
);
ComediInterface
*
card
=
cards
.
getCard
(
it
.
ncard
);
if
(
card
==
NULL
||
it
->
subdev
==
DefaultSubdev
||
it
->
channel
==
DefaultChannel
)
if
(
card
==
NULL
||
it
.
subdev
==
DefaultSubdev
||
it
.
channel
==
DefaultChannel
)
continue
;
continue
;
try
try
{
{
// конфигурировать необходимо только дискретные входы/выходы
// конфигурировать необходимо только дискретные входы/выходы
// или "лампочки" (т.к. они фиктивные аналоговые датчики)
// или "лампочки" (т.к. они фиктивные аналоговые датчики)
if
(
it
->
lamp
)
if
(
it
.
lamp
)
card
->
configureChannel
(
it
->
subdev
,
it
->
channel
,
ComediInterface
::
DO
);
card
->
configureChannel
(
it
.
subdev
,
it
.
channel
,
ComediInterface
::
DO
);
else
if
(
it
->
stype
==
UniversalIO
::
DI
)
else
if
(
it
.
stype
==
UniversalIO
::
DI
)
card
->
configureChannel
(
it
->
subdev
,
it
->
channel
,
ComediInterface
::
DI
);
card
->
configureChannel
(
it
.
subdev
,
it
.
channel
,
ComediInterface
::
DI
);
else
if
(
it
->
stype
==
UniversalIO
::
DO
)
else
if
(
it
.
stype
==
UniversalIO
::
DO
)
card
->
configureChannel
(
it
->
subdev
,
it
->
channel
,
ComediInterface
::
DO
);
card
->
configureChannel
(
it
.
subdev
,
it
.
channel
,
ComediInterface
::
DO
);
else
if
(
it
->
stype
==
UniversalIO
::
AI
)
else
if
(
it
.
stype
==
UniversalIO
::
AI
)
{
{
card
->
configureChannel
(
it
->
subdev
,
it
->
channel
,
ComediInterface
::
AI
);
card
->
configureChannel
(
it
.
subdev
,
it
.
channel
,
ComediInterface
::
AI
);
it
->
df
.
init
(
card
->
getAnalogChannel
(
it
->
subdev
,
it
->
channel
,
it
->
range
,
it
->
aref
)
);
it
.
df
.
init
(
card
->
getAnalogChannel
(
it
.
subdev
,
it
.
channel
,
it
.
range
,
it
.
aref
)
);
}
}
else
if
(
it
->
stype
==
UniversalIO
::
AO
)
else
if
(
it
.
stype
==
UniversalIO
::
AO
)
card
->
configureChannel
(
it
->
subdev
,
it
->
channel
,
ComediInterface
::
AO
);
card
->
configureChannel
(
it
.
subdev
,
it
.
channel
,
ComediInterface
::
AO
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
dcrit
<<
myname
<<
"(initIOCard): sid="
<<
it
->
si
.
id
<<
" "
<<
ex
<<
endl
;
dcrit
<<
myname
<<
"(initIOCard): sid="
<<
it
.
si
.
id
<<
" "
<<
ex
<<
endl
;
}
}
}
}
}
}
...
@@ -915,10 +915,8 @@ void IOControl::blink( BlinkList& lst, bool& bstate )
...
@@ -915,10 +915,8 @@ void IOControl::blink( BlinkList& lst, bool& bstate )
if
(
lst
.
empty
()
)
if
(
lst
.
empty
()
)
return
;
return
;
for
(
BlinkList
::
iterator
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
i
t
)
for
(
auto
&
io
:
ls
t
)
{
{
IOInfo
*
io
(
*
it
);
if
(
io
->
subdev
==
DefaultSubdev
||
io
->
channel
==
DefaultChannel
)
if
(
io
->
subdev
==
DefaultSubdev
||
io
->
channel
==
DefaultChannel
)
continue
;
continue
;
...
@@ -942,9 +940,9 @@ void IOControl::blink( BlinkList& lst, bool& bstate )
...
@@ -942,9 +940,9 @@ void IOControl::blink( BlinkList& lst, bool& bstate )
void
IOControl
::
addBlink
(
IOInfo
*
io
,
BlinkList
&
lst
)
void
IOControl
::
addBlink
(
IOInfo
*
io
,
BlinkList
&
lst
)
{
{
for
(
BlinkList
::
iterator
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
i
t
)
for
(
auto
&
it
:
ls
t
)
{
{
if
(
(
*
it
)
==
io
)
if
(
it
==
io
)
return
;
return
;
}
}
...
@@ -953,7 +951,7 @@ void IOControl::addBlink( IOInfo* io, BlinkList& lst )
...
@@ -953,7 +951,7 @@ void IOControl::addBlink( IOInfo* io, BlinkList& lst )
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
IOControl
::
delBlink
(
IOInfo
*
io
,
BlinkList
&
lst
)
void
IOControl
::
delBlink
(
IOInfo
*
io
,
BlinkList
&
lst
)
{
{
for
(
BlinkList
::
iterator
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
)
for
(
auto
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
)
{
{
if
(
(
*
it
)
==
io
)
if
(
(
*
it
)
==
io
)
{
{
...
@@ -983,35 +981,35 @@ void IOControl::check_testmode()
...
@@ -983,35 +981,35 @@ void IOControl::check_testmode()
if
(
testmode
==
tmOffPoll
)
if
(
testmode
==
tmOffPoll
)
{
{
// выставляем безопасные состояния
// выставляем безопасные состояния
for
(
IOMap
::
iterator
it
=
iomap
.
begin
();
it
!=
iomap
.
end
();
++
it
)
for
(
auto
&
it
:
iomap
)
{
{
if
(
it
->
ignore
)
if
(
it
.
ignore
)
continue
;
continue
;
ComediInterface
*
card
=
cards
.
getCard
(
it
->
ncard
);
ComediInterface
*
card
=
cards
.
getCard
(
it
.
ncard
);
if
(
card
==
NULL
)
if
(
card
==
NULL
)
continue
;
continue
;
if
(
testmode
==
tmConfigEnable
&&
!
it
->
enable_testmode
)
if
(
testmode
==
tmConfigEnable
&&
!
it
.
enable_testmode
)
return
;
return
;
if
(
testmode
==
tmConfigDisable
&&
it
->
disable_testmode
)
if
(
testmode
==
tmConfigDisable
&&
it
.
disable_testmode
)
return
;
return
;
try
try
{
{
if
(
it
->
subdev
==
DefaultSubdev
||
it
->
safety
==
NoSafety
)
if
(
it
.
subdev
==
DefaultSubdev
||
it
.
safety
==
NoSafety
)
continue
;
continue
;
if
(
it
->
stype
==
UniversalIO
::
DO
||
it
->
lamp
)
if
(
it
.
stype
==
UniversalIO
::
DO
||
it
.
lamp
)
{
{
bool
set
=
it
->
invert
?
!
((
bool
)
it
->
safety
)
:
(
bool
)
it
->
safety
;
bool
set
=
it
.
invert
?
!
((
bool
)
it
.
safety
)
:
(
bool
)
it
.
safety
;
card
->
setDigitalChannel
(
it
->
subdev
,
it
->
channel
,
set
);
card
->
setDigitalChannel
(
it
.
subdev
,
it
.
channel
,
set
);
}
}
else
if
(
it
->
stype
==
UniversalIO
::
AO
)
else
if
(
it
.
stype
==
UniversalIO
::
AO
)
{
{
card
->
setAnalogChannel
(
it
->
subdev
,
it
->
channel
,
it
->
safety
,
it
->
range
,
it
->
aref
);
card
->
setAnalogChannel
(
it
.
subdev
,
it
.
channel
,
it
.
safety
,
it
.
range
,
it
.
aref
);
}
}
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
...
@@ -1053,38 +1051,38 @@ void IOControl::check_testlamp()
...
@@ -1053,38 +1051,38 @@ void IOControl::check_testlamp()
// << isTestLamp << " *************" << endl;
// << isTestLamp << " *************" << endl;
// проходим по списку и формируем список мигающих выходов...
// проходим по списку и формируем список мигающих выходов...
for
(
IOMap
::
iterator
it
=
iomap
.
begin
();
it
!=
iomap
.
end
();
++
it
)
for
(
auto
&
it
:
iomap
)
{
{
if
(
!
it
->
lamp
||
it
->
no_testlamp
)
if
(
!
it
.
lamp
||
it
.
no_testlamp
)
continue
;
continue
;
if
(
it
->
stype
==
UniversalIO
::
AO
)
if
(
it
.
stype
==
UniversalIO
::
AO
)
{
{
if
(
isTestLamp
)
if
(
isTestLamp
)
{
{
addBlink
(
&
(
*
it
)
,
lstBlink
);
addBlink
(
&
it
,
lstBlink
);
delBlink
(
&
(
*
it
)
,
lstBlink2
);
delBlink
(
&
it
,
lstBlink2
);
delBlink
(
&
(
*
it
)
,
lstBlink3
);
delBlink
(
&
it
,
lstBlink3
);
}
}
else
if
(
it
->
value
==
lmpBLINK
)
else
if
(
it
.
value
==
lmpBLINK
)
addBlink
(
&
(
*
it
)
,
lstBlink
);
addBlink
(
&
it
,
lstBlink
);
else
if
(
it
->
value
==
lmpBLINK2
)
else
if
(
it
.
value
==
lmpBLINK2
)
addBlink
(
&
(
*
it
)
,
lstBlink2
);
addBlink
(
&
it
,
lstBlink2
);
else
if
(
it
->
value
==
lmpBLINK3
)
else
if
(
it
.
value
==
lmpBLINK3
)
addBlink
(
&
(
*
it
)
,
lstBlink3
);
addBlink
(
&
it
,
lstBlink3
);
else
else
{
{
delBlink
(
&
(
*
it
)
,
lstBlink
);
delBlink
(
&
it
,
lstBlink
);
delBlink
(
&
(
*
it
)
,
lstBlink2
);
delBlink
(
&
it
,
lstBlink2
);
delBlink
(
&
(
*
it
)
,
lstBlink3
);
delBlink
(
&
it
,
lstBlink3
);
}
}
}
}
else
if
(
it
->
stype
==
UniversalIO
::
DO
)
else
if
(
it
.
stype
==
UniversalIO
::
DO
)
{
{
if
(
isTestLamp
)
if
(
isTestLamp
)
addBlink
(
&
(
*
it
)
,
lstBlink
);
addBlink
(
&
it
,
lstBlink
);
else
else
delBlink
(
&
(
*
it
)
,
lstBlink
);
delBlink
(
&
it
,
lstBlink
);
}
}
}
}
}
}
...
@@ -1287,22 +1285,21 @@ void IOControl::askSensors( UniversalIO::UIOCommand cmd )
...
@@ -1287,22 +1285,21 @@ void IOControl::askSensors( UniversalIO::UIOCommand cmd )
dcrit
<<
myname
<<
"(askSensors): "
<<
ex
<<
endl
;
dcrit
<<
myname
<<
"(askSensors): "
<<
ex
<<
endl
;
}
}
for
(
IOMap
::
iterator
it
=
iomap
.
begin
();
it
!=
iomap
.
end
();
++
it
)
for
(
auto
&
it
:
iomap
)
{
{
if
(
it
->
ignore
)
if
(
it
.
ignore
)
continue
;
continue
;
ComediInterface
*
card
=
cards
.
getCard
(
it
->
ncard
);
ComediInterface
*
card
=
cards
.
getCard
(
it
.
ncard
);
if
(
card
==
NULL
||
it
->
subdev
==
DefaultSubdev
||
it
->
channel
==
DefaultChannel
)
if
(
card
==
NULL
||
it
.
subdev
==
DefaultSubdev
||
it
.
channel
==
DefaultChannel
)
continue
;
continue
;
if
(
it
->
stype
==
UniversalIO
::
AO
||
if
(
it
.
stype
==
UniversalIO
::
AO
||
it
.
stype
==
UniversalIO
::
DO
)
it
->
stype
==
UniversalIO
::
DO
)
{
{
try
try
{
{
shm
->
askSensor
(
it
->
si
.
id
,
cmd
,
myid
);
shm
->
askSensor
(
it
.
si
.
id
,
cmd
,
myid
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
...
@@ -1330,39 +1327,39 @@ void IOControl::sensorInfo( const UniSetTypes::SensorMessage* sm )
...
@@ -1330,39 +1327,39 @@ void IOControl::sensorInfo( const UniSetTypes::SensorMessage* sm )
check_testmode
();
check_testmode
();
}
}
for
(
IOMap
::
iterator
it
=
iomap
.
begin
();
it
!=
iomap
.
end
();
++
it
)
for
(
auto
&
it
:
iomap
)
{
{
if
(
it
->
si
.
id
==
sm
->
id
)
if
(
it
.
si
.
id
==
sm
->
id
)
{
{
dinfo
<<
myname
<<
"(sensorInfo): sid="
<<
sm
->
id
dinfo
<<
myname
<<
"(sensorInfo): sid="
<<
sm
->
id
<<
" value="
<<
sm
->
value
<<
" value="
<<
sm
->
value
<<
endl
;
<<
endl
;
if
(
it
->
stype
==
UniversalIO
::
AO
)
if
(
it
.
stype
==
UniversalIO
::
AO
)
{
{
long
prev_val
=
0
;
long
prev_val
=
0
;
long
cur_val
=
0
;
long
cur_val
=
0
;
{
{
uniset_rwmutex_wrlock
lock
(
it
->
val_lock
);
uniset_rwmutex_wrlock
lock
(
it
.
val_lock
);
prev_val
=
it
->
value
;
prev_val
=
it
.
value
;
it
->
value
=
sm
->
value
;
it
.
value
=
sm
->
value
;
cur_val
=
sm
->
value
;
cur_val
=
sm
->
value
;
}
}
if
(
it
->
lamp
)
if
(
it
.
lamp
)
{
{
switch
(
cur_val
)
switch
(
cur_val
)
{
{
case
lmpOFF
:
case
lmpOFF
:
delBlink
(
&
(
*
it
)
,
lstBlink
);
delBlink
(
&
it
,
lstBlink
);
delBlink
(
&
(
*
it
)
,
lstBlink2
);
delBlink
(
&
it
,
lstBlink2
);
delBlink
(
&
(
*
it
)
,
lstBlink3
);
delBlink
(
&
it
,
lstBlink3
);
break
;
break
;
case
lmpON
:
case
lmpON
:
delBlink
(
&
(
*
it
)
,
lstBlink
);
delBlink
(
&
it
,
lstBlink
);
delBlink
(
&
(
*
it
)
,
lstBlink2
);
delBlink
(
&
it
,
lstBlink2
);
delBlink
(
&
(
*
it
)
,
lstBlink3
);
delBlink
(
&
it
,
lstBlink3
);
break
;
break
;
...
@@ -1370,18 +1367,18 @@ void IOControl::sensorInfo( const UniSetTypes::SensorMessage* sm )
...
@@ -1370,18 +1367,18 @@ void IOControl::sensorInfo( const UniSetTypes::SensorMessage* sm )
{
{
if
(
prev_val
!=
lmpBLINK
)
if
(
prev_val
!=
lmpBLINK
)
{
{
delBlink
(
&
(
*
it
)
,
lstBlink2
);
delBlink
(
&
it
,
lstBlink2
);
delBlink
(
&
(
*
it
)
,
lstBlink3
);
delBlink
(
&
it
,
lstBlink3
);
addBlink
(
&
(
*
it
)
,
lstBlink
);
addBlink
(
&
it
,
lstBlink
);
// и сразу зажигаем, чтобы не было паузы
// и сразу зажигаем, чтобы не было паузы
// (так комфортнее выглядит для оператора)
// (так комфортнее выглядит для оператора)
if
(
it
->
ignore
||
it
->
subdev
==
DefaultSubdev
||
it
->
channel
==
DefaultChannel
)
if
(
it
.
ignore
||
it
.
subdev
==
DefaultSubdev
||
it
.
channel
==
DefaultChannel
)
break
;
break
;
ComediInterface
*
card
=
cards
.
getCard
(
it
->
ncard
);
ComediInterface
*
card
=
cards
.
getCard
(
it
.
ncard
);
if
(
card
!=
NULL
)
if
(
card
!=
NULL
)
card
->
setDigitalChannel
(
it
->
subdev
,
it
->
channel
,
1
);
card
->
setDigitalChannel
(
it
.
subdev
,
it
.
channel
,
1
);
}
}
}
}
break
;
break
;
...
@@ -1390,18 +1387,18 @@ void IOControl::sensorInfo( const UniSetTypes::SensorMessage* sm )
...
@@ -1390,18 +1387,18 @@ void IOControl::sensorInfo( const UniSetTypes::SensorMessage* sm )
{
{
if
(
prev_val
!=
lmpBLINK2
)
if
(
prev_val
!=
lmpBLINK2
)
{
{
delBlink
(
&
(
*
it
)
,
lstBlink
);
delBlink
(
&
it
,
lstBlink
);
delBlink
(
&
(
*
it
)
,
lstBlink3
);
delBlink
(
&
it
,
lstBlink3
);
addBlink
(
&
(
*
it
)
,
lstBlink2
);
addBlink
(
&
it
,
lstBlink2
);
// и сразу зажигаем, чтобы не было паузы
// и сразу зажигаем, чтобы не было паузы
// (так комфортнее выглядит для оператора)
// (так комфортнее выглядит для оператора)
if
(
it
->
ignore
||
it
->
subdev
==
DefaultSubdev
||
it
->
channel
==
DefaultChannel
)
if
(
it
.
ignore
||
it
.
subdev
==
DefaultSubdev
||
it
.
channel
==
DefaultChannel
)
break
;
break
;
ComediInterface
*
card
=
cards
.
getCard
(
it
->
ncard
);
ComediInterface
*
card
=
cards
.
getCard
(
it
.
ncard
);
if
(
card
!=
NULL
)
if
(
card
!=
NULL
)
card
->
setDigitalChannel
(
it
->
subdev
,
it
->
channel
,
1
);
card
->
setDigitalChannel
(
it
.
subdev
,
it
.
channel
,
1
);
}
}
}
}
break
;
break
;
...
@@ -1410,18 +1407,18 @@ void IOControl::sensorInfo( const UniSetTypes::SensorMessage* sm )
...
@@ -1410,18 +1407,18 @@ void IOControl::sensorInfo( const UniSetTypes::SensorMessage* sm )
{
{
if
(
prev_val
!=
lmpBLINK3
)
if
(
prev_val
!=
lmpBLINK3
)
{
{
delBlink
(
&
(
*
it
)
,
lstBlink
);
delBlink
(
&
it
,
lstBlink
);
delBlink
(
&
(
*
it
)
,
lstBlink2
);
delBlink
(
&
it
,
lstBlink2
);
addBlink
(
&
(
*
it
)
,
lstBlink3
);
addBlink
(
&
it
,
lstBlink3
);
// и сразу зажигаем, чтобы не было паузы
// и сразу зажигаем, чтобы не было паузы
// (так комфортнее выглядит для оператора)
// (так комфортнее выглядит для оператора)
if
(
it
->
ignore
||
it
->
subdev
==
DefaultSubdev
||
it
->
channel
==
DefaultChannel
)
if
(
it
.
ignore
||
it
.
subdev
==
DefaultSubdev
||
it
.
channel
==
DefaultChannel
)
break
;
break
;
ComediInterface
*
card
=
cards
.
getCard
(
it
->
ncard
);
ComediInterface
*
card
=
cards
.
getCard
(
it
.
ncard
);
if
(
card
!=
NULL
)
if
(
card
!=
NULL
)
card
->
setDigitalChannel
(
it
->
subdev
,
it
->
channel
,
1
);
card
->
setDigitalChannel
(
it
.
subdev
,
it
.
channel
,
1
);
}
}
}
}
break
;
break
;
...
@@ -1431,13 +1428,13 @@ void IOControl::sensorInfo( const UniSetTypes::SensorMessage* sm )
...
@@ -1431,13 +1428,13 @@ void IOControl::sensorInfo( const UniSetTypes::SensorMessage* sm )
}
}
}
}
}
}
else
if
(
it
->
stype
==
UniversalIO
::
DO
)
else
if
(
it
.
stype
==
UniversalIO
::
DO
)
{
{
dlog1
<<
myname
<<
"(sensorInfo): DO: sm->id="
<<
sm
->
id
dlog1
<<
myname
<<
"(sensorInfo): DO: sm->id="
<<
sm
->
id
<<
" val="
<<
sm
->
value
<<
endl
;
<<
" val="
<<
sm
->
value
<<
endl
;
uniset_rwmutex_wrlock
lock
(
it
->
val_lock
);
uniset_rwmutex_wrlock
lock
(
it
.
val_lock
);
it
->
value
=
sm
->
value
?
1
:
0
;
it
.
value
=
sm
->
value
?
1
:
0
;
}
}
break
;
break
;
}
}
...
@@ -1592,7 +1589,7 @@ void IOControl::buildCardsList()
...
@@ -1592,7 +1589,7 @@ void IOControl::buildCardsList()
}
}
else
if
(
cname
==
"UNIO48"
||
cname
==
"UNIO96"
)
else
if
(
cname
==
"UNIO48"
||
cname
==
"UNIO96"
)
{
{
int
k
=
4
;
unsigned
int
k
=
4
;
if
(
cname
==
"UNIO48"
)
if
(
cname
==
"UNIO48"
)
k
=
2
;
k
=
2
;
...
...
extensions/LogicProcessor/Element.cc
View file @
f4be5a48
...
@@ -17,9 +17,9 @@ void Element::addChildOut( Element* el, int num )
...
@@ -17,9 +17,9 @@ void Element::addChildOut( Element* el, int num )
}
}
for
(
OutputList
::
iterator
it
=
outs
.
begin
();
it
!=
outs
.
end
();
++
it
)
for
(
auto
&
it
:
outs
)
{
{
if
(
it
->
el
==
el
)
if
(
it
.
el
==
el
)
{
{
ostringstream
msg
;
ostringstream
msg
;
msg
<<
"("
<<
myid
<<
"):"
<<
el
->
getId
()
<<
" уже есть в списке дочерних(такое соединение уже есть)..."
;
msg
<<
"("
<<
myid
<<
"):"
<<
el
->
getId
()
<<
" уже есть в списке дочерних(такое соединение уже есть)..."
;
...
@@ -42,7 +42,7 @@ void Element::addChildOut( Element* el, int num )
...
@@ -42,7 +42,7 @@ void Element::addChildOut( Element* el, int num )
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
Element
::
delChildOut
(
Element
*
el
)
void
Element
::
delChildOut
(
Element
*
el
)
{
{
for
(
OutputList
::
iterator
it
=
outs
.
begin
();
it
!=
outs
.
end
();
++
it
)
for
(
auto
it
=
outs
.
begin
();
it
!=
outs
.
end
();
++
it
)
{
{
if
(
it
->
el
==
el
)
if
(
it
->
el
==
el
)
{
{
...
@@ -56,11 +56,11 @@ void Element::delChildOut( Element* el )
...
@@ -56,11 +56,11 @@ void Element::delChildOut( Element* el )
void
Element
::
setChildOut
()
void
Element
::
setChildOut
()
{
{
bool
_myout
(
getOut
());
bool
_myout
(
getOut
());
for
(
OutputList
::
iterator
it
=
outs
.
begin
();
it
!=
outs
.
end
();
++
it
)
for
(
auto
&
it
:
outs
)
{
{
// try
// try
// {
// {
it
->
el
->
setIn
(
it
->
num
,
_myout
);
it
.
el
->
setIn
(
it
.
num
,
_myout
);
// }
// }
// catch(...){}
// catch(...){}
}
}
...
@@ -68,12 +68,12 @@ void Element::setChildOut()
...
@@ -68,12 +68,12 @@ void Element::setChildOut()
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
Element
*
Element
::
find
(
ElementID
id
)
Element
*
Element
::
find
(
ElementID
id
)
{
{
for
(
OutputList
::
iterator
it
=
outs
.
begin
();
it
!=
outs
.
end
();
++
it
)
for
(
auto
&
it
:
outs
)
{
{
if
(
it
->
el
->
getId
()
==
id
)
if
(
it
.
el
->
getId
()
==
id
)
return
it
->
el
;
return
it
.
el
;
Element
*
el
(
it
->
el
->
find
(
id
)
);
Element
*
el
(
it
.
el
->
find
(
id
)
);
if
(
el
!=
NULL
)
if
(
el
!=
NULL
)
return
el
;
return
el
;
}
}
...
@@ -83,9 +83,9 @@ Element* Element::find( ElementID id )
...
@@ -83,9 +83,9 @@ Element* Element::find( ElementID id )
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
Element
::
addInput
(
int
num
,
bool
state
)
void
Element
::
addInput
(
int
num
,
bool
state
)
{
{
for
(
InputList
::
iterator
it
=
ins
.
begin
();
it
!=
ins
.
end
();
++
it
)
for
(
auto
&
it
:
ins
)
{
{
if
(
it
->
num
==
num
)
if
(
it
.
num
==
num
)
{
{
ostringstream
msg
;
ostringstream
msg
;
msg
<<
"("
<<
myid
<<
"): попытка второй раз добавить input N"
<<
num
;
msg
<<
"("
<<
myid
<<
"): попытка второй раз добавить input N"
<<
num
;
...
@@ -98,7 +98,7 @@ void Element::addInput(int num, bool state)
...
@@ -98,7 +98,7 @@ void Element::addInput(int num, bool state)
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
Element
::
delInput
(
int
num
)
void
Element
::
delInput
(
int
num
)
{
{
for
(
InputList
::
iterator
it
=
ins
.
begin
();
it
!=
ins
.
end
();
++
it
)
for
(
auto
it
=
ins
.
begin
();
it
!=
ins
.
end
();
++
it
)
{
{
if
(
it
->
num
==
num
)
if
(
it
->
num
==
num
)
{
{
...
@@ -108,4 +108,3 @@ void Element::delInput( int num )
...
@@ -108,4 +108,3 @@ void Element::delInput( int num )
}
}
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
extensions/LogicProcessor/LProcessor.cc
View file @
f4be5a48
...
@@ -116,11 +116,11 @@ void LProcessor::build( const string& lfile )
...
@@ -116,11 +116,11 @@ void LProcessor::build( const string& lfile )
*/
*/
void
LProcessor
::
getInputs
()
void
LProcessor
::
getInputs
()
{
{
for
(
EXTList
::
iterator
it
=
extInputs
.
begin
();
it
!=
extInputs
.
end
();
++
it
)
for
(
auto
&
it
:
extInputs
)
{
{
// try
// try
// {
// {
it
->
state
=
(
bool
)
ui
.
getValue
(
it
->
sid
);
it
.
state
=
(
bool
)
ui
.
getValue
(
it
.
sid
);
// }
// }
}
}
}
}
...
@@ -128,22 +128,22 @@ void LProcessor::getInputs()
...
@@ -128,22 +128,22 @@ void LProcessor::getInputs()
void
LProcessor
::
processing
()
void
LProcessor
::
processing
()
{
{
// выcтавляем все внешние входы
// выcтавляем все внешние входы
for
(
EXTList
::
iterator
it
=
extInputs
.
begin
();
it
!=
extInputs
.
end
();
++
it
)
for
(
auto
&
it
:
extInputs
)
it
->
lnk
->
to
->
setIn
(
it
->
lnk
->
numInput
,
it
->
state
);
it
.
lnk
->
to
->
setIn
(
it
.
lnk
->
numInput
,
it
.
state
);
// проходим по всем элементам
// проходим по всем элементам
for
(
Schema
::
iterator
it
=
sch
.
begin
();
it
!=
sch
.
end
();
++
it
)
for
(
auto
&
it
:
sch
)
it
->
second
->
tick
();
it
.
second
->
tick
();
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
LProcessor
::
setOuts
()
void
LProcessor
::
setOuts
()
{
{
// выcтавляем выходы
// выcтавляем выходы
for
(
OUTList
::
iterator
it
=
extOuts
.
begin
();
it
!=
extOuts
.
end
();
++
it
)
for
(
auto
&
it
:
extOuts
)
{
{
try
try
{
{
ui
.
setValue
(
it
->
sid
,
it
->
lnk
->
from
->
getOut
(),
DefaultObjectId
);
ui
.
setValue
(
it
.
sid
,
it
.
lnk
->
from
->
getOut
(),
DefaultObjectId
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
...
...
extensions/LogicProcessor/PassiveLProcessor.cc
View file @
f4be5a48
...
@@ -78,8 +78,8 @@ void PassiveLProcessor::askSensors( UniversalIO::UIOCommand cmd )
...
@@ -78,8 +78,8 @@ void PassiveLProcessor::askSensors( UniversalIO::UIOCommand cmd )
{
{
try
try
{
{
for
(
EXTList
::
iterator
it
=
extInputs
.
begin
();
it
!=
extInputs
.
end
();
++
it
)
for
(
auto
&
it
:
extInputs
)
shm
->
askSensor
(
it
->
sid
,
cmd
);
shm
->
askSensor
(
it
.
sid
,
cmd
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
...
@@ -90,10 +90,10 @@ void PassiveLProcessor::askSensors( UniversalIO::UIOCommand cmd )
...
@@ -90,10 +90,10 @@ void PassiveLProcessor::askSensors( UniversalIO::UIOCommand cmd )
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
PassiveLProcessor
::
sensorInfo
(
const
UniSetTypes
::
SensorMessage
*
sm
)
void
PassiveLProcessor
::
sensorInfo
(
const
UniSetTypes
::
SensorMessage
*
sm
)
{
{
for
(
EXTList
::
iterator
it
=
extInputs
.
begin
();
it
!=
extInputs
.
end
();
++
it
)
for
(
auto
&
it
:
extInputs
)
{
{
if
(
it
->
sid
==
sm
->
id
)
if
(
it
.
sid
==
sm
->
id
)
it
->
state
=
(
bool
)
sm
->
valu
e
;
it
.
state
=
sm
->
value
?
true
:
fals
e
;
}
}
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
...
@@ -189,11 +189,11 @@ void PassiveLProcessor::initIterators()
...
@@ -189,11 +189,11 @@ void PassiveLProcessor::initIterators()
void
PassiveLProcessor
::
setOuts
()
void
PassiveLProcessor
::
setOuts
()
{
{
// выcтавляем выходы
// выcтавляем выходы
for
(
OUTList
::
iterator
it
=
extOuts
.
begin
();
it
!=
extOuts
.
end
();
++
it
)
for
(
auto
&
it
:
extOuts
)
{
{
try
try
{
{
shm
->
setValue
(
it
->
sid
,
it
->
lnk
->
from
->
getOut
()
);
shm
->
setValue
(
it
.
sid
,
it
.
lnk
->
from
->
getOut
()
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
...
@@ -208,11 +208,11 @@ void PassiveLProcessor::setOuts()
...
@@ -208,11 +208,11 @@ void PassiveLProcessor::setOuts()
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
PassiveLProcessor
::
sigterm
(
int
signo
)
void
PassiveLProcessor
::
sigterm
(
int
signo
)
{
{
for
(
OUTList
::
iterator
it
=
extOuts
.
begin
();
it
!=
extOuts
.
end
();
++
it
)
for
(
auto
&
it
:
extOuts
)
{
{
try
try
{
{
shm
->
setValue
(
it
->
sid
,
0
);
shm
->
setValue
(
it
.
sid
,
0
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
...
...
extensions/LogicProcessor/Schema.cc
View file @
f4be5a48
...
@@ -13,12 +13,12 @@ Schema::Schema()
...
@@ -13,12 +13,12 @@ Schema::Schema()
Schema
::~
Schema
()
Schema
::~
Schema
()
{
{
for
(
ElementMap
::
iterator
it
=
emap
.
begin
();
it
!=
emap
.
end
();
++
it
)
for
(
auto
&
it
:
emap
)
{
{
if
(
it
->
second
!=
0
)
if
(
it
.
second
!=
0
)
{
{
delete
it
->
second
;
delete
it
.
second
;
it
->
second
=
0
;
it
.
second
=
0
;
}
}
}
}
}
}
...
@@ -28,7 +28,7 @@ void Schema::link( Element::ElementID rootID, Element::ElementID childID, int nu
...
@@ -28,7 +28,7 @@ void Schema::link( Element::ElementID rootID, Element::ElementID childID, int nu
Element
*
e1
=
0
;
Element
*
e1
=
0
;
Element
*
e2
=
0
;
Element
*
e2
=
0
;
ElementMap
::
iterator
it
=
emap
.
find
(
rootID
);
auto
it
=
emap
.
find
(
rootID
);
if
(
it
==
emap
.
end
()
)
if
(
it
==
emap
.
end
()
)
{
{
ostringstream
msg
;
ostringstream
msg
;
...
@@ -57,7 +57,7 @@ void Schema::unlink( Element::ElementID rootID, Element::ElementID childID )
...
@@ -57,7 +57,7 @@ void Schema::unlink( Element::ElementID rootID, Element::ElementID childID )
Element
*
e1
(
0
);
Element
*
e1
(
0
);
Element
*
e2
(
0
);
Element
*
e2
(
0
);
ElementMap
::
iterator
it
=
emap
.
find
(
rootID
);
auto
it
=
emap
.
find
(
rootID
);
if
(
it
==
emap
.
end
()
)
if
(
it
==
emap
.
end
()
)
{
{
ostringstream
msg
;
ostringstream
msg
;
...
@@ -78,7 +78,7 @@ void Schema::unlink( Element::ElementID rootID, Element::ElementID childID )
...
@@ -78,7 +78,7 @@ void Schema::unlink( Element::ElementID rootID, Element::ElementID childID )
e1
->
delChildOut
(
e2
);
e1
->
delChildOut
(
e2
);
// удаляем из списка соединений
// удаляем из списка соединений
for
(
InternalList
::
iterator
lit
=
inLinks
.
begin
();
lit
!=
inLinks
.
end
();
++
lit
)
for
(
auto
lit
=
inLinks
.
begin
();
lit
!=
inLinks
.
end
();
++
lit
)
{
{
if
(
lit
->
from
==
e1
&&
lit
->
to
==
e2
)
if
(
lit
->
from
==
e1
&&
lit
->
to
==
e2
)
{
{
...
@@ -90,7 +90,7 @@ void Schema::unlink( Element::ElementID rootID, Element::ElementID childID )
...
@@ -90,7 +90,7 @@ void Schema::unlink( Element::ElementID rootID, Element::ElementID childID )
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
Schema
::
extlink
(
const
string
&
name
,
Element
::
ElementID
childID
,
int
numIn
)
void
Schema
::
extlink
(
const
string
&
name
,
Element
::
ElementID
childID
,
int
numIn
)
{
{
ElementMap
::
iterator
it
=
emap
.
find
(
childID
);
auto
it
=
emap
.
find
(
childID
);
if
(
it
==
emap
.
end
()
)
if
(
it
==
emap
.
end
()
)
{
{
ostringstream
msg
;
ostringstream
msg
;
...
@@ -120,7 +120,7 @@ Element* Schema::manage( Element* el )
...
@@ -120,7 +120,7 @@ Element* Schema::manage( Element* el )
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
Schema
::
remove
(
Element
*
el
)
void
Schema
::
remove
(
Element
*
el
)
{
{
for
(
ElementMap
::
iterator
it
=
emap
.
begin
();
it
!=
emap
.
end
();
++
it
)
for
(
auto
it
=
emap
.
begin
();
it
!=
emap
.
end
();
++
it
)
{
{
if
(
it
->
second
!=
el
)
if
(
it
->
second
!=
el
)
{
{
...
@@ -130,34 +130,34 @@ void Schema::remove( Element* el )
...
@@ -130,34 +130,34 @@ void Schema::remove( Element* el )
}
}
// помечаем внутренние связи
// помечаем внутренние связи
for
(
InternalList
::
iterator
lit
=
inLinks
.
begin
();
lit
!=
inLinks
.
end
();
++
lit
)
for
(
auto
&
lit
:
inLinks
)
{
{
if
(
lit
->
from
==
el
)
if
(
lit
.
from
==
el
)
lit
->
from
=
0
;
lit
.
from
=
0
;
if
(
lit
->
to
==
el
)
if
(
lit
.
to
==
el
)
lit
->
to
=
0
;
lit
.
to
=
0
;
}
}
// помечаем внешние связи
// помечаем внешние связи
for
(
ExternalList
::
iterator
lit
=
extLinks
.
begin
();
lit
!=
extLinks
.
end
();
++
lit
)
for
(
auto
&
lit
:
extLinks
)
{
{
if
(
lit
->
to
==
el
)
if
(
lit
.
to
==
el
)
lit
->
to
=
0
;
lit
.
to
=
0
;
}
}
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
Schema
::
setIn
(
Element
::
ElementID
ID
,
int
inNum
,
bool
state
)
void
Schema
::
setIn
(
Element
::
ElementID
ID
,
int
inNum
,
bool
state
)
{
{
ElementMap
::
iterator
it
=
emap
.
find
(
ID
);
auto
it
=
emap
.
find
(
ID
);
if
(
it
!=
emap
.
end
()
)
if
(
it
!=
emap
.
end
()
)
it
->
second
->
setIn
(
inNum
,
state
);
it
->
second
->
setIn
(
inNum
,
state
);
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
bool
Schema
::
getOut
(
Element
::
ElementID
ID
)
bool
Schema
::
getOut
(
Element
::
ElementID
ID
)
{
{
ElementMap
::
iterator
it
=
emap
.
find
(
ID
);
auto
it
=
emap
.
find
(
ID
);
if
(
it
!=
emap
.
end
()
)
if
(
it
!=
emap
.
end
()
)
return
it
->
second
->
getOut
();
return
it
->
second
->
getOut
();
...
@@ -168,7 +168,7 @@ bool Schema::getOut( Element::ElementID ID )
...
@@ -168,7 +168,7 @@ bool Schema::getOut( Element::ElementID ID )
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
Element
*
Schema
::
find
(
Element
::
ElementID
id
)
Element
*
Schema
::
find
(
Element
::
ElementID
id
)
{
{
ElementMap
::
iterator
it
=
emap
.
find
(
id
);
auto
it
=
emap
.
find
(
id
);
if
(
it
!=
emap
.
end
()
)
if
(
it
!=
emap
.
end
()
)
return
it
->
second
;
return
it
->
second
;
return
0
;
return
0
;
...
@@ -177,10 +177,10 @@ Element* Schema::find( Element::ElementID id )
...
@@ -177,10 +177,10 @@ Element* Schema::find( Element::ElementID id )
Element
*
Schema
::
findExtLink
(
const
string
&
name
)
Element
*
Schema
::
findExtLink
(
const
string
&
name
)
{
{
// помечаем внешние связи
// помечаем внешние связи
for
(
ExternalList
::
iterator
it
=
extLinks
.
begin
();
it
!=
extLinks
.
end
();
++
it
)
for
(
auto
&
it
:
extLinks
)
{
{
if
(
it
->
name
==
name
)
if
(
it
.
name
==
name
)
return
it
->
to
;
return
it
.
to
;
}
}
return
0
;
return
0
;
...
...
extensions/LogicProcessor/TAND.cc
View file @
f4be5a48
...
@@ -17,14 +17,14 @@ TAND::~TAND()
...
@@ -17,14 +17,14 @@ TAND::~TAND()
void
TAND
::
setIn
(
int
num
,
bool
state
)
void
TAND
::
setIn
(
int
num
,
bool
state
)
{
{
// cout << this << ": input " << num << " set " << state << endl;
// cout << this << ": input " << num << " set " << state << endl;
for
(
InputList
::
iterator
it
=
ins
.
begin
();
it
!=
ins
.
end
();
++
it
)
for
(
auto
&
it
:
ins
)
{
{
if
(
it
->
num
==
num
)
if
(
it
.
num
==
num
)
{
{
if
(
it
->
state
==
state
)
if
(
it
.
state
==
state
)
return
;
// вход не менялся можно вообще прервать проверку
return
;
// вход не менялся можно вообще прервать проверку
it
->
state
=
state
;
it
.
state
=
state
;
break
;
break
;
}
}
}
}
...
@@ -34,9 +34,9 @@ void TAND::setIn( int num, bool state )
...
@@ -34,9 +34,9 @@ void TAND::setIn( int num, bool state )
// проверяем изменился ли выход
// проверяем изменился ли выход
// для тригера 'AND' проверка до первого 0
// для тригера 'AND' проверка до первого 0
for
(
InputList
::
iterator
it
=
ins
.
begin
();
it
!=
ins
.
end
();
++
it
)
for
(
auto
&
it
:
ins
)
{
{
if
(
!
it
->
state
)
if
(
!
it
.
state
)
{
{
myout
=
false
;
myout
=
false
;
brk
=
true
;
brk
=
true
;
...
...
extensions/LogicProcessor/TOR.cc
View file @
f4be5a48
...
@@ -30,14 +30,14 @@ void TOR::setIn( int num, bool state )
...
@@ -30,14 +30,14 @@ void TOR::setIn( int num, bool state )
{
{
// cout << getType() << "(" << myid << "): input " << num << " set " << state << endl;
// cout << getType() << "(" << myid << "): input " << num << " set " << state << endl;
for
(
InputList
::
iterator
it
=
ins
.
begin
();
it
!=
ins
.
end
();
++
it
)
for
(
auto
&
it
:
ins
)
{
{
if
(
it
->
num
==
num
)
if
(
it
.
num
==
num
)
{
{
if
(
it
->
state
==
state
)
if
(
it
.
state
==
state
)
return
;
// вход не менялся можно вообще прервать проверку
return
;
// вход не менялся можно вообще прервать проверку
it
->
state
=
state
;
it
.
state
=
state
;
break
;
break
;
}
}
}
}
...
@@ -47,9 +47,9 @@ void TOR::setIn( int num, bool state )
...
@@ -47,9 +47,9 @@ void TOR::setIn( int num, bool state )
// проверяем изменился ли выход
// проверяем изменился ли выход
// для тригера 'OR' проверка до первой единицы
// для тригера 'OR' проверка до первой единицы
for
(
InputList
::
iterator
it
=
ins
.
begin
();
it
!=
ins
.
end
();
++
it
)
for
(
auto
&
it
:
ins
)
{
{
if
(
it
->
state
)
if
(
it
.
state
)
{
{
myout
=
true
;
myout
=
true
;
brk
=
true
;
brk
=
true
;
...
...
extensions/ModbusMaster/MBExchange.cc
View file @
f4be5a48
...
@@ -161,7 +161,7 @@ void MBExchange::help_print( int argc, const char* const* argv )
...
@@ -161,7 +161,7 @@ void MBExchange::help_print( int argc, const char* const* argv )
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
MBExchange
::~
MBExchange
()
MBExchange
::~
MBExchange
()
{
{
for
(
RTUDeviceMap
::
iterator
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
for
(
auto
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
{
{
if
(
it1
->
second
->
rtu
)
if
(
it1
->
second
->
rtu
)
{
{
...
@@ -170,7 +170,7 @@ MBExchange::~MBExchange()
...
@@ -170,7 +170,7 @@ MBExchange::~MBExchange()
}
}
RTUDevice
*
d
(
it1
->
second
);
RTUDevice
*
d
(
it1
->
second
);
for
(
RegMap
::
iterator
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
for
(
auto
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
delete
it
->
second
;
delete
it
->
second
;
delete
it1
->
second
;
delete
it1
->
second
;
...
@@ -292,14 +292,14 @@ void MBExchange::initIterators()
...
@@ -292,14 +292,14 @@ void MBExchange::initIterators()
{
{
shm
->
initIterator
(
itHeartBeat
);
shm
->
initIterator
(
itHeartBeat
);
shm
->
initIterator
(
itExchangeMode
);
shm
->
initIterator
(
itExchangeMode
);
for
(
MBExchange
::
RTUDeviceMap
::
iterator
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
for
(
auto
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
{
{
RTUDevice
*
d
(
it1
->
second
);
RTUDevice
*
d
(
it1
->
second
);
shm
->
initIterator
(
d
->
resp_it
);
shm
->
initIterator
(
d
->
resp_it
);
shm
->
initIterator
(
d
->
mode_it
);
shm
->
initIterator
(
d
->
mode_it
);
for
(
MBExchange
::
RegMap
::
iterator
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
for
(
auto
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
{
{
for
(
PList
::
iterator
it2
=
it
->
second
->
slst
.
begin
();
it2
!=
it
->
second
->
slst
.
end
();
++
it2
)
for
(
auto
it2
=
it
->
second
->
slst
.
begin
();
it2
!=
it
->
second
->
slst
.
end
();
++
it2
)
{
{
shm
->
initIterator
(
it2
->
ioit
);
shm
->
initIterator
(
it2
->
ioit
);
shm
->
initIterator
(
it2
->
t_ait
);
shm
->
initIterator
(
it2
->
t_ait
);
...
@@ -307,7 +307,7 @@ void MBExchange::initIterators()
...
@@ -307,7 +307,7 @@ void MBExchange::initIterators()
}
}
}
}
for
(
MBExchange
::
ThresholdList
::
iterator
t
=
thrlist
.
begin
();
t
!=
thrlist
.
end
();
++
t
)
for
(
auto
t
=
thrlist
.
begin
();
t
!=
thrlist
.
end
();
++
t
)
{
{
shm
->
initIterator
(
t
->
ioit
);
shm
->
initIterator
(
t
->
ioit
);
shm
->
initIterator
(
t
->
t_ait
);
shm
->
initIterator
(
t
->
t_ait
);
...
@@ -388,19 +388,17 @@ MBExchange::RegID MBExchange::genRegID( const ModbusRTU::ModbusData mbreg, const
...
@@ -388,19 +388,17 @@ MBExchange::RegID MBExchange::genRegID( const ModbusRTU::ModbusData mbreg, const
void
MBExchange
::
printMap
(
MBExchange
::
RTUDeviceMap
&
m
)
void
MBExchange
::
printMap
(
MBExchange
::
RTUDeviceMap
&
m
)
{
{
cout
<<
"devices: "
<<
endl
;
cout
<<
"devices: "
<<
endl
;
for
(
MBExchange
::
RTUDeviceMap
::
iterator
it
=
m
.
begin
();
it
!=
m
.
end
();
++
it
)
for
(
auto
it
=
m
.
begin
();
it
!=
m
.
end
();
++
it
)
{
cout
<<
" "
<<
*
(
it
->
second
)
<<
endl
;
cout
<<
" "
<<
*
(
it
->
second
)
<<
endl
;
}
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
MBExchange
::
RTUDeviceMap
&
m
)
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
MBExchange
::
RTUDeviceMap
&
m
)
{
{
os
<<
"devices: "
<<
endl
;
os
<<
"devices: "
<<
endl
;
for
(
MBExchange
::
RTUDeviceMap
::
iterator
it
=
m
.
begin
();
it
!=
m
.
end
();
++
it
)
{
for
(
auto
it
=
m
.
begin
();
it
!=
m
.
end
();
++
it
)
os
<<
" "
<<
*
(
it
->
second
)
<<
endl
;
os
<<
" "
<<
*
(
it
->
second
)
<<
endl
;
}
return
os
;
return
os
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
...
@@ -416,7 +414,7 @@ std::ostream& operator<<( std::ostream& os, MBExchange::RTUDevice& d )
...
@@ -416,7 +414,7 @@ std::ostream& operator<<( std::ostream& os, MBExchange::RTUDevice& d )
os
<<
" regs: "
<<
endl
;
os
<<
" regs: "
<<
endl
;
for
(
MBExchange
::
RegMap
::
iterator
it
=
d
.
regmap
.
begin
();
it
!=
d
.
regmap
.
end
();
++
it
)
for
(
auto
it
=
d
.
regmap
.
begin
();
it
!=
d
.
regmap
.
end
();
++
it
)
os
<<
" "
<<
*
(
it
->
second
)
<<
endl
;
os
<<
" "
<<
*
(
it
->
second
)
<<
endl
;
return
os
;
return
os
;
...
@@ -438,7 +436,7 @@ std::ostream& operator<<( std::ostream& os, MBExchange::RegInfo& r )
...
@@ -438,7 +436,7 @@ std::ostream& operator<<( std::ostream& os, MBExchange::RegInfo& r )
<<
" mtrType="
<<
MTR
::
type2str
(
r
.
mtrType
)
<<
" mtrType="
<<
MTR
::
type2str
(
r
.
mtrType
)
<<
endl
;
<<
endl
;
for
(
MBExchange
::
PList
::
iterator
it
=
r
.
slst
.
begin
();
it
!=
r
.
slst
.
end
();
++
it
)
for
(
auto
it
=
r
.
slst
.
begin
();
it
!=
r
.
slst
.
end
();
++
it
)
os
<<
" "
<<
(
*
it
)
<<
endl
;
os
<<
" "
<<
(
*
it
)
<<
endl
;
return
os
;
return
os
;
...
@@ -451,16 +449,16 @@ void MBExchange::rtuQueryOptimization( RTUDeviceMap& m )
...
@@ -451,16 +449,16 @@ void MBExchange::rtuQueryOptimization( RTUDeviceMap& m )
dinfo
<<
myname
<<
"(rtuQueryOptimization): optimization..."
<<
endl
;
dinfo
<<
myname
<<
"(rtuQueryOptimization): optimization..."
<<
endl
;
for
(
MBExchange
::
RTUDeviceMap
::
iterator
it1
=
m
.
begin
();
it1
!=
m
.
end
();
++
it1
)
for
(
auto
it1
=
m
.
begin
();
it1
!=
m
.
end
();
++
it1
)
{
{
RTUDevice
*
d
(
it1
->
second
);
RTUDevice
*
d
(
it1
->
second
);
// Вообще в map они уже лежат в нужном порядке, т.е. функция genRegID() гарантирует
// Вообще в map они уже лежат в нужном порядке, т.е. функция genRegID() гарантирует
// что регистры идущие подряд с одниковой функцией чтения/записи получат подряд идущие ID.
// что регистры идущие подряд с одниковой функцией чтения/записи получат подряд идущие ID.
// так что оптимтизация это просто нахождение мест где id идут не подряд...
// так что оптимтизация это просто нахождение мест где id идут не подряд...
for
(
MBExchange
::
RegMap
::
iterator
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
for
(
auto
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
{
{
MBExchange
::
RegMap
::
iterator
beg
=
it
;
auto
beg
=
it
;
RegID
id
=
it
->
second
->
id
;
// или собственно it->first
RegID
id
=
it
->
second
->
id
;
// или собственно it->first
beg
->
second
->
q_num
=
1
;
beg
->
second
->
q_num
=
1
;
beg
->
second
->
q_count
=
1
;
beg
->
second
->
q_count
=
1
;
...
@@ -512,10 +510,10 @@ void MBExchange::rtuQueryOptimization( RTUDeviceMap& m )
...
@@ -512,10 +510,10 @@ void MBExchange::rtuQueryOptimization( RTUDeviceMap& m )
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
//std::ostream& operator<<( std::ostream& os, MBExchange::PList& lst )
//std::ostream& operator<<( std::ostream& os, MBExchange::PList& lst )
std
::
ostream
&
MBExchange
::
print_plist
(
std
::
ostream
&
os
,
MBExchange
::
PList
&
lst
)
std
::
ostream
&
MBExchange
::
print_plist
(
std
::
ostream
&
os
,
const
MBExchange
::
PList
&
lst
)
{
{
os
<<
"[ "
;
os
<<
"[ "
;
for
(
MBExchange
::
PList
::
const_iterator
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
)
for
(
auto
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
)
os
<<
"("
<<
it
->
si
.
id
<<
")"
<<
conf
->
oind
->
getBaseName
(
conf
->
oind
->
getMapName
(
it
->
si
.
id
))
<<
" "
;
os
<<
"("
<<
it
->
si
.
id
<<
")"
<<
conf
->
oind
->
getBaseName
(
conf
->
oind
->
getMapName
(
it
->
si
.
id
))
<<
" "
;
os
<<
"]"
;
os
<<
"]"
;
...
@@ -526,7 +524,7 @@ void MBExchange::firstInitRegisters()
...
@@ -526,7 +524,7 @@ void MBExchange::firstInitRegisters()
{
{
// если все вернут TRUE, значит OK.
// если все вернут TRUE, значит OK.
allInitOK
=
true
;
allInitOK
=
true
;
for
(
InitList
::
iterator
it
=
initRegList
.
begin
();
it
!=
initRegList
.
end
();
++
it
)
for
(
auto
it
=
initRegList
.
begin
();
it
!=
initRegList
.
end
();
++
it
)
{
{
try
try
{
{
...
@@ -953,7 +951,7 @@ bool MBExchange::pollRTU( RTUDevice* dev, RegMap::iterator& it )
...
@@ -953,7 +951,7 @@ bool MBExchange::pollRTU( RTUDevice* dev, RegMap::iterator& it )
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
MBExchange
::
updateSM
()
void
MBExchange
::
updateSM
()
{
{
for
(
MBExchange
::
RTUDeviceMap
::
iterator
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
for
(
auto
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
{
{
RTUDevice
*
d
(
it1
->
second
);
RTUDevice
*
d
(
it1
->
second
);
...
@@ -996,7 +994,7 @@ void MBExchange::updateSM()
...
@@ -996,7 +994,7 @@ void MBExchange::updateSM()
// см. updateRespondSensors()
// см. updateRespondSensors()
// update values...
// update values...
for
(
MBExchange
::
RegMap
::
iterator
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
for
(
auto
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
{
{
try
try
{
{
...
@@ -1043,7 +1041,7 @@ void MBExchange::updateSM()
...
@@ -1043,7 +1041,7 @@ void MBExchange::updateSM()
void
MBExchange
::
updateRTU
(
RegMap
::
iterator
&
rit
)
void
MBExchange
::
updateRTU
(
RegMap
::
iterator
&
rit
)
{
{
RegInfo
*
r
(
rit
->
second
);
RegInfo
*
r
(
rit
->
second
);
for
(
PList
::
iterator
it
=
r
->
slst
.
begin
();
it
!=
r
->
slst
.
end
();
++
it
)
for
(
auto
it
=
r
->
slst
.
begin
();
it
!=
r
->
slst
.
end
();
++
it
)
updateRSProperty
(
&
(
*
it
),
false
);
updateRSProperty
(
&
(
*
it
),
false
);
}
}
...
@@ -1230,7 +1228,7 @@ void MBExchange::updateRSProperty( RSProperty* p, bool write_only )
...
@@ -1230,7 +1228,7 @@ void MBExchange::updateRSProperty( RSProperty* p, bool write_only )
}
}
else
if
(
p
->
vType
==
VTypes
::
vtF2
)
else
if
(
p
->
vType
==
VTypes
::
vtF2
)
{
{
RegMap
::
iterator
i
(
p
->
reg
->
rit
)
;
auto
i
=
p
->
reg
->
rit
;
if
(
save
)
if
(
save
)
{
{
if
(
r
->
mb_initOK
)
if
(
r
->
mb_initOK
)
...
@@ -1257,7 +1255,7 @@ void MBExchange::updateRSProperty( RSProperty* p, bool write_only )
...
@@ -1257,7 +1255,7 @@ void MBExchange::updateRSProperty( RSProperty* p, bool write_only )
}
}
else
if
(
p
->
vType
==
VTypes
::
vtF4
)
else
if
(
p
->
vType
==
VTypes
::
vtF4
)
{
{
RegMap
::
iterator
i
(
p
->
reg
->
rit
)
;
auto
i
=
p
->
reg
->
rit
;
if
(
save
)
if
(
save
)
{
{
if
(
r
->
mb_initOK
)
if
(
r
->
mb_initOK
)
...
@@ -1282,7 +1280,7 @@ void MBExchange::updateRSProperty( RSProperty* p, bool write_only )
...
@@ -1282,7 +1280,7 @@ void MBExchange::updateRSProperty( RSProperty* p, bool write_only )
}
}
else
if
(
p
->
vType
==
VTypes
::
vtI2
)
else
if
(
p
->
vType
==
VTypes
::
vtI2
)
{
{
RegMap
::
iterator
i
(
p
->
reg
->
rit
)
;
auto
i
=
p
->
reg
->
rit
;
if
(
save
)
if
(
save
)
{
{
if
(
r
->
mb_initOK
)
if
(
r
->
mb_initOK
)
...
@@ -1309,7 +1307,7 @@ void MBExchange::updateRSProperty( RSProperty* p, bool write_only )
...
@@ -1309,7 +1307,7 @@ void MBExchange::updateRSProperty( RSProperty* p, bool write_only )
}
}
else
if
(
p
->
vType
==
VTypes
::
vtU2
)
else
if
(
p
->
vType
==
VTypes
::
vtU2
)
{
{
RegMap
::
iterator
i
(
p
->
reg
->
rit
)
;
auto
i
=
p
->
reg
->
rit
;
if
(
save
)
if
(
save
)
{
{
if
(
r
->
mb_initOK
)
if
(
r
->
mb_initOK
)
...
@@ -1381,7 +1379,7 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
...
@@ -1381,7 +1379,7 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
return
;
return
;
{
{
for
(
PList
::
iterator
it
=
r
->
slst
.
begin
();
it
!=
r
->
slst
.
end
();
++
it
)
for
(
auto
it
=
r
->
slst
.
begin
();
it
!=
r
->
slst
.
end
();
++
it
)
{
{
try
try
{
{
...
@@ -1414,7 +1412,7 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
...
@@ -1414,7 +1412,7 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
if
(
r
->
mtrType
==
MTR
::
mtT3
)
if
(
r
->
mtrType
==
MTR
::
mtT3
)
{
{
RegMap
::
iterator
i
(
rit
)
;
auto
i
=
rit
;
if
(
save
)
if
(
save
)
{
{
MTR
::
T3
t
(
IOBase
::
processingAsAO
(
&
(
*
it
),
shm
,
force_out
));
MTR
::
T3
t
(
IOBase
::
processingAsAO
(
&
(
*
it
),
shm
,
force_out
));
...
@@ -1450,7 +1448,7 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
...
@@ -1450,7 +1448,7 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
if
(
r
->
mtrType
==
MTR
::
mtT5
)
if
(
r
->
mtrType
==
MTR
::
mtT5
)
{
{
RegMap
::
iterator
i
(
rit
)
;
auto
i
=
rit
;
if
(
save
)
if
(
save
)
{
{
MTR
::
T5
t
(
IOBase
::
processingAsAO
(
&
(
*
it
),
shm
,
force_out
));
MTR
::
T5
t
(
IOBase
::
processingAsAO
(
&
(
*
it
),
shm
,
force_out
));
...
@@ -1473,7 +1471,7 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
...
@@ -1473,7 +1471,7 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
if
(
r
->
mtrType
==
MTR
::
mtT6
)
if
(
r
->
mtrType
==
MTR
::
mtT6
)
{
{
RegMap
::
iterator
i
(
rit
)
;
auto
i
=
rit
;
if
(
save
)
if
(
save
)
{
{
MTR
::
T6
t
(
IOBase
::
processingAsAO
(
&
(
*
it
),
shm
,
force_out
));
MTR
::
T6
t
(
IOBase
::
processingAsAO
(
&
(
*
it
),
shm
,
force_out
));
...
@@ -1496,7 +1494,7 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
...
@@ -1496,7 +1494,7 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
if
(
r
->
mtrType
==
MTR
::
mtT7
)
if
(
r
->
mtrType
==
MTR
::
mtT7
)
{
{
RegMap
::
iterator
i
(
rit
)
;
auto
i
=
rit
;
if
(
save
)
if
(
save
)
{
{
MTR
::
T7
t
(
IOBase
::
processingAsAO
(
&
(
*
it
),
shm
,
force_out
));
MTR
::
T7
t
(
IOBase
::
processingAsAO
(
&
(
*
it
),
shm
,
force_out
));
...
@@ -1549,7 +1547,7 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
...
@@ -1549,7 +1547,7 @@ void MBExchange::updateMTR( RegMap::iterator& rit )
if
(
r
->
mtrType
==
MTR
::
mtF1
)
if
(
r
->
mtrType
==
MTR
::
mtF1
)
{
{
RegMap
::
iterator
i
(
rit
)
;
auto
i
=
rit
;
if
(
save
)
if
(
save
)
{
{
float
f
=
IOBase
::
processingFasAO
(
&
(
*
it
),
shm
,
force_out
);
float
f
=
IOBase
::
processingFasAO
(
&
(
*
it
),
shm
,
force_out
);
...
@@ -1646,7 +1644,7 @@ void MBExchange::updateRTU188( RegMap::iterator& rit )
...
@@ -1646,7 +1644,7 @@ void MBExchange::updateRTU188( RegMap::iterator& rit )
return
;
return
;
}
}
for
(
PList
::
iterator
it
=
r
->
slst
.
begin
();
it
!=
r
->
slst
.
end
();
++
it
)
for
(
auto
it
=
r
->
slst
.
begin
();
it
!=
r
->
slst
.
end
();
++
it
)
{
{
try
try
{
{
...
@@ -1692,7 +1690,7 @@ void MBExchange::updateRTU188( RegMap::iterator& rit )
...
@@ -1692,7 +1690,7 @@ void MBExchange::updateRTU188( RegMap::iterator& rit )
MBExchange
::
RTUDevice
*
MBExchange
::
addDev
(
RTUDeviceMap
&
mp
,
ModbusRTU
::
ModbusAddr
a
,
UniXML_iterator
&
xmlit
)
MBExchange
::
RTUDevice
*
MBExchange
::
addDev
(
RTUDeviceMap
&
mp
,
ModbusRTU
::
ModbusAddr
a
,
UniXML_iterator
&
xmlit
)
{
{
RTUDeviceMap
::
iterator
it
=
mp
.
find
(
a
);
auto
it
=
mp
.
find
(
a
);
if
(
it
!=
mp
.
end
()
)
if
(
it
!=
mp
.
end
()
)
{
{
DeviceType
dtype
=
getDeviceType
(
xmlit
.
getProp
(
prop_prefix
+
"mbtype"
));
DeviceType
dtype
=
getDeviceType
(
xmlit
.
getProp
(
prop_prefix
+
"mbtype"
));
...
@@ -1727,7 +1725,7 @@ MBExchange::RegInfo* MBExchange::addReg( RegMap& mp, RegID id, ModbusRTU::Modbus
...
@@ -1727,7 +1725,7 @@ MBExchange::RegInfo* MBExchange::addReg( RegMap& mp, RegID id, ModbusRTU::Modbus
UniXML_iterator
&
xmlit
,
MBExchange
::
RTUDevice
*
dev
,
UniXML_iterator
&
xmlit
,
MBExchange
::
RTUDevice
*
dev
,
MBExchange
::
RegInfo
*
rcopy
)
MBExchange
::
RegInfo
*
rcopy
)
{
{
RegMap
::
iterator
it
=
mp
.
find
(
id
);
auto
it
=
mp
.
find
(
id
);
if
(
it
!=
mp
.
end
()
)
if
(
it
!=
mp
.
end
()
)
{
{
if
(
!
it
->
second
->
dev
)
if
(
!
it
->
second
->
dev
)
...
@@ -1781,14 +1779,14 @@ MBExchange::RegInfo* MBExchange::addReg( RegMap& mp, RegID id, ModbusRTU::Modbus
...
@@ -1781,14 +1779,14 @@ MBExchange::RegInfo* MBExchange::addReg( RegMap& mp, RegID id, ModbusRTU::Modbus
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
MBExchange
::
RSProperty
*
MBExchange
::
addProp
(
PList
&
plist
,
RSProperty
&
p
)
MBExchange
::
RSProperty
*
MBExchange
::
addProp
(
PList
&
plist
,
RSProperty
&
p
)
{
{
for
(
PList
::
iterator
it
=
plist
.
begin
();
it
!=
plist
.
end
();
++
i
t
)
for
(
auto
&
it
:
plis
t
)
{
{
if
(
it
->
si
.
id
==
p
.
si
.
id
&&
it
->
si
.
node
==
p
.
si
.
node
)
if
(
it
.
si
.
id
==
p
.
si
.
id
&&
it
.
si
.
node
==
p
.
si
.
node
)
return
&
(
*
it
)
;
return
&
it
;
}
}
plist
.
push_back
(
p
);
plist
.
push_back
(
p
);
PList
::
iterator
it
=
plist
.
end
();
auto
it
=
plist
.
end
();
--
it
;
--
it
;
return
&
(
*
it
);
return
&
(
*
it
);
}
}
...
@@ -2089,7 +2087,7 @@ bool MBExchange::initItem( UniXML_iterator& it )
...
@@ -2089,7 +2087,7 @@ bool MBExchange::initItem( UniXML_iterator& it )
if
(
p
.
nbit
>=
0
&&
ri
->
slst
.
size
()
==
1
)
if
(
p
.
nbit
>=
0
&&
ri
->
slst
.
size
()
==
1
)
{
{
PList
::
iterator
it2
=
ri
->
slst
.
begin
();
auto
it2
=
ri
->
slst
.
begin
();
if
(
it2
->
nbit
<
0
)
if
(
it2
->
nbit
<
0
)
{
{
dcrit
<<
myname
<<
"(initItem): FAILED! Sharing SAVE (mbreg="
dcrit
<<
myname
<<
"(initItem): FAILED! Sharing SAVE (mbreg="
...
@@ -2333,7 +2331,7 @@ void MBExchange::initDeviceList()
...
@@ -2333,7 +2331,7 @@ void MBExchange::initDeviceList()
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
bool
MBExchange
::
initDeviceInfo
(
RTUDeviceMap
&
m
,
ModbusRTU
::
ModbusAddr
a
,
UniXML_iterator
&
it
)
bool
MBExchange
::
initDeviceInfo
(
RTUDeviceMap
&
m
,
ModbusRTU
::
ModbusAddr
a
,
UniXML_iterator
&
it
)
{
{
RTUDeviceMap
::
iterator
d
=
m
.
find
(
a
);
auto
d
=
m
.
find
(
a
);
if
(
d
==
m
.
end
()
)
if
(
d
==
m
.
end
()
)
{
{
dwarn
<<
myname
<<
"(initDeviceInfo): not found device for addr="
<<
ModbusRTU
::
addr2str
(
a
)
<<
endl
;
dwarn
<<
myname
<<
"(initDeviceInfo): not found device for addr="
<<
ModbusRTU
::
addr2str
(
a
)
<<
endl
;
...
@@ -2530,7 +2528,7 @@ void MBExchange::askSensors( UniversalIO::UIOCommand cmd )
...
@@ -2530,7 +2528,7 @@ void MBExchange::askSensors( UniversalIO::UIOCommand cmd )
dwarn
<<
myname
<<
"(askSensors): 'sidExchangeMode' catch..."
<<
std
::
endl
;
dwarn
<<
myname
<<
"(askSensors): 'sidExchangeMode' catch..."
<<
std
::
endl
;
}
}
for
(
MBExchange
::
RTUDeviceMap
::
iterator
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
for
(
auto
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
{
{
RTUDevice
*
d
(
it1
->
second
);
RTUDevice
*
d
(
it1
->
second
);
...
@@ -2551,12 +2549,12 @@ void MBExchange::askSensors( UniversalIO::UIOCommand cmd )
...
@@ -2551,12 +2549,12 @@ void MBExchange::askSensors( UniversalIO::UIOCommand cmd )
if
(
force_out
)
if
(
force_out
)
return
;
return
;
for
(
MBExchange
::
RegMap
::
iterator
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
for
(
auto
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
{
{
if
(
!
isWriteFunction
(
it
->
second
->
mbfunc
)
)
if
(
!
isWriteFunction
(
it
->
second
->
mbfunc
)
)
continue
;
continue
;
for
(
PList
::
iterator
i
=
it
->
second
->
slst
.
begin
();
i
!=
it
->
second
->
slst
.
end
();
++
i
)
for
(
auto
i
=
it
->
second
->
slst
.
begin
();
i
!=
it
->
second
->
slst
.
end
();
++
i
)
{
{
try
try
{
{
...
@@ -2584,7 +2582,7 @@ void MBExchange::sensorInfo( const UniSetTypes::SensorMessage* sm )
...
@@ -2584,7 +2582,7 @@ void MBExchange::sensorInfo( const UniSetTypes::SensorMessage* sm )
//return; // этот датчик может встречаться и в списке обмена.. поэтому делать return нельзя.
//return; // этот датчик может встречаться и в списке обмена.. поэтому делать return нельзя.
}
}
for
(
MBExchange
::
RTUDeviceMap
::
iterator
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
for
(
auto
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
{
{
RTUDevice
*
d
(
it1
->
second
);
RTUDevice
*
d
(
it1
->
second
);
...
@@ -2594,25 +2592,25 @@ void MBExchange::sensorInfo( const UniSetTypes::SensorMessage* sm )
...
@@ -2594,25 +2592,25 @@ void MBExchange::sensorInfo( const UniSetTypes::SensorMessage* sm )
if
(
force_out
)
if
(
force_out
)
continue
;
continue
;
for
(
MBExchange
::
RegMap
::
iterator
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
for
(
auto
&
it
:
d
->
regmap
)
{
{
if
(
!
isWriteFunction
(
it
->
second
->
mbfunc
)
)
if
(
!
isWriteFunction
(
it
.
second
->
mbfunc
)
)
continue
;
continue
;
for
(
PList
::
iterator
i
=
it
->
second
->
slst
.
begin
();
i
!=
it
->
second
->
slst
.
end
();
++
i
)
for
(
auto
&
i
:
it
.
second
->
slst
)
{
{
if
(
sm
->
id
==
i
->
si
.
id
&&
sm
->
node
==
i
->
si
.
node
)
if
(
sm
->
id
==
i
.
si
.
id
&&
sm
->
node
==
i
.
si
.
node
)
{
{
dinfo
<<
myname
<<
"(sensorInfo): si.id="
<<
sm
->
id
dinfo
<<
myname
<<
"(sensorInfo): si.id="
<<
sm
->
id
<<
" reg="
<<
ModbusRTU
::
dat2str
(
i
->
reg
->
mbreg
)
<<
" reg="
<<
ModbusRTU
::
dat2str
(
i
.
reg
->
mbreg
)
<<
" val="
<<
sm
->
value
<<
" val="
<<
sm
->
value
<<
" mb_initOK="
<<
i
->
reg
->
mb_initOK
<<
endl
;
<<
" mb_initOK="
<<
i
.
reg
->
mb_initOK
<<
endl
;
if
(
!
i
->
reg
->
mb_initOK
)
if
(
!
i
.
reg
->
mb_initOK
)
continue
;
continue
;
i
->
value
=
sm
->
value
;
i
.
value
=
sm
->
value
;
updateRSProperty
(
&
(
*
i
)
,
true
);
updateRSProperty
(
&
i
,
true
);
return
;
return
;
}
}
}
}
...
@@ -2641,7 +2639,7 @@ void MBExchange::poll()
...
@@ -2641,7 +2639,7 @@ void MBExchange::poll()
mb
=
initMB
(
false
);
mb
=
initMB
(
false
);
if
(
!
mb
)
if
(
!
mb
)
{
{
for
(
MBExchange
::
RTUDeviceMap
::
iterator
it
=
rmap
.
begin
();
it
!=
rmap
.
end
();
++
it
)
for
(
auto
it
=
rmap
.
begin
();
it
!=
rmap
.
end
();
++
it
)
it
->
second
->
resp_real
=
false
;
it
->
second
->
resp_real
=
false
;
}
}
}
}
...
@@ -2668,7 +2666,7 @@ void MBExchange::poll()
...
@@ -2668,7 +2666,7 @@ void MBExchange::poll()
bool
allNotRespond
=
true
;
bool
allNotRespond
=
true
;
for
(
MBExchange
::
RTUDeviceMap
::
iterator
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
for
(
auto
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
{
{
RTUDevice
*
d
(
it1
->
second
);
RTUDevice
*
d
(
it1
->
second
);
...
@@ -2679,7 +2677,7 @@ void MBExchange::poll()
...
@@ -2679,7 +2677,7 @@ void MBExchange::poll()
<<
" regs="
<<
d
->
regmap
.
size
()
<<
endl
;
<<
" regs="
<<
d
->
regmap
.
size
()
<<
endl
;
d
->
resp_real
=
false
;
d
->
resp_real
=
false
;
for
(
MBExchange
::
RegMap
::
iterator
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
for
(
auto
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
{
{
if
(
!
checkProcActive
()
)
if
(
!
checkProcActive
()
)
return
;
return
;
...
@@ -2743,7 +2741,7 @@ void MBExchange::poll()
...
@@ -2743,7 +2741,7 @@ void MBExchange::poll()
updateSM
();
updateSM
();
// check thresholds
// check thresholds
for
(
MBExchange
::
ThresholdList
::
iterator
t
=
thrlist
.
begin
();
t
!=
thrlist
.
end
();
++
t
)
for
(
auto
t
=
thrlist
.
begin
();
t
!=
thrlist
.
end
();
++
t
)
{
{
if
(
!
checkProcActive
()
)
if
(
!
checkProcActive
()
)
return
;
return
;
...
@@ -2805,7 +2803,7 @@ void MBExchange::updateRespondSensors()
...
@@ -2805,7 +2803,7 @@ void MBExchange::updateRespondSensors()
chanTimeout
=
pollActivated
&&
ptTimeout
.
checkTime
();
chanTimeout
=
pollActivated
&&
ptTimeout
.
checkTime
();
}
}
for
(
MBExchange
::
RTUDeviceMap
::
iterator
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
for
(
auto
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
{
{
RTUDevice
*
d
(
it1
->
second
);
RTUDevice
*
d
(
it1
->
second
);
...
...
extensions/ModbusMaster/MBExchange.h
View file @
f4be5a48
...
@@ -83,7 +83,7 @@ class MBExchange:
...
@@ -83,7 +83,7 @@ class MBExchange:
friend
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
const
RSProperty
&
p
);
friend
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
const
RSProperty
&
p
);
typedef
std
::
list
<
RSProperty
>
PList
;
typedef
std
::
list
<
RSProperty
>
PList
;
static
std
::
ostream
&
print_plist
(
std
::
ostream
&
os
,
PList
&
p
);
static
std
::
ostream
&
print_plist
(
std
::
ostream
&
os
,
const
PList
&
p
);
typedef
unsigned
long
RegID
;
typedef
unsigned
long
RegID
;
...
...
extensions/ModbusMaster/MBTCPMultiMaster.cc
View file @
f4be5a48
...
@@ -155,10 +155,10 @@ MBTCPMultiMaster::~MBTCPMultiMaster()
...
@@ -155,10 +155,10 @@ MBTCPMultiMaster::~MBTCPMultiMaster()
{
{
delete
pollThread
;
delete
pollThread
;
delete
checkThread
;
delete
checkThread
;
for
(
MBGateList
::
iterator
it
=
mblist
.
begin
();
it
!=
mblist
.
end
();
++
i
t
)
for
(
auto
&
it
:
mblis
t
)
{
{
delete
it
->
mbtcp
;
delete
it
.
mbtcp
;
it
->
mbtcp
=
0
;
it
.
mbtcp
=
0
;
mbi
=
mblist
.
rend
();
mbi
=
mblist
.
rend
();
}
}
}
}
...
@@ -195,7 +195,7 @@ ModbusClient* MBTCPMultiMaster::initMB( bool reopen )
...
@@ -195,7 +195,7 @@ ModbusClient* MBTCPMultiMaster::initMB( bool reopen )
}
}
// проходим по списку (в обратном порядке, т.к. самый приоритетный в конце)
// проходим по списку (в обратном порядке, т.к. самый приоритетный в конце)
for
(
MBGateList
::
reverse_iterator
it
=
mblist
.
rbegin
();
it
!=
mblist
.
rend
();
++
it
)
for
(
auto
it
=
mblist
.
rbegin
();
it
!=
mblist
.
rend
();
++
it
)
{
{
uniset_rwmutex_wrlock
l
(
tcpMutex
);
uniset_rwmutex_wrlock
l
(
tcpMutex
);
if
(
it
->
respond
&&
it
->
init
()
)
if
(
it
->
respond
&&
it
->
init
()
)
...
@@ -302,7 +302,7 @@ void MBTCPMultiMaster::check_thread()
...
@@ -302,7 +302,7 @@ void MBTCPMultiMaster::check_thread()
{
{
while
(
checkProcActive
()
)
while
(
checkProcActive
()
)
{
{
for
(
MBGateList
::
iterator
it
=
mblist
.
begin
();
it
!=
mblist
.
end
();
++
it
)
for
(
auto
it
=
mblist
.
begin
();
it
!=
mblist
.
end
();
++
it
)
{
{
try
try
{
{
...
@@ -345,8 +345,8 @@ void MBTCPMultiMaster::check_thread()
...
@@ -345,8 +345,8 @@ void MBTCPMultiMaster::check_thread()
void
MBTCPMultiMaster
::
initIterators
()
void
MBTCPMultiMaster
::
initIterators
()
{
{
MBExchange
::
initIterators
();
MBExchange
::
initIterators
();
for
(
MBGateList
::
iterator
it
=
mblist
.
begin
();
it
!=
mblist
.
end
();
++
i
t
)
for
(
auto
&
it
:
mblis
t
)
shm
->
initIterator
(
it
->
respond_it
);
shm
->
initIterator
(
it
.
respond_it
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
MBTCPMultiMaster
::
help_print
(
int
argc
,
const
char
*
const
*
argv
)
void
MBTCPMultiMaster
::
help_print
(
int
argc
,
const
char
*
const
*
argv
)
...
...
extensions/ModbusMaster/RTUExchange.cc
View file @
f4be5a48
...
@@ -177,8 +177,8 @@ void RTUExchange::poll()
...
@@ -177,8 +177,8 @@ void RTUExchange::poll()
mb
=
initMB
(
false
);
mb
=
initMB
(
false
);
if
(
!
mb
)
if
(
!
mb
)
{
{
for
(
MBExchange
::
RTUDeviceMap
::
iterator
it
=
rmap
.
begin
();
it
!=
rmap
.
end
();
++
it
)
for
(
auto
&
it
:
rmap
)
it
->
second
->
resp_real
=
false
;
it
.
second
->
resp_real
=
false
;
}
}
}
}
...
@@ -205,9 +205,9 @@ void RTUExchange::poll()
...
@@ -205,9 +205,9 @@ void RTUExchange::poll()
bool
allNotRespond
=
true
;
bool
allNotRespond
=
true
;
ComPort
::
Speed
s
=
mbrtu
->
getSpeed
();
ComPort
::
Speed
s
=
mbrtu
->
getSpeed
();
for
(
MBExchange
::
RTUDeviceMap
::
iterator
it1
=
rmap
.
begin
();
it1
!=
rmap
.
end
();
++
it1
)
for
(
auto
it1
:
rmap
)
{
{
RTUDevice
*
d
(
it1
->
second
);
RTUDevice
*
d
(
it1
.
second
);
if
(
d
->
mode_id
!=
DefaultObjectId
&&
d
->
mode
==
emSkipExchange
)
if
(
d
->
mode_id
!=
DefaultObjectId
&&
d
->
mode
==
emSkipExchange
)
continue
;
continue
;
...
@@ -251,7 +251,7 @@ void RTUExchange::poll()
...
@@ -251,7 +251,7 @@ void RTUExchange::poll()
<<
" regs="
<<
d
->
regmap
.
size
()
<<
endl
;
<<
" regs="
<<
d
->
regmap
.
size
()
<<
endl
;
d
->
resp_real
=
false
;
d
->
resp_real
=
false
;
for
(
RTUExchange
::
RegMap
::
iterator
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
for
(
auto
it
=
d
->
regmap
.
begin
();
it
!=
d
->
regmap
.
end
();
++
it
)
{
{
try
try
{
{
...
@@ -292,12 +292,12 @@ void RTUExchange::poll()
...
@@ -292,12 +292,12 @@ void RTUExchange::poll()
updateSM
();
updateSM
();
// check thresholds
// check thresholds
for
(
MBExchange
::
ThresholdList
::
iterator
t
=
thrlist
.
begin
();
t
!=
thrlist
.
end
();
++
t
)
for
(
auto
&
t
:
thrlis
t
)
{
{
if
(
!
checkProcActive
()
)
if
(
!
checkProcActive
()
)
return
;
return
;
IOBase
::
processingThreshold
(
&
(
*
t
)
,
shm
,
force
);
IOBase
::
processingThreshold
(
&
t
,
shm
,
force
);
}
}
if
(
trReopen
.
hi
(
allNotRespond
)
)
if
(
trReopen
.
hi
(
allNotRespond
)
)
...
@@ -343,7 +343,7 @@ bool RTUExchange::initDeviceInfo( RTUDeviceMap& m, ModbusRTU::ModbusAddr a, UniX
...
@@ -343,7 +343,7 @@ bool RTUExchange::initDeviceInfo( RTUDeviceMap& m, ModbusRTU::ModbusAddr a, UniX
if
(
!
MBExchange
::
initDeviceInfo
(
m
,
a
,
it
)
)
if
(
!
MBExchange
::
initDeviceInfo
(
m
,
a
,
it
)
)
return
false
;
return
false
;
RTUDeviceMap
::
iterator
d
=
m
.
find
(
a
);
auto
d
=
m
.
find
(
a
);
if
(
d
==
m
.
end
()
)
if
(
d
==
m
.
end
()
)
{
{
dwarn
<<
myname
<<
"(initDeviceInfo): not found device for addr="
<<
ModbusRTU
::
addr2str
(
a
)
<<
endl
;
dwarn
<<
myname
<<
"(initDeviceInfo): not found device for addr="
<<
ModbusRTU
::
addr2str
(
a
)
<<
endl
;
...
...
extensions/ModbusSlave/MBSlave.cc
View file @
f4be5a48
...
@@ -455,8 +455,8 @@ void MBSlave::execute_rtu()
...
@@ -455,8 +455,8 @@ void MBSlave::execute_rtu()
}
}
}
}
for
(
IOMap
::
iterator
it
=
iomap
.
begin
();
it
!=
iomap
.
end
();
++
it
)
for
(
auto
&
it
:
iomap
)
IOBase
::
processingThreshold
(
&
it
->
second
,
shm
,
force
);
IOBase
::
processingThreshold
(
&
it
.
second
,
shm
,
force
);
}
}
catch
(...){}
catch
(...){}
}
}
...
@@ -536,8 +536,8 @@ void MBSlave::execute_tcp()
...
@@ -536,8 +536,8 @@ void MBSlave::execute_tcp()
}
}
}
}
for
(
IOMap
::
iterator
it
=
iomap
.
begin
();
it
!=
iomap
.
end
();
++
it
)
for
(
auto
&
it
:
iomap
)
IOBase
::
processingThreshold
(
&
it
->
second
,
shm
,
force
);
IOBase
::
processingThreshold
(
&
it
.
second
,
shm
,
force
);
}
}
catch
(...){}
catch
(...){}
}
}
...
@@ -644,10 +644,10 @@ void MBSlave::askSensors( UniversalIO::UIOCommand cmd )
...
@@ -644,10 +644,10 @@ void MBSlave::askSensors( UniversalIO::UIOCommand cmd )
if
(
force
)
if
(
force
)
return
;
return
;
IOMap
::
iterator
it
=
iomap
.
begin
();
for
(
;
it
!=
iomap
.
end
();
++
it
)
for
(
auto
&
it
:
iomap
)
{
{
IOProperty
*
p
(
&
it
->
second
);
IOProperty
*
p
(
&
it
.
second
);
try
try
{
{
shm
->
askSensor
(
p
->
si
.
id
,
cmd
);
shm
->
askSensor
(
p
->
si
.
id
,
cmd
);
...
@@ -662,8 +662,7 @@ void MBSlave::askSensors( UniversalIO::UIOCommand cmd )
...
@@ -662,8 +662,7 @@ void MBSlave::askSensors( UniversalIO::UIOCommand cmd )
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
MBSlave
::
sensorInfo
(
const
UniSetTypes
::
SensorMessage
*
sm
)
void
MBSlave
::
sensorInfo
(
const
UniSetTypes
::
SensorMessage
*
sm
)
{
{
IOMap
::
iterator
it
=
iomap
.
begin
();
for
(
auto
it
=
iomap
.
begin
();
it
!=
iomap
.
end
();
++
it
)
for
(
;
it
!=
iomap
.
end
();
++
it
)
{
{
if
(
it
->
second
.
si
.
id
==
sm
->
id
)
if
(
it
->
second
.
si
.
id
==
sm
->
id
)
{
{
...
@@ -832,7 +831,7 @@ bool MBSlave::initItem( UniXML_iterator& it )
...
@@ -832,7 +831,7 @@ bool MBSlave::initItem( UniXML_iterator& it )
}
}
p
.
vtype
=
v
;
p
.
vtype
=
v
;
p
.
wnum
=
0
;
p
.
wnum
=
0
;
for
(
unsigned
int
i
=
0
;
i
<
VTypes
::
wsize
(
p
.
vtype
);
i
++
)
for
(
auto
i
=
0
;
i
<
VTypes
::
wsize
(
p
.
vtype
);
i
++
)
{
{
p
.
mbreg
+=
i
;
p
.
mbreg
+=
i
;
p
.
wnum
+=
i
;
p
.
wnum
+=
i
;
...
@@ -846,7 +845,7 @@ bool MBSlave::initItem( UniXML_iterator& it )
...
@@ -846,7 +845,7 @@ bool MBSlave::initItem( UniXML_iterator& it )
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
MBSlave
::
initIterators
()
void
MBSlave
::
initIterators
()
{
{
IOMap
::
iterator
it
=
iomap
.
begin
();
auto
it
=
iomap
.
begin
();
for
(
;
it
!=
iomap
.
end
();
++
it
)
for
(
;
it
!=
iomap
.
end
();
++
it
)
shm
->
initIterator
(
it
->
second
.
ioit
);
shm
->
initIterator
(
it
->
second
.
ioit
);
...
@@ -989,7 +988,7 @@ ModbusRTU::mbErrCode MBSlave::much_real_write( ModbusRTU::ModbusData reg, Modbus
...
@@ -989,7 +988,7 @@ ModbusRTU::mbErrCode MBSlave::much_real_write( ModbusRTU::ModbusData reg, Modbus
int
i
=
0
;
int
i
=
0
;
IOMap
::
iterator
it
=
iomap
.
end
();
auto
it
=
iomap
.
end
();
for
(
;
i
<
count
;
i
++
)
for
(
;
i
<
count
;
i
++
)
{
{
it
=
iomap
.
find
(
reg
+
i
);
it
=
iomap
.
find
(
reg
+
i
);
...
@@ -1022,7 +1021,7 @@ ModbusRTU::mbErrCode MBSlave::real_write( ModbusRTU::ModbusData reg, ModbusRTU::
...
@@ -1022,7 +1021,7 @@ ModbusRTU::mbErrCode MBSlave::real_write( ModbusRTU::ModbusData reg, ModbusRTU::
<<
" data="
<<
ModbusRTU
::
dat2str
(
mbval
)
<<
" data="
<<
ModbusRTU
::
dat2str
(
mbval
)
<<
"("
<<
(
int
)
mbval
<<
")"
<<
endl
;
<<
"("
<<
(
int
)
mbval
<<
")"
<<
endl
;
IOMap
::
iterator
it
=
iomap
.
find
(
reg
);
auto
it
=
iomap
.
find
(
reg
);
return
real_write_it
(
it
,
mbval
);
return
real_write_it
(
it
,
mbval
);
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
...
@@ -1149,7 +1148,7 @@ ModbusRTU::mbErrCode MBSlave::much_real_read( ModbusRTU::ModbusData reg, ModbusR
...
@@ -1149,7 +1148,7 @@ ModbusRTU::mbErrCode MBSlave::much_real_read( ModbusRTU::ModbusData reg, ModbusR
dinfo
<<
myname
<<
"(much_real_read): read mbID="
dinfo
<<
myname
<<
"(much_real_read): read mbID="
<<
ModbusRTU
::
dat2str
(
reg
)
<<
" count="
<<
count
<<
endl
;
<<
ModbusRTU
::
dat2str
(
reg
)
<<
" count="
<<
count
<<
endl
;
IOMap
::
iterator
it
=
iomap
.
end
();
auto
it
=
iomap
.
end
();
int
i
=
0
;
int
i
=
0
;
for
(
;
i
<
count
;
i
++
)
for
(
;
i
<
count
;
i
++
)
{
{
...
@@ -1195,7 +1194,7 @@ ModbusRTU::mbErrCode MBSlave::real_read( ModbusRTU::ModbusData reg, ModbusRTU::M
...
@@ -1195,7 +1194,7 @@ ModbusRTU::mbErrCode MBSlave::real_read( ModbusRTU::ModbusData reg, ModbusRTU::M
dinfo
<<
myname
<<
"(real_read): read mbID="
dinfo
<<
myname
<<
"(real_read): read mbID="
<<
ModbusRTU
::
dat2str
(
reg
)
<<
endl
;
<<
ModbusRTU
::
dat2str
(
reg
)
<<
endl
;
IOMap
::
iterator
it
=
iomap
.
find
(
reg
);
auto
it
=
iomap
.
find
(
reg
);
return
real_read_it
(
it
,
val
);
return
real_read_it
(
it
,
val
);
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
...
@@ -1353,7 +1352,7 @@ ModbusRTU::mbErrCode MBSlave::fileTransfer( ModbusRTU::FileTransferMessage& quer
...
@@ -1353,7 +1352,7 @@ ModbusRTU::mbErrCode MBSlave::fileTransfer( ModbusRTU::FileTransferMessage& quer
{
{
dinfo
<<
myname
<<
"(fileTransfer): "
<<
query
<<
endl
;
dinfo
<<
myname
<<
"(fileTransfer): "
<<
query
<<
endl
;
FileList
::
iterator
it
=
flist
.
find
(
query
.
numfile
);
auto
it
=
flist
.
find
(
query
.
numfile
);
if
(
it
==
flist
.
end
()
)
if
(
it
==
flist
.
end
()
)
return
ModbusRTU
::
erBadDataValue
;
return
ModbusRTU
::
erBadDataValue
;
...
@@ -1396,7 +1395,7 @@ ModbusRTU::mbErrCode MBSlave::readInputStatus( ReadInputStatusMessage& query,
...
@@ -1396,7 +1395,7 @@ ModbusRTU::mbErrCode MBSlave::readInputStatus( ReadInputStatusMessage& query,
while
(
i
<
query
.
count
)
while
(
i
<
query
.
count
)
{
{
reply
.
addData
(
0
);
reply
.
addData
(
0
);
for
(
unsigned
int
nbit
=
0
;
nbit
<
BitsPerByte
&&
i
<
query
.
count
;
nbit
++
,
i
++
)
for
(
auto
nbit
=
0
;
nbit
<
BitsPerByte
&&
i
<
query
.
count
;
nbit
++
,
i
++
)
reply
.
setBit
(
bnum
,
nbit
,
buf
[
i
]);
reply
.
setBit
(
bnum
,
nbit
,
buf
[
i
]);
bnum
++
;
bnum
++
;
}
}
...
@@ -1440,7 +1439,7 @@ ModbusRTU::mbErrCode MBSlave::forceMultipleCoils( ModbusRTU::ForceCoilsMessage&
...
@@ -1440,7 +1439,7 @@ ModbusRTU::mbErrCode MBSlave::forceMultipleCoils( ModbusRTU::ForceCoilsMessage&
for
(
unsigned
int
i
=
0
;
i
<
query
.
bcnt
;
i
++
)
for
(
unsigned
int
i
=
0
;
i
<
query
.
bcnt
;
i
++
)
{
{
ModbusRTU
::
DataBits
b
(
query
.
data
[
i
]);
ModbusRTU
::
DataBits
b
(
query
.
data
[
i
]);
for
(
unsigned
int
k
=
0
;
k
<
ModbusRTU
::
BitsPerByte
&&
nbit
<
query
.
quant
;
k
++
,
nbit
++
)
for
(
auto
k
=
0
;
k
<
ModbusRTU
::
BitsPerByte
&&
nbit
<
query
.
quant
;
k
++
,
nbit
++
)
{
{
// ModbusRTU::mbErrCode ret =
// ModbusRTU::mbErrCode ret =
real_write
(
query
.
start
+
nbit
,
(
b
[
k
]
?
1
:
0
)
);
real_write
(
query
.
start
+
nbit
,
(
b
[
k
]
?
1
:
0
)
);
...
@@ -1518,18 +1517,18 @@ ModbusRTU::mbErrCode MBSlave::read4314( ModbusRTU::MEIMessageRDI& query,
...
@@ -1518,18 +1517,18 @@ ModbusRTU::mbErrCode MBSlave::read4314( ModbusRTU::MEIMessageRDI& query,
// if( query.devID <= rdevMinNum || query.devID >= rdevMaxNum )
// if( query.devID <= rdevMinNum || query.devID >= rdevMaxNum )
// return erOperationFailed;
// return erOperationFailed;
MEIDevIDMap
::
iterator
dit
=
meidev
.
find
(
query
.
devID
);
auto
dit
=
meidev
.
find
(
query
.
devID
);
if
(
dit
==
meidev
.
end
()
)
if
(
dit
==
meidev
.
end
()
)
return
ModbusRTU
::
erBadDataAddress
;
return
ModbusRTU
::
erBadDataAddress
;
MEIObjIDMap
::
iterator
oit
=
dit
->
second
.
find
(
query
.
objID
);
auto
oit
=
dit
->
second
.
find
(
query
.
objID
);
if
(
oit
==
dit
->
second
.
end
()
)
if
(
oit
==
dit
->
second
.
end
()
)
return
ModbusRTU
::
erBadDataAddress
;
return
ModbusRTU
::
erBadDataAddress
;
reply
.
mf
=
0xFF
;
reply
.
mf
=
0xFF
;
reply
.
conformity
=
query
.
devID
;
reply
.
conformity
=
query
.
devID
;
for
(
MEIValMap
::
iterator
i
=
oit
->
second
.
begin
();
i
!=
oit
->
second
.
end
();
++
i
)
for
(
const
auto
&
i
:
oit
->
second
)
reply
.
addData
(
i
->
first
,
i
->
second
);
reply
.
addData
(
i
.
first
,
i
.
second
);
return
erNoError
;
return
erNoError
;
}
}
...
...
extensions/RRDServer/RRDServer.cc
View file @
f4be5a48
...
@@ -166,11 +166,11 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
...
@@ -166,11 +166,11 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
char
**
argv
=
new
char
*
[
argc
];
char
**
argv
=
new
char
*
[
argc
];
int
k
=
0
;
int
k
=
0
;
for
(
std
::
list
<
std
::
string
>::
iterator
i
=
dslist
.
begin
();
i
!=
dslist
.
end
();
++
i
,
k
++
)
for
(
auto
&
i
:
dslist
)
argv
[
k
]
=
strdup
(
i
->
c_str
());
argv
[
k
++
]
=
strdup
(
i
.
c_str
());
for
(
std
::
list
<
std
::
string
>::
iterator
i
=
rralist
.
begin
();
i
!=
rralist
.
end
();
++
i
,
k
++
)
for
(
auto
&
i
:
rralist
)
argv
[
k
]
=
strdup
(
i
->
c_str
());
argv
[
k
++
]
=
strdup
(
i
.
c_str
());
// for( k=0; k<argc; k++ )
// for( k=0; k<argc; k++ )
// cout << "*** argv[" << k << "]='" << argv[k] << "'" << endl;
// cout << "*** argv[" << k << "]='" << argv[k] << "'" << endl;
...
@@ -257,13 +257,13 @@ void RRDServer::askSensors( UniversalIO::UIOCommand cmd )
...
@@ -257,13 +257,13 @@ void RRDServer::askSensors( UniversalIO::UIOCommand cmd )
{
{
UObject_SK
::
askSensors
(
cmd
);
UObject_SK
::
askSensors
(
cmd
);
for
(
RRDList
::
iterator
it
=
rrdlist
.
begin
();
it
!=
rrdlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
rrdlis
t
)
{
{
for
(
DSMap
::
iterator
s
=
it
->
dsmap
.
begin
();
s
!=
it
->
dsmap
.
end
();
++
s
)
for
(
auto
&
s
:
it
.
dsmap
)
{
{
try
try
{
{
shm
->
askSensor
(
s
->
first
,
cmd
);
shm
->
askSensor
(
s
.
first
,
cmd
);
}
}
catch
(
std
::
exception
&
ex
)
catch
(
std
::
exception
&
ex
)
{
{
...
@@ -278,11 +278,11 @@ void RRDServer::sysCommand( const UniSetTypes::SystemMessage* sm )
...
@@ -278,11 +278,11 @@ void RRDServer::sysCommand( const UniSetTypes::SystemMessage* sm )
UObject_SK
::
sysCommand
(
sm
);
UObject_SK
::
sysCommand
(
sm
);
if
(
sm
->
command
==
SystemMessage
::
StartUp
||
sm
->
command
==
SystemMessage
::
WatchDog
)
if
(
sm
->
command
==
SystemMessage
::
StartUp
||
sm
->
command
==
SystemMessage
::
WatchDog
)
{
{
for
(
RRDList
::
iterator
it
=
rrdlist
.
begin
();
it
!=
rrdlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
rrdlis
t
)
{
{
try
try
{
{
askTimer
(
it
->
tid
,
it
->
sec
*
1000
);
askTimer
(
it
.
tid
,
it
.
sec
*
1000
);
}
}
catch
(
std
::
exception
&
ex
)
catch
(
std
::
exception
&
ex
)
{
{
...
@@ -294,10 +294,10 @@ void RRDServer::sysCommand( const UniSetTypes::SystemMessage* sm )
...
@@ -294,10 +294,10 @@ void RRDServer::sysCommand( const UniSetTypes::SystemMessage* sm )
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
RRDServer
::
sensorInfo
(
const
UniSetTypes
::
SensorMessage
*
sm
)
void
RRDServer
::
sensorInfo
(
const
UniSetTypes
::
SensorMessage
*
sm
)
{
{
for
(
RRDList
::
iterator
it
=
rrdlist
.
begin
();
it
!=
rrdlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
rrdlis
t
)
{
{
DSMap
::
iterator
s
=
it
->
dsmap
.
find
(
sm
->
id
);
auto
s
=
it
.
dsmap
.
find
(
sm
->
id
);
if
(
s
!=
it
->
dsmap
.
end
()
)
if
(
s
!=
it
.
dsmap
.
end
()
)
s
->
second
.
value
=
sm
->
value
;
s
->
second
.
value
=
sm
->
value
;
// продолжаем искать по другим rrd, т.к. датчик может входить в несколько..
// продолжаем искать по другим rrd, т.к. датчик может входить в несколько..
...
@@ -306,25 +306,25 @@ void RRDServer::sensorInfo( const UniSetTypes::SensorMessage* sm )
...
@@ -306,25 +306,25 @@ void RRDServer::sensorInfo( const UniSetTypes::SensorMessage* sm )
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
RRDServer
::
timerInfo
(
const
UniSetTypes
::
TimerMessage
*
tm
)
void
RRDServer
::
timerInfo
(
const
UniSetTypes
::
TimerMessage
*
tm
)
{
{
for
(
RRDList
::
iterator
it
=
rrdlist
.
begin
();
it
!=
rrdlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
rrdlis
t
)
{
{
if
(
it
->
tid
==
tm
->
id
)
if
(
it
.
tid
==
tm
->
id
)
{
{
ostringstream
v
;
ostringstream
v
;
v
<<
time
(
0
);
v
<<
time
(
0
);
for
(
DSMap
::
iterator
s
=
it
->
dsmap
.
begin
();
s
!=
it
->
dsmap
.
end
();
++
s
)
for
(
auto
&
s
:
it
.
dsmap
)
v
<<
":"
<<
s
->
second
.
value
;
v
<<
":"
<<
s
.
second
.
value
;
myinfo
<<
myname
<<
"(update): '"
<<
it
->
filename
<<
"' "
<<
v
.
str
()
<<
endl
;
myinfo
<<
myname
<<
"(update): '"
<<
it
.
filename
<<
"' "
<<
v
.
str
()
<<
endl
;
rrd_clear_error
();
rrd_clear_error
();
const
char
*
argv
=
v
.
str
().
c_str
();
const
char
*
argv
=
v
.
str
().
c_str
();
if
(
rrd_update_r
(
it
->
filename
.
c_str
(),
NULL
,
1
,
&
argv
)
<
0
)
if
(
rrd_update_r
(
it
.
filename
.
c_str
(),
NULL
,
1
,
&
argv
)
<
0
)
{
{
ostringstream
err
;
ostringstream
err
;
err
<<
myname
<<
"(update): Can`t update RRD ('"
<<
it
->
filename
<<
"'): err: "
<<
string
(
rrd_get_error
());
err
<<
myname
<<
"(update): Can`t update RRD ('"
<<
it
.
filename
<<
"'): err: "
<<
string
(
rrd_get_error
());
mycrit
<<
err
.
str
()
<<
endl
;
mycrit
<<
err
.
str
()
<<
endl
;
}
}
...
...
extensions/SharedMemory/SharedMemory.cc
View file @
f4be5a48
...
@@ -56,7 +56,7 @@ SharedMemory::SharedMemory( ObjectId id, const std::string& datafile, const std:
...
@@ -56,7 +56,7 @@ SharedMemory::SharedMemory( ObjectId id, const std::string& datafile, const std:
// ----------------------
// ----------------------
buildHistoryList
(
cnode
);
buildHistoryList
(
cnode
);
signal_change_value
().
connect
(
sigc
::
mem_fun
(
*
this
,
&
SharedMemory
::
updateHistory
));
signal_change_value
().
connect
(
sigc
::
mem_fun
(
*
this
,
&
SharedMemory
::
updateHistory
));
for
(
History
::
iterator
i
=
hist
.
begin
();
i
!=
hist
.
end
();
++
i
)
for
(
auto
i
=
hist
.
begin
();
i
!=
hist
.
end
();
++
i
)
histmap
[
i
->
fuse_id
].
push_back
(
i
);
histmap
[
i
->
fuse_id
].
push_back
(
i
);
// ----------------------
// ----------------------
restorer
=
NULL
;
restorer
=
NULL
;
...
@@ -239,17 +239,17 @@ bool SharedMemory::activateObject()
...
@@ -239,17 +239,17 @@ bool SharedMemory::activateObject()
res
=
IONotifyController_LT
::
activateObject
();
res
=
IONotifyController_LT
::
activateObject
();
// инициализируем указатели
// инициализируем указатели
for
(
HeartBeatList
::
iterator
it
=
hlist
.
begin
();
it
!=
hlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
hlis
t
)
{
{
it
->
ioit
=
myioEnd
();
it
.
ioit
=
myioEnd
();
}
}
itPulsar
=
myioEnd
();
itPulsar
=
myioEnd
();
for
(
History
::
iterator
it
=
hist
.
begin
();
it
!=
hist
.
end
();
++
i
t
)
for
(
auto
&
it
:
his
t
)
{
{
for
(
HistoryList
::
iterator
hit
=
it
->
hlst
.
begin
();
hit
!=
it
->
hlst
.
end
();
++
hi
t
)
for
(
auto
&
hit
:
it
.
hls
t
)
hit
->
ioit
=
myioEnd
();
hit
.
ioit
=
myioEnd
();
}
}
activated
=
1
;
activated
=
1
;
...
@@ -283,36 +283,36 @@ void SharedMemory::checkHeartBeat()
...
@@ -283,36 +283,36 @@ void SharedMemory::checkHeartBeat()
bool
wdtpingOK
=
true
;
bool
wdtpingOK
=
true
;
for
(
HeartBeatList
::
iterator
it
=
hlist
.
begin
();
it
!=
hlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
hlis
t
)
{
{
try
try
{
{
long
val
=
localGetValue
(
it
->
ioit
,
it
->
a_sid
);
long
val
=
localGetValue
(
it
.
ioit
,
it
.
a_sid
);
val
--
;
val
--
;
if
(
val
<
-
1
)
if
(
val
<
-
1
)
val
=
-
1
;
val
=
-
1
;
localSetValue
(
it
->
ioit
,
it
->
a_sid
,
val
,
getId
());
localSetValue
(
it
.
ioit
,
it
.
a_sid
,
val
,
getId
());
localSetValue
(
it
->
ioit
,
it
->
d_sid
,(
val
>=
0
?
true
:
false
),
getId
());
localSetValue
(
it
.
ioit
,
it
.
d_sid
,(
val
>=
0
?
true
:
false
),
getId
());
// проверяем нужна ли "перезагрузка" по данному датчику
// проверяем нужна ли "перезагрузка" по данному датчику
if
(
wdt
&&
it
->
ptReboot
.
getInterval
()
)
if
(
wdt
&&
it
.
ptReboot
.
getInterval
()
)
{
{
if
(
val
>
0
)
if
(
val
>
0
)
it
->
timer_running
=
false
;
it
.
timer_running
=
false
;
else
else
{
{
if
(
!
it
->
timer_running
)
if
(
!
it
.
timer_running
)
{
{
it
->
timer_running
=
true
;
it
.
timer_running
=
true
;
it
->
ptReboot
.
setTiming
(
it
->
reboot_msec
);
it
.
ptReboot
.
setTiming
(
it
.
reboot_msec
);
}
}
else
if
(
it
->
ptReboot
.
checkTime
()
)
else
if
(
it
.
ptReboot
.
checkTime
()
)
wdtpingOK
=
false
;
wdtpingOK
=
false
;
}
}
}
}
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
dcrit
<<
myname
<<
"(checkHeartBeat): "
<<
ex
<<
endl
;
dcrit
<<
myname
<<
"(checkHeartBeat): "
<<
ex
<<
endl
;
}
}
...
@@ -328,11 +328,11 @@ void SharedMemory::checkHeartBeat()
...
@@ -328,11 +328,11 @@ void SharedMemory::checkHeartBeat()
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
bool
SharedMemory
::
readItem
(
const
UniXML
&
xml
,
UniXML_iterator
&
it
,
xmlNode
*
sec
)
bool
SharedMemory
::
readItem
(
const
UniXML
&
xml
,
UniXML_iterator
&
it
,
xmlNode
*
sec
)
{
{
for
(
ReadSlotList
::
iterator
r
=
lstRSlot
.
begin
();
r
!=
lstRSlot
.
end
();
++
r
)
for
(
auto
&
r
:
lstRSlot
)
{
{
try
try
{
{
(
*
r
)(
xml
,
it
,
sec
);
(
r
)(
xml
,
it
,
sec
);
}
}
catch
(...){}
catch
(...){}
}
}
...
@@ -476,14 +476,14 @@ void SharedMemory::sendEvent( UniSetTypes::SystemMessage& sm )
...
@@ -476,14 +476,14 @@ void SharedMemory::sendEvent( UniSetTypes::SystemMessage& sm )
{
{
TransportMessage
tm
(
sm
.
transport_msg
());
TransportMessage
tm
(
sm
.
transport_msg
());
for
(
EventList
::
iterator
it
=
elst
.
begin
();
it
!=
elst
.
end
();
++
i
t
)
for
(
auto
&
it
:
els
t
)
{
{
bool
ok
=
false
;
bool
ok
=
false
;
for
(
unsigned
int
i
=
0
;
i
<
2
;
i
++
)
for
(
unsigned
int
i
=
0
;
i
<
2
;
i
++
)
{
{
try
try
{
{
ui
.
send
(
(
*
it
)
,
tm
);
ui
.
send
(
it
,
tm
);
ok
=
true
;
ok
=
true
;
break
;
break
;
}
}
...
@@ -491,7 +491,7 @@ void SharedMemory::sendEvent( UniSetTypes::SystemMessage& sm )
...
@@ -491,7 +491,7 @@ void SharedMemory::sendEvent( UniSetTypes::SystemMessage& sm )
}
}
if
(
!
ok
)
if
(
!
ok
)
dcrit
<<
myname
<<
"(sendEvent): Объект "
<<
(
*
it
)
<<
" НЕДОСТУПЕН"
<<
endl
;
dcrit
<<
myname
<<
"(sendEvent): Объект "
<<
it
<<
" НЕДОСТУПЕН"
<<
endl
;
}
}
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
...
@@ -591,9 +591,9 @@ void SharedMemory::buildHistoryList( xmlNode* cnode )
...
@@ -591,9 +591,9 @@ void SharedMemory::buildHistoryList( xmlNode* cnode )
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
SharedMemory
::
checkHistoryFilter
(
UniXML_iterator
&
xit
)
void
SharedMemory
::
checkHistoryFilter
(
UniXML_iterator
&
xit
)
{
{
for
(
History
::
iterator
it
=
hist
.
begin
();
it
!=
hist
.
end
();
++
i
t
)
for
(
auto
&
it
:
his
t
)
{
{
if
(
xit
.
getProp
(
it
->
filter
).
empty
()
)
if
(
xit
.
getProp
(
it
.
filter
).
empty
()
)
continue
;
continue
;
HistoryItem
ai
;
HistoryItem
ai
;
...
@@ -601,8 +601,8 @@ void SharedMemory::checkHistoryFilter( UniXML_iterator& xit )
...
@@ -601,8 +601,8 @@ void SharedMemory::checkHistoryFilter( UniXML_iterator& xit )
if
(
!
xit
.
getProp
(
"id"
).
empty
()
)
if
(
!
xit
.
getProp
(
"id"
).
empty
()
)
{
{
ai
.
id
=
xit
.
getIntProp
(
"id"
);
ai
.
id
=
xit
.
getIntProp
(
"id"
);
ai
.
init
(
it
->
size
,
xit
.
getIntProp
(
"default"
)
);
ai
.
init
(
it
.
size
,
xit
.
getIntProp
(
"default"
)
);
it
->
hlst
.
push_back
(
ai
);
it
.
hlst
.
push_back
(
ai
);
continue
;
continue
;
}
}
...
@@ -613,8 +613,8 @@ void SharedMemory::checkHistoryFilter( UniXML_iterator& xit )
...
@@ -613,8 +613,8 @@ void SharedMemory::checkHistoryFilter( UniXML_iterator& xit )
continue
;
continue
;
}
}
ai
.
init
(
it
->
size
,
xit
.
getIntProp
(
"default"
)
);
ai
.
init
(
it
.
size
,
xit
.
getIntProp
(
"default"
)
);
it
->
hlst
.
push_back
(
ai
);
it
.
hlst
.
push_back
(
ai
);
}
}
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
...
@@ -630,18 +630,18 @@ void SharedMemory::saveHistory()
...
@@ -630,18 +630,18 @@ void SharedMemory::saveHistory()
// if( dlog.is_info() )
// if( dlog.is_info() )
// dlog.info() << myname << "(saveHistory): ..." << endl;
// dlog.info() << myname << "(saveHistory): ..." << endl;
for
(
History
::
iterator
it
=
hist
.
begin
();
it
!=
hist
.
end
();
++
i
t
)
for
(
auto
&
it
:
his
t
)
{
{
for
(
HistoryList
::
iterator
hit
=
it
->
hlst
.
begin
();
hit
!=
it
->
hlst
.
end
();
++
hi
t
)
for
(
auto
&
hit
:
it
.
hls
t
)
{
{
if
(
hit
->
ioit
!=
myioEnd
()
)
if
(
hit
.
ioit
!=
myioEnd
()
)
hit
->
add
(
localGetValue
(
hit
->
ioit
,
hit
->
ioit
->
second
.
si
.
id
),
it
->
size
);
hit
.
add
(
localGetValue
(
hit
.
ioit
,
hit
.
ioit
->
second
.
si
.
id
),
it
.
size
);
else
else
{
{
try
try
{
{
hit
->
add
(
localGetValue
(
hit
->
ioit
,
hit
->
id
),
it
->
size
);
hit
.
add
(
localGetValue
(
hit
.
ioit
,
hit
.
id
),
it
.
size
);
continue
;
continue
;
}
}
catch
(...){}
catch
(...){}
...
@@ -655,7 +655,7 @@ void SharedMemory::updateHistory( IOStateList::iterator& s_it, IOController* )
...
@@ -655,7 +655,7 @@ void SharedMemory::updateHistory( IOStateList::iterator& s_it, IOController* )
if
(
hist
.
empty
()
)
if
(
hist
.
empty
()
)
return
;
return
;
HistoryFuseMap
::
iterator
i
=
histmap
.
find
(
s_it
->
second
.
si
.
id
);
auto
i
=
histmap
.
find
(
s_it
->
second
.
si
.
id
);
if
(
i
==
histmap
.
end
()
)
if
(
i
==
histmap
.
end
()
)
return
;
return
;
...
@@ -674,9 +674,9 @@ void SharedMemory::updateHistory( IOStateList::iterator& s_it, IOController* )
...
@@ -674,9 +674,9 @@ void SharedMemory::updateHistory( IOStateList::iterator& s_it, IOController* )
<<
" value="
<<
value
<<
" value="
<<
value
<<
endl
;
<<
endl
;
for
(
HistoryItList
::
iterator
it1
=
i
->
second
.
begin
();
it1
!=
i
->
second
.
end
();
++
it1
)
for
(
auto
&
it1
:
i
->
second
)
{
{
History
::
iterator
it
(
(
*
it1
)
)
;
History
::
iterator
it
=
it1
;
if
(
s_it
->
second
.
type
==
UniversalIO
::
DI
||
if
(
s_it
->
second
.
type
==
UniversalIO
::
DI
||
s_it
->
second
.
type
==
UniversalIO
::
DO
)
s_it
->
second
.
type
==
UniversalIO
::
DO
)
...
...
extensions/UNetUDP/UNetExchange.cc
View file @
f4be5a48
...
@@ -337,12 +337,12 @@ sender2(0)
...
@@ -337,12 +337,12 @@ sender2(0)
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
UNetExchange
::~
UNetExchange
()
UNetExchange
::~
UNetExchange
()
{
{
for
(
ReceiverList
::
iterator
it
=
recvlist
.
begin
();
it
!=
recvlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
recvlis
t
)
{
{
if
(
it
->
r1
)
if
(
it
.
r1
)
delete
it
->
r1
;
delete
it
.
r1
;
if
(
it
->
r2
)
if
(
it
.
r2
)
delete
it
->
r2
;
delete
it
.
r2
;
}
}
delete
sender
;
delete
sender
;
...
@@ -353,9 +353,9 @@ UNetExchange::~UNetExchange()
...
@@ -353,9 +353,9 @@ UNetExchange::~UNetExchange()
bool
UNetExchange
::
checkExistUNetHost
(
const
std
::
string
&
addr
,
ost
::
tpport_t
port
)
bool
UNetExchange
::
checkExistUNetHost
(
const
std
::
string
&
addr
,
ost
::
tpport_t
port
)
{
{
ost
::
IPV4Address
a1
(
addr
.
c_str
());
ost
::
IPV4Address
a1
(
addr
.
c_str
());
for
(
ReceiverList
::
iterator
it
=
recvlist
.
begin
();
it
!=
recvlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
recvlis
t
)
{
{
if
(
it
->
r1
->
getAddress
()
==
a1
.
getAddress
()
&&
it
->
r1
->
getPort
()
==
port
)
if
(
it
.
r1
->
getAddress
()
==
a1
.
getAddress
()
&&
it
.
r1
->
getPort
()
==
port
)
return
true
;
return
true
;
}
}
...
@@ -364,12 +364,12 @@ bool UNetExchange::checkExistUNetHost( const std::string& addr, ost::tpport_t po
...
@@ -364,12 +364,12 @@ bool UNetExchange::checkExistUNetHost( const std::string& addr, ost::tpport_t po
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UNetExchange
::
startReceivers
()
void
UNetExchange
::
startReceivers
()
{
{
for
(
ReceiverList
::
iterator
it
=
recvlist
.
begin
();
it
!=
recvlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
recvlis
t
)
{
{
if
(
it
->
r1
)
if
(
it
.
r1
)
it
->
r1
->
start
();
it
.
r1
->
start
();
if
(
it
->
r2
)
if
(
it
.
r2
)
it
->
r2
->
start
();
it
.
r2
->
start
();
}
}
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
...
@@ -418,8 +418,8 @@ void UNetExchange::step()
...
@@ -418,8 +418,8 @@ void UNetExchange::step()
}
}
}
}
for
(
ReceiverList
::
iterator
it
=
recvlist
.
begin
();
it
!=
recvlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
recvlis
t
)
it
->
step
(
shm
,
myname
);
it
.
step
(
shm
,
myname
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
...
@@ -590,18 +590,18 @@ void UNetExchange::sigterm( int signo )
...
@@ -590,18 +590,18 @@ void UNetExchange::sigterm( int signo )
{
{
dinfo
<<
myname
<<
": ********* SIGTERM("
<<
signo
<<
") ********"
<<
endl
;
dinfo
<<
myname
<<
": ********* SIGTERM("
<<
signo
<<
") ********"
<<
endl
;
activated
=
0
;
activated
=
0
;
for
(
ReceiverList
::
iterator
it
=
recvlist
.
begin
();
it
!=
recvlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
recvlis
t
)
{
{
try
try
{
{
if
(
it
->
r1
)
if
(
it
.
r1
)
it
->
r1
->
stop
();
it
.
r1
->
stop
();
}
}
catch
(...){}
catch
(...){}
try
try
{
{
if
(
it
->
r2
)
if
(
it
.
r2
)
it
->
r2
->
stop
();
it
.
r2
->
stop
();
}
}
catch
(...){}
catch
(...){}
}
}
...
@@ -630,8 +630,8 @@ void UNetExchange::initIterators()
...
@@ -630,8 +630,8 @@ void UNetExchange::initIterators()
if
(
sender2
)
if
(
sender2
)
sender2
->
initIterators
();
sender2
->
initIterators
();
for
(
ReceiverList
::
iterator
it
=
recvlist
.
begin
();
it
!=
recvlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
recvlis
t
)
it
->
initIterators
(
shm
);
it
.
initIterators
(
shm
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UNetExchange
::
help_print
(
int
argc
,
const
char
*
argv
[]
)
void
UNetExchange
::
help_print
(
int
argc
,
const
char
*
argv
[]
)
...
@@ -682,31 +682,31 @@ void UNetExchange::receiverEvent( UNetReceiver* r, UNetReceiver::Event ev )
...
@@ -682,31 +682,31 @@ void UNetExchange::receiverEvent( UNetReceiver* r, UNetReceiver::Event ev )
if
(
ev
!=
UNetReceiver
::
evTimeout
)
if
(
ev
!=
UNetReceiver
::
evTimeout
)
return
;
return
;
for
(
ReceiverList
::
iterator
it
=
recvlist
.
begin
();
it
!=
recvlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
recvlis
t
)
{
{
if
(
it
->
r1
==
r
)
if
(
it
.
r1
==
r
)
{
{
// если нет второго канала
// если нет второго канала
// то и переключать некуда
// то и переключать некуда
if
(
!
it
->
r2
)
if
(
!
it
.
r2
)
return
;
return
;
// пропала связь по первому каналу...
// пропала связь по первому каналу...
// переключаемся на второй
// переключаемся на второй
it
->
r1
->
setLockUpdate
(
true
);
it
.
r1
->
setLockUpdate
(
true
);
it
->
r2
->
setLockUpdate
(
false
);
it
.
r2
->
setLockUpdate
(
false
);
dinfo
<<
myname
<<
"(event): "
<<
r
->
getName
()
dinfo
<<
myname
<<
"(event): "
<<
r
->
getName
()
<<
": timeout for channel1.. select channel 2"
<<
endl
;
<<
": timeout for channel1.. select channel 2"
<<
endl
;
return
;
return
;
}
}
if
(
it
->
r2
==
r
)
if
(
it
.
r2
==
r
)
{
{
// пропала связь по второму каналу...
// пропала связь по второму каналу...
// переключаемся на первый
// переключаемся на первый
it
->
r1
->
setLockUpdate
(
false
);
it
.
r1
->
setLockUpdate
(
false
);
it
->
r2
->
setLockUpdate
(
true
);
it
.
r2
->
setLockUpdate
(
true
);
dinfo
<<
myname
<<
"(event): "
<<
r
->
getName
()
dinfo
<<
myname
<<
"(event): "
<<
r
->
getName
()
<<
": timeout for channel2.. select channel 1"
<<
endl
;
<<
": timeout for channel2.. select channel 1"
<<
endl
;
...
...
extensions/UNetUDP/UNetReceiver.cc
View file @
f4be5a48
...
@@ -490,11 +490,11 @@ bool UNetReceiver::recv()
...
@@ -490,11 +490,11 @@ bool UNetReceiver::recv()
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UNetReceiver
::
initIterators
()
void
UNetReceiver
::
initIterators
()
{
{
for
(
ItemVec
::
iterator
it
=
d_icache
.
begin
();
it
!=
d_icache
.
end
();
++
it
)
for
(
auto
&
it
:
d_icache
)
shm
->
initIterator
(
it
->
ioit
);
shm
->
initIterator
(
it
.
ioit
);
for
(
ItemVec
::
iterator
it
=
a_icache
.
begin
();
it
!=
a_icache
.
end
();
++
it
)
for
(
auto
&
it
:
a_icache
)
shm
->
initIterator
(
it
->
ioit
);
shm
->
initIterator
(
it
.
ioit
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UNetReceiver
::
initDCache
(
UniSetUDP
::
UDPMessage
&
pack
,
bool
force
)
void
UNetReceiver
::
initDCache
(
UniSetUDP
::
UDPMessage
&
pack
,
bool
force
)
...
...
extensions/UNetUDP/UNetSender.cc
View file @
f4be5a48
...
@@ -84,7 +84,7 @@ UNetSender::~UNetSender()
...
@@ -84,7 +84,7 @@ UNetSender::~UNetSender()
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UNetSender
::
updateFromSM
()
void
UNetSender
::
updateFromSM
()
{
{
DMap
::
iterator
it
=
dlist
.
begin
();
auto
it
=
dlist
.
begin
();
for
(
;
it
!=
dlist
.
end
();
++
it
)
for
(
;
it
!=
dlist
.
end
();
++
it
)
{
{
long
value
=
shm
->
localGetValue
(
it
->
ioit
,
it
->
id
);
long
value
=
shm
->
localGetValue
(
it
->
ioit
,
it
->
id
);
...
@@ -98,7 +98,7 @@ void UNetSender::updateSensor( UniSetTypes::ObjectId id, long value )
...
@@ -98,7 +98,7 @@ void UNetSender::updateSensor( UniSetTypes::ObjectId id, long value )
return
;
return
;
// cerr << myname << ": UPDATE SENSOR id=" << id << " value=" << value << endl;
// cerr << myname << ": UPDATE SENSOR id=" << id << " value=" << value << endl;
DMap
::
iterator
it
=
dlist
.
begin
();
auto
it
=
dlist
.
begin
();
for
(
;
it
!=
dlist
.
end
();
++
it
)
for
(
;
it
!=
dlist
.
end
();
++
it
)
{
{
if
(
it
->
id
==
id
)
if
(
it
->
id
==
id
)
...
@@ -318,14 +318,14 @@ std::ostream& operator<<( std::ostream& os, UNetSender::UItem& p )
...
@@ -318,14 +318,14 @@ std::ostream& operator<<( std::ostream& os, UNetSender::UItem& p )
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UNetSender
::
initIterators
()
void
UNetSender
::
initIterators
()
{
{
DMap
::
iterator
it
=
dlist
.
begin
();
auto
it
=
dlist
.
begin
();
for
(
;
it
!=
dlist
.
end
();
++
it
)
for
(
;
it
!=
dlist
.
end
();
++
it
)
shm
->
initIterator
(
it
->
ioit
);
shm
->
initIterator
(
it
->
ioit
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UNetSender
::
askSensors
(
UniversalIO
::
UIOCommand
cmd
)
void
UNetSender
::
askSensors
(
UniversalIO
::
UIOCommand
cmd
)
{
{
DMap
::
iterator
it
=
dlist
.
begin
();
auto
it
=
dlist
.
begin
();
for
(
;
it
!=
dlist
.
end
();
++
it
)
for
(
;
it
!=
dlist
.
end
();
++
it
)
shm
->
askSensor
(
it
->
id
,
cmd
);
shm
->
askSensor
(
it
->
id
,
cmd
);
}
}
...
...
extensions/UniNetwork/UniExchange.cc
View file @
f4be5a48
...
@@ -145,18 +145,18 @@ void UniExchange::execute()
...
@@ -145,18 +145,18 @@ void UniExchange::execute()
while
(
1
)
while
(
1
)
{
{
for
(
NetNodeList
::
iterator
it
=
nlst
.
begin
();
it
!=
nlst
.
end
();
++
i
t
)
for
(
auto
&
it
:
nls
t
)
{
{
bool
ok
=
false
;
bool
ok
=
false
;
try
try
{
{
dinfo
<<
myname
<<
": connect to id="
<<
it
->
id
<<
" node="
<<
it
->
node
<<
endl
;
dinfo
<<
myname
<<
": connect to id="
<<
it
.
id
<<
" node="
<<
it
.
node
<<
endl
;
IOController_i
::
ShortMapSeq_var
sseq
=
ui
.
getSensors
(
it
->
id
,
it
->
node
);
IOController_i
::
ShortMapSeq_var
sseq
=
ui
.
getSensors
(
it
.
id
,
it
.
node
);
ok
=
true
;
ok
=
true
;
dinfo
<<
myname
<<
" update sensors from id="
<<
it
->
id
<<
" node="
<<
it
->
node
<<
endl
;
dinfo
<<
myname
<<
" update sensors from id="
<<
it
.
id
<<
" node="
<<
it
.
node
<<
endl
;
it
->
update
(
sseq
,
shm
);
it
.
update
(
sseq
,
shm
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
...
@@ -167,22 +167,22 @@ void UniExchange::execute()
...
@@ -167,22 +167,22 @@ void UniExchange::execute()
dwarn
<<
myname
<<
"(execute): catch ..."
<<
endl
;
dwarn
<<
myname
<<
"(execute): catch ..."
<<
endl
;
}
}
if
(
it
->
sidConnection
!=
DefaultObjectId
)
if
(
it
.
sidConnection
!=
DefaultObjectId
)
{
{
try
try
{
{
shm
->
localSetValue
(
it
->
conn_it
,
it
->
sidConnection
,
ok
,
getId
());
shm
->
localSetValue
(
it
.
conn_it
,
it
.
sidConnection
,
ok
,
getId
());
}
}
catch
(...)
catch
(...)
{
{
dcrit
<<
myname
<<
"(execute): sensor not avalible "
dcrit
<<
myname
<<
"(execute): sensor not avalible "
<<
conf
->
oind
->
getNameById
(
it
->
sidConnection
)
<<
conf
->
oind
->
getNameById
(
it
.
sidConnection
)
<<
endl
;
<<
endl
;
}
}
}
}
if
(
!
ok
)
if
(
!
ok
)
dinfo
<<
myname
<<
": ****** cannot connect with node="
<<
it
->
node
<<
endl
;
dinfo
<<
myname
<<
": ****** cannot connect with node="
<<
it
.
node
<<
endl
;
}
}
if
(
ptUpdate
.
checkTime
()
)
if
(
ptUpdate
.
checkTime
()
)
...
@@ -249,14 +249,14 @@ IOController_i::ShortMapSeq* UniExchange::getSensors()
...
@@ -249,14 +249,14 @@ IOController_i::ShortMapSeq* UniExchange::getSensors()
res
->
length
(
mymap
.
size
()
);
res
->
length
(
mymap
.
size
()
);
int
i
=
0
;
int
i
=
0
;
for
(
SList
::
iterator
it
=
mymap
.
begin
();
it
!=
mymap
.
end
();
++
it
)
for
(
auto
&
it
:
mymap
)
{
{
IOController_i
::
ShortMap
m
;
IOController_i
::
ShortMap
m
;
{
{
uniset_rwmutex_rlock
lock
(
it
->
val_lock
);
uniset_rwmutex_rlock
lock
(
it
.
val_lock
);
m
.
id
=
it
->
id
;
m
.
id
=
it
.
id
;
m
.
value
=
it
->
val
;
m
.
value
=
it
.
val
;
m
.
type
=
it
->
type
;
m
.
type
=
it
.
type
;
}
}
(
*
res
)[
i
++
]
=
m
;
(
*
res
)[
i
++
]
=
m
;
}
}
...
@@ -266,12 +266,12 @@ IOController_i::ShortMapSeq* UniExchange::getSensors()
...
@@ -266,12 +266,12 @@ IOController_i::ShortMapSeq* UniExchange::getSensors()
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
void
UniExchange
::
updateLocalData
()
void
UniExchange
::
updateLocalData
()
{
{
for
(
SList
::
iterator
it
=
mymap
.
begin
();
it
!=
mymap
.
end
();
++
it
)
for
(
auto
&
it
:
mymap
)
{
{
try
try
{
{
uniset_rwmutex_wrlock
lock
(
it
->
val_lock
);
uniset_rwmutex_wrlock
lock
(
it
.
val_lock
);
it
->
val
=
shm
->
localGetValue
(
it
->
ioit
,
it
->
id
);
it
.
val
=
shm
->
localGetValue
(
it
.
ioit
,
it
.
id
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
...
@@ -288,8 +288,8 @@ void UniExchange::updateLocalData()
...
@@ -288,8 +288,8 @@ void UniExchange::updateLocalData()
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
void
UniExchange
::
initIterators
()
void
UniExchange
::
initIterators
()
{
{
for
(
SList
::
iterator
it
=
mymap
.
begin
();
it
!=
mymap
.
end
();
++
it
)
for
(
auto
&
it
:
mymap
)
shm
->
initIterator
(
it
->
ioit
);
shm
->
initIterator
(
it
.
ioit
);
}
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
void
UniExchange
::
askSensors
(
UniversalIO
::
UIOCommand
cmd
)
void
UniExchange
::
askSensors
(
UniversalIO
::
UIOCommand
cmd
)
...
...
extensions/lib/Calibration.cc
View file @
f4be5a48
...
@@ -219,8 +219,8 @@ void Calibration::build( const string& name, const string& confile, xmlNode* roo
...
@@ -219,8 +219,8 @@ void Calibration::build( const string& name, const string& confile, xmlNode* roo
std
::
sort
(
pvec
.
begin
(),
pvec
.
end
());
std
::
sort
(
pvec
.
begin
(),
pvec
.
end
());
PartsVec
::
iterator
beg
=
pvec
.
begin
();
auto
beg
=
pvec
.
begin
();
PartsVec
::
iterator
end
=
pvec
.
end
();
auto
end
=
pvec
.
end
();
if
(
pvec
.
size
()
>
0
)
if
(
pvec
.
size
()
>
0
)
{
{
...
@@ -248,7 +248,7 @@ static Calibration::PartsVec::iterator find_range( long raw, Calibration::PartsV
...
@@ -248,7 +248,7 @@ static Calibration::PartsVec::iterator find_range( long raw, Calibration::PartsV
if
(
end
->
checkX
(
raw
)
)
if
(
end
->
checkX
(
raw
)
)
return
end
;
return
end
;
Calibration
::
PartsVec
::
iterator
it
=
beg
+
std
::
distance
(
beg
,
end
)
/
2
;
auto
it
=
beg
+
std
::
distance
(
beg
,
end
)
/
2
;
if
(
raw
<
it
->
left_x
()
)
if
(
raw
<
it
->
left_x
()
)
return
find_range
(
raw
,
beg
,
it
);
return
find_range
(
raw
,
beg
,
it
);
...
@@ -271,16 +271,16 @@ long Calibration::getValue( long raw, bool crop_raw )
...
@@ -271,16 +271,16 @@ long Calibration::getValue( long raw, bool crop_raw )
if
(
szCache
)
// > 0
if
(
szCache
)
// > 0
{
{
for
(
ValueCache
::
iterator
c
=
cache
.
begin
();
c
!=
cache
.
end
();
++
c
)
for
(
auto
&
c
:
cache
)
{
{
if
(
c
->
raw
==
raw
)
if
(
c
.
raw
==
raw
)
{
{
--
numCallToCache
;
--
numCallToCache
;
c
->
cnt
++
;
c
.
cnt
++
;
if
(
numCallToCache
)
if
(
numCallToCache
)
return
c
->
val
;
return
c
.
val
;
long
val
=
c
->
val
;
// после сортировки итератор станет недействительным, поэтому запоминаем..
long
val
=
c
.
val
;
// после сортировки итератор станет недействительным, поэтому запоминаем..
sort
(
cache
.
begin
(),
cache
.
end
());
sort
(
cache
.
begin
(),
cache
.
end
());
numCallToCache
=
numCacheResort
;
numCallToCache
=
numCacheResort
;
return
val
;
return
val
;
...
@@ -288,7 +288,7 @@ long Calibration::getValue( long raw, bool crop_raw )
...
@@ -288,7 +288,7 @@ long Calibration::getValue( long raw, bool crop_raw )
}
}
}
}
PartsVec
::
iterator
fit
=
find_range
(
raw
,
pvec
.
begin
(),
pvec
.
end
());
auto
fit
=
find_range
(
raw
,
pvec
.
begin
(),
pvec
.
end
());
if
(
fit
==
pvec
.
end
()
)
if
(
fit
==
pvec
.
end
()
)
{
{
...
@@ -333,9 +333,9 @@ void Calibration::insertToCache( const long raw, const long val )
...
@@ -333,9 +333,9 @@ void Calibration::insertToCache( const long raw, const long val )
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
long
Calibration
::
getRawValue
(
long
cal
,
bool
range
)
long
Calibration
::
getRawValue
(
long
cal
,
bool
range
)
{
{
for
(
PartsVec
::
iterator
it
=
pvec
.
begin
();
it
!=
pvec
.
end
();
++
it
)
for
(
auto
&
it
:
pvec
)
{
{
TypeOfValue
q
=
it
->
getX
(
cal
);
TypeOfValue
q
=
it
.
getX
(
cal
);
if
(
q
!=
outOfRange
)
if
(
q
!=
outOfRange
)
return
tRound
(
q
);
return
tRound
(
q
);
}
}
...
@@ -355,10 +355,10 @@ long Calibration::getRawValue( long cal, bool range )
...
@@ -355,10 +355,10 @@ long Calibration::getRawValue( long cal, bool range )
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
Calibration
&
c
)
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
Calibration
&
c
)
{
{
os
<<
"*******************"
<<
endl
;
os
<<
"*******************"
<<
endl
;
for
(
Calibration
::
PartsVec
::
iterator
it
=
c
.
pvec
.
begin
();
it
!=
c
.
pvec
.
end
();
++
it
)
for
(
auto
&
it
:
c
.
pvec
)
{
{
os
<<
"["
<<
it
->
leftPoint
().
x
<<
" : "
<<
it
->
rightPoint
().
x
<<
" ] --> ["
os
<<
"["
<<
it
.
leftPoint
().
x
<<
" : "
<<
it
.
rightPoint
().
x
<<
" ] --> ["
<<
it
->
leftPoint
().
y
<<
" : "
<<
it
->
rightPoint
().
y
<<
" ]"
<<
it
.
leftPoint
().
y
<<
" : "
<<
it
.
rightPoint
().
y
<<
" ]"
<<
endl
;
<<
endl
;
}
}
os
<<
"*******************"
<<
endl
;
os
<<
"*******************"
<<
endl
;
...
@@ -368,10 +368,10 @@ std::ostream& operator<<( std::ostream& os, Calibration& c )
...
@@ -368,10 +368,10 @@ std::ostream& operator<<( std::ostream& os, Calibration& c )
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
Calibration
*
c
)
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
Calibration
*
c
)
{
{
os
<<
"*******************"
<<
endl
;
os
<<
"*******************"
<<
endl
;
for
(
Calibration
::
PartsVec
::
iterator
it
=
c
->
pvec
.
begin
();
it
!=
c
->
pvec
.
end
();
++
it
)
for
(
auto
&
it
:
c
->
pvec
)
{
{
os
<<
"["
<<
it
->
leftPoint
().
x
<<
" : "
<<
it
->
rightPoint
().
x
<<
" ] --> ["
os
<<
"["
<<
it
.
leftPoint
().
x
<<
" : "
<<
it
.
rightPoint
().
x
<<
" ] --> ["
<<
it
->
leftPoint
().
y
<<
" : "
<<
it
->
rightPoint
().
y
<<
" ]"
<<
it
.
leftPoint
().
y
<<
" : "
<<
it
.
rightPoint
().
y
<<
" ]"
<<
endl
;
<<
endl
;
}
}
os
<<
"*******************"
<<
endl
;
os
<<
"*******************"
<<
endl
;
...
...
extensions/lib/DigitalFilter.cc
View file @
f4be5a48
...
@@ -54,7 +54,7 @@ void DigitalFilter::setSettings( unsigned int bufsize, double T, double lsq,
...
@@ -54,7 +54,7 @@ void DigitalFilter::setSettings( unsigned int bufsize, double T, double lsq,
{
{
// удаляем лишние (первые) элементы
// удаляем лишние (первые) элементы
int
sub
=
buf
.
size
()
-
maxsize
;
int
sub
=
buf
.
size
()
-
maxsize
;
for
(
unsigned
int
i
=
0
;
i
<
sub
;
i
++
)
for
(
int
i
=
0
;
i
<
sub
;
i
++
)
buf
.
pop_front
();
buf
.
pop_front
();
}
}
buf
.
resize
(
maxsize
);
buf
.
resize
(
maxsize
);
...
@@ -82,17 +82,17 @@ double DigitalFilter::firstLevel()
...
@@ -82,17 +82,17 @@ double DigitalFilter::firstLevel()
{
{
// считаем среднее арифметическое
// считаем среднее арифметическое
M
=
0
;
M
=
0
;
for
(
FIFOBuffer
::
iterator
i
=
buf
.
begin
();
i
!=
buf
.
end
();
++
i
)
for
(
auto
&
i
:
buf
)
M
=
M
+
(
*
i
)
;
M
=
M
+
i
;
M
=
M
/
buf
.
size
();
M
=
M
/
buf
.
size
();
// считаем среднеквадратичное отклонение
// считаем среднеквадратичное отклонение
S
=
0
;
S
=
0
;
double
r
=
0
;
double
r
=
0
;
for
(
FIFOBuffer
::
iterator
i
=
buf
.
begin
();
i
!=
buf
.
end
();
++
i
)
for
(
auto
&
i
:
buf
)
{
{
r
=
M
-
(
*
i
)
;
r
=
M
-
i
;
S
=
S
+
r
*
r
;
S
=
S
+
r
*
r
;
}
}
...
@@ -105,12 +105,12 @@ double DigitalFilter::firstLevel()
...
@@ -105,12 +105,12 @@ double DigitalFilter::firstLevel()
// Находим среднее арифметическое без учета элементов, отклонение которых вдвое превышает среднеквадратичное
// Находим среднее арифметическое без учета элементов, отклонение которых вдвое превышает среднеквадратичное
int
n
=
0
;
int
n
=
0
;
double
val
=
0
;
// Конечное среднее значение
double
val
=
0
;
// Конечное среднее значение
for
(
FIFOBuffer
::
iterator
i
=
buf
.
begin
();
i
!=
buf
.
end
();
++
i
)
for
(
auto
&
i
:
buf
)
{
{
if
(
fabs
(
M
-
(
*
i
)
)
>
S
*
2
)
if
(
fabs
(
M
-
i
)
>
S
*
2
)
{
{
val
=
val
+
(
*
i
)
;
val
+=
i
;
n
=
n
+
1
;
n
++
;
}
}
}
}
...
@@ -182,10 +182,10 @@ int DigitalFilter::currentRC()
...
@@ -182,10 +182,10 @@ int DigitalFilter::currentRC()
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
const
DigitalFilter
&
d
)
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
const
DigitalFilter
&
d
)
{
{
os
<<
"("
<<
d
.
buf
.
size
()
<<
")["
;
os
<<
"("
<<
d
.
buf
.
size
()
<<
")["
;
for
(
DigitalFilter
::
FIFOBuffer
::
const_iterator
i
=
d
.
buf
.
begin
();
i
!=
d
.
buf
.
end
();
++
i
)
{
for
(
auto
&
i
:
d
.
buf
)
os
<<
" "
<<
setw
(
5
)
<<
(
*
i
)
;
os
<<
" "
<<
setw
(
5
)
<<
i
;
}
os
<<
" ]"
;
os
<<
" ]"
;
return
os
;
return
os
;
}
}
...
@@ -202,14 +202,7 @@ int DigitalFilter::median( int newval )
...
@@ -202,14 +202,7 @@ int DigitalFilter::median( int newval )
add
(
newval
);
add
(
newval
);
// FIFOBuffer::iterator it = buf.begin();
// for( unsigned int i=0; i<maxsize && it!=buf.end(); i++,it++ )
// mvec[i] = (*it);
// copy(buf.begin(),buf.end(),mvec.begin());
mvec
.
assign
(
buf
.
begin
(),
buf
.
end
());
mvec
.
assign
(
buf
.
begin
(),
buf
.
end
());
sort
(
mvec
.
begin
(),
mvec
.
end
());
sort
(
mvec
.
begin
(),
mvec
.
end
());
return
mvec
[
maxsize
/
2
];
return
mvec
[
maxsize
/
2
];
...
@@ -227,7 +220,7 @@ int DigitalFilter::leastsqr( int newval )
...
@@ -227,7 +220,7 @@ int DigitalFilter::leastsqr( int newval )
add
(
newval
);
add
(
newval
);
// Цифровая фильтрация
// Цифровая фильтрация
FIFOBuffer
::
const_iterator
it
=
buf
.
begin
();
auto
it
=
buf
.
begin
();
for
(
unsigned
int
i
=
0
;
i
<
maxsize
;
i
++
,
it
++
)
for
(
unsigned
int
i
=
0
;
i
<
maxsize
;
i
++
,
it
++
)
ls
+=
*
it
*
w
[
i
];
ls
+=
*
it
*
w
[
i
];
...
@@ -258,11 +251,12 @@ int DigitalFilter::filterIIR( int newval )
...
@@ -258,11 +251,12 @@ int DigitalFilter::filterIIR( int newval )
}
}
else
else
{
{
double
aver
=
0
;
double
aver
=
0
;
add
(
newval
);
add
(
newval
);
for
(
FIFOBuffer
::
iterator
i
=
buf
.
begin
();
i
!=
buf
.
end
();
++
i
)
for
(
auto
&
i
:
buf
)
aver
+=
*
i
;
aver
+=
i
;
aver
/=
maxsize
;
aver
/=
maxsize
;
prev
=
lroundf
((
coeff_prev
*
prev
+
coeff_new
*
aver
)
/
(
coeff_prev
+
coeff_new
));
prev
=
lroundf
((
coeff_prev
*
prev
+
coeff_new
*
aver
)
/
(
coeff_prev
+
coeff_new
));
}
}
...
...
extensions/lib/MTR.cc
View file @
f4be5a48
...
@@ -379,7 +379,7 @@ bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr,
...
@@ -379,7 +379,7 @@ bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr,
return
false
;
return
false
;
}
}
for
(
DataMap
::
iterator
it
=
dmap
.
begin
();
it
!=
dmap
.
end
();
++
it
)
for
(
auto
it
=
dmap
.
begin
();
it
!=
dmap
.
end
();
++
it
)
{
{
// ModbusRTU::WriteOutputMessage msg(addr,it->first);
// ModbusRTU::WriteOutputMessage msg(addr,it->first);
// cout << "send reg=" << ModbusRTU::dat2str(it->first)
// cout << "send reg=" << ModbusRTU::dat2str(it->first)
...
@@ -387,7 +387,7 @@ bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr,
...
@@ -387,7 +387,7 @@ bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr,
int
reg
=
it
->
first
;
int
reg
=
it
->
first
;
// bool ok = false;
// bool ok = false;
for
(
DataList
::
iterator
it1
=
it
->
second
.
begin
();
it1
!=
it
->
second
.
end
();
++
it1
,
reg
++
)
for
(
auto
it1
=
it
->
second
.
begin
();
it1
!=
it
->
second
.
end
();
++
it1
,
reg
++
)
{
{
const
ModbusRTU
::
ModbusData
*
last
=
skip
+
sizeof
(
skip
)
/
sizeof
(
skip
[
0
]);
const
ModbusRTU
::
ModbusData
*
last
=
skip
+
sizeof
(
skip
)
/
sizeof
(
skip
[
0
]);
if
(
std
::
find
(
skip
,
last
,
reg
)
!=
last
)
if
(
std
::
find
(
skip
,
last
,
reg
)
!=
last
)
...
...
extensions/tests/Makefile.am
View file @
f4be5a48
SUBDIR
=
SMemoryTest
SUBDIR
=
SMemoryTest
noinst_PROGRAMS
=
calibration
noinst_PROGRAMS
=
calibration
digitalfilter
calibration_SOURCES
=
calibration.cc
calibration_SOURCES
=
calibration.cc
calibration_LDADD
=
$(top_builddir)
/lib/libUniSet2.la
$(top_builddir)
/extensions/lib/libUniSet2Extensions.la
calibration_LDADD
=
$(top_builddir)
/lib/libUniSet2.la
$(top_builddir)
/extensions/lib/libUniSet2Extensions.la
calibration_CPPFLAGS
=
-I
$(top_builddir)
/include
-I
$(top_builddir)
/extensions/include
calibration_CPPFLAGS
=
-I
$(top_builddir)
/include
-I
$(top_builddir)
/extensions/include
digitalfilter_SOURCES
=
digitalfilter.cc
digitalfilter_LDADD
=
$(top_builddir)
/lib/libUniSet2.la
$(top_builddir)
/extensions/lib/libUniSet2Extensions.la
digitalfilter_CPPFLAGS
=
-I
$(top_builddir)
/include
-I
$(top_builddir)
/extensions/include
extensions/tests/SMemoryTest/TestProc.cc
View file @
f4be5a48
...
@@ -103,8 +103,8 @@ void TestProc::timerInfo( const TimerMessage *tm )
...
@@ -103,8 +103,8 @@ void TestProc::timerInfo( const TimerMessage *tm )
cerr
<<
endl
;
cerr
<<
endl
;
cerr
<<
"======= TEST LOG PRINT ======"
<<
endl
;
cerr
<<
"======= TEST LOG PRINT ======"
<<
endl
;
cerr
<<
"LOGLEVEL: ["
<<
(
int
)(
*
lit
)
<<
"] "
<<
(
*
lit
)
<<
endl
;
cerr
<<
"LOGLEVEL: ["
<<
(
int
)(
*
lit
)
<<
"] "
<<
(
*
lit
)
<<
endl
;
for
(
std
::
vector
<
Debug
::
type
>::
iterator
it
=
loglevels
.
begin
();
it
!=
loglevels
.
end
();
++
it
)
for
(
auto
&
it
:
loglevels
)
mylog
[
*
it
]
<<
myname
<<
": test log print..."
<<
endl
;
mylog
[
it
]
<<
myname
<<
": test log print..."
<<
endl
;
cerr
<<
"======= END LOG PRINT ======"
<<
endl
;
cerr
<<
"======= END LOG PRINT ======"
<<
endl
;
}
}
...
...
extensions/tests/calibration.cc
View file @
f4be5a48
...
@@ -68,11 +68,11 @@ int main( int argc, const char** argv )
...
@@ -68,11 +68,11 @@ int main( int argc, const char** argv )
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
cerr
<<
"(
unetexchange
): "
<<
ex
<<
std
::
endl
;
cerr
<<
"(
main
): "
<<
ex
<<
std
::
endl
;
}
}
catch
(...)
catch
(...)
{
{
cerr
<<
"(
unetexchange
): catch ..."
<<
std
::
endl
;
cerr
<<
"(
main
): catch ..."
<<
std
::
endl
;
}
}
return
1
;
return
1
;
...
...
extensions/tests/digitalfilter.cc
0 → 100644
View file @
f4be5a48
#include <iostream>
#include <vector>
#include <iomanip>
#include "Exceptions.h"
#include "Extensions.h"
#include "DigitalFilter.h"
using
namespace
std
;
using
namespace
UniSetTypes
;
using
namespace
UniSetExtensions
;
int
main
(
int
argc
,
const
char
**
argv
)
{
try
{
DigitalFilter
df
;
DigitalFilter
df_m
;
vector
<
long
>
dat
=
{
0
,
234
,
356
,
344
,
234
,
320
,
250
,
250
,
250
,
250
,
250
,
250
,
250
,
251
,
252
,
251
,
252
,
252
,
250
};
for
(
auto
v
:
dat
)
{
df
.
add
(
v
);
cout
<<
"["
<<
setw
(
4
)
<<
v
<<
"]: "
<<
" filter1: "
<<
setw
(
4
)
<<
df
.
current1
()
<<
" filterRC: "
<<
setw
(
4
)
<<
df
.
currentRC
()
<<
" median: "
<<
setw
(
4
)
<<
df_m
.
median
(
v
)
<<
endl
;
}
return
0
;
}
catch
(
Exception
&
ex
)
{
cerr
<<
"(main): "
<<
ex
<<
std
::
endl
;
}
catch
(...)
{
cerr
<<
"(main): catch ..."
<<
std
::
endl
;
}
return
1
;
}
src/Communications/Modbus/ModbusTypes.cc
View file @
f4be5a48
...
@@ -2575,7 +2575,7 @@ ModbusMessage MEIMessageRetRDI::transport_msg()
...
@@ -2575,7 +2575,7 @@ ModbusMessage MEIMessageRetRDI::transport_msg()
mm
.
data
[
5
]
=
objNum
;
mm
.
data
[
5
]
=
objNum
;
int
ind
=
6
;
int
ind
=
6
;
for
(
RDIObjectList
::
iterator
it
=
dlist
.
begin
();
it
!=
dlist
.
end
()
&&
ind
<=
MAXLENPACKET
;
++
it
)
for
(
auto
it
=
dlist
.
begin
();
it
!=
dlist
.
end
()
&&
ind
<=
MAXLENPACKET
;
++
it
)
{
{
mm
.
data
[
ind
++
]
=
it
->
id
;
mm
.
data
[
ind
++
]
=
it
->
id
;
int
dlen
=
it
->
val
.
size
();
// !! не копируем завершающий символ
int
dlen
=
it
->
val
.
size
();
// !! не копируем завершающий символ
...
@@ -2617,8 +2617,8 @@ std::ostream& ModbusRTU::operator<<(std::ostream& os, MEIMessageRetRDI& m )
...
@@ -2617,8 +2617,8 @@ std::ostream& ModbusRTU::operator<<(std::ostream& os, MEIMessageRetRDI& m )
if
(
!
m
.
dlist
.
empty
()
)
if
(
!
m
.
dlist
.
empty
()
)
{
{
os
<<
endl
;
os
<<
endl
;
for
(
RDIObjectList
::
iterator
it
=
m
.
dlist
.
begin
();
it
!=
m
.
dlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
m
.
dlis
t
)
os
<<
" "
<<
rdi2str
(
it
->
id
)
<<
" : "
<<
it
->
val
<<
endl
;
os
<<
" "
<<
rdi2str
(
it
.
id
)
<<
" : "
<<
it
.
val
<<
endl
;
}
}
return
os
;
return
os
;
...
@@ -2633,8 +2633,8 @@ std::ostream& ModbusRTU::operator<<(std::ostream& os,RDIObjectList& dlist )
...
@@ -2633,8 +2633,8 @@ std::ostream& ModbusRTU::operator<<(std::ostream& os,RDIObjectList& dlist )
{
{
if
(
!
dlist
.
empty
()
)
if
(
!
dlist
.
empty
()
)
{
{
for
(
RDIObjectList
::
iterator
it
=
dlist
.
begin
();
it
!=
dlist
.
end
();
++
i
t
)
for
(
auto
&
it
:
dlis
t
)
os
<<
" "
<<
rdi2str
(
it
->
id
)
<<
" : "
<<
it
->
val
<<
endl
;
os
<<
" "
<<
rdi2str
(
it
.
id
)
<<
" : "
<<
it
.
val
<<
endl
;
}
}
return
os
;
return
os
;
...
...
src/Interfaces/UInterface.cc
View file @
f4be5a48
...
@@ -1032,7 +1032,7 @@ ObjectPtr UInterface::CacheOfResolve::resolve( const ObjectId id, const ObjectId
...
@@ -1032,7 +1032,7 @@ ObjectPtr UInterface::CacheOfResolve::resolve( const ObjectId id, const ObjectId
{
{
UniSetTypes
::
uniset_rwmutex_rlock
l
(
cmutex
);
UniSetTypes
::
uniset_rwmutex_rlock
l
(
cmutex
);
CacheMap
::
iterator
it
=
mcache
.
find
(
key
(
id
,
node
)
);
auto
it
=
mcache
.
find
(
key
(
id
,
node
)
);
if
(
it
==
mcache
.
end
()
)
if
(
it
==
mcache
.
end
()
)
throw
UniSetTypes
::
NameNotFound
();
throw
UniSetTypes
::
NameNotFound
();
...
@@ -1054,7 +1054,7 @@ void UInterface::CacheOfResolve::cache( const ObjectId id, const ObjectId node,
...
@@ -1054,7 +1054,7 @@ void UInterface::CacheOfResolve::cache( const ObjectId id, const ObjectId node,
UniSetTypes
::
KeyType
k
(
key
(
id
,
node
)
);
UniSetTypes
::
KeyType
k
(
key
(
id
,
node
)
);
CacheMap
::
iterator
it
=
mcache
.
find
(
k
);
auto
it
=
mcache
.
find
(
k
);
if
(
it
==
mcache
.
end
()
)
if
(
it
==
mcache
.
end
()
)
mcache
.
insert
(
CacheMap
::
value_type
(
k
,
Info
(
ptr
)));
mcache
.
insert
(
CacheMap
::
value_type
(
k
,
Info
(
ptr
)));
else
else
...
@@ -1070,7 +1070,7 @@ bool UInterface::CacheOfResolve::clean()
...
@@ -1070,7 +1070,7 @@ bool UInterface::CacheOfResolve::clean()
uinfo
<<
"UI: clean cache...."
<<
endl
;
uinfo
<<
"UI: clean cache...."
<<
endl
;
for
(
CacheMap
::
iterator
it
=
mcache
.
begin
();
it
!=
mcache
.
end
();)
for
(
auto
it
=
mcache
.
begin
();
it
!=
mcache
.
end
();)
{
{
if
(
it
->
second
.
ncall
<=
minCallCount
)
if
(
it
->
second
.
ncall
<=
minCallCount
)
mcache
.
erase
(
it
++
);
mcache
.
erase
(
it
++
);
...
@@ -1088,7 +1088,7 @@ bool UInterface::CacheOfResolve::clean()
...
@@ -1088,7 +1088,7 @@ bool UInterface::CacheOfResolve::clean()
void
UInterface
::
CacheOfResolve
::
erase
(
const
UniSetTypes
::
ObjectId
id
,
const
UniSetTypes
::
ObjectId
node
)
const
void
UInterface
::
CacheOfResolve
::
erase
(
const
UniSetTypes
::
ObjectId
id
,
const
UniSetTypes
::
ObjectId
node
)
const
{
{
UniSetTypes
::
uniset_rwmutex_wrlock
l
(
cmutex
);
UniSetTypes
::
uniset_rwmutex_wrlock
l
(
cmutex
);
CacheMap
::
iterator
it
=
mcache
.
find
(
key
(
id
,
node
)
);
auto
it
=
mcache
.
find
(
key
(
id
,
node
)
);
if
(
it
!=
mcache
.
end
()
)
if
(
it
!=
mcache
.
end
()
)
mcache
.
erase
(
it
);
mcache
.
erase
(
it
);
}
}
...
...
src/ObjectRepository/ObjectIndex_Array.cc
View file @
f4be5a48
...
@@ -53,7 +53,7 @@ ObjectIndex_Array::ObjectIndex_Array( const ObjectInfo *objectInfo ):
...
@@ -53,7 +53,7 @@ ObjectIndex_Array::ObjectIndex_Array( const ObjectInfo *objectInfo ):
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
ObjectId
ObjectIndex_Array
::
getIdByName
(
const
string
&
name
)
ObjectId
ObjectIndex_Array
::
getIdByName
(
const
string
&
name
)
{
{
MapObjectKey
::
iterator
it
=
mok
.
find
(
name
);
auto
it
=
mok
.
find
(
name
);
if
(
it
!=
mok
.
end
()
)
if
(
it
!=
mok
.
end
()
)
return
it
->
second
;
return
it
->
second
;
...
@@ -119,7 +119,7 @@ const ObjectInfo* ObjectIndex_Array::getObjectInfo( const ObjectId id )
...
@@ -119,7 +119,7 @@ const ObjectInfo* ObjectIndex_Array::getObjectInfo( const ObjectId id )
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
const
ObjectInfo
*
ObjectIndex_Array
::
getObjectInfo
(
const
std
::
string
&
name
)
const
ObjectInfo
*
ObjectIndex_Array
::
getObjectInfo
(
const
std
::
string
&
name
)
{
{
MapObjectKey
::
iterator
it
=
mok
.
find
(
name
);
auto
it
=
mok
.
find
(
name
);
if
(
it
!=
mok
.
end
()
)
if
(
it
!=
mok
.
end
()
)
return
&
(
objectInfo
[
it
->
second
]);
return
&
(
objectInfo
[
it
->
second
]);
...
...
src/ObjectRepository/ObjectIndex_XML.cc
View file @
f4be5a48
...
@@ -52,7 +52,7 @@ ObjectIndex_XML::~ObjectIndex_XML()
...
@@ -52,7 +52,7 @@ ObjectIndex_XML::~ObjectIndex_XML()
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
ObjectId
ObjectIndex_XML
::
getIdByName
(
const
string
&
name
)
ObjectId
ObjectIndex_XML
::
getIdByName
(
const
string
&
name
)
{
{
MapObjectKey
::
iterator
it
=
mok
.
find
(
name
);
auto
it
=
mok
.
find
(
name
);
if
(
it
!=
mok
.
end
()
)
if
(
it
!=
mok
.
end
()
)
return
it
->
second
;
return
it
->
second
;
...
@@ -83,7 +83,7 @@ std::ostream& operator<<(std::ostream& os, ObjectIndex_XML& oi )
...
@@ -83,7 +83,7 @@ std::ostream& operator<<(std::ostream& os, ObjectIndex_XML& oi )
std
::
ostream
&
ObjectIndex_XML
::
printMap
(
std
::
ostream
&
os
)
std
::
ostream
&
ObjectIndex_XML
::
printMap
(
std
::
ostream
&
os
)
{
{
cout
<<
"size: "
<<
omap
.
size
()
<<
endl
;
cout
<<
"size: "
<<
omap
.
size
()
<<
endl
;
for
(
vector
<
ObjectInfo
>::
iterator
it
=
omap
.
begin
();
it
!=
omap
.
end
();
++
it
)
for
(
auto
it
=
omap
.
begin
();
it
!=
omap
.
end
();
++
it
)
{
{
if
(
it
->
repName
==
NULL
)
if
(
it
->
repName
==
NULL
)
continue
;
continue
;
...
@@ -282,7 +282,7 @@ const ObjectInfo* ObjectIndex_XML::getObjectInfo( const ObjectId id )
...
@@ -282,7 +282,7 @@ const ObjectInfo* ObjectIndex_XML::getObjectInfo( const ObjectId id )
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
const
ObjectInfo
*
ObjectIndex_XML
::
getObjectInfo
(
const
std
::
string
&
name
)
const
ObjectInfo
*
ObjectIndex_XML
::
getObjectInfo
(
const
std
::
string
&
name
)
{
{
MapObjectKey
::
iterator
it
=
mok
.
find
(
name
);
auto
it
=
mok
.
find
(
name
);
if
(
it
!=
mok
.
end
()
)
if
(
it
!=
mok
.
end
()
)
return
&
(
omap
[
it
->
second
]);
return
&
(
omap
[
it
->
second
]);
...
...
src/ObjectRepository/ObjectIndex_idXML.cc
View file @
f4be5a48
...
@@ -30,7 +30,7 @@ ObjectIndex_idXML::~ObjectIndex_idXML()
...
@@ -30,7 +30,7 @@ ObjectIndex_idXML::~ObjectIndex_idXML()
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
ObjectId
ObjectIndex_idXML
::
getIdByName
(
const
string
&
name
)
ObjectId
ObjectIndex_idXML
::
getIdByName
(
const
string
&
name
)
{
{
MapObjectKey
::
iterator
it
=
mok
.
find
(
name
);
auto
it
=
mok
.
find
(
name
);
if
(
it
!=
mok
.
end
()
)
if
(
it
!=
mok
.
end
()
)
return
it
->
second
;
return
it
->
second
;
...
@@ -39,7 +39,7 @@ ObjectId ObjectIndex_idXML::getIdByName( const string& name )
...
@@ -39,7 +39,7 @@ ObjectId ObjectIndex_idXML::getIdByName( const string& name )
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
string
ObjectIndex_idXML
::
getMapName
(
const
ObjectId
id
)
string
ObjectIndex_idXML
::
getMapName
(
const
ObjectId
id
)
{
{
MapObjects
::
iterator
it
=
omap
.
find
(
id
);
auto
it
=
omap
.
find
(
id
);
if
(
it
!=
omap
.
end
()
)
if
(
it
!=
omap
.
end
()
)
return
it
->
second
.
repName
;
return
it
->
second
.
repName
;
...
@@ -48,7 +48,7 @@ string ObjectIndex_idXML::getMapName( const ObjectId id )
...
@@ -48,7 +48,7 @@ string ObjectIndex_idXML::getMapName( const ObjectId id )
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
string
ObjectIndex_idXML
::
getTextName
(
const
ObjectId
id
)
string
ObjectIndex_idXML
::
getTextName
(
const
ObjectId
id
)
{
{
MapObjects
::
iterator
it
=
omap
.
find
(
id
);
auto
it
=
omap
.
find
(
id
);
if
(
it
!=
omap
.
end
()
)
if
(
it
!=
omap
.
end
()
)
return
it
->
second
.
textName
;
return
it
->
second
.
textName
;
...
@@ -63,7 +63,7 @@ std::ostream& operator<<(std::ostream& os, ObjectIndex_idXML& oi )
...
@@ -63,7 +63,7 @@ std::ostream& operator<<(std::ostream& os, ObjectIndex_idXML& oi )
std
::
ostream
&
ObjectIndex_idXML
::
printMap
(
std
::
ostream
&
os
)
std
::
ostream
&
ObjectIndex_idXML
::
printMap
(
std
::
ostream
&
os
)
{
{
os
<<
"size: "
<<
omap
.
size
()
<<
endl
;
os
<<
"size: "
<<
omap
.
size
()
<<
endl
;
for
(
MapObjects
::
iterator
it
=
omap
.
begin
();
it
!=
omap
.
end
();
++
it
)
for
(
auto
it
=
omap
.
begin
();
it
!=
omap
.
end
();
++
it
)
{
{
if
(
it
->
second
.
repName
==
NULL
)
if
(
it
->
second
.
repName
==
NULL
)
continue
;
continue
;
...
@@ -216,7 +216,7 @@ void ObjectIndex_idXML::read_nodes( UniXML& xml, const std::string& sec )
...
@@ -216,7 +216,7 @@ void ObjectIndex_idXML::read_nodes( UniXML& xml, const std::string& sec )
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
const
ObjectInfo
*
ObjectIndex_idXML
::
getObjectInfo
(
const
ObjectId
id
)
const
ObjectInfo
*
ObjectIndex_idXML
::
getObjectInfo
(
const
ObjectId
id
)
{
{
MapObjects
::
iterator
it
=
omap
.
find
(
id
);
auto
it
=
omap
.
find
(
id
);
if
(
it
!=
omap
.
end
()
)
if
(
it
!=
omap
.
end
()
)
return
&
(
it
->
second
);
return
&
(
it
->
second
);
...
@@ -225,7 +225,7 @@ const ObjectInfo* ObjectIndex_idXML::getObjectInfo( const ObjectId id )
...
@@ -225,7 +225,7 @@ const ObjectInfo* ObjectIndex_idXML::getObjectInfo( const ObjectId id )
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
const
ObjectInfo
*
ObjectIndex_idXML
::
getObjectInfo
(
const
std
::
string
&
name
)
const
ObjectInfo
*
ObjectIndex_idXML
::
getObjectInfo
(
const
std
::
string
&
name
)
{
{
MapObjectKey
::
iterator
it
=
mok
.
find
(
name
);
auto
it
=
mok
.
find
(
name
);
if
(
it
!=
mok
.
end
()
)
if
(
it
!=
mok
.
end
()
)
return
getObjectInfo
(
it
->
second
);
return
getObjectInfo
(
it
->
second
);
...
...
src/ObjectRepository/ObjectRepositoryFactory.cc
View file @
f4be5a48
...
@@ -176,11 +176,9 @@ bool ObjectRepositoryFactory::createContext(const char *cname, CosNaming::Naming
...
@@ -176,11 +176,9 @@ bool ObjectRepositoryFactory::createContext(const char *cname, CosNaming::Naming
/*!
/*!
\note Функция не вывести список, если не сможет получить доступ к секции
\note Функция не вывести список, если не сможет получить доступ к секции
*/
*/
void
ObjectRepositoryFactory
::
printSection
(
const
string
&
fullName
)
void
ObjectRepositoryFactory
::
printSection
(
const
string
&
fullName
)
{
{
ListObjectName
ls
;
ListObjectName
ls
;
ListObjectName
::
const_iterator
li
;
try
try
{
{
list
(
fullName
.
c_str
(),
&
ls
);
list
(
fullName
.
c_str
(),
&
ls
);
...
@@ -196,12 +194,8 @@ void ObjectRepositoryFactory::printSection(const string& fullName)
...
@@ -196,12 +194,8 @@ void ObjectRepositoryFactory::printSection(const string& fullName)
cout
<<
fullName
<<
"("
<<
ls
.
size
()
<<
"):"
<<
endl
;
cout
<<
fullName
<<
"("
<<
ls
.
size
()
<<
"):"
<<
endl
;
for
(
li
=
ls
.
begin
();
li
!=
ls
.
end
();
++
li
)
for
(
auto
v
:
ls
)
{
cout
<<
v
<<
endl
;
string
ob
(
*
li
);
cout
<<
ob
<<
endl
;
}
}
}
// -----------------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------
...
...
src/ObjectRepository/ProxyManager.cc
View file @
f4be5a48
...
@@ -54,14 +54,14 @@ void ProxyManager::attachObject( PassiveObject* po, UniSetTypes::ObjectId id )
...
@@ -54,14 +54,14 @@ void ProxyManager::attachObject( PassiveObject* po, UniSetTypes::ObjectId id )
return
;
return
;
}
}
PObjectMap
::
iterator
it
=
omap
.
find
(
id
);
auto
it
=
omap
.
find
(
id
);
if
(
it
==
omap
.
end
()
)
if
(
it
==
omap
.
end
()
)
omap
.
insert
(
PObjectMap
::
value_type
(
id
,
po
));
omap
.
insert
(
PObjectMap
::
value_type
(
id
,
po
));
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
ProxyManager
::
detachObject
(
UniSetTypes
::
ObjectId
id
)
void
ProxyManager
::
detachObject
(
UniSetTypes
::
ObjectId
id
)
{
{
PObjectMap
::
iterator
it
=
omap
.
find
(
id
);
auto
it
=
omap
.
find
(
id
);
if
(
it
!=
omap
.
end
()
)
if
(
it
!=
omap
.
end
()
)
omap
.
erase
(
it
);
omap
.
erase
(
it
);
}
}
...
@@ -73,7 +73,7 @@ bool ProxyManager::activateObject()
...
@@ -73,7 +73,7 @@ bool ProxyManager::activateObject()
return
false
;
return
false
;
// Регистрируемся от имени объектов
// Регистрируемся от имени объектов
for
(
PObjectMap
::
const_iterator
it
=
omap
.
begin
();
it
!=
omap
.
end
();
++
it
)
for
(
auto
&
it
:
omap
)
{
{
try
try
{
{
...
@@ -82,11 +82,11 @@ bool ProxyManager::activateObject()
...
@@ -82,11 +82,11 @@ bool ProxyManager::activateObject()
try
try
{
{
uinfo
<<
myname
<<
"(registered): попытка "
uinfo
<<
myname
<<
"(registered): попытка "
<<
i
+
1
<<
" регистриую (id="
<<
it
->
first
<<
") "
<<
i
+
1
<<
" регистриую (id="
<<
it
.
first
<<
") "
<<
" (pname="
<<
it
->
second
->
getName
()
<<
") "
<<
" (pname="
<<
it
.
second
->
getName
()
<<
") "
<<
conf
->
oind
->
getNameById
(
it
->
first
)
<<
endl
;
<<
conf
->
oind
->
getNameById
(
it
.
first
)
<<
endl
;
ui
.
registered
(
it
->
first
,
getRef
(),
true
);
ui
.
registered
(
it
.
first
,
getRef
(),
true
);
break
;
break
;
}
}
catch
(
UniSetTypes
::
ObjectNameAlready
&
ex
)
catch
(
UniSetTypes
::
ObjectNameAlready
&
ex
)
...
@@ -94,7 +94,7 @@ bool ProxyManager::activateObject()
...
@@ -94,7 +94,7 @@ bool ProxyManager::activateObject()
ucrit
<<
myname
<<
"(registered): СПЕРВА РАЗРЕГИСТРИРУЮ (ObjectNameAlready)"
<<
endl
;
ucrit
<<
myname
<<
"(registered): СПЕРВА РАЗРЕГИСТРИРУЮ (ObjectNameAlready)"
<<
endl
;
try
try
{
{
ui
.
unregister
(
it
->
first
);
ui
.
unregister
(
it
.
first
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
...
@@ -141,7 +141,7 @@ void ProxyManager::processingMessage( UniSetTypes::VoidMessage *msg )
...
@@ -141,7 +141,7 @@ void ProxyManager::processingMessage( UniSetTypes::VoidMessage *msg )
default
:
default
:
{
{
PObjectMap
::
iterator
it
=
omap
.
find
(
msg
->
consumer
);
auto
it
=
omap
.
find
(
msg
->
consumer
);
if
(
it
!=
omap
.
end
()
)
if
(
it
!=
omap
.
end
()
)
it
->
second
->
processingMessage
(
msg
);
it
->
second
->
processingMessage
(
msg
);
else
else
...
@@ -159,11 +159,11 @@ void ProxyManager::processingMessage( UniSetTypes::VoidMessage *msg )
...
@@ -159,11 +159,11 @@ void ProxyManager::processingMessage( UniSetTypes::VoidMessage *msg )
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
ProxyManager
::
allMessage
(
UniSetTypes
::
VoidMessage
*
msg
)
void
ProxyManager
::
allMessage
(
UniSetTypes
::
VoidMessage
*
msg
)
{
{
for
(
PObjectMap
::
const_iterator
it
=
omap
.
begin
();
it
!=
omap
.
end
();
++
it
)
for
(
auto
&
o
:
omap
)
{
{
try
try
{
{
it
->
second
->
processingMessage
(
msg
);
o
.
second
->
processingMessage
(
msg
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
...
...
src/ObjectRepository/UniSetActivator.cc
View file @
f4be5a48
...
@@ -325,8 +325,7 @@ void UniSetActivator::work()
...
@@ -325,8 +325,7 @@ void UniSetActivator::work()
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
UniSetActivator
::
getinfo
()
void
UniSetActivator
::
getinfo
()
{
{
for
(
UniSetManagerList
::
const_iterator
it
=
beginMList
();
for
(
auto
it
=
beginMList
();
it
!=
endMList
();
++
it
)
it
!=
endMList
();
++
it
)
{
{
MInfo
mi
;
MInfo
mi
;
mi
.
mnr
=
(
*
it
);
mi
.
mnr
=
(
*
it
);
...
@@ -334,8 +333,7 @@ void UniSetActivator::getinfo()
...
@@ -334,8 +333,7 @@ void UniSetActivator::getinfo()
lstMInfo
.
push_back
(
mi
);
lstMInfo
.
push_back
(
mi
);
}
}
for
(
ObjectsList
::
const_iterator
it
=
beginOList
();
for
(
auto
it
=
beginOList
();
it
!=
endOList
();
++
it
)
it
!=
endOList
();
++
it
)
{
{
OInfo
oi
;
OInfo
oi
;
oi
.
obj
=
(
*
it
);
oi
.
obj
=
(
*
it
);
...
...
src/ObjectRepository/UniSetManager.cc
View file @
f4be5a48
...
@@ -149,7 +149,7 @@ bool UniSetManager::addObject( UniSetObject *obj )
...
@@ -149,7 +149,7 @@ bool UniSetManager::addObject( UniSetObject *obj )
{
{
{
//lock
{
//lock
uniset_rwmutex_wrlock
lock
(
olistMutex
);
uniset_rwmutex_wrlock
lock
(
olistMutex
);
ObjectsList
::
iterator
li
=
find
(
olist
.
begin
(),
olist
.
end
(),
obj
);
auto
li
=
find
(
olist
.
begin
(),
olist
.
end
(),
obj
);
if
(
li
==
olist
.
end
()
)
if
(
li
==
olist
.
end
()
)
{
{
uinfo
<<
myname
<<
"(activator): добавляем объект "
<<
obj
->
getName
()
<<
endl
;
uinfo
<<
myname
<<
"(activator): добавляем объект "
<<
obj
->
getName
()
<<
endl
;
...
@@ -164,7 +164,7 @@ bool UniSetManager::removeObject(UniSetObject* obj)
...
@@ -164,7 +164,7 @@ bool UniSetManager::removeObject(UniSetObject* obj)
{
{
{
//lock
{
//lock
uniset_rwmutex_wrlock
lock
(
olistMutex
);
uniset_rwmutex_wrlock
lock
(
olistMutex
);
ObjectsList
::
iterator
li
=
find
(
olist
.
begin
(),
olist
.
end
(),
obj
);
auto
li
=
find
(
olist
.
begin
(),
olist
.
end
(),
obj
);
if
(
li
!=
olist
.
end
()
)
if
(
li
!=
olist
.
end
()
)
{
{
uinfo
<<
myname
<<
"(activator): удаляем объект "
<<
obj
->
getName
()
<<
endl
;
uinfo
<<
myname
<<
"(activator): удаляем объект "
<<
obj
->
getName
()
<<
endl
;
...
@@ -210,26 +210,26 @@ void UniSetManager::managers(OManagerCommand cmd)
...
@@ -210,26 +210,26 @@ void UniSetManager::managers(OManagerCommand cmd)
<<
mlist
.
size
()
<<
" cmd="
<<
cmd
<<
endl
;
<<
mlist
.
size
()
<<
" cmd="
<<
cmd
<<
endl
;
{
//lock
{
//lock
uniset_rwmutex_rlock
lock
(
mlistMutex
);
uniset_rwmutex_rlock
lock
(
mlistMutex
);
for
(
UniSetManagerList
::
iterator
li
=
mlist
.
begin
();
li
!=
mlist
.
end
();
++
li
)
for
(
auto
&
li
:
mlist
)
{
{
try
try
{
{
switch
(
cmd
)
switch
(
cmd
)
{
{
case
initial
:
case
initial
:
(
*
li
)
->
initPOA
(
this
);
li
->
initPOA
(
this
);
break
;
break
;
case
activ
:
case
activ
:
(
*
li
)
->
activate
();
li
->
activate
();
break
;
break
;
case
deactiv
:
case
deactiv
:
(
*
li
)
->
disactivate
();
li
->
disactivate
();
break
;
break
;
case
term
:
case
term
:
(
*
li
)
->
sigterm
(
sig
);
li
->
sigterm
(
sig
);
break
;
break
;
default
:
default
:
...
@@ -239,7 +239,7 @@ void UniSetManager::managers(OManagerCommand cmd)
...
@@ -239,7 +239,7 @@ void UniSetManager::managers(OManagerCommand cmd)
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
ucrit
<<
myname
<<
"(managers): "
<<
ex
<<
endl
ucrit
<<
myname
<<
"(managers): "
<<
ex
<<
endl
<<
" Не смог зарегистрировать (разрегистрировать) объект -->"
<<
(
*
li
)
->
getName
()
<<
endl
;
<<
" Не смог зарегистрировать (разрегистрировать) объект -->"
<<
li
->
getName
()
<<
endl
;
}
}
catch
(
CORBA
::
SystemException
&
ex
)
catch
(
CORBA
::
SystemException
&
ex
)
{
{
...
@@ -270,26 +270,26 @@ void UniSetManager::objects(OManagerCommand cmd)
...
@@ -270,26 +270,26 @@ void UniSetManager::objects(OManagerCommand cmd)
{
//lock
{
//lock
uniset_rwmutex_rlock
lock
(
olistMutex
);
uniset_rwmutex_rlock
lock
(
olistMutex
);
for
(
ObjectsList
::
iterator
li
=
olist
.
begin
();
li
!=
olist
.
end
();
++
li
)
for
(
auto
&
li
:
olist
)
{
{
try
try
{
{
switch
(
cmd
)
switch
(
cmd
)
{
{
case
initial
:
case
initial
:
(
*
li
)
->
init
(
this
);
li
->
init
(
this
);
break
;
break
;
case
activ
:
case
activ
:
(
*
li
)
->
activate
();
li
->
activate
();
break
;
break
;
case
deactiv
:
case
deactiv
:
(
*
li
)
->
disactivate
();
li
->
disactivate
();
break
;
break
;
case
term
:
case
term
:
(
*
li
)
->
sigterm
(
sig
);
li
->
sigterm
(
sig
);
break
;
break
;
default
:
default
:
...
@@ -299,7 +299,7 @@ void UniSetManager::objects(OManagerCommand cmd)
...
@@ -299,7 +299,7 @@ void UniSetManager::objects(OManagerCommand cmd)
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
ucrit
<<
myname
<<
"(objects): "
<<
ex
<<
endl
;
ucrit
<<
myname
<<
"(objects): "
<<
ex
<<
endl
;
ucrit
<<
myname
<<
"(objects): не смог зарегистрировать (разрегистрировать) объект -->"
<<
(
*
li
)
->
getName
()
<<
endl
;
ucrit
<<
myname
<<
"(objects): не смог зарегистрировать (разрегистрировать) объект -->"
<<
li
->
getName
()
<<
endl
;
}
}
catch
(
CORBA
::
SystemException
&
ex
)
catch
(
CORBA
::
SystemException
&
ex
)
{
{
...
@@ -309,7 +309,7 @@ void UniSetManager::objects(OManagerCommand cmd)
...
@@ -309,7 +309,7 @@ void UniSetManager::objects(OManagerCommand cmd)
{
{
ucrit
<<
myname
<<
"(objects): Caught CORBA::Exception. "
ucrit
<<
myname
<<
"(objects): Caught CORBA::Exception. "
<<
ex
.
_name
()
<<
ex
.
_name
()
<<
" ("
<<
(
*
li
)
->
getName
()
<<
")"
<<
endl
;
<<
" ("
<<
li
->
getName
()
<<
")"
<<
endl
;
}
}
catch
(
omniORB
::
fatalException
&
fe
)
catch
(
omniORB
::
fatalException
&
fe
)
{
{
...
@@ -382,7 +382,7 @@ bool UniSetManager::addManager( UniSetManager *child )
...
@@ -382,7 +382,7 @@ bool UniSetManager::addManager( UniSetManager *child )
uniset_rwmutex_wrlock
lock
(
mlistMutex
);
uniset_rwmutex_wrlock
lock
(
mlistMutex
);
// Проверка на совпадение
// Проверка на совпадение
UniSetManagerList
::
iterator
it
=
find
(
mlist
.
begin
(),
mlist
.
end
(),
child
);
auto
it
=
find
(
mlist
.
begin
(),
mlist
.
end
(),
child
);
if
(
it
==
mlist
.
end
()
)
if
(
it
==
mlist
.
end
()
)
{
{
mlist
.
push_back
(
child
);
mlist
.
push_back
(
child
);
...
@@ -413,10 +413,10 @@ const UniSetManager* UniSetManager::itemM(const ObjectId id)
...
@@ -413,10 +413,10 @@ const UniSetManager* UniSetManager::itemM(const ObjectId id)
{
//lock
{
//lock
uniset_rwmutex_rlock
lock
(
mlistMutex
);
uniset_rwmutex_rlock
lock
(
mlistMutex
);
for
(
UniSetManagerList
::
iterator
li
=
mlist
.
begin
();
li
!=
mlist
.
end
();
++
li
)
for
(
auto
&
li
:
mlist
)
{
{
if
(
(
*
li
)
->
getId
()
==
id
)
if
(
li
->
getId
()
==
id
)
return
(
*
li
);
return
li
;
}
}
}
// unlock
}
// unlock
...
@@ -429,10 +429,10 @@ const UniSetObject* UniSetManager::itemO(const ObjectId id)
...
@@ -429,10 +429,10 @@ const UniSetObject* UniSetManager::itemO(const ObjectId id)
{
{
{
//lock
{
//lock
uniset_rwmutex_rlock
lock
(
olistMutex
);
uniset_rwmutex_rlock
lock
(
olistMutex
);
for
(
ObjectsList
::
iterator
li
=
olist
.
begin
();
li
!=
olist
.
end
();
++
li
)
for
(
auto
&
li
:
olist
)
{
{
if
(
(
*
li
)
->
getId
()
==
id
)
if
(
li
->
getId
()
==
id
)
return
(
*
li
);
return
li
;
}
}
}
// unlock
}
// unlock
...
@@ -468,8 +468,7 @@ int UniSetManager::getObjectsInfo( UniSetManager* mngr, SimpleInfoSeq* seq,
...
@@ -468,8 +468,7 @@ int UniSetManager::getObjectsInfo( UniSetManager* mngr, SimpleInfoSeq* seq,
if
(
ind
>
uplimit
)
if
(
ind
>
uplimit
)
return
ind
;
return
ind
;
for
(
ObjectsList
::
const_iterator
it
=
mngr
->
beginOList
();
for
(
auto
it
=
mngr
->
beginOList
();
it
!=
mngr
->
endOList
();
++
it
)
it
!=
mngr
->
endOList
();
++
it
)
{
{
try
try
{
{
...
@@ -494,8 +493,7 @@ int UniSetManager::getObjectsInfo( UniSetManager* mngr, SimpleInfoSeq* seq,
...
@@ -494,8 +493,7 @@ int UniSetManager::getObjectsInfo( UniSetManager* mngr, SimpleInfoSeq* seq,
return
ind
;
return
ind
;
// а далее у его менеджеров (рекурсивно)
// а далее у его менеджеров (рекурсивно)
for
(
UniSetManagerList
::
const_iterator
it
=
mngr
->
beginMList
();
for
(
auto
it
=
mngr
->
beginMList
();
it
!=
mngr
->
endMList
();
++
it
)
it
!=
mngr
->
endMList
();
++
it
)
{
{
ind
=
getObjectsInfo
((
*
it
),
seq
,
ind
,
uplimit
);
ind
=
getObjectsInfo
((
*
it
),
seq
,
ind
,
uplimit
);
if
(
ind
>
uplimit
)
if
(
ind
>
uplimit
)
...
...
src/ObjectRepository/UniSetObject.cc
View file @
f4be5a48
...
@@ -544,44 +544,30 @@ void UniSetObject::cleanMsgQueue( MessagesQueue& q )
...
@@ -544,44 +544,30 @@ void UniSetObject::cleanMsgQueue( MessagesQueue& q )
ucrit
<<
myname
<<
"(cleanMsgQueue): ******** cleanup RESULT ********"
<<
endl
;
ucrit
<<
myname
<<
"(cleanMsgQueue): ******** cleanup RESULT ********"
<<
endl
;
for
(
map
<
UniSetTypes
::
ObjectId
,
tmpConsumerInfo
>::
iterator
it0
=
consumermap
.
begin
();
for
(
auto
&
c
:
consumermap
)
it0
!=
consumermap
.
end
();
++
it0
)
{
{
ucrit
<<
myname
<<
"(cleanMsgQueue): CONSUMER="
<<
it0
->
first
<<
endl
;
ucrit
<<
myname
<<
"(cleanMsgQueue): CONSUMER="
<<
c
.
first
<<
endl
;
ucrit
<<
myname
<<
"(cleanMsgQueue): after clean SensorMessage: "
<<
it0
->
second
.
smap
.
size
()
<<
endl
;
ucrit
<<
myname
<<
"(cleanMsgQueue): after clean SensorMessage: "
<<
c
.
second
.
smap
.
size
()
<<
endl
;
ucrit
<<
myname
<<
"(cleanMsgQueue): after clean TimerMessage: "
<<
it0
->
second
.
tmap
.
size
()
<<
endl
;
ucrit
<<
myname
<<
"(cleanMsgQueue): after clean TimerMessage: "
<<
c
.
second
.
tmap
.
size
()
<<
endl
;
ucrit
<<
myname
<<
"(cleanMsgQueue): after clean SystemMessage: "
<<
it0
->
second
.
sysmap
.
size
()
<<
endl
;
ucrit
<<
myname
<<
"(cleanMsgQueue): after clean SystemMessage: "
<<
c
.
second
.
sysmap
.
size
()
<<
endl
;
ucrit
<<
myname
<<
"(cleanMsgQueue): after clean ConfirmMessage: "
<<
it0
->
second
.
cmap
.
size
()
<<
endl
;
ucrit
<<
myname
<<
"(cleanMsgQueue): after clean ConfirmMessage: "
<<
c
.
second
.
cmap
.
size
()
<<
endl
;
ucrit
<<
myname
<<
"(cleanMsgQueue): after clean other: "
<<
it0
->
second
.
lstOther
.
size
()
<<
endl
;
ucrit
<<
myname
<<
"(cleanMsgQueue): after clean other: "
<<
c
.
second
.
lstOther
.
size
()
<<
endl
;
// теперь ОСТАВШИЕСЯ запихиваем обратно в очередь...
// теперь ОСТАВШИЕСЯ запихиваем обратно в очередь...
map
<
UniSetTypes
::
KeyType
,
VoidMessage
>::
iterator
it
=
it0
->
second
.
smap
.
begin
();
for
(
auto
&
v
:
c
.
second
.
smap
)
for
(
;
it
!=
it0
->
second
.
smap
.
end
();
++
it
)
q
.
push
(
v
.
second
);
{
q
.
push
(
it
->
second
);
}
map
<
int
,
VoidMessage
>::
iterator
it1
=
it0
->
second
.
tmap
.
begin
();
for
(
auto
&
v
:
c
.
second
.
tmap
)
for
(
;
it1
!=
it0
->
second
.
tmap
.
end
();
++
it1
)
q
.
push
(
v
.
second
);
{
q
.
push
(
it1
->
second
);
}
map
<
int
,
VoidMessage
>::
iterator
it2
=
it0
->
second
.
sysmap
.
begin
();
for
(
auto
&
v
:
c
.
second
.
sysmap
)
for
(
;
it2
!=
it0
->
second
.
sysmap
.
end
();
++
it2
)
q
.
push
(
v
.
second
);
{
q
.
push
(
it2
->
second
);
}
map
<
CInfo
,
VoidMessage
>::
iterator
it5
=
it0
->
second
.
cmap
.
begin
();
for
(
auto
&
v
:
c
.
second
.
cmap
)
for
(
;
it5
!=
it0
->
second
.
cmap
.
end
();
++
it5
)
q
.
push
(
v
.
second
);
{
q
.
push
(
it5
->
second
);
}
list
<
VoidMessage
>::
iterator
it6
=
it0
->
second
.
lstOther
.
begin
();
for
(
auto
&
v
:
c
.
second
.
lstOther
)
for
(
;
it6
!=
it0
->
second
.
lstOther
.
end
();
++
it6
)
q
.
push
(
v
);
q
.
push
(
*
it6
);
}
}
ucrit
<<
myname
ucrit
<<
myname
...
...
src/ObjectRepository/UniSetTypes.cc
View file @
f4be5a48
...
@@ -115,7 +115,7 @@ using namespace UniSetTypes;
...
@@ -115,7 +115,7 @@ using namespace UniSetTypes;
void
UniSetTypes
::
IDList
::
add
(
ObjectId
id
)
void
UniSetTypes
::
IDList
::
add
(
ObjectId
id
)
{
{
for
(
list
<
ObjectId
>::
iterator
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
)
for
(
auto
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
)
{
{
if
(
(
*
it
)
==
id
)
if
(
(
*
it
)
==
id
)
return
;
return
;
...
@@ -126,7 +126,7 @@ using namespace UniSetTypes;
...
@@ -126,7 +126,7 @@ using namespace UniSetTypes;
void
UniSetTypes
::
IDList
::
del
(
ObjectId
id
)
void
UniSetTypes
::
IDList
::
del
(
ObjectId
id
)
{
{
for
(
list
<
ObjectId
>::
iterator
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
)
for
(
auto
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
)
{
{
if
(
(
*
it
)
==
id
)
if
(
(
*
it
)
==
id
)
{
{
...
@@ -156,7 +156,7 @@ using namespace UniSetTypes;
...
@@ -156,7 +156,7 @@ using namespace UniSetTypes;
IDSeq
*
seq
=
new
IDSeq
();
IDSeq
*
seq
=
new
IDSeq
();
seq
->
length
(
lst
.
size
());
seq
->
length
(
lst
.
size
());
int
i
=
0
;
int
i
=
0
;
for
(
list
<
ObjectId
>::
iterator
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
,
i
++
)
for
(
auto
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
,
i
++
)
(
*
seq
)[
i
]
=
(
*
it
);
(
*
seq
)[
i
]
=
(
*
it
);
return
seq
;
return
seq
;
...
@@ -222,9 +222,9 @@ using namespace UniSetTypes;
...
@@ -222,9 +222,9 @@ using namespace UniSetTypes;
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
bool
UniSetTypes
::
is_digit
(
const
std
::
string
&
s
)
bool
UniSetTypes
::
is_digit
(
const
std
::
string
&
s
)
{
{
for
(
std
::
string
::
const_iterator
it
=
s
.
begin
();
it
!=
s
.
end
();
++
it
)
for
(
auto
c
:
s
)
{
{
if
(
!
isdigit
(
*
it
)
)
if
(
!
isdigit
(
c
)
)
return
false
;
return
false
;
}
}
...
@@ -236,12 +236,12 @@ using namespace UniSetTypes;
...
@@ -236,12 +236,12 @@ using namespace UniSetTypes;
{
{
std
::
list
<
UniSetTypes
::
ParamSInfo
>
res
;
std
::
list
<
UniSetTypes
::
ParamSInfo
>
res
;
std
::
list
<
std
::
string
>
l
=
UniSetTypes
::
explode_str
(
str
,
','
);
auto
lst
=
UniSetTypes
::
explode_str
(
str
,
','
);
for
(
std
::
list
<
std
::
string
>::
iterator
it
=
l
.
begin
();
it
!=
l
.
end
();
++
i
t
)
for
(
auto
it
:
ls
t
)
{
{
UniSetTypes
::
ParamSInfo
item
;
UniSetTypes
::
ParamSInfo
item
;
std
::
list
<
std
::
string
>
p
=
UniSetTypes
::
explode_str
((
*
it
)
,
'='
);
auto
p
=
UniSetTypes
::
explode_str
(
it
,
'='
);
std
::
string
s
=
""
;
std
::
string
s
=
""
;
if
(
p
.
size
()
==
1
)
if
(
p
.
size
()
==
1
)
{
{
...
@@ -255,12 +255,12 @@ using namespace UniSetTypes;
...
@@ -255,12 +255,12 @@ using namespace UniSetTypes;
}
}
else
else
{
{
cerr
<<
"WARNING: parse error for '"
<<
(
*
it
)
<<
"'. IGNORE..."
<<
endl
;
cerr
<<
"WARNING: parse error for '"
<<
it
<<
"'. IGNORE..."
<<
endl
;
continue
;
continue
;
}
}
item
.
fname
=
s
;
item
.
fname
=
s
;
std
::
list
<
std
::
string
>
t
=
UniSetTypes
::
explode_str
(
s
,
'@'
);
auto
t
=
UniSetTypes
::
explode_str
(
s
,
'@'
);
if
(
t
.
size
()
==
1
)
if
(
t
.
size
()
==
1
)
{
{
std
::
string
s_id
=
*
(
t
.
begin
());
std
::
string
s_id
=
*
(
t
.
begin
());
...
...
src/Processes/IOController.cc
View file @
f4be5a48
...
@@ -80,11 +80,11 @@ bool IOController::disactivateObject()
...
@@ -80,11 +80,11 @@ bool IOController::disactivateObject()
void
IOController
::
sensorsUnregistration
()
void
IOController
::
sensorsUnregistration
()
{
{
// Разрегистрируем аналоговые датчики
// Разрегистрируем аналоговые датчики
for
(
IOStateList
::
iterator
li
=
ioList
.
begin
();
li
!=
ioList
.
end
();
++
li
)
for
(
const
auto
&
li
:
ioList
)
{
{
try
try
{
{
ioUnRegistration
(
li
->
second
.
si
.
id
);
ioUnRegistration
(
li
.
second
.
si
.
id
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
...
@@ -97,7 +97,7 @@ void IOController::sensorsUnregistration()
...
@@ -97,7 +97,7 @@ void IOController::sensorsUnregistration()
void
IOController
::
activateInit
()
void
IOController
::
activateInit
()
{
{
// Разрегистрируем аналоговые датчики
// Разрегистрируем аналоговые датчики
for
(
IOStateList
::
iterator
li
=
ioList
.
begin
();
li
!=
ioList
.
end
();
++
li
)
for
(
auto
li
=
ioList
.
begin
();
li
!=
ioList
.
end
();
++
li
)
{
{
try
try
{
{
...
@@ -106,7 +106,7 @@ void IOController::activateInit()
...
@@ -106,7 +106,7 @@ void IOController::activateInit()
// Проверка зависимостей
// Проверка зависимостей
if
(
s
.
d_si
.
id
!=
DefaultObjectId
)
if
(
s
.
d_si
.
id
!=
DefaultObjectId
)
{
{
IOStateList
::
iterator
d_it
=
myiofind
(
s
.
d_si
.
id
);
auto
d_it
=
myiofind
(
s
.
d_si
.
id
);
if
(
d_it
!=
ioEnd
()
)
if
(
d_it
!=
ioEnd
()
)
s
.
checkDepend
(
d_it
,
this
);
s
.
checkDepend
(
d_it
,
this
);
}
}
...
@@ -123,7 +123,7 @@ void IOController::activateInit()
...
@@ -123,7 +123,7 @@ void IOController::activateInit()
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
CORBA
::
Long
IOController
::
getValue
(
UniSetTypes
::
ObjectId
sid
)
CORBA
::
Long
IOController
::
getValue
(
UniSetTypes
::
ObjectId
sid
)
{
{
IOStateList
::
iterator
li
(
ioList
.
end
()
);
auto
li
=
ioList
.
end
(
);
return
localGetValue
(
li
,
sid
);
return
localGetValue
(
li
,
sid
);
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
...
@@ -152,7 +152,7 @@ long IOController::localGetValue( IOController::IOStateList::iterator& li, const
...
@@ -152,7 +152,7 @@ long IOController::localGetValue( IOController::IOStateList::iterator& li, const
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
IOController
::
setUndefinedState
(
UniSetTypes
::
ObjectId
sid
,
CORBA
::
Boolean
undefined
,
UniSetTypes
::
ObjectId
sup_id
)
void
IOController
::
setUndefinedState
(
UniSetTypes
::
ObjectId
sid
,
CORBA
::
Boolean
undefined
,
UniSetTypes
::
ObjectId
sup_id
)
{
{
IOController
::
IOStateList
::
iterator
li
(
ioList
.
end
()
);
auto
li
=
ioList
.
end
(
);
localSetUndefinedState
(
li
,
undefined
,
sid
);
localSetUndefinedState
(
li
,
undefined
,
sid
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
...
@@ -227,7 +227,7 @@ void IOController::fastSetValue( UniSetTypes::ObjectId sid, CORBA::Long value, U
...
@@ -227,7 +227,7 @@ void IOController::fastSetValue( UniSetTypes::ObjectId sid, CORBA::Long value, U
{
{
try
try
{
{
IOController
::
IOStateList
::
iterator
li
(
ioList
.
end
()
);
auto
li
=
ioList
.
end
(
);
localSetValue
(
li
,
sid
,
value
,
sup_id
);
localSetValue
(
li
,
sid
,
value
,
sup_id
);
}
}
catch
(...){}
catch
(...){}
...
@@ -235,7 +235,7 @@ void IOController::fastSetValue( UniSetTypes::ObjectId sid, CORBA::Long value, U
...
@@ -235,7 +235,7 @@ void IOController::fastSetValue( UniSetTypes::ObjectId sid, CORBA::Long value, U
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
IOController
::
setValue
(
UniSetTypes
::
ObjectId
sid
,
CORBA
::
Long
value
,
UniSetTypes
::
ObjectId
sup_id
)
void
IOController
::
setValue
(
UniSetTypes
::
ObjectId
sid
,
CORBA
::
Long
value
,
UniSetTypes
::
ObjectId
sup_id
)
{
{
IOController
::
IOStateList
::
iterator
li
(
ioList
.
end
()
);
auto
li
=
ioList
.
end
(
);
localSetValue
(
li
,
sid
,
value
,
sup_id
);
localSetValue
(
li
,
sid
,
value
,
sup_id
);
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
...
@@ -322,7 +322,7 @@ void IOController::localSetValue( IOController::IOStateList::iterator& li,
...
@@ -322,7 +322,7 @@ void IOController::localSetValue( IOController::IOStateList::iterator& li,
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
IOType
IOController
::
getIOType
(
UniSetTypes
::
ObjectId
sid
)
IOType
IOController
::
getIOType
(
UniSetTypes
::
ObjectId
sid
)
{
{
IOStateList
::
iterator
ali
=
ioList
.
find
(
sid
);
auto
ali
=
ioList
.
find
(
sid
);
if
(
ali
!=
ioList
.
end
()
)
if
(
ali
!=
ioList
.
end
()
)
return
ali
->
second
.
type
;
return
ali
->
second
.
type
;
...
@@ -346,7 +346,7 @@ void IOController::ioRegistration( const USensorInfo& ainf, bool force )
...
@@ -346,7 +346,7 @@ void IOController::ioRegistration( const USensorInfo& ainf, bool force )
uniset_rwmutex_wrlock
lock
(
ioMutex
);
uniset_rwmutex_wrlock
lock
(
ioMutex
);
if
(
!
force
)
if
(
!
force
)
{
{
IOStateList
::
iterator
li
=
ioList
.
find
(
ainf
.
si
.
id
);
auto
li
=
ioList
.
find
(
ainf
.
si
.
id
);
if
(
li
!=
ioList
.
end
()
)
if
(
li
!=
ioList
.
end
()
)
{
{
ostringstream
err
;
ostringstream
err
;
...
@@ -441,7 +441,7 @@ void IOController::dumpToDB()
...
@@ -441,7 +441,7 @@ void IOController::dumpToDB()
{
// lock
{
// lock
// uniset_mutex_lock lock(ioMutex, 100);
// uniset_mutex_lock lock(ioMutex, 100);
for
(
IOStateList
::
iterator
li
=
ioList
.
begin
();
li
!=
ioList
.
end
();
++
li
)
for
(
auto
li
=
ioList
.
begin
();
li
!=
ioList
.
end
();
++
li
)
{
{
uniset_rwmutex_rlock
lock
(
li
->
second
.
val_lock
);
uniset_rwmutex_rlock
lock
(
li
->
second
.
val_lock
);
SensorMessage
sm
;
SensorMessage
sm
;
...
@@ -468,10 +468,10 @@ IOController_i::SensorInfoSeq* IOController::getSensorsMap()
...
@@ -468,10 +468,10 @@ IOController_i::SensorInfoSeq* IOController::getSensorsMap()
res
->
length
(
ioList
.
size
());
res
->
length
(
ioList
.
size
());
unsigned
int
i
=
0
;
unsigned
int
i
=
0
;
for
(
IOStateList
::
iterator
it
=
ioList
.
begin
();
it
!=
ioList
.
end
();
++
it
)
for
(
auto
&
it
:
ioList
)
{
{
uniset_rwmutex_rlock
lock
(
it
->
second
.
val_lock
);
uniset_rwmutex_rlock
lock
(
it
.
second
.
val_lock
);
(
*
res
)[
i
]
=
it
->
second
;
(
*
res
)[
i
]
=
it
.
second
;
i
++
;
i
++
;
}
}
...
@@ -480,7 +480,7 @@ IOController_i::SensorInfoSeq* IOController::getSensorsMap()
...
@@ -480,7 +480,7 @@ IOController_i::SensorInfoSeq* IOController::getSensorsMap()
// --------------------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------------------
UniSetTypes
::
Message
::
Priority
IOController
::
getPriority
(
const
UniSetTypes
::
ObjectId
sid
)
UniSetTypes
::
Message
::
Priority
IOController
::
getPriority
(
const
UniSetTypes
::
ObjectId
sid
)
{
{
IOStateList
::
iterator
it
=
ioList
.
find
(
sid
);
auto
it
=
ioList
.
find
(
sid
);
if
(
it
!=
ioList
.
end
()
)
if
(
it
!=
ioList
.
end
()
)
return
(
UniSetTypes
::
Message
::
Priority
)
it
->
second
.
priority
;
return
(
UniSetTypes
::
Message
::
Priority
)
it
->
second
.
priority
;
...
@@ -489,7 +489,7 @@ UniSetTypes::Message::Priority IOController::getPriority( const UniSetTypes::Obj
...
@@ -489,7 +489,7 @@ UniSetTypes::Message::Priority IOController::getPriority( const UniSetTypes::Obj
// --------------------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------------------
IOController_i
::
SensorIOInfo
IOController
::
getSensorIOInfo
(
const
UniSetTypes
::
ObjectId
sid
)
IOController_i
::
SensorIOInfo
IOController
::
getSensorIOInfo
(
const
UniSetTypes
::
ObjectId
sid
)
{
{
IOStateList
::
iterator
it
=
ioList
.
find
(
sid
);
auto
it
=
ioList
.
find
(
sid
);
if
(
it
!=
ioList
.
end
()
)
if
(
it
!=
ioList
.
end
()
)
{
{
uniset_rwmutex_rlock
lock
(
it
->
second
.
val_lock
);
uniset_rwmutex_rlock
lock
(
it
->
second
.
val_lock
);
...
@@ -508,7 +508,7 @@ IOController_i::SensorIOInfo IOController::getSensorIOInfo( const UniSetTypes::O
...
@@ -508,7 +508,7 @@ IOController_i::SensorIOInfo IOController::getSensorIOInfo( const UniSetTypes::O
// --------------------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------------------
CORBA
::
Long
IOController
::
getRawValue
(
UniSetTypes
::
ObjectId
sid
)
CORBA
::
Long
IOController
::
getRawValue
(
UniSetTypes
::
ObjectId
sid
)
{
{
IOStateList
::
iterator
it
=
ioList
.
find
(
sid
);
auto
it
=
ioList
.
find
(
sid
);
if
(
it
==
ioList
.
end
()
)
if
(
it
==
ioList
.
end
()
)
{
{
ostringstream
err
;
ostringstream
err
;
...
@@ -536,7 +536,7 @@ void IOController::calibrate( UniSetTypes::ObjectId sid,
...
@@ -536,7 +536,7 @@ void IOController::calibrate( UniSetTypes::ObjectId sid,
const
IOController_i
::
CalibrateInfo
&
ci
,
const
IOController_i
::
CalibrateInfo
&
ci
,
UniSetTypes
::
ObjectId
adminId
)
UniSetTypes
::
ObjectId
adminId
)
{
{
IOStateList
::
iterator
it
=
ioList
.
find
(
sid
);
auto
it
=
ioList
.
find
(
sid
);
if
(
it
==
ioList
.
end
()
)
if
(
it
==
ioList
.
end
()
)
{
{
ostringstream
err
;
ostringstream
err
;
...
@@ -552,7 +552,7 @@ void IOController::calibrate( UniSetTypes::ObjectId sid,
...
@@ -552,7 +552,7 @@ void IOController::calibrate( UniSetTypes::ObjectId sid,
// --------------------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------------------
IOController_i
::
CalibrateInfo
IOController
::
getCalibrateInfo
(
UniSetTypes
::
ObjectId
sid
)
IOController_i
::
CalibrateInfo
IOController
::
getCalibrateInfo
(
UniSetTypes
::
ObjectId
sid
)
{
{
IOStateList
::
iterator
it
=
ioList
.
find
(
sid
);
auto
it
=
ioList
.
find
(
sid
);
if
(
it
==
ioList
.
end
()
)
if
(
it
==
ioList
.
end
()
)
{
{
ostringstream
err
;
ostringstream
err
;
...
@@ -607,9 +607,9 @@ const IOController::USensorInfo&
...
@@ -607,9 +607,9 @@ const IOController::USensorInfo&
bool
IOController
::
checkIOFilters
(
const
USensorInfo
&
ai
,
CORBA
::
Long
&
newvalue
,
bool
IOController
::
checkIOFilters
(
const
USensorInfo
&
ai
,
CORBA
::
Long
&
newvalue
,
UniSetTypes
::
ObjectId
sup_id
)
UniSetTypes
::
ObjectId
sup_id
)
{
{
for
(
IOFilterSlotList
::
iterator
it
=
iofilters
.
begin
();
it
!=
iofilters
.
end
();
++
it
)
for
(
auto
&
it
:
iofilters
)
{
{
if
(
(
*
it
)
(
ai
,
newvalue
,
sup_id
)
==
false
)
if
(
it
(
ai
,
newvalue
,
sup_id
)
==
false
)
return
false
;
return
false
;
}
}
return
true
;
return
true
;
...
@@ -621,8 +621,7 @@ IOController::IOFilterSlotList::iterator IOController::addIOFilter( IOFilterSlot
...
@@ -621,8 +621,7 @@ IOController::IOFilterSlotList::iterator IOController::addIOFilter( IOFilterSlot
if
(
push_front
==
false
)
if
(
push_front
==
false
)
{
{
iofilters
.
push_back
(
sl
);
iofilters
.
push_back
(
sl
);
IOFilterSlotList
::
iterator
it
(
iofilters
.
end
());
return
--
iofilters
.
end
();
return
--
it
;
}
}
iofilters
.
push_front
(
sl
);
iofilters
.
push_front
(
sl
);
...
@@ -656,9 +655,9 @@ IOController_i::SensorInfoSeq* IOController::getSensorSeq( const IDSeq& lst )
...
@@ -656,9 +655,9 @@ IOController_i::SensorInfoSeq* IOController::getSensorSeq( const IDSeq& lst )
IOController_i
::
SensorInfoSeq
*
res
=
new
IOController_i
::
SensorInfoSeq
();
IOController_i
::
SensorInfoSeq
*
res
=
new
IOController_i
::
SensorInfoSeq
();
res
->
length
(
size
);
res
->
length
(
size
);
for
(
unsigned
int
i
=
0
;
i
<
size
;
i
++
)
for
(
auto
i
=
0
;
i
<
size
;
i
++
)
{
{
IOStateList
::
iterator
it
=
ioList
.
find
(
lst
[
i
]);
auto
it
=
ioList
.
find
(
lst
[
i
]);
if
(
it
!=
ioList
.
end
()
)
if
(
it
!=
ioList
.
end
()
)
{
{
uniset_rwmutex_rlock
lock
(
it
->
second
.
val_lock
);
uniset_rwmutex_rlock
lock
(
it
->
second
.
val_lock
);
...
@@ -686,7 +685,7 @@ IDSeq* IOController::setOutputSeq(const IOController_i::OutSeq& lst, ObjectId su
...
@@ -686,7 +685,7 @@ IDSeq* IOController::setOutputSeq(const IOController_i::OutSeq& lst, ObjectId su
ObjectId
sid
=
lst
[
i
].
si
.
id
;
ObjectId
sid
=
lst
[
i
].
si
.
id
;
{
{
IOStateList
::
iterator
it
=
ioList
.
find
(
sid
);
auto
it
=
ioList
.
find
(
sid
);
if
(
it
!=
ioList
.
end
()
)
if
(
it
!=
ioList
.
end
()
)
{
{
localSetValue
(
it
,
sid
,
lst
[
i
].
value
,
sup_id
);
localSetValue
(
it
,
sid
,
lst
[
i
].
value
,
sup_id
);
...
@@ -703,7 +702,7 @@ IDSeq* IOController::setOutputSeq(const IOController_i::OutSeq& lst, ObjectId su
...
@@ -703,7 +702,7 @@ IDSeq* IOController::setOutputSeq(const IOController_i::OutSeq& lst, ObjectId su
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
IOController_i
::
ShortIOInfo
IOController
::
getChangedTime
(
UniSetTypes
::
ObjectId
sid
)
IOController_i
::
ShortIOInfo
IOController
::
getChangedTime
(
UniSetTypes
::
ObjectId
sid
)
{
{
IOStateList
::
iterator
ait
=
ioList
.
find
(
sid
);
auto
ait
=
ioList
.
find
(
sid
);
if
(
ait
!=
ioList
.
end
()
)
if
(
ait
!=
ioList
.
end
()
)
{
{
IOController_i
::
ShortIOInfo
i
;
IOController_i
::
ShortIOInfo
i
;
...
@@ -731,14 +730,14 @@ IOController_i::ShortMapSeq* IOController::getSensors()
...
@@ -731,14 +730,14 @@ IOController_i::ShortMapSeq* IOController::getSensors()
res
->
length
(
ioList
.
size
()
);
res
->
length
(
ioList
.
size
()
);
int
i
=
0
;
int
i
=
0
;
for
(
IOStateList
::
iterator
it
=
ioList
.
begin
();
it
!=
ioList
.
end
();
++
it
)
for
(
auto
&
it
:
ioList
)
{
{
IOController_i
::
ShortMap
m
;
IOController_i
::
ShortMap
m
;
{
{
uniset_rwmutex_rlock
lock
(
it
->
second
.
val_lock
);
uniset_rwmutex_rlock
lock
(
it
.
second
.
val_lock
);
m
.
id
=
it
->
second
.
si
.
id
;
m
.
id
=
it
.
second
.
si
.
id
;
m
.
value
=
it
->
second
.
value
;
m
.
value
=
it
.
second
.
value
;
m
.
type
=
it
->
second
.
type
;
m
.
type
=
it
.
second
.
type
;
}
}
(
*
res
)[
i
++
]
=
m
;
(
*
res
)[
i
++
]
=
m
;
}
}
...
@@ -748,7 +747,7 @@ IOController_i::ShortMapSeq* IOController::getSensors()
...
@@ -748,7 +747,7 @@ IOController_i::ShortMapSeq* IOController::getSensors()
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
IOController
::
ChangeSignal
IOController
::
signal_change_value
(
UniSetTypes
::
ObjectId
sid
)
IOController
::
ChangeSignal
IOController
::
signal_change_value
(
UniSetTypes
::
ObjectId
sid
)
{
{
IOStateList
::
iterator
it
=
ioList
.
find
(
sid
);
auto
it
=
ioList
.
find
(
sid
);
if
(
it
==
ioList
.
end
()
)
if
(
it
==
ioList
.
end
()
)
{
{
ostringstream
err
;
ostringstream
err
;
...
@@ -770,7 +769,7 @@ IOController::ChangeSignal IOController::signal_change_value()
...
@@ -770,7 +769,7 @@ IOController::ChangeSignal IOController::signal_change_value()
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
IOController
::
ChangeUndefinedStateSignal
IOController
::
signal_change_undefined_state
(
UniSetTypes
::
ObjectId
sid
)
IOController
::
ChangeUndefinedStateSignal
IOController
::
signal_change_undefined_state
(
UniSetTypes
::
ObjectId
sid
)
{
{
IOStateList
::
iterator
it
=
ioList
.
find
(
sid
);
auto
it
=
ioList
.
find
(
sid
);
if
(
it
==
ioList
.
end
()
)
if
(
it
==
ioList
.
end
()
)
{
{
ostringstream
err
;
ostringstream
err
;
...
...
src/Processes/IONotifyController.cc
View file @
f4be5a48
...
@@ -102,7 +102,7 @@ bool IONotifyController::addConsumer( ConsumerListInfo& lst, const ConsumerInfo&
...
@@ -102,7 +102,7 @@ bool IONotifyController::addConsumer( ConsumerListInfo& lst, const ConsumerInfo&
{
{
uniset_rwmutex_wrlock
l
(
lst
.
mut
);
uniset_rwmutex_wrlock
l
(
lst
.
mut
);
for
(
ConsumerList
::
const_iterator
it
=
lst
.
clst
.
begin
();
it
!=
lst
.
clst
.
end
();
++
it
)
for
(
auto
it
=
lst
.
clst
.
begin
();
it
!=
lst
.
clst
.
end
();
++
it
)
{
{
if
(
it
->
id
==
ci
.
id
&&
it
->
node
==
ci
.
node
)
if
(
it
->
id
==
ci
.
id
&&
it
->
node
==
ci
.
node
)
return
false
;
return
false
;
...
@@ -128,7 +128,7 @@ bool IONotifyController::addConsumer( ConsumerListInfo& lst, const ConsumerInfo&
...
@@ -128,7 +128,7 @@ bool IONotifyController::addConsumer( ConsumerListInfo& lst, const ConsumerInfo&
bool
IONotifyController
::
removeConsumer
(
ConsumerListInfo
&
lst
,
const
ConsumerInfo
&
cons
)
bool
IONotifyController
::
removeConsumer
(
ConsumerListInfo
&
lst
,
const
ConsumerInfo
&
cons
)
{
{
uniset_rwmutex_wrlock
l
(
lst
.
mut
);
uniset_rwmutex_wrlock
l
(
lst
.
mut
);
for
(
ConsumerList
::
iterator
li
=
lst
.
clst
.
begin
();
li
!=
lst
.
clst
.
end
();
++
li
)
for
(
auto
li
=
lst
.
clst
.
begin
();
li
!=
lst
.
clst
.
end
();
++
li
)
{
{
if
(
li
->
id
==
cons
.
id
&&
li
->
node
==
cons
.
node
)
if
(
li
->
id
==
cons
.
id
&&
li
->
node
==
cons
.
node
)
{
{
...
@@ -154,7 +154,7 @@ void IONotifyController::askSensor(const UniSetTypes::ObjectId sid,
...
@@ -154,7 +154,7 @@ void IONotifyController::askSensor(const UniSetTypes::ObjectId sid,
<<
conf
->
oind
->
getNameById
(
sid
)
<<
endl
;
<<
conf
->
oind
->
getNameById
(
sid
)
<<
endl
;
// если такого аналогового датчика нет, здесь сработает исключение...
// если такого аналогового датчика нет, здесь сработает исключение...
IOStateList
::
iterator
li
=
myioEnd
();
auto
li
=
myioEnd
();
localGetValue
(
li
,
sid
);
localGetValue
(
li
,
sid
);
{
// lock
{
// lock
...
@@ -212,7 +212,7 @@ void IONotifyController::ask( AskMap& askLst, const UniSetTypes::ObjectId sid,
...
@@ -212,7 +212,7 @@ void IONotifyController::ask( AskMap& askLst, const UniSetTypes::ObjectId sid,
const
UniSetTypes
::
ConsumerInfo
&
cons
,
UniversalIO
::
UIOCommand
cmd
)
const
UniSetTypes
::
ConsumerInfo
&
cons
,
UniversalIO
::
UIOCommand
cmd
)
{
{
// поиск датчика в списке
// поиск датчика в списке
AskMap
::
iterator
askIterator
=
askLst
.
find
(
sid
);
auto
askIterator
=
askLst
.
find
(
sid
);
switch
(
cmd
)
switch
(
cmd
)
{
{
...
@@ -357,7 +357,7 @@ void IONotifyController::localSetValue( IOController::IOStateList::iterator& li,
...
@@ -357,7 +357,7 @@ void IONotifyController::localSetValue( IOController::IOStateList::iterator& li,
{
{
uniset_rwmutex_rlock
lock
(
askIOMutex
);
uniset_rwmutex_rlock
lock
(
askIOMutex
);
AskMap
::
iterator
it
=
askIOList
.
find
(
sid
);
auto
it
=
askIOList
.
find
(
sid
);
if
(
it
!=
askIOList
.
end
()
)
if
(
it
!=
askIOList
.
end
()
)
send
(
it
->
second
,
sm
);
send
(
it
->
second
,
sm
);
}
}
...
@@ -380,7 +380,7 @@ void IONotifyController::send( ConsumerListInfo& lst, UniSetTypes::SensorMessage
...
@@ -380,7 +380,7 @@ void IONotifyController::send( ConsumerListInfo& lst, UniSetTypes::SensorMessage
TransportMessage
tmsg
;
TransportMessage
tmsg
;
uniset_rwmutex_wrlock
l
(
lst
.
mut
);
uniset_rwmutex_wrlock
l
(
lst
.
mut
);
for
(
ConsumerList
::
iterator
li
=
lst
.
clst
.
begin
();
li
!=
lst
.
clst
.
end
();
++
li
)
for
(
auto
li
=
lst
.
clst
.
begin
();
li
!=
lst
.
clst
.
end
();
++
li
)
{
{
for
(
int
i
=
0
;
i
<
2
;
i
++
)
// на каждый объект по две поптыки
for
(
int
i
=
0
;
i
<
2
;
i
++
)
// на каждый объект по две поптыки
{
{
...
@@ -519,14 +519,14 @@ void IONotifyController::askThreshold(UniSetTypes::ObjectId sid, const UniSetTyp
...
@@ -519,14 +519,14 @@ void IONotifyController::askThreshold(UniSetTypes::ObjectId sid, const UniSetTyp
throw
IONotifyController_i
::
BadRange
();
throw
IONotifyController_i
::
BadRange
();
// если такого дискретного датчика нет сдесь сработает исключение...
// если такого дискретного датчика нет сдесь сработает исключение...
IOStateList
::
iterator
li
=
myioEnd
();
auto
li
=
myioEnd
();
CORBA
::
Long
val
=
localGetValue
(
li
,
sid
);
CORBA
::
Long
val
=
localGetValue
(
li
,
sid
);
{
// lock
{
// lock
uniset_rwmutex_wrlock
lock
(
trshMutex
);
uniset_rwmutex_wrlock
lock
(
trshMutex
);
// поиск датчика в списке
// поиск датчика в списке
AskThresholdMap
::
iterator
it
=
askTMap
.
find
(
sid
);
auto
it
=
askTMap
.
find
(
sid
);
ThresholdInfoExt
ti
(
tid
,
lowLimit
,
hiLimit
,
invert
);
ThresholdInfoExt
ti
(
tid
,
lowLimit
,
hiLimit
,
invert
);
ti
.
sit
=
myioEnd
();
ti
.
sit
=
myioEnd
();
...
@@ -664,7 +664,7 @@ void IONotifyController::askThreshold(UniSetTypes::ObjectId sid, const UniSetTyp
...
@@ -664,7 +664,7 @@ void IONotifyController::askThreshold(UniSetTypes::ObjectId sid, const UniSetTyp
// --------------------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------------------
bool
IONotifyController
::
addThreshold
(
ThresholdExtList
&
lst
,
ThresholdInfoExt
&
ti
,
const
UniSetTypes
::
ConsumerInfo
&
ci
)
bool
IONotifyController
::
addThreshold
(
ThresholdExtList
&
lst
,
ThresholdInfoExt
&
ti
,
const
UniSetTypes
::
ConsumerInfo
&
ci
)
{
{
for
(
ThresholdExtList
::
iterator
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
)
for
(
auto
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
)
{
{
if
(
ti
==
(
*
it
)
)
if
(
ti
==
(
*
it
)
)
{
{
...
@@ -694,7 +694,7 @@ bool IONotifyController::addThreshold( ThresholdExtList& lst, ThresholdInfoExt&
...
@@ -694,7 +694,7 @@ bool IONotifyController::addThreshold( ThresholdExtList& lst, ThresholdInfoExt&
// --------------------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------------------
bool
IONotifyController
::
removeThreshold
(
ThresholdExtList
&
lst
,
ThresholdInfoExt
&
ti
,
const
UniSetTypes
::
ConsumerInfo
&
ci
)
bool
IONotifyController
::
removeThreshold
(
ThresholdExtList
&
lst
,
ThresholdInfoExt
&
ti
,
const
UniSetTypes
::
ConsumerInfo
&
ci
)
{
{
for
(
ThresholdExtList
::
iterator
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
)
for
(
auto
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
it
)
{
{
if
(
ti
==
(
*
it
)
)
if
(
ti
==
(
*
it
)
)
{
{
...
@@ -720,7 +720,7 @@ void IONotifyController::checkThreshold( IOStateList::iterator& li,
...
@@ -720,7 +720,7 @@ void IONotifyController::checkThreshold( IOStateList::iterator& li,
bool
send_msg
)
bool
send_msg
)
{
{
// поиск списка порогов
// поиск списка порогов
AskThresholdMap
::
iterator
lst
=
askTMap
.
end
();
auto
lst
=
askTMap
.
end
();
{
{
uniset_rwmutex_rlock
lock
(
trshMutex
);
uniset_rwmutex_rlock
lock
(
trshMutex
);
...
@@ -760,7 +760,7 @@ void IONotifyController::checkThreshold( IOStateList::iterator& li,
...
@@ -760,7 +760,7 @@ void IONotifyController::checkThreshold( IOStateList::iterator& li,
{
{
uniset_rwmutex_rlock
l
(
lst
->
second
.
mut
);
uniset_rwmutex_rlock
l
(
lst
->
second
.
mut
);
for
(
ThresholdExtList
::
iterator
it
=
lst
->
second
.
list
.
begin
();
it
!=
lst
->
second
.
list
.
end
();
++
it
)
for
(
auto
it
=
lst
->
second
.
list
.
begin
();
it
!=
lst
->
second
.
list
.
end
();
++
it
)
{
{
// Используем здесь sm.value чтобы не делать ещё раз lock на li->second.value
// Используем здесь sm.value чтобы не делать ещё раз lock на li->second.value
...
@@ -826,11 +826,11 @@ IONotifyController::ThresholdExtList::iterator IONotifyController::findThreshold
...
@@ -826,11 +826,11 @@ IONotifyController::ThresholdExtList::iterator IONotifyController::findThreshold
{
// lock
{
// lock
uniset_rwmutex_rlock
lock
(
trshMutex
);
uniset_rwmutex_rlock
lock
(
trshMutex
);
// поиск списка порогов
// поиск списка порогов
AskThresholdMap
::
iterator
lst
=
askTMap
.
find
(
sid
);
auto
lst
=
askTMap
.
find
(
sid
);
if
(
lst
!=
askTMap
.
end
()
)
if
(
lst
!=
askTMap
.
end
()
)
{
{
for
(
ThresholdExtList
::
iterator
it
=
lst
->
second
.
list
.
begin
();
it
!=
lst
->
second
.
list
.
end
();
++
it
)
for
(
auto
it
=
lst
->
second
.
list
.
begin
();
it
!=
lst
->
second
.
list
.
end
();
++
it
)
{
{
if
(
it
->
id
==
tid
)
if
(
it
->
id
==
tid
)
return
it
;
return
it
;
...
@@ -845,7 +845,7 @@ IONotifyController_i::ThresholdInfo IONotifyController::getThresholdInfo( UniSet
...
@@ -845,7 +845,7 @@ IONotifyController_i::ThresholdInfo IONotifyController::getThresholdInfo( UniSet
{
{
uniset_rwmutex_rlock
lock
(
trshMutex
);
uniset_rwmutex_rlock
lock
(
trshMutex
);
AskThresholdMap
::
iterator
it
=
askTMap
.
find
(
sid
);
auto
it
=
askTMap
.
find
(
sid
);
if
(
it
==
askTMap
.
end
()
)
if
(
it
==
askTMap
.
end
()
)
{
{
ostringstream
err
;
ostringstream
err
;
...
@@ -856,7 +856,7 @@ IONotifyController_i::ThresholdInfo IONotifyController::getThresholdInfo( UniSet
...
@@ -856,7 +856,7 @@ IONotifyController_i::ThresholdInfo IONotifyController::getThresholdInfo( UniSet
throw
IOController_i
::
NameNotFound
(
err
.
str
().
c_str
());
throw
IOController_i
::
NameNotFound
(
err
.
str
().
c_str
());
}
}
for
(
ThresholdExtList
::
const_iterator
it2
=
it
->
second
.
list
.
begin
();
it2
!=
it
->
second
.
list
.
end
();
++
it2
)
for
(
auto
it2
=
it
->
second
.
list
.
begin
();
it2
!=
it
->
second
.
list
.
end
();
++
it2
)
{
{
if
(
it2
->
id
==
tid
)
if
(
it2
->
id
==
tid
)
return
IONotifyController_i
::
ThresholdInfo
(
*
it2
);
return
IONotifyController_i
::
ThresholdInfo
(
*
it2
);
...
@@ -874,7 +874,7 @@ IONotifyController_i::ThresholdList* IONotifyController::getThresholds( UniSetTy
...
@@ -874,7 +874,7 @@ IONotifyController_i::ThresholdList* IONotifyController::getThresholds( UniSetTy
{
{
uniset_rwmutex_rlock
lock
(
trshMutex
);
uniset_rwmutex_rlock
lock
(
trshMutex
);
AskThresholdMap
::
iterator
it
=
askTMap
.
find
(
sid
);
auto
it
=
askTMap
.
find
(
sid
);
if
(
it
==
askTMap
.
end
()
)
if
(
it
==
askTMap
.
end
()
)
{
{
ostringstream
err
;
ostringstream
err
;
...
@@ -903,7 +903,7 @@ IONotifyController_i::ThresholdList* IONotifyController::getThresholds( UniSetTy
...
@@ -903,7 +903,7 @@ IONotifyController_i::ThresholdList* IONotifyController::getThresholds( UniSetTy
res
->
tlist
.
length
(
it
->
second
.
list
.
size
()
);
res
->
tlist
.
length
(
it
->
second
.
list
.
size
()
);
unsigned
int
k
=
0
;
unsigned
int
k
=
0
;
for
(
ThresholdExtList
::
const_iterator
it2
=
it
->
second
.
list
.
begin
();
it2
!=
it
->
second
.
list
.
end
();
++
it2
)
for
(
auto
it2
=
it
->
second
.
list
.
begin
();
it2
!=
it
->
second
.
list
.
end
();
++
it2
)
{
{
res
->
tlist
[
k
].
id
=
it2
->
id
;
res
->
tlist
[
k
].
id
=
it2
->
id
;
res
->
tlist
[
k
].
hilimit
=
it2
->
hilimit
;
res
->
tlist
[
k
].
hilimit
=
it2
->
hilimit
;
...
@@ -927,7 +927,7 @@ IONotifyController_i::ThresholdsListSeq* IONotifyController::getThresholdsList()
...
@@ -927,7 +927,7 @@ IONotifyController_i::ThresholdsListSeq* IONotifyController::getThresholdsList()
if
(
!
askTMap
.
empty
()
)
if
(
!
askTMap
.
empty
()
)
{
{
unsigned
int
i
=
0
;
unsigned
int
i
=
0
;
for
(
AskThresholdMap
::
iterator
it
=
askTMap
.
begin
();
it
!=
askTMap
.
end
();
++
it
)
for
(
auto
it
=
askTMap
.
begin
();
it
!=
askTMap
.
end
();
++
it
)
{
{
try
try
{
{
...
@@ -946,7 +946,7 @@ IONotifyController_i::ThresholdsListSeq* IONotifyController::getThresholdsList()
...
@@ -946,7 +946,7 @@ IONotifyController_i::ThresholdsListSeq* IONotifyController::getThresholdsList()
(
*
res
)[
i
].
tlist
.
length
(
it
->
second
.
list
.
size
()
);
(
*
res
)[
i
].
tlist
.
length
(
it
->
second
.
list
.
size
()
);
unsigned
int
k
=
0
;
unsigned
int
k
=
0
;
for
(
ThresholdExtList
::
const_iterator
it2
=
it
->
second
.
list
.
begin
();
it2
!=
it
->
second
.
list
.
end
();
++
it2
)
for
(
auto
it2
=
it
->
second
.
list
.
begin
();
it2
!=
it
->
second
.
list
.
end
();
++
it2
)
{
{
(
*
res
)[
i
].
tlist
[
k
].
id
=
it2
->
id
;
(
*
res
)[
i
].
tlist
[
k
].
id
=
it2
->
id
;
(
*
res
)[
i
].
tlist
[
k
].
hilimit
=
it2
->
hilimit
;
(
*
res
)[
i
].
tlist
[
k
].
hilimit
=
it2
->
hilimit
;
...
@@ -993,7 +993,7 @@ void IONotifyController::onChangeUndefinedState( IOStateList::iterator& lit, IOC
...
@@ -993,7 +993,7 @@ void IONotifyController::onChangeUndefinedState( IOStateList::iterator& lit, IOC
{
// lock
{
// lock
uniset_rwmutex_rlock
lock
(
askIOMutex
);
uniset_rwmutex_rlock
lock
(
askIOMutex
);
AskMap
::
iterator
it1
=
askIOList
.
find
(
it
.
si
.
id
);
auto
it1
=
askIOList
.
find
(
it
.
si
.
id
);
if
(
it1
!=
askIOList
.
end
()
)
if
(
it1
!=
askIOList
.
end
()
)
send
(
it1
->
second
,
sm
);
send
(
it1
->
second
,
sm
);
}
// unlock
}
// unlock
...
...
src/Processes/NCRestorer.cc
View file @
f4be5a48
...
@@ -117,8 +117,8 @@ void NCRestorer::addthresholdlist( IONotifyController* ic, SInfo& inf, IONotifyC
...
@@ -117,8 +117,8 @@ void NCRestorer::addthresholdlist( IONotifyController* ic, SInfo& inf, IONotifyC
}
}
// default init iterators
// default init iterators
for
(
IONotifyController
::
ThresholdExtList
::
iterator
it
=
lst
.
begin
();
it
!=
lst
.
end
();
++
i
t
)
for
(
auto
&
it
:
ls
t
)
it
->
sit
=
ic
->
myioEnd
();
it
.
sit
=
ic
->
myioEnd
();
ic
->
askTMap
[
inf
.
si
.
id
].
si
=
inf
.
si
;
ic
->
askTMap
[
inf
.
si
.
id
].
si
=
inf
.
si
;
ic
->
askTMap
[
inf
.
si
.
id
].
type
=
inf
.
type
;
ic
->
askTMap
[
inf
.
si
.
id
].
type
=
inf
.
type
;
...
@@ -146,7 +146,7 @@ NCRestorer::SInfo& NCRestorer::SInfo::operator=( IOController_i::SensorIOInfo& i
...
@@ -146,7 +146,7 @@ NCRestorer::SInfo& NCRestorer::SInfo::operator=( IOController_i::SensorIOInfo& i
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
NCRestorer
::
init_depends_signals
(
IONotifyController
*
ic
)
void
NCRestorer
::
init_depends_signals
(
IONotifyController
*
ic
)
{
{
for
(
IOController
::
IOStateList
::
iterator
it
=
ic
->
ioList
.
begin
();
it
!=
ic
->
ioList
.
end
();
++
it
)
for
(
auto
it
=
ic
->
ioList
.
begin
();
it
!=
ic
->
ioList
.
end
();
++
it
)
{
{
// обновляем итераторы...
// обновляем итераторы...
it
->
second
.
it
=
it
;
it
->
second
.
it
=
it
;
...
...
src/Various/Configuration.cc
View file @
f4be5a48
...
@@ -284,22 +284,22 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
...
@@ -284,22 +284,22 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
new_argv
[
i
]
=
strdup
(
argv
[
i
]);
new_argv
[
i
]
=
strdup
(
argv
[
i
]);
// формируем новые, используя i в качестве индекса
// формируем новые, используя i в качестве индекса
for
(
UniSetTypes
::
ListOfNode
::
iterator
it
=
lnodes
.
begin
();
it
!=
lnodes
.
end
();
++
it
)
for
(
auto
&
it
:
lnodes
)
{
{
new_argv
[
i
]
=
"-ORBInitRef"
;
new_argv
[
i
]
=
"-ORBInitRef"
;
string
name
(
oind
->
getNodeName
(
it
->
id
));
string
name
(
oind
->
getNodeName
(
it
.
id
));
ostringstream
param
;
ostringstream
param
;
param
<<
this
<<
name
;
param
<<
this
<<
name
;
name
=
param
.
str
();
name
=
param
.
str
();
param
<<
"=corbaname::"
<<
it
->
host
<<
":"
<<
it
->
port
;
param
<<
"=corbaname::"
<<
it
.
host
<<
":"
<<
it
.
port
;
new_argv
[
i
+
1
]
=
strdup
(
param
.
str
().
c_str
());
new_argv
[
i
+
1
]
=
strdup
(
param
.
str
().
c_str
());
uinfo
<<
"(Configuration): внесли параметр "
<<
param
.
str
()
<<
endl
;
uinfo
<<
"(Configuration): внесли параметр "
<<
param
.
str
()
<<
endl
;
i
+=
2
;
i
+=
2
;
ostringstream
uri
;
ostringstream
uri
;
uri
<<
"corbaname::"
<<
it
->
host
<<
":"
<<
it
->
port
;
uri
<<
"corbaname::"
<<
it
.
host
<<
":"
<<
it
.
port
;
if
(
!
omni
::
omniInitialReferences
::
setFromArgs
(
name
.
c_str
(),
uri
.
str
().
c_str
())
)
if
(
!
omni
::
omniInitialReferences
::
setFromArgs
(
name
.
c_str
(),
uri
.
str
().
c_str
())
)
cerr
<<
"**********************!!!! FAILED ADD name="
<<
name
<<
" uri="
<<
uri
.
str
()
<<
endl
;
cerr
<<
"**********************!!!! FAILED ADD name="
<<
name
<<
" uri="
<<
uri
.
str
()
<<
endl
;
...
...
src/Various/LT_Object.cc
View file @
f4be5a48
...
@@ -74,7 +74,7 @@ timeout_t LT_Object::checkTimers( UniSetObject* obj )
...
@@ -74,7 +74,7 @@ timeout_t LT_Object::checkTimers( UniSetObject* obj )
{
// lock
{
// lock
uniset_rwmutex_wrlock
lock
(
lstMutex
);
uniset_rwmutex_wrlock
lock
(
lstMutex
);
sleepTime
=
UniSetTimer
::
WaitUpTime
;
sleepTime
=
UniSetTimer
::
WaitUpTime
;
for
(
TimersList
::
iterator
li
=
tlst
.
begin
();
li
!=
tlst
.
end
();
++
li
)
for
(
auto
li
=
tlst
.
begin
();
li
!=
tlst
.
end
();
++
li
)
{
{
if
(
li
->
tmr
.
checkTime
()
)
if
(
li
->
tmr
.
checkTime
()
)
{
{
...
@@ -138,7 +138,7 @@ timeout_t LT_Object::askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, c
...
@@ -138,7 +138,7 @@ timeout_t LT_Object::askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, c
// поищем а может уж такой есть
// поищем а может уж такой есть
if
(
!
tlst
.
empty
()
)
if
(
!
tlst
.
empty
()
)
{
{
for
(
TimersList
::
iterator
li
=
tlst
.
begin
();
li
!=
tlst
.
end
();
++
li
)
for
(
auto
li
=
tlst
.
begin
();
li
!=
tlst
.
end
();
++
li
)
{
{
if
(
li
->
id
==
timerid
)
if
(
li
->
id
==
timerid
)
{
{
...
...
src/Various/SMonitor.cc
View file @
f4be5a48
...
@@ -46,15 +46,15 @@ void SMonitor::sysCommand( const SystemMessage *sm )
...
@@ -46,15 +46,15 @@ void SMonitor::sysCommand( const SystemMessage *sm )
{
{
case
SystemMessage
:
:
StartUp
:
case
SystemMessage
:
:
StartUp
:
{
{
for
(
MyIDList
::
iterator
it
=
lst
.
begin
();
it
!=
lst
.
end
();
it
++
)
for
(
auto
&
it
:
lst
)
{
{
if
(
it
->
si
.
node
==
DefaultObjectId
)
if
(
it
.
si
.
node
==
DefaultObjectId
)
it
->
si
.
node
=
conf
->
getLocalNode
();
it
.
si
.
node
=
conf
->
getLocalNode
();
try
try
{
{
if
(
it
->
si
.
id
!=
DefaultObjectId
)
if
(
it
.
si
.
id
!=
DefaultObjectId
)
ui
.
askRemoteSensor
(
it
->
si
.
id
,
UniversalIO
::
UIONotify
,
it
->
si
.
node
);
ui
.
askRemoteSensor
(
it
.
si
.
id
,
UniversalIO
::
UIONotify
,
it
.
si
.
node
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
...
...
tests/Makefile.am
View file @
f4be5a48
...
@@ -30,7 +30,7 @@ ui_CPPFLAGS = -I$(top_builddir)/include
...
@@ -30,7 +30,7 @@ ui_CPPFLAGS = -I$(top_builddir)/include
umutex_SOURCES
=
umutex.cc
umutex_SOURCES
=
umutex.cc
umutex_LDADD
=
$(top_builddir)
/lib/libUniSet2.la
$(COMCPP_LIBS)
umutex_LDADD
=
$(top_builddir)
/lib/libUniSet2.la
$(COMCPP_LIBS)
umutex_CPPFLAGS
=
-I
$(top_builddir)
/include
$(COMCPP_CFLAGS)
umutex_CPPFLAGS
=
-
S
-O2
-
I
$(top_builddir)
/include
$(COMCPP_CFLAGS)
conftest_SOURCES
=
conftest.cc
conftest_SOURCES
=
conftest.cc
conftest_LDADD
=
$(top_builddir)
/lib/libUniSet2.la
conftest_LDADD
=
$(top_builddir)
/lib/libUniSet2.la
...
...
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