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