Класс IONotifyController

#include <IONotifyController.h>

Граф наследования:IONotifyController:

IOController ObjectsManager UniSetObject IONotifyController_LT

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

Классы

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

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

typedef std::map<UniSetTypes::KeyType,ThresholdsListInfo> IONotifyController::AskThresholdMap

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


Методы

bool IONotifyController::activateObject (  )  [protected, virtual]

Заметки:
Переопределяя не забывайте вызвать базовую
Регистрирация объекта и всех его подобъектов в репозитории.
Заметки:
Только после этого он (и они) становятся доступны другим процессам

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

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

void IONotifyController::askSensor ( const IOController_i::SensorInfo si,
const UniSetTypes::ConsumerInfo ci,
UniversalIO::UIOCommand  cmd 
) [virtual]

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

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

void IONotifyController::askState ( const IOController_i::SensorInfo si,
const UniSetTypes::ConsumerInfo ci,
UniversalIO::UIOCommand  cmd 
) [virtual]

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

Перекрестные ссылки UniSetTypes::conf, DebugStream::debugging(), IOController_i::SensorInfo::id, UniSetTypes::ConsumerInfo::id, IOController_i::SensorInfo::node, UniSetTypes::ConsumerInfo::node, UniSetTypes::Configuration::oind, UniSetObject::ui, UniversalIO::UIODontNotify, UniversalIO::UIONotify, UniversalIO::UIONotifyFirstNotNull и UniSetTypes::unideb.

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

void IONotifyController::askValue ( const IOController_i::SensorInfo si,
const UniSetTypes::ConsumerInfo ci,
UniversalIO::UIOCommand  cmd 
) [virtual]

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

Перекрестные ссылки UniSetTypes::conf, DebugStream::debugging(), IOController_i::SensorInfo::id, UniSetTypes::ConsumerInfo::id, IOController_i::SensorInfo::node, UniSetTypes::ConsumerInfo::node, UniSetTypes::Configuration::oind, UniSetObject::ui, UniversalIO::UIODontNotify, UniversalIO::UIONotify, UniversalIO::UIONotifyFirstNotNull и UniSetTypes::unideb.

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

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.

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

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

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

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

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

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

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

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

Перекрестные ссылки 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, UniSetObject::ui и UniSetTypes::unideb.

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


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

Документация по UniSet. Последние изменения: Mon Dec 3 16:14:28 2012. Создано системой  doxygen 1.5.9