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
ef25fa5e
Commit
ef25fa5e
authored
Aug 05, 2016
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(Restorer): изменил обработку ошибок. Теперь выкидывается исключение,
вместо return false.
parent
b4af90df
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
30 additions
and
20 deletions
+30
-20
TODO
TODO
+0
-3
NCRestorer_XML.cc
src/Processes/NCRestorer_XML.cc
+30
-17
No files found.
TODO
View file @
ef25fa5e
...
...
@@ -55,11 +55,8 @@ Version 2.5
- переписать систему инициализации и работы между UniSetActivator,UniSetManager и UniSetObject-ами (уменьшить количество функций (связность))
- Использовать PIMPL (подумать.. это серьёзная переделка кода)
- Вылетать с ошибкой если в секции <thresholds> указан не существующий датчик
- совместимость между 64bit и 32bit - для этого нужно отказаться от использования сырого long и перейти либо на int32_t либо CORBA::Long.
Либо стоит всё-таки ввести свой тип данных value_t для хранимых значений, чтобы спокойно работать в x86_64 и x86_32
при этом скрыв детали реализации. А возможно в последствии наложить какие-то ограничения на этот тип
...
...
src/Processes/NCRestorer_XML.cc
View file @
ef25fa5e
...
...
@@ -249,8 +249,10 @@ bool NCRestorer_XML::getBaseInfo( const std::shared_ptr<UniXML>& xml, xmlNode* i
if
(
sid
==
UniSetTypes
::
DefaultObjectId
)
{
ucrit
<<
"(getBaseInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР датчика --> "
<<
sname
<<
endl
;
return
false
;
ostringstream
err
;
err
<<
"(getBaseInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР датчика --> "
<<
sname
;
ucrit
<<
err
.
str
()
<<
endl
;
throw
SystemError
(
err
.
str
());
}
ObjectId
snode
=
uniset_conf
()
->
getLocalNode
();
...
...
@@ -291,9 +293,11 @@ bool NCRestorer_XML::getSensorInfo( const std::shared_ptr<UniXML>& xml, xmlNode*
if
(
inf
->
type
==
UniversalIO
::
UnknownIOType
)
{
ucrit
<<
"(NCRestorer_XML:getSensorInfo): unknown iotype="
<<
xml
->
getProp
(
it
,
"iotype"
)
<<
" for "
<<
xml
->
getProp
(
it
,
"name"
)
<<
endl
;
return
false
;
ostringstream
err
;
err
<<
"(NCRestorer_XML:getSensorInfo): unknown iotype="
<<
xml
->
getProp
(
it
,
"iotype"
)
<<
" for "
<<
xml
->
getProp
(
it
,
"name"
);
ucrit
<<
err
.
str
()
<<
endl
;
throw
SystemError
(
err
.
str
());
}
// калибровка
...
...
@@ -328,11 +332,13 @@ bool NCRestorer_XML::getSensorInfo( const std::shared_ptr<UniXML>& xml, xmlNode*
if
(
inf
->
d_si
.
id
==
UniSetTypes
::
DefaultObjectId
)
{
ucrit
<<
"(NCRestorer_XML:getSensorInfo): sensor='"
ostringstream
err
;
err
<<
"(NCRestorer_XML:getSensorInfo): sensor='"
<<
xml
->
getProp
(
it
,
"name"
)
<<
"' err: "
<<
" Unknown SensorID for depend='"
<<
d_txt
<<
endl
;
return
false
;
<<
" Unknown SensorID for depend='"
<<
d_txt
;
ucrit
<<
err
.
str
()
<<
endl
;
throw
SystemError
(
err
.
str
());
}
inf
->
d_si
.
node
=
uniset_conf
()
->
getLocalNode
();
...
...
@@ -484,21 +490,28 @@ bool NCRestorer_XML::getThresholdInfo( const std::shared_ptr<UniXML>& xml, xmlNo
if
(
ti
.
sid
==
UniSetTypes
::
DefaultObjectId
)
{
ucrit
<<
"(NCRestorer_XML:getThresholdInfo): "
<<
" Not found ID for "
<<
sid_name
<<
endl
;
ostringstream
err
;
err
<<
"(NCRestorer_XML:getThresholdInfo): "
<<
" Not found ID for "
<<
sid_name
;
ucrit
<<
err
.
str
()
<<
endl
;
throw
SystemError
(
err
.
str
());
}
else
{
UniversalIO
::
IOType
iotype
=
uniset_conf
()
->
getIOType
(
ti
.
sid
);
// Пока что IONotifyController поддерживает работу только с 'DI'.
if
(
iotype
!=
UniversalIO
::
DI
)
// Пока что IONotifyController поддерживает работу только с 'DI
/DO
'.
if
(
iotype
!=
UniversalIO
::
DI
&&
iotype
!=
UniversalIO
::
DO
)
{
ucrit
<<
"(NCRestorer_XML:getThresholdInfo): "
<<
" Bad iotype("
<<
iotype
<<
") for "
<<
sid_name
<<
". iotype must be 'DI'!"
<<
endl
;
return
false
;
}
ostringstream
err
;
err
<<
"(NCRestorer_XML:getThresholdInfo): "
<<
" Bad iotype("
<<
iotype
<<
") for "
<<
sid_name
<<
". iotype must be 'DI' or 'DO'."
;
ucrit
<<
err
.
str
()
<<
endl
;
throw
SystemError
(
err
.
str
());
}
}
}
...
...
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