UniSet  2.2.1
Классы | Открытые типы | Открытые члены | Открытые статические члены | Защищенные типы | Защищенные члены | Защищенные данные
Класс IOControl

#include <IOControl.h>

Граф наследования:IOControl:
UniSetObject LT_Object

Полный список членов класса

Классы

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< IOControlinit_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< IOInfoIOMap
typedef std::deque< IOPriorityPIOMap
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< SMInterfaceshm
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< LogAgregatorloga
std::shared_ptr< DebugStreamiolog
std::shared_ptr< LogServerlogserv
std::string logserv_host = {""}
int logserv_port = {0}

Подробное описание

Процесс работы с картами в/в. Задачи:


Перечисления

Элементы перечислений:
tmNone 

тестовый режим отключён

tmOffPoll 

отключить опрос

tmConfigEnable 

специальный режим, в соответсвии с настройкой 'enable_testmode'

tmConfigDisable 

специальный режим, в соответсвии с настройкой 'disable_testmode'

tmOnlyInputs 

включены только входы

tmOnlyOutputs 

включены только выходы


Методы

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]

опрос карт в/в

Перекрестные ссылки force, pmap и tmOffPoll.

void IOControl::sigterm ( int  signo) [override, protected, virtual]

Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.

Предупреждения:
В обработчике сигналов ЗАПРЕЩЕНО вызывать функции подобные exit(..), abort()!!!!

Переопределяет метод предка UniSetObject.

Перекрестные ссылки cards.


Данные класса

список карт - массив созданных 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]

список входов/выходов

максимально разрешённый номер для карты

unsigned int IOControl::maxItem = { 0 } [protected]

количество элементов (используется на момент инициализации)

PIOMap IOControl::pmap [protected]

список приоритетных входов/выходов

Используется в iopoll().

int IOControl::polltime = { 150 } [protected]

переодичность обновления данных (опроса карт в/в), [мсек]

timeout_t IOControl::smReadyTimeout = { 15000 } [protected]

время ожидания готовности SM к работе, мсек


Объявления и описания членов классов находятся в файлах: