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

#include <IOController.h>

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

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

Классы

struct  USensorInfo

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

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

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

 IOController (const std::string &name, const std::string &section)
 IOController (const UniSetTypes::ObjectId id)
virtual UniSetTypes::ObjectType getType () override
virtual UniSetTypes::SimpleInfogetInfo (::CORBA::Long userparam=0) 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)
void localSetValue (std::shared_ptr< USensorInfo > &usi, UniSetTypes::ObjectId sid, CORBA::Long value, UniSetTypes::ObjectId sup_id)
long localGetValue (std::shared_ptr< USensorInfo > &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,
std::shared_ptr< 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 (std::shared_ptr< 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, UniSetTypes::ObjectId sup_id=UniSetTypes::DefaultObjectId)
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 (std::shared_ptr< USensorInfo > &ai, CORBA::Long &newvalue, UniSetTypes::ObjectId sup_id)
bool iofiltersEmpty ()
int iodiltersSize ()

Друзья

class NCRestorer

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

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


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

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

Методы

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

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

Перекрестные ссылки UniSetTypes::DefaultObjectId.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Перекрестные ссылки UniSetObject::ui.

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

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

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

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

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

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

Перекрестные ссылки UniSetTypes::DefaultObjectId, 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().


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