Commit 2ec9bb3e authored by Pavel Vainerman's avatar Pavel Vainerman

IOControl: Добавил краткое описание работы тестового режима.

И подправил названия параметров.
parent 3e9fcd84
...@@ -440,10 +440,10 @@ void IOControl::ioread( IOInfo* it ) ...@@ -440,10 +440,10 @@ void IOControl::ioread( IOInfo* it )
// если включён режим "в соответсвии с конфигурационным файлом" // если включён режим "в соответсвии с конфигурационным файлом"
// и при этом не стоит для этого канал "игнорировать в тестовом режиме" // и при этом не стоит для этого канал "игнорировать в тестовом режиме"
if( testmode == tmConfigIgnore && !it->ignore_testmode ) if( testmode == tmConfigEnable && !it->enable_testmode )
return; return;
if( testmode == tmConfigEnable && !it->enable_testmode ) if( testmode == tmConfigDisable && it->disable_testmode )
return; return;
ComediInterface* card = cards.getCard(it->ncard); ComediInterface* card = cards.getCard(it->ncard);
...@@ -744,8 +744,8 @@ bool IOControl::initIOItem( UniXML_iterator& it ) ...@@ -744,8 +744,8 @@ bool IOControl::initIOItem( UniXML_iterator& it )
inf.lamp = it.getIntProp("lamp"); inf.lamp = it.getIntProp("lamp");
inf.no_testlamp = it.getIntProp("no_iotestlamp"); inf.no_testlamp = it.getIntProp("no_iotestlamp");
inf.ignore_testmode = it.getIntProp("ignore_testmode");
inf.enable_testmode = it.getIntProp("enable_testmode"); inf.enable_testmode = it.getIntProp("enable_testmode");
inf.disable_testmode = it.getIntProp("disable_testmode");
inf.aref = 0; inf.aref = 0;
inf.range = 0; inf.range = 0;
...@@ -1010,6 +1010,12 @@ void IOControl::check_testmode() ...@@ -1010,6 +1010,12 @@ void IOControl::check_testmode()
if( card == NULL ) if( card == NULL )
continue; continue;
if( testmode == tmConfigEnable && !it->enable_testmode )
return;
if( testmode == tmConfigDisable && it->disable_testmode )
return;
try try
{ {
if( it->subdev==DefaultSubdev || it->safety == NoSafety ) if( it->subdev==DefaultSubdev || it->safety == NoSafety )
......
...@@ -122,11 +122,28 @@ ...@@ -122,11 +122,28 @@
UniSetTypes::lmpBLINK2 - мигание с частотой 2 UniSetTypes::lmpBLINK2 - мигание с частотой 2
UniSetTypes::lmpBLINK3 - мигание с частотой 3 UniSetTypes::lmpBLINK3 - мигание с частотой 3
no_iotestlamp - игнорировать данную лампочку при тесте ламп. no_iotestlamp - игнорировать данную лампочку при тесте ламп.
range - диапазон измерения аналогового входа (см. libcomedi) range - диапазон измерения аналогового входа (см. libcomedi)
aref - тип подключения (см. libcomedi) aref - тип подключения (см. libcomedi)
enable_testmode - включить в работу во время тестового режима tmConfigEnable
disable_testmode - исключить из работы в тестовом режиме tmConfigDisable.
\section sec_IOC_ConfList Список датчиков для процесса в/в \section sec_IOC_ConfList Список датчиков для процесса в/в
\section sec_IOC_TestMode Тестовый режим
В IOControl встроена возможнось переводить его в один из тестовых режимов.
Для этого необходимо указать для IOControl аналоговый датчик в который будет записан "код"
режима работы. Датчик можно задать либо аргументом командной строки
--io-test-mode ID либо в конфигурационном файле testmode_as="ID"
Сейчас поддерживаются следующий режимы (см. IOControl::TestModeID):
"0" - тестовый режим отключён. Обычная работа.
"1" - полностью отключить работу с картами в/в. При этом все выходы будут переведены в безопасное состояние.
"2" - Режим "разрешённых" каналов. В этом режиме отключается работа со свсеми каналами, кроме тех, у которых
указан параметр enable_testmode="1".
"3" - Режим "запрещённых" каналов. В этом режиме отключается работа ТОЛЬКО для каналов, у которых
указан параметр disable_testmode="1".
*/ */
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
#warning Сделать обработку сигналов завершения.... #warning Сделать обработку сигналов завершения....
...@@ -192,8 +209,8 @@ class IOControl: ...@@ -192,8 +209,8 @@ class IOControl:
range(0), range(0),
lamp(false), lamp(false),
no_testlamp(false), no_testlamp(false),
ignore_testmode(false), enable_testmode(false),
enable_testmode(false) disable_testmode(false)
{} {}
...@@ -219,8 +236,8 @@ class IOControl: ...@@ -219,8 +236,8 @@ class IOControl:
bool lamp; /*!< признак, что данный выход является лампочкой (или сигнализатором) */ bool lamp; /*!< признак, что данный выход является лампочкой (или сигнализатором) */
bool no_testlamp; /*!< флаг исключения из 'проверки ламп' */ bool no_testlamp; /*!< флаг исключения из 'проверки ламп' */
bool ignore_testmode; /*!< флаг для режима тестирования tmConfigIgnore */
bool enable_testmode; /*!< флаг для режима тестирования tmConfigEnable */ bool enable_testmode; /*!< флаг для режима тестирования tmConfigEnable */
bool disable_testmode; /*!< флаг для режима тестирования tmConfigDisable */
friend std::ostream& operator<<(std::ostream& os, IOInfo& inf ); friend std::ostream& operator<<(std::ostream& os, IOInfo& inf );
}; };
...@@ -238,8 +255,8 @@ class IOControl: ...@@ -238,8 +255,8 @@ class IOControl:
{ {
tmNone = 0, /*!< тестовый режим отключён */ tmNone = 0, /*!< тестовый режим отключён */
tmOffPoll = 1, /*!< отключить опрос */ tmOffPoll = 1, /*!< отключить опрос */
tmConfigIgnore = 2, /*!< специальный режим, в соответсвии с настройкой 'ignore_testmode' */ tmConfigEnable = 2, /*!< специальный режим, в соответсвии с настройкой 'enable_testmode' */
tmConfigEnable = 3 /*!< специальный режим, в соответсвии с настройкой 'enable_testmode' */ tmConfigDisable = 3 /*!< специальный режим, в соответсвии с настройкой 'disable_testmode' */
}; };
void execute(); void execute();
......
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