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
4dbc96d0
Commit
4dbc96d0
authored
Dec 18, 2013
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(2.0): немного "причесал" UInterface.h
parent
f11d9fa2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
68 additions
and
34 deletions
+68
-34
UInterface.h
include/UInterface.h
+67
-33
UInterface.cc
src/Interfaces/UInterface.cc
+1
-1
No files found.
include/UInterface.h
View file @
4dbc96d0
...
@@ -53,7 +53,9 @@ namespace UniversalIO
...
@@ -53,7 +53,9 @@ namespace UniversalIO
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
/*!
/*!
* \class UInterface
* \class UInterface
* ... а здесь идет кратенькое описание... (коротенько минут на 40!...)
* Универсальный интерфейс для взаимодействия между объектами (процессами).
* По сути является "фасадом" к реализации механизма взамиодействия
* в libuniset (основанном на CORBA) Хотя до конца скрыть CORBA-у пока не удалось.
* Для увеличения производительности в функции встроен cache обращений...
* Для увеличения производительности в функции встроен cache обращений...
*
*
* См. также \ref UniversalIOControllerPage
* См. также \ref UniversalIOControllerPage
...
@@ -66,42 +68,50 @@ class UInterface
...
@@ -66,42 +68,50 @@ class UInterface
UInterface
(
UniSetTypes
::
Configuration
*
uconf
=
UniSetTypes
::
conf
);
UInterface
(
UniSetTypes
::
Configuration
*
uconf
=
UniSetTypes
::
conf
);
~
UInterface
();
~
UInterface
();
inline
UniSetTypes
::
ObjectIndex
*
getObjectIndex
()
{
return
oind
;
}
// ---------------------------------------------------------------
inline
UniSetTypes
::
Configuration
*
getConf
()
{
return
uconf
;
}
// Работа с датчиками
// -------- Функции работы с группой датчиков -----------
//! Получение состояния датчика
long
getValue
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
node
)
throw
(
IO_THROW_EXCEPTIONS
);
long
getValue
(
UniSetTypes
::
ObjectId
id
);
long
getRawValue
(
const
IOController_i
::
SensorInfo
&
si
);
// Группа должна принадлежать одному процессу!
//! Выставление состояния датчика
void
setValue
(
UniSetTypes
::
ObjectId
id
,
long
value
,
UniSetTypes
::
ObjectId
node
)
throw
(
IO_THROW_EXCEPTIONS
);
void
setValue
(
UniSetTypes
::
ObjectId
id
,
long
value
);
// С использованием SensorInfo
void
setValue
(
IOController_i
::
SensorInfo
&
si
,
long
value
,
UniSetTypes
::
ObjectId
supplier
);
void
fastSetValue
(
IOController_i
::
SensorInfo
&
si
,
long
value
,
UniSetTypes
::
ObjectId
supplier
);
// Работа с группой датчиков
//! Получение состояния для списка указанных датчиков
//! Получение состояния для списка указанных датчиков
IOController_i
::
SensorInfoSeq_var
getSensorSeq
(
UniSetTypes
::
IDList
&
lst
);
IOController_i
::
SensorInfoSeq_var
getSensorSeq
(
UniSetTypes
::
IDList
&
lst
);
/
/
Изменения состояния списка входов/выходов
/
*!
Изменения состояния списка входов/выходов
// Возвращает список не найденных идентификаторов
\return Возвращает список не найденных идентификаторов */
UniSetTypes
::
IDSeq_var
setOutputSeq
(
const
IOController_i
::
OutSeq
&
lst
,
UniSetTypes
::
ObjectId
sup_id
);
UniSetTypes
::
IDSeq_var
setOutputSeq
(
const
IOController_i
::
OutSeq
&
lst
,
UniSetTypes
::
ObjectId
sup_id
);
//! Заказ по списку
// ---------------------------------------------------------------
UniSetTypes
::
IDSeq_var
askSensorsSeq
(
UniSetTypes
::
IDList
&
lst
,
UniversalIO
::
UIOCommand
cmd
,
// Заказ датчиков
//! Универсальный заказ информации об изменении датчика
void
askSensor
(
UniSetTypes
::
ObjectId
id
,
UniversalIO
::
UIOCommand
cmd
,
UniSetTypes
::
ObjectId
backid
=
UniSetTypes
::
DefaultObjectId
);
UniSetTypes
::
ObjectId
backid
=
UniSetTypes
::
DefaultObjectId
);
void
askRemoteSensor
(
UniSetTypes
::
ObjectId
id
,
UniversalIO
::
UIOCommand
cmd
,
UniSetTypes
::
ObjectId
node
,
UniSetTypes
::
ObjectId
backid
=
UniSetTypes
::
DefaultObjectId
)
throw
(
IO_THROW_EXCEPTIONS
);
//! Заказ по списку
UniSetTypes
::
IDSeq_var
askSensorsSeq
(
UniSetTypes
::
IDList
&
lst
,
UniversalIO
::
UIOCommand
cmd
,
UniSetTypes
::
ObjectId
backid
=
UniSetTypes
::
DefaultObjectId
);
// ------------------------------------------------------
// ------------------------------------------------------
//! Получение состояния датчика
long
getValue
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
node
)
throw
(
IO_THROW_EXCEPTIONS
);
long
getValue
(
UniSetTypes
::
ObjectId
id
);
//! Выставление состояния датчика
void
setValue
(
UniSetTypes
::
ObjectId
id
,
long
value
,
UniSetTypes
::
ObjectId
node
)
throw
(
IO_THROW_EXCEPTIONS
);
void
setValue
(
UniSetTypes
::
ObjectId
id
,
long
value
);
void
setValue
(
IOController_i
::
SensorInfo
&
si
,
long
value
,
UniSetTypes
::
ObjectId
supplier
);
void
fastSetValue
(
IOController_i
::
SensorInfo
&
si
,
long
value
,
UniSetTypes
::
ObjectId
supplier
);
// установка неопределённого состояния
// установка неопределённого состояния
void
setUndefinedState
(
IOController_i
::
SensorInfo
&
si
,
bool
undefined
,
UniSetTypes
::
ObjectId
supplier
);
void
setUndefinedState
(
IOController_i
::
SensorInfo
&
si
,
bool
undefined
,
UniSetTypes
::
ObjectId
supplier
);
// ---------------------------------------------------------------
CORBA
::
Long
getRawValue
(
const
IOController_i
::
SensorInfo
&
si
);
// Калибровка... пороги...
//! калибровка
//! калибровка
void
calibrate
(
const
IOController_i
::
SensorInfo
&
si
,
void
calibrate
(
const
IOController_i
::
SensorInfo
&
si
,
...
@@ -122,26 +132,31 @@ class UInterface
...
@@ -122,26 +132,31 @@ class UInterface
CORBA
::
Long
lowLimit
=
0
,
CORBA
::
Long
hiLimit
=
0
,
CORBA
::
Long
sensibility
=
0
,
CORBA
::
Long
lowLimit
=
0
,
CORBA
::
Long
hiLimit
=
0
,
CORBA
::
Long
sensibility
=
0
,
UniSetTypes
::
ObjectId
backid
=
UniSetTypes
::
DefaultObjectId
);
UniSetTypes
::
ObjectId
backid
=
UniSetTypes
::
DefaultObjectId
);
//! Универсальный заказ информации об изменении датчика
void
askSensor
(
UniSetTypes
::
ObjectId
id
,
UniversalIO
::
UIOCommand
cmd
,
UniSetTypes
::
ObjectId
backid
=
UniSetTypes
::
DefaultObjectId
);
void
askRemoteSensor
(
UniSetTypes
::
ObjectId
id
,
UniversalIO
::
UIOCommand
cmd
,
UniSetTypes
::
ObjectId
node
,
// ---------------------------------------------------------------
UniSetTypes
::
ObjectId
backid
=
UniSetTypes
::
DefaultObjectId
)
throw
(
IO_THROW_EXCEPTIONS
);
// Вспомогательные функции
UniversalIO
::
IOType
getIOType
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
node
)
throw
(
IO_THROW_EXCEPTIONS
);
UniversalIO
::
IOType
getIOType
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
node
)
throw
(
IO_THROW_EXCEPTIONS
);
UniversalIO
::
IOType
getIOType
(
UniSetTypes
::
ObjectId
id
);
UniversalIO
::
IOType
getIOType
(
UniSetTypes
::
ObjectId
id
);
// read from xml (only for xml!) т.е. без удалённого запроса
UniversalIO
::
IOType
getConfIOType
(
UniSetTypes
::
ObjectId
id
);
// Получение типа объекта..
UniSetTypes
::
ObjectType
getType
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
node
)
throw
(
IO_THROW_EXCEPTIONS
);
UniSetTypes
::
ObjectType
getType
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
node
)
throw
(
IO_THROW_EXCEPTIONS
);
UniSetTypes
::
ObjectType
getType
(
UniSetTypes
::
ObjectId
id
);
UniSetTypes
::
ObjectType
getType
(
UniSetTypes
::
ObjectId
id
);
// read from xml (only for xml!)
UniversalIO
::
IOType
getConfIOType
(
UniSetTypes
::
ObjectId
id
);
//! Время последнего изменения датчика
IOController_i
::
ShortIOInfo
getChangedTime
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
node
);
IOController_i
::
ShortIOInfo
getChangedTime
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
node
);
//! Получить список датчиков
IOController_i
::
ShortMapSeq
*
getSensors
(
UniSetTypes
::
ObjectId
id
,
IOController_i
::
ShortMapSeq
*
getSensors
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
node
=
UniSetTypes
::
conf
->
getLocalNode
()
);
UniSetTypes
::
ObjectId
node
=
UniSetTypes
::
conf
->
getLocalNode
()
);
// ---------------------------------------------------------------
// Работа с репозиторием
// /*! регистрация объекта в репозитории */
// /*! регистрация объекта в репозитории */
void
registered
(
UniSetTypes
::
ObjectId
id
,
const
UniSetTypes
::
ObjectPtr
oRef
,
bool
force
=
false
)
throw
(
UniSetTypes
::
ORepFailed
);
void
registered
(
UniSetTypes
::
ObjectId
id
,
const
UniSetTypes
::
ObjectPtr
oRef
,
bool
force
=
false
)
throw
(
UniSetTypes
::
ORepFailed
);
void
registered
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
node
,
const
UniSetTypes
::
ObjectPtr
oRef
,
bool
force
=
false
)
throw
(
UniSetTypes
::
ORepFailed
);
void
registered
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
node
,
const
UniSetTypes
::
ObjectPtr
oRef
,
bool
force
=
false
)
throw
(
UniSetTypes
::
ORepFailed
);
...
@@ -166,9 +181,19 @@ class UInterface
...
@@ -166,9 +181,19 @@ class UInterface
throw
(
UniSetTypes
::
ResolveNameError
,
UniSetTypes
::
TimeOut
);
throw
(
UniSetTypes
::
ResolveNameError
,
UniSetTypes
::
TimeOut
);
// Проверка доступности объекта или датчика
bool
isExist
(
UniSetTypes
::
ObjectId
id
);
bool
isExist
(
UniSetTypes
::
ObjectId
id
);
bool
isExist
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
node
);
bool
isExist
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
node
);
bool
waitReady
(
UniSetTypes
::
ObjectId
id
,
int
msec
,
int
pause
=
5000
,
UniSetTypes
::
ObjectId
node
=
UniSetTypes
::
conf
->
getLocalNode
()
);
// used exist
bool
waitWorking
(
UniSetTypes
::
ObjectId
id
,
int
msec
,
int
pause
=
3000
,
UniSetTypes
::
ObjectId
node
=
UniSetTypes
::
conf
->
getLocalNode
()
);
// used getValue
// ---------------------------------------------------------------
// Работа с ID, Name
/*! получение идентификатора объекта по имени */
/*! получение идентификатора объекта по имени */
inline
UniSetTypes
::
ObjectId
getIdByName
(
const
char
*
name
)
inline
UniSetTypes
::
ObjectId
getIdByName
(
const
char
*
name
)
{
{
...
@@ -205,18 +230,27 @@ class UInterface
...
@@ -205,18 +230,27 @@ class UInterface
return
oind
->
getTextName
(
id
);
return
oind
->
getTextName
(
id
);
}
}
// ---------------------------------------------------------------
// Получение указателей на вспомогательные классы.
inline
UniSetTypes
::
ObjectIndex
*
getObjectIndex
()
{
return
oind
;
}
inline
UniSetTypes
::
Configuration
*
getConf
()
{
return
uconf
;
}
// ---------------------------------------------------------------
// Работа со временем
static
std
::
string
timeToString
(
time_t
tm
=
time
(
0
),
const
std
::
string
brk
=
":"
);
/*!< Преобразование времени в строку HH:MM:SS */
static
std
::
string
timeToString
(
time_t
tm
=
time
(
0
),
const
std
::
string
brk
=
":"
);
/*!< Преобразование времени в строку HH:MM:SS */
static
std
::
string
dateToString
(
time_t
tm
=
time
(
0
),
const
std
::
string
brk
=
"/"
);
/*!< Преобразование даты в строку DD/MM/YYYY */
static
std
::
string
dateToString
(
time_t
tm
=
time
(
0
),
const
std
::
string
brk
=
"/"
);
/*!< Преобразование даты в строку DD/MM/YYYY */
// ---------------------------------------------------------------
// Посылка сообщений
/*! посылка сообщения msg объекту name на узел node */
/*! посылка сообщения msg объекту name на узел node */
void
send
(
UniSetTypes
::
ObjectId
name
,
UniSetTypes
::
TransportMessage
&
msg
,
UniSetTypes
::
ObjectId
node
)
throw
(
IO_THROW_EXCEPTIONS
);
void
send
(
UniSetTypes
::
ObjectId
name
,
UniSetTypes
::
TransportMessage
&
msg
,
UniSetTypes
::
ObjectId
node
)
throw
(
IO_THROW_EXCEPTIONS
);
void
send
(
UniSetTypes
::
ObjectId
name
,
UniSetTypes
::
TransportMessage
&
msg
);
void
send
(
UniSetTypes
::
ObjectId
name
,
UniSetTypes
::
TransportMessage
&
msg
);
bool
waitReady
(
UniSetTypes
::
ObjectId
id
,
int
msec
,
int
pause
=
5000
,
// ---------------------------------------------------------------
UniSetTypes
::
ObjectId
node
=
UniSetTypes
::
conf
->
getLocalNode
()
);
// used exist
// Вспомогательный класс для кэширования ссылок на удалённые объекты
bool
waitWorking
(
UniSetTypes
::
ObjectId
id
,
int
msec
,
int
pause
=
3000
,
UniSetTypes
::
ObjectId
node
=
UniSetTypes
::
conf
->
getLocalNode
()
);
// used getValue
inline
void
setCacheMaxSize
(
unsigned
int
newsize
)
inline
void
setCacheMaxSize
(
unsigned
int
newsize
)
{
{
...
...
src/Interfaces/UInterface.cc
View file @
4dbc96d0
...
@@ -1338,7 +1338,7 @@ void UInterface::askRemoteThreshold( UniSetTypes::ObjectId sid, UniSetTypes::Obj
...
@@ -1338,7 +1338,7 @@ void UInterface::askRemoteThreshold( UniSetTypes::ObjectId sid, UniSetTypes::Obj
}
}
// --------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------
CORBA
::
L
ong
UInterface
::
getRawValue
(
const
IOController_i
::
SensorInfo
&
si
)
l
ong
UInterface
::
getRawValue
(
const
IOController_i
::
SensorInfo
&
si
)
{
{
if
(
si
.
id
==
DefaultObjectId
)
if
(
si
.
id
==
DefaultObjectId
)
throw
ORepFailed
(
"UI(getRawValue): попытка обратиться к объекту с id=UniSetTypes::DefaultObjectId"
);
throw
ORepFailed
(
"UI(getRawValue): попытка обратиться к объекту с id=UniSetTypes::DefaultObjectId"
);
...
...
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