Commit ca13e446 authored by Pavel Vainerman's avatar Pavel Vainerman

make style

parent 69a42967
......@@ -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
- &nbsp;&nbsp; J1 - chanenel 0 - 15
- &nbsp;&nbsp; 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>&nbsp;&nbsp; J1 - chanenel 0 - 15
<br>&nbsp;&nbsp; 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): Сделать обработку сигналов завершения */
......
......@@ -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 )
......
......@@ -823,7 +823,6 @@ namespace uniset
}
#endif
// ВНИМАНИЕ! Эта функция вызывается из основного eventLoop
// поэтому она должна быть максимально быстрой и безопасной
// иначе накроется весь обмен
......
......@@ -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:
......
......@@ -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
......
......@@ -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;
......
......@@ -199,6 +199,7 @@ namespace uniset
return;
active = false;
if( termControl )
{
set_signals(false);
......
......@@ -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;
......
......@@ -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 );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment