UniSet  2.6.0
Классы | Открытые типы | Открытые члены | Открытые статические члены | Защищенные типы | Защищенные члены | Защищенные данные
Класс uniset::IOControl
Граф наследования:uniset::IOControl:
Inheritance graph
[см. легенду]
Граф связей класса uniset::IOControl:
Collaboration graph
[см. легенду]

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

Классы

struct  IOInfo
struct  IOPriority

Открытые типы

enum  TestModeID {
  tmNone = 0, tmOffPoll = 1, tmConfigEnable = 2, tmConfigDisable = 3,
  tmOnlyInputs = 4, tmOnlyOutputs = 5
}

Открытые члены

 IOControl (uniset::ObjectId id, uniset::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, uniset::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 uniset::SystemMessage *sm) override
virtual void askSensors (UniversalIO::UIOCommand cmd)
virtual void sensorInfo (const uniset::SensorMessage *sm) override
virtual void timerInfo (const uniset::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 ()
void addBlink (IOInfo *it, BlinkList &lst)
void delBlink (IOInfo *it, BlinkList &lst)
void blink (BlinkList &lst, bool &bstate)

Защищенные данные

xmlNode * confnode = { 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
uniset::ObjectId myid = { uniset::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 }
uniset::ObjectId testLamp_s = { uniset::DefaultObjectId }
Trigger trTestLamp
bool isTestLamp = { false }
IOController::IOStateList::iterator itTestLamp
PassiveTimer ptHeartBeat
uniset::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 }
std::mutex iopollMutex
std::atomic_bool activated = { false }
bool readconf_ok = { false }
int activateTimeout
uniset::ObjectId sidTestSMReady = { uniset::DefaultObjectId }
std::atomic_bool term = { false }
uniset::ObjectId testMode_as = { uniset::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 uniset::IOControl::activateObject ( ) [override, protected, virtual]

Активизация объекта (переопределяется для необходимых действий после активизации)

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

void uniset::IOControl::help_print ( int  argc,
const char *const *  argv 
) [static]

глобальная функция для вывода help-а

std::shared_ptr< IOControl > uniset::IOControl::init_iocontrol ( int  argc,
const char *const *  argv,
uniset::ObjectId  icID,
const std::shared_ptr< SharedMemory > &  ic = nullptr,
const std::string &  prefix = "io" 
) [static]

глобальная функция для инициализации объекта

void uniset::IOControl::iopoll ( ) [protected]

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

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

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

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

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


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

список карт - массив созданных ComediInterface

xmlNode* uniset::IOControl::confnode = { 0 } [protected]

xml-узел в настроечном файле

int uniset::IOControl::defCardNum = { -1 } [protected]

номер карты по умолчанию

bool uniset::IOControl::force = { false } [protected]

флаг, означающий, что надо сохранять в SM, даже если значение не менялось

bool uniset::IOControl::force_out = { false } [protected]

флаг, включающий принудительное чтения выходов

IOMap uniset::IOControl::iomap [protected]

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

std::mutex uniset::IOControl::iopollMutex [protected]

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

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

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

PIOMap uniset::IOControl::pmap [protected]

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

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

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

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

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