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
ca13e446
Commit
ca13e446
authored
Dec 09, 2020
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
make style
parent
69a42967
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
107 additions
and
101 deletions
+107
-101
IOControl.h
extensions/IOControl/IOControl.h
+96
-93
TOR.cc
extensions/LogicProcessor/TOR.cc
+0
-1
MBSlave.cc
extensions/ModbusSlave/MBSlave.cc
+0
-1
DBServer.h
include/DBServer.h
+0
-1
UInterface.h
include/UInterface.h
+3
-0
MessageType.cc
src/Core/MessageType.cc
+2
-1
UniSetActivator.cc
src/Core/UniSetActivator.cc
+1
-0
UniSetManager.cc
src/Core/UniSetManager.cc
+4
-4
UniSetObject.cc
src/Core/UniSetObject.cc
+0
-0
UniSetTypes.cc
src/Core/UniSetTypes.cc
+0
-0
test_unixml.cc
tests/test_unixml.cc
+1
-0
No files found.
extensions/IOControl/IOControl.h
View file @
ca13e446
...
...
@@ -60,106 +60,109 @@ namespace uniset
в качестве префикса по умолчанию используется "io", но в конструкторе можно задать другой
если используется несколько процессов ввода/вывода.
-
\b --io-confnode name - Использовать для настройки указанный xml-узел
-
\b --io-name name - ID процесса. По умолчанию IOController1.
-
\b --io-numcards - Количество карт в/в. По умолчанию 1.
-
\b --iodev0 dev - Использовать для card='0' указанный файл comedi-устройства.
-
\b --iodev1 dev - Использовать для card='1' указанный файл comedi-устройства.
-
\b --iodev2 dev - Использовать для card='2' указанный файл comedi-устройства.
-
\b --iodev3 dev - Использовать для card='3' указанный файл comedi-устройства.
-
\b --iodevX dev - Использовать для card='X' указанный файл comedi-устройства.
<br>
\b --io-confnode name - Использовать для настройки указанный xml-узел
<br>
\b --io-name name - ID процесса. По умолчанию IOController1.
<br>
\b --io-numcards - Количество карт в/в. По умолчанию 1.
<br>
\b --iodev0 dev - Использовать для card='0' указанный файл comedi-устройства.
<br>
\b --iodev1 dev - Использовать для card='1' указанный файл comedi-устройства.
<br>
\b --iodev2 dev - Использовать для card='2' указанный файл comedi-устройства.
<br>
\b --iodev3 dev - Использовать для card='3' указанный файл comedi-устройства.
<br>
\b --iodevX dev - Использовать для card='X' указанный файл comedi-устройства.
'X' не должен быть больше --io-numcards
-
\b --iodevX-subdevX-type name - Настройка типа подустройства для UNIO.
<br>
\b --iodevX-subdevX-type name - Настройка типа подустройства для UNIO.
Разрешены: TBI0_24,TBI24_0,TBI16_8
-
\b --io-default_cardnum - Номер карты по умолчанию. По умолчанию -1.
<br>
\b --io-default_cardnum - Номер карты по умолчанию. По умолчанию -1.
Если задать, то он будет использоваться для датчиков
у которых не задано поле 'card'.
-
\b --io-test-lamp - Для данного узла в качестве датчика кнопки 'ТестЛамп' использовать указанный датчик.
-
\b --io-conf-field fname - Считывать из конф. файла все датчики с полем fname='1'
-
\b --io-polltime msec - Пауза между опросом карт. По умолчанию 200 мсек.
-
\b --io-filtersize val - Размерность фильтра для аналоговых входов.
-
\b --io-filterT val - Постоянная времени фильтра.
-
\b --io-s-filter-field - Идентификатор в configure.xml по которому считывается список относящихся к это процессу датчиков
-
\b --io-s-filter-value - Значение идентификатора по которому считывается список относящихся к это процессу датчиков
-
\b --io-blink-time msec - Частота мигания, мсек. По умолчанию в configure.xml
-
\b --io-blink2-time msec - Вторая частота мигания (lmpBLINK2), мсек. По умолчанию в configure.xml
-
\b --io-blink3-time msec - Вторая частота мигания (lmpBLINK3), мсек. По умолчанию в configure.xml
-
\b --io-heartbeat-id - Данный процесс связан с указанным аналоговым heartbeat-датчиком.
-
\b --io-heartbeat-max - Максимальное значение heartbeat-счётчика для данного процесса. По умолчанию 10.
-
\b --io-ready-timeout - Время ожидания готовности SM к работе, мсек. (-1 - ждать 'вечно')
-
\b --io-force - Сохранять значения в SM, независимо от, того менялось ли значение
-
\b --io-force-out - Обновлять выходы принудительно (не по заказу)
-
\b --io-skip-init-output - Не инициализировать 'выходы' при старте
-
\b --io-sm-ready-test-sid - Использовать указанный датчик, для проверки готовности SharedMemory
<br>
\b --io-test-lamp - Для данного узла в качестве датчика кнопки 'ТестЛамп' использовать указанный датчик.
<br>
\b --io-conf-field fname - Считывать из конф. файла все датчики с полем fname='1'
<br>
\b --io-polltime msec - Пауза между опросом карт. По умолчанию 200 мсек.
<br>
\b --io-filtersize val - Размерность фильтра для аналоговых входов.
<br>
\b --io-filterT val - Постоянная времени фильтра.
<br>
\b --io-s-filter-field - Идентификатор в configure.xml по которому считывается список относящихся к это процессу датчиков
<br>
\b --io-s-filter-value - Значение идентификатора по которому считывается список относящихся к это процессу датчиков
<br>
\b --io-blink-time msec - Частота мигания, мсек. По умолчанию в configure.xml
<br>
\b --io-blink2-time msec - Вторая частота мигания (lmpBLINK2), мсек. По умолчанию в configure.xml
<br>
\b --io-blink3-time msec - Вторая частота мигания (lmpBLINK3), мсек. По умолчанию в configure.xml
<br>
\b --io-heartbeat-id - Данный процесс связан с указанным аналоговым heartbeat-датчиком.
<br>
\b --io-heartbeat-max - Максимальное значение heartbeat-счётчика для данного процесса. По умолчанию 10.
<br>
\b --io-ready-timeout - Время ожидания готовности SM к работе, мсек. (-1 - ждать 'вечно')
<br>
\b --io-force - Сохранять значения в SM, независимо от, того менялось ли значение
<br>
\b --io-force-out - Обновлять выходы принудительно (не по заказу)
<br>
\b --io-skip-init-output - Не инициализировать 'выходы' при старте
<br>
\b --io-sm-ready-test-sid - Использовать указанный датчик, для проверки готовности SharedMemory
\par Возможные настройки по каждому входу/выходу
- \b nofilter - не использовать фильтр
- \b ioignore - игнорировать данный датчик (позволяет временно отключить вход/выход)
- \b ioinvert - инвертированная логика (для DI,DO)
- \b default - значение по умолчанию (при запуске)
- \b noprecision - игнорировать поле precision (т.е. процесс в/в не будет его использовать, но будет его присылать в SensorMessage)
- \b cal_nocrop - не обрезать значение по крайним точкам по при калибровке.
<br>\b nofilter - не использовать фильтр
<br>\b ioignore - игнорировать данный датчик (позволяет временно отключить вход/выход)
<br>\b ioinvert - инвертированная логика (для DI,DO)
<br>\b default - значение по умолчанию (при запуске)
<br>\b noprecision - игнорировать поле precision (т.е. процесс в/в не будет его использовать,
но будет его присылать в SensorMessage)
<br>\b cal_nocrop - не обрезать значение по крайним точкам по при калибровке.
-
\b breaklim - пороговое значение для определения обрыва датчика (используется для AI).
<br>
\b breaklim - пороговое значение для определения обрыва датчика (используется для AI).
Если значение ниже этого порога, то выставляется признак обрыва датчика.
- \b debouncedelay - защита от дребезга. Задержка на дребезг, мсек.
- \b ondelay - задержка на срабатывание, мсек.
- \b offdelay - задержка на отпускание, мсек.
- \b iofront - работа по фронту сигнала (для DI).
- "01" - срабатывание (и отпускание) по переходу "0 --> 1"
- "10" - срабатывание (и отпускание) по переходу "1 --> 0"
- \b safety - безопасное значение. Значение которое сохраняется в случае аварийного завершения процесса.
- \b iopriority - приоритет при опросе.
- \b iotype - тип входа/выхода [DI|DO|AI|AO]
- \b rmin - минимальное "сырое" значение
- \b rmax - максимальное "сырое" значение
- \b cmin - минимальное "калиброванное" значение
- \b cmax - максимальное "калиброванное" значение
- \b precision - Точность. Задаёт количество знаков после запятой.
- Т.е. при считывании из канала, значение домножается
- на 10^precision и уже таким сохраняется.
- А в SensorMessage присылается присылается precision.
- \b filtermedian - Значение для "медианного" фильтра
- \b filtersize - Значение для "усреднения"
- \b filterT - Постоянная времени фильтра.
- \b caldiagram - Имя калибровочной диаграммы из секции <Calibrations>.
- \b cal_cachesize - Размер кэша в калибровочной диаграмме (Calibration.h)
- \b cal_cacheresort - Количество циклов обращения к кэшу, для вызова принудительной пересортировки. (Calibration.h)
- \b threshold_aid - идентификатор аналогового датчика по которому формируется порог.
<br>\b debouncedelay - защита от дребезга. Задержка на дребезг, мсек.
<br>\b ondelay - задержка на срабатывание, мсек.
<br>\b offdelay - задержка на отпускание, мсек.
<br>\b iofront - работа по фронту сигнала (для DI).
<br> "01" - срабатывание (и отпускание) по переходу "0 --> 1"
<br> "10" - срабатывание (и отпускание) по переходу "1 --> 0"
<br>\b safety - безопасное значение. Значение которое сохраняется в случае аварийного
завершения процесса.
<br>\b iopriority - приоритет при опросе.
<br>\b iotype - тип входа/выхода [DI|DO|AI|AO]
<br>\b rmin - минимальное "сырое" значение
<br>\b rmax - максимальное "сырое" значение
<br>\b cmin - минимальное "калиброванное" значение
<br>\b cmax - максимальное "калиброванное" значение
<br>\b precision - Точность. Задаёт количество знаков после запятой.
<br>Т.е. при считывании из канала, значение домножается
<br>на 10^precision и уже таким сохраняется.
<br>А в SensorMessage присылается присылается precision.
<br>\b filtermedian - Значение для "медианного" фильтра
<br>\b filtersize - Значение для "усреднения"
<br>\b filterT - Постоянная времени фильтра.
<br>\b caldiagram - Имя калибровочной диаграммы из секции <Calibrations>.
<br>\b cal_cachesize - Размер кэша в калибровочной диаграмме (Calibration.h)
<br>\b cal_cacheresort - Количество циклов обращения к кэшу, для вызова принудительной пересортировки. (Calibration.h)
<br>\b threshold_aid - идентификатор аналогового датчика по которому формируется порог.
Используется для DI.
-
\b lowlimit - нижний порог срабатывания.
-
\b hilimit - верхний порог срабатывания.
-
\b card - номер карты
-
\b subdev - номер подустройства
-
\b channel [ 0<>32 ] - номер канала
-
\b jack [ J1 | J2 | J3 | J4 | J5 ] - название разъёма. Можно задавать вместо channel
-
J1 - chanenel 0 - 15
-
J2
-
\b lamp - признак, что данный аналоговый датчик является "лампочкой".
-
Т.е. на самом деле дискретный выход, который может иметь состояния:
-
uniset::lmpOFF - выключен
-
uniset::lmpON - включен
-
uniset::lmpBLINK - мигание с частотой 1
-
uniset::lmpBLINK2 - мигание с частотой 2
-
uniset::lmpBLINK3 - мигание с частотой 3
-
\b no_iotestlamp - игнорировать данную лампочку при тесте ламп.
-
\b range - диапазон измерения аналогового входа (см. libcomedi)
-
\b aref - тип подключения (см. libcomedi)
-
\b enable_testmode - включить в работу во время тестового режима tmConfigEnable
-
\b disable_testmode - исключить из работы в тестовом режиме tmConfigDisable.
<br>
\b lowlimit - нижний порог срабатывания.
<br>
\b hilimit - верхний порог срабатывания.
<br>
\b card - номер карты
<br>
\b subdev - номер подустройства
<br>
\b channel [ 0<>32 ] - номер канала
<br>
\b jack [ J1 | J2 | J3 | J4 | J5 ] - название разъёма. Можно задавать вместо channel
<br>
J1 - chanenel 0 - 15
<br>
J2
<br>
\b lamp - признак, что данный аналоговый датчик является "лампочкой".
<br>
Т.е. на самом деле дискретный выход, который может иметь состояния:
<br>
uniset::lmpOFF - выключен
<br>
uniset::lmpON - включен
<br>
uniset::lmpBLINK - мигание с частотой 1
<br>
uniset::lmpBLINK2 - мигание с частотой 2
<br>
uniset::lmpBLINK3 - мигание с частотой 3
<br>
\b no_iotestlamp - игнорировать данную лампочку при тесте ламп.
<br>
\b range - диапазон измерения аналогового входа (см. libcomedi)
<br>
\b aref - тип подключения (см. libcomedi)
<br>
\b enable_testmode - включить в работу во время тестового режима tmConfigEnable
<br>
\b disable_testmode - исключить из работы в тестовом режиме tmConfigDisable.
\note Помимо этого для конкретного процесса можно переопределять настройки используя "prefix_" (префикс плюс подчёркивание).
Где "prefix" - это префикс это префикс заданный в конструкторе IOControl.
...
...
@@ -173,14 +176,14 @@ namespace uniset
--io-test-mode ID либо в конфигурационном файле testmode_as="ID"
Сейчас поддерживаются следующий режимы (см. IOControl::TestModeID):
-
\b "0" - тестовый режим отключён. Обычная работа.
-
\b "1" - полностью отключить работу с картами в/в. При этом все выходы будут переведены в безопасное состояние.
-
\b "2" - Режим "разрешённых" каналов. В этом режиме отключается работа со всеми каналами, кроме тех, у которых
<br>
\b "0" - тестовый режим отключён. Обычная работа.
<br>
\b "1" - полностью отключить работу с картами в/в. При этом все выходы будут переведены в безопасное состояние.
<br>
\b "2" - Режим "разрешённых" каналов. В этом режиме отключается работа со всеми каналами, кроме тех, у которых
указан параметр enable_testmode="1".
-
\b "3" - Режим "запрещённых" каналов. В этом режиме отключается работа ТОЛЬКО для каналов, у которых
<br>
\b "3" - Режим "запрещённых" каналов. В этом режиме отключается работа ТОЛЬКО для каналов, у которых
указан параметр disable_testmode="1".
-
\b "4" - Режим "только входы"
-
\b "5" - Режим "только выходы"
<br>
\b "4" - Режим "только входы"
<br>
\b "5" - Режим "только выходы"
*/
// -----------------------------------------------------------------------------
/*! \todo (IOControl): Сделать обработку сигналов завершения */
...
...
extensions/LogicProcessor/TOR.cc
View file @
ca13e446
...
...
@@ -49,7 +49,6 @@ namespace uniset
void
TOR
::
setIn
(
size_t
num
,
long
value
)
{
// cout << getType() << "(" << myid << "): input " << num << " set " << state << endl;
for
(
auto
&&
it
:
ins
)
{
if
(
it
.
num
==
num
)
...
...
extensions/ModbusSlave/MBSlave.cc
View file @
ca13e446
...
...
@@ -823,7 +823,6 @@ namespace uniset
}
#endif
// ВНИМАНИЕ! Эта функция вызывается из основного eventLoop
// поэтому она должна быть максимально быстрой и безопасной
// иначе накроется весь обмен
...
...
include/DBServer.h
View file @
ca13e446
...
...
@@ -71,7 +71,6 @@ namespace uniset
std
::
shared_ptr
<
LogServer
>
logserv
;
std
::
string
logserv_host
=
{
""
};
int
logserv_port
=
{
0
};
const
std
::
string
prefix
=
{
"db"
};
private
:
...
...
include/UInterface.h
View file @
ca13e446
...
...
@@ -316,6 +316,9 @@ namespace uniset
CacheOfResolve
rcache
;
std
::
shared_ptr
<
uniset
::
ObjectIndex
>
oind
;
std
::
shared_ptr
<
uniset
::
Configuration
>
uconf
;
#ifndef DISABLE_REST_API
mutable
UHttp
::
UHttpClient
resolver
;
#endif
};
// -------------------------------------------------------------------------
}
// end of uniset namespace
...
...
src/Core/MessageType.cc
View file @
ca13e446
...
...
@@ -145,7 +145,7 @@ namespace uniset
type
=
Message
::
SysCommand
;
this
->
priority
=
priority
;
this
->
consumer
=
consumer
;
memset
(
data
,
0
,
sizeof
(
data
));
memset
(
data
,
0
,
sizeof
(
data
));
}
SystemMessage
::
SystemMessage
(
const
VoidMessage
*
msg
)
noexcept
:
...
...
@@ -233,6 +233,7 @@ namespace uniset
assert
(
vmsg
->
type
==
Message
::
TextMessage
);
auto
m
=
static_cast
<
const
TextMessage
*>
(
vmsg
);
if
(
m
)
{
type
=
m
->
type
;
...
...
src/Core/UniSetActivator.cc
View file @
ca13e446
...
...
@@ -199,6 +199,7 @@ namespace uniset
return
;
active
=
false
;
if
(
termControl
)
{
set_signals
(
false
);
...
...
src/Core/UniSetManager.cc
View file @
ca13e446
...
...
@@ -37,7 +37,7 @@ using namespace uniset;
using
namespace
std
;
// ------------------------------------------------------------------------------------------
// объект-функция для посылки сообщения менеджеру
class
MPush
:
public
unary_function
<
const
std
::
shared_ptr
<
uniset
::
UniSetManager
>&
,
bool
>
class
MPush
:
public
unary_function
<
const
std
::
shared_ptr
<
uniset
::
UniSetManager
>&
,
bool
>
{
public
:
explicit
MPush
(
const
uniset
::
TransportMessage
&
msg
)
:
msg
(
msg
)
{}
...
...
@@ -63,7 +63,7 @@ class MPush: public unary_function< const std::shared_ptr<uniset::UniSetManager>
};
// объект-функция для посылки сообщения объекту
class
OPush
:
public
unary_function
<
const
std
::
shared_ptr
<
uniset
::
UniSetObject
>&
,
bool
>
class
OPush
:
public
unary_function
<
const
std
::
shared_ptr
<
uniset
::
UniSetObject
>&
,
bool
>
{
public
:
explicit
OPush
(
const
uniset
::
TransportMessage
&
msg
)
:
msg
(
msg
)
{}
...
...
@@ -464,7 +464,7 @@ const std::shared_ptr<UniSetObject> UniSetManager::findObject( const string& nam
{
uniset_rwmutex_rlock
lock
(
olistMutex
);
for
(
auto
&&
o
:
olist
)
for
(
auto
&&
o
:
olist
)
{
if
(
o
->
getName
()
==
name
)
return
o
;
...
...
@@ -477,7 +477,7 @@ const std::shared_ptr<UniSetManager> UniSetManager::findManager( const string& n
{
uniset_rwmutex_rlock
lock
(
mlistMutex
);
for
(
auto
&&
m
:
mlist
)
for
(
auto
&&
m
:
mlist
)
{
if
(
m
->
getName
()
==
name
)
return
m
;
...
...
src/Core/UniSetObject.cc
View file @
ca13e446
src/Core/UniSetTypes.cc
View file @
ca13e446
tests/test_unixml.cc
View file @
ca13e446
...
...
@@ -97,6 +97,7 @@ TEST_CASE("UniXML::iterator", "[unixml][iterator][basic]" )
--
it
;
CHECK
(
it
.
getName
()
==
"UserData"
);
UniXML
::
iterator
it_bad
=
uxml
.
begin
();
REQUIRE_FALSE
(
it_bad
.
findName
(
"UnknownNode"
,
"NOTFOUND"
)
);
REQUIRE_FALSE
(
!
it_bad
);
...
...
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