Commit ca13e446 authored by Pavel Vainerman's avatar Pavel Vainerman

make style

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