|
UniSet
2.2.1
|
#include <IOControl.h>
Классы | |
| struct | IOInfo |
| struct | IOPriority |
Открытые типы | |
| enum | TestModeID { tmNone = 0, tmOffPoll = 1, tmConfigEnable = 2, tmConfigDisable = 3, tmOnlyInputs = 4, tmOnlyOutputs = 5 } |
Открытые члены | |
| IOControl (UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID, const std::shared_ptr< SharedMemory > &shm=nullptr, int numcards=2, const std::string &prefix="io") | |
| void | execute () |
Открытые статические члены | |
| static std::shared_ptr< IOControl > | init_iocontrol (int argc, const char *const *argv, UniSetTypes::ObjectId icID, const std::shared_ptr< SharedMemory > &ic=nullptr, const std::string &prefix="io") |
| static void | help_print (int argc, const char *const *argv) |
Защищенные типы | |
| typedef std::vector< IOInfo > | IOMap |
| typedef std::deque< IOPriority > | PIOMap |
| typedef std::list< IOInfo * > | BlinkList |
Защищенные члены | |
| void | iopoll () |
| void | ioread (IOInfo *it) |
| void | check_testlamp () |
| void | check_testmode () |
| void | blink () |
| virtual void | sysCommand (const UniSetTypes::SystemMessage *sm) override |
| virtual void | askSensors (UniversalIO::UIOCommand cmd) |
| virtual void | sensorInfo (const UniSetTypes::SensorMessage *sm) override |
| virtual void | timerInfo (const UniSetTypes::TimerMessage *tm) override |
| virtual void | sigterm (int signo) override |
| virtual bool | activateObject () override |
| Активизация объекта (переопределяется для необходимых действий после активизации) | |
| void | initOutputs () |
| void | initIOCard () |
| void | readConfiguration () |
| bool | initIOItem (UniXML::iterator &it) |
| bool | readItem (const std::shared_ptr< UniXML > &xml, UniXML::iterator &it, xmlNode *sec) |
| void | buildCardsList () |
| void | waitSM () |
| bool | checkCards (const std::string &func="") |
| void | addBlink (IOInfo *it, BlinkList &lst) |
| void | delBlink (IOInfo *it, BlinkList &lst) |
| void | blink (BlinkList &lst, bool &bstate) |
Защищенные данные | |
| xmlNode * | cnode = { 0 } |
| int | polltime = { 150 } |
| CardList | cards |
| bool | noCards = { false } |
| IOMap | iomap |
| PIOMap | pmap |
| unsigned int | maxItem = { 0 } |
| unsigned int | maxHalf = { 0 } |
| int | filtersize = { 0 } |
| float | filterT = { 0.0 } |
| std::string | s_field |
| std::string | s_fvalue |
| std::shared_ptr< SMInterface > | shm |
| UniSetTypes::ObjectId | myid = { UniSetTypes::DefaultObjectId } |
| std::string | prefix |
| BlinkList | lstBlink |
| PassiveTimer | ptBlink |
| bool | blink_state = { false } |
| BlinkList | lstBlink2 |
| PassiveTimer | ptBlink2 |
| bool | blink2_state = { false } |
| BlinkList | lstBlink3 |
| PassiveTimer | ptBlink3 |
| bool | blink3_state = { false } |
| UniSetTypes::ObjectId | testLamp_s = { UniSetTypes::DefaultObjectId } |
| Trigger | trTestLamp |
| bool | isTestLamp = { false } |
| IOController::IOStateList::iterator | itTestLamp |
| PassiveTimer | ptHeartBeat |
| UniSetTypes::ObjectId | sidHeartBeat |
| int | maxHeartBeat = { 10 } |
| IOController::IOStateList::iterator | itHeartBeat |
| bool | force = { false } |
| bool | force_out = { false } |
| timeout_t | smReadyTimeout = { 15000 } |
| int | defCardNum = { -1 } |
| int | maxCardNum = { 10 } |
| UniSetTypes::uniset_mutex | iopollMutex |
| std::atomic_bool | activated = { false } |
| bool | readconf_ok = { false } |
| int | activateTimeout |
| UniSetTypes::ObjectId | sidTestSMReady = { UniSetTypes::DefaultObjectId } |
| bool | term = { false } |
| UniSetTypes::ObjectId | testMode_as = { UniSetTypes::DefaultObjectId } |
| IOController::IOStateList::iterator | itTestMode |
| long | testmode = { false } |
| long | prev_testmode = { false } |
| std::shared_ptr< LogAgregator > | loga |
| std::shared_ptr< DebugStream > | iolog |
| std::shared_ptr< LogServer > | logserv |
| std::string | logserv_host = {""} |
| int | logserv_port = {0} |
Процесс работы с картами в/в. Задачи:
| bool IOControl::activateObject | ( | ) | [override, protected, virtual] |
Активизация объекта (переопределяется для необходимых действий после активизации)
Переопределяет метод предка UniSetObject.
| void IOControl::help_print | ( | int | argc, |
| const char *const * | argv | ||
| ) | [static] |
глобальная функция для вывода help-а
| std::shared_ptr< IOControl > IOControl::init_iocontrol | ( | int | argc, |
| const char *const * | argv, | ||
| UniSetTypes::ObjectId | icID, | ||
| const std::shared_ptr< SharedMemory > & | ic = nullptr, |
||
| const std::string & | prefix = "io" |
||
| ) | [static] |
глобальная функция для инициализации объекта
Перекрестные ссылки UniSetTypes::DefaultObjectId и UniSetTypes::uniset_conf().
| void IOControl::iopoll | ( | ) | [protected] |
| void IOControl::sigterm | ( | int | signo | ) | [override, protected, virtual] |
Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.
Переопределяет метод предка UniSetObject.
Перекрестные ссылки cards.
CardList IOControl::cards [protected] |
список карт - массив созданных ComediInterface
Используется в sigterm().
xmlNode* IOControl::cnode = { 0 } [protected] |
xml-узел в настроечном файле
int IOControl::defCardNum = { -1 } [protected] |
номер карты по умолчанию
bool IOControl::force = { false } [protected] |
флаг, означающий, что надо сохранять в SM, даже если значение не менялось
Используется в iopoll().
bool IOControl::force_out = { false } [protected] |
флаг, включающий принудительное чтения выходов
IOMap IOControl::iomap [protected] |
список входов/выходов
UniSetTypes::uniset_mutex IOControl::iopollMutex [protected] |
максимально разрешённый номер для карты
unsigned int IOControl::maxItem = { 0 } [protected] |
количество элементов (используется на момент инициализации)
PIOMap IOControl::pmap [protected] |
список приоритетных входов/выходов
Используется в iopoll().
int IOControl::polltime = { 150 } [protected] |
переодичность обновления данных (опроса карт в/в), [мсек]
timeout_t IOControl::smReadyTimeout = { 15000 } [protected] |
время ожидания готовности SM к работе, мсек
1.7.6.1