UniSet  2.0.0
Классы | Открытые типы | Открытые члены | Защищенные типы | Защищенные члены | Друзья
Класс IOController

#include <IOController.h>

Граф наследования:IOController:
UniSetManager UniSetObject IONotifyController UniExchange UniExchange IONotifyController_LT NullController SharedMemory SharedMemory

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

Классы

struct  USensorInfo

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

typedef std::map
< UniSetTypes::ObjectId,
USensorInfo
IOStateList
typedef sigc::signal< void,
IOStateList::iterator
&, IOController * > 
ChangeSignal
typedef sigc::signal< void,
IOStateList::iterator
&, IOController * > 
ChangeUndefinedStateSignal

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

 IOController (const std::string &name, const std::string &section)
 IOController (const UniSetTypes::ObjectId id)
virtual UniSetTypes::ObjectType getType () override
virtual CORBA::Long getValue (UniSetTypes::ObjectId sid) override
virtual void setValue (UniSetTypes::ObjectId sid, CORBA::Long value, UniSetTypes::ObjectId sup_id=UniSetTypes::DefaultObjectId) override
virtual void fastSetValue (UniSetTypes::ObjectId sid, CORBA::Long value, UniSetTypes::ObjectId sup_id=UniSetTypes::DefaultObjectId) override
virtual void setUndefinedState (UniSetTypes::ObjectId sid, CORBA::Boolean undefined, UniSetTypes::ObjectId sup_id=UniSetTypes::DefaultObjectId) override
virtual
IOController_i::SensorInfoSeq * 
getSensorSeq (const UniSetTypes::IDSeq &lst) override
virtual UniSetTypes::IDSeqsetOutputSeq (const IOController_i::OutSeq &lst, UniSetTypes::ObjectId sup_id) override
virtual UniversalIO::IOType getIOType (UniSetTypes::ObjectId sid) override
virtual
IOController_i::SensorInfoSeq * 
getSensorsMap () override
virtual
IOController_i::SensorIOInfo 
getSensorIOInfo (UniSetTypes::ObjectId sid) override
virtual CORBA::Long getRawValue (UniSetTypes::ObjectId sid) override
virtual void calibrate (UniSetTypes::ObjectId sid, const IOController_i::CalibrateInfo &ci, UniSetTypes::ObjectId adminId) override
IOController_i::CalibrateInfo getCalibrateInfo (UniSetTypes::ObjectId sid) override
IOController_i::SensorInfo SensorInfo (const UniSetTypes::ObjectId sid, const UniSetTypes::ObjectId node=UniSetTypes::uniset_conf()->getLocalNode())
UniSetTypes::Message::Priority getPriority (const UniSetTypes::ObjectId id)
virtual IOController_i::ShortIOInfo getChangedTime (const UniSetTypes::ObjectId id) override
virtual
IOController_i::ShortMapSeq * 
getSensors () override
ChangeSignal signal_change_value (UniSetTypes::ObjectId sid)
ChangeSignal signal_change_value ()
ChangeUndefinedStateSignal signal_change_undefined_state (UniSetTypes::ObjectId sid)
ChangeUndefinedStateSignal signal_change_undefined_state ()
IOStateList::iterator ioBegin ()
IOStateList::iterator ioEnd ()
IOStateList::iterator find (UniSetTypes::KeyType k)
int ioCount ()
virtual void localSetValue (IOStateList::iterator &it, const UniSetTypes::ObjectId sid, CORBA::Long value, UniSetTypes::ObjectId sup_id)
virtual long localGetValue (IOStateList::iterator &it, const UniSetTypes::ObjectId sid)
virtual void localSetUndefinedState (IOStateList::iterator &it, bool undefined, const UniSetTypes::ObjectId sid)

Защищенные типы

typedef sigc::signal< void,
IOStateList::iterator
&, IOController * > 
InitSignal
typedef sigc::slot< bool,
const USensorInfo
&, CORBA::Long,
UniSetTypes::ObjectId
IOFilterSlot
typedef std::list< IOFilterSlot > IOFilterSlotList

Защищенные члены

virtual bool deactivateObject () override
virtual bool activateObject () override
virtual void activateInit ()
virtual void sensorsRegistration ()
virtual void sensorsUnregistration ()
InitSignal signal_init ()
void ioRegistration (USensorInfo &&, bool force=false)
void ioUnRegistration (const UniSetTypes::ObjectId sid)
IOController_i::SensorIOInfo SensorIOInfo (long v, UniversalIO::IOType t, const IOController_i::SensorInfo &si, UniSetTypes::Message::Priority p=UniSetTypes::Message::Medium, long defval=0, IOController_i::CalibrateInfo *ci=0)
virtual void logging (UniSetTypes::SensorMessage &sm)
 сохранение информации об изменении состояния датчика
virtual void dumpToDB ()
 сохранение состояния всех датчиков в БД
IOStateList::iterator myioBegin ()
IOStateList::iterator myioEnd ()
IOStateList::iterator myiofind (UniSetTypes::ObjectId id)
IOFilterSlotList::iterator addIOFilter (IOFilterSlot sl, bool push_front=false)
void eraseIOFilter (IOFilterSlotList::iterator &it)
bool checkIOFilters (const USensorInfo &ai, CORBA::Long &newvalue, UniSetTypes::ObjectId sup_id)
bool iofiltersEmpty ()
int iodiltersSize ()

Друзья

class NCRestorer

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

Реализация интерфейса IOController-а


Определения типов

typedef sigc::signal<void, IOStateList::iterator&, IOController*> IOController::ChangeSignal
Предупреждения:
В сигнале напрямую передаётся итератор (т.е. по сути указатель на внутреннюю структуру!) Это не очень хорошо, с точки зрения "архитектуры", но оптимальнее по быстродействию! необходимо в обработчике не забывать использовать uniset_rwmutex_wrlock(val_lock) или uniset_rwmutex_rlock(val_lock)

Методы

void IOController::activateInit ( ) [protected, virtual]

Начальная инициализация (выставление значений)

Перекрестные ссылки IOController::USensorInfo::d_si, UniSetTypes::DefaultObjectId и IOController_i::SensorInfo::id.

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

bool IOController::activateObject ( ) [override, protected, virtual]
Заметки:
Переопределяя не забывайте вызвать базовую

Регистрирация объекта и всех его подобъектов в репозитории.

Заметки:
Только после этого он (и они) становятся доступны другим процессам

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

Переопределяется в SharedMemory, SharedMemory и IONotifyController.

Перекрестные ссылки activateInit() и sensorsRegistration().

bool IOController::deactivateObject ( ) [override, protected, virtual]
Заметки:
Переопределяя не забывайте вызвать базовую

Удаление объекта и всех его подобъектов из репозитория.

Заметки:
Объект становится недоступен другим процессам

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

Перекрестные ссылки sensorsUnregistration().

void IOController::dumpToDB ( ) [protected, virtual]

сохранение состояния всех датчиков в БД

Переопределяется в NullController.

Перекрестные ссылки UniSetTypes::DefaultObjectId, logging() и UniSetTypes::uniset_conf().

void IOController::ioRegistration ( USensorInfo &&  ainf,
bool  force = false 
) [protected]

регистрация датчика force=true - не проверять на дублирование (оптимизация)

Перекрестные ссылки UniSetTypes::DefaultObjectId, UniSetObject::getRef(), UInterface::registered(), UniSetObject::ui, UniSetTypes::uniset_conf() и UInterface::unregister().

void IOController::ioUnRegistration ( const UniSetTypes::ObjectId  sid) [protected]

разрегистрация датчика

Перекрестные ссылки UniSetObject::ui и UInterface::unregister().

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

void IOController::localSetUndefinedState ( IOStateList::iterator &  it,
bool  undefined,
const UniSetTypes::ObjectId  sid 
) [virtual]

функция выставления признака неопределённого состояния для аналоговых датчиков для дискретных датчиков необходимости для подобной функции нет. см. логику выставления в функции localSaveState

Перекрестные ссылки UniSetTypes::uniset_conf().

Используется в SMInterface::localSetUndefinedState().

void IOController::logging ( UniSetTypes::SensorMessage sm) [protected, virtual]

сохранение информации об изменении состояния датчика

Перекрестные ссылки UniSetTypes::DefaultObjectId, UInterface::send(), UniSetObject::ui и UniSetTypes::uniset_conf().

Используется в dumpToDB() и IONotifyController::loggingInfo().

virtual void IOController::sensorsRegistration ( ) [inline, protected, virtual]

регистрация датчиков, за информацию о которых отвечает данный IOController

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

void IOController::sensorsUnregistration ( ) [protected, virtual]

удаление из репозитория датчиков за информацию о которых отвечает данный IOController

Перекрестные ссылки ioUnRegistration().

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


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