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

#include <IONotifyController.h>

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

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

Классы

struct  ConsumerInfoExt
struct  ThresholdInfoExt
struct  ThresholdsListInfo

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

typedef sigc::signal< void,
UniSetTypes::SensorMessage * > 
ChangeSignal
typedef std::list
< ConsumerInfoExt
ConsumerList
typedef std::list
< ThresholdInfoExt
ThresholdExtList
typedef std::map
< UniSetTypes::KeyType,
ConsumerList > 
AskMap
typedef std::map
< UniSetTypes::KeyType,
ThresholdsListInfo
AskThresholdMap

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

 IONotifyController (const std::string name, const std::string section, NCRestorer *dumper=0)
 IONotifyController (UniSetTypes::ObjectId id, NCRestorer *dumper=0)
virtual UniSetTypes::ObjectType getType ()
virtual void askSensor (const IOController_i::SensorInfo &si, const UniSetTypes::ConsumerInfo &ci, UniversalIO::UIOCommand cmd)
virtual void askState (const IOController_i::SensorInfo &si, const UniSetTypes::ConsumerInfo &ci, UniversalIO::UIOCommand cmd)
virtual void askValue (const IOController_i::SensorInfo &si, const UniSetTypes::ConsumerInfo &ci, UniversalIO::UIOCommand cmd)
virtual void askThreshold (const IOController_i::SensorInfo &si, const UniSetTypes::ConsumerInfo &ci, UniSetTypes::ThresholdId tid, CORBA::Long lowLimit, CORBA::Long hiLimit, CORBA::Long sensibility, UniversalIO::UIOCommand cmd)
virtual void askOutput (const IOController_i::SensorInfo &si, const UniSetTypes::ConsumerInfo &ci, UniversalIO::UIOCommand cmd)
virtual UniSetTypes::IDSeqaskSensorsSeq (const UniSetTypes::IDSeq &lst, const UniSetTypes::ConsumerInfo &ci, UniversalIO::UIOCommand cmd)
ChangeSignal signal_change_state ()
virtual
IONotifyController_i::ThresholdsListSeq * 
getThresholdsList ()
virtual void localSaveValue (IOController::AIOStateList::iterator &it, const IOController_i::SensorInfo &si, CORBA::Long newvalue, UniSetTypes::ObjectId sup_id)
virtual void localSaveState (IOController::DIOStateList::iterator &it, const IOController_i::SensorInfo &si, CORBA::Boolean newstate, UniSetTypes::ObjectId sup_id)
virtual void localSetState (IOController::DIOStateList::iterator &it, const IOController_i::SensorInfo &si, CORBA::Boolean newstate, UniSetTypes::ObjectId sup_id)
virtual void localSetValue (IOController::AIOStateList::iterator &it, const IOController_i::SensorInfo &si, CORBA::Long value, UniSetTypes::ObjectId sup_id)

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

virtual bool activateObject ()
bool myAFilter (const UniAnalogIOInfo &ai, CORBA::Long newvalue, UniSetTypes::ObjectId sup_id)
bool myDFilter (const UniDigitalIOInfo &ai, CORBA::Boolean newstate, UniSetTypes::ObjectId sup_id)
virtual void send (ConsumerList &lst, UniSetTypes::SensorMessage &sm)
 посылка информации об изменении состояния датчика
virtual void checkThreshold (AIOStateList::iterator &li, const IOController_i::SensorInfo &si, bool send=true)
 проверка срабатывания пороговых датчиков
ThresholdExtList::iterator findThreshold (UniSetTypes::KeyType k, UniSetTypes::ThresholdId tid)
 поиск информации о пороговом датчике
virtual void loggingInfo (UniSetTypes::SensorMessage &sm)
 сохранение информации об изменении состояния датчика в базу
virtual void dumpOrdersList (const IOController_i::SensorInfo &si, const IONotifyController::ConsumerList &lst)
virtual void dumpThresholdList (const IOController_i::SensorInfo &si, const IONotifyController::ThresholdExtList &lst)
virtual void readDump ()
virtual void buildDependsList ()
void onChangeUndefined (DependsList::iterator it, bool undefined)

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

NCRestorerrestorer
UniSetTypes::uniset_mutex sig_mutex
ChangeSignal changeSignal

Друзья

class NCRestorer

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

Необходимо сделать:
Сделать логирование выходов

Заказ датчиков

.... ConsumerMaxAttempts - максимальное число неудачных попыток послать сообщение "заказчику". Настраивается в конфигурационном файле. По умолчанию = 5.


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

typedef std::map<UniSetTypes::KeyType,ConsumerList> IONotifyController::AskMap

массив пар датчик->список потребителей

массив пар датчик->список порогов


Методы

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

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

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

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

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

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

Аргументы:
si- информация о датчике
ci- информация о заказчике
cmd- команда см. UniversalIO::UIOCommand

Перекрестные ссылки IONotifyController_i::askOutput(), IONotifyController_i::askState(), IONotifyController_i::askValue(), UniSetTypes::conf, DebugStream::debugging(), IOController_i::SensorInfo::id, UniSetTypes::Configuration::oind и UniSetTypes::unideb.

void IONotifyController::buildDependsList ( ) [protected, virtual]

построение списка зависимостей по каждому io

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

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

void IONotifyController::checkThreshold ( AIOStateList::iterator &  li,
const IOController_i::SensorInfo si,
bool  send = true 
) [protected, virtual]
void IONotifyController::dumpOrdersList ( const IOController_i::SensorInfo si,
const IONotifyController::ConsumerList &  lst 
) [protected, virtual]

сохранение списка заказчиков По умолчанию делает dump, если объявлен dumper.

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

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

void IONotifyController::dumpThresholdList ( const IOController_i::SensorInfo si,
const IONotifyController::ThresholdExtList &  lst 
) [protected, virtual]

сохранение списка заказчиков пороговых датчиков По умолчанию делает dump, если объявлен dumper.

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

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

IONotifyController::ThresholdExtList::iterator IONotifyController::findThreshold ( UniSetTypes::KeyType  k,
UniSetTypes::ThresholdId  tid 
) [protected]

поиск информации о пороговом датчике

void IONotifyController::loggingInfo ( UniSetTypes::SensorMessage sm) [protected, virtual]

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

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

Перекрестные ссылки IOController::logging().

void IONotifyController::readDump ( ) [protected, virtual]

чтение dump-файла

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

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

void IONotifyController::send ( ConsumerList &  lst,
UniSetTypes::SensorMessage sm 
) [protected, virtual]

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

Заметки:
В случае зависания в функции push, будут остановлены рассылки другим объектам. Возможно нужно ввести своего агента на удалённой стороне, который будет заниматься только приёмом сообщений и локальной рассылкой. Lav

Перекрестные ссылки UniSetTypes::conf, UniSetTypes::Configuration::oind, UniversalInterface::resolve(), UniSetObject::ui и UniSetTypes::unideb.

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


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