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

Классы

struct  ConsumerInfoExt
 
struct  ConsumerListInfo
 
struct  ThresholdInfoExt
 
struct  ThresholdsListInfo
 

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

typedef std::list
< ConsumerInfoExt
ConsumerList
 
typedef std::unordered_map
< uniset::ObjectId,
ConsumerListInfo
AskMap
 
typedef std::list
< ThresholdInfoExt
ThresholdExtList
 
typedef std::unordered_map
< uniset::ObjectId,
ThresholdsListInfo
AskThresholdMap
 
- Открытые типы унаследованные от uniset::IOController
typedef std::unordered_map
< uniset::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
 

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

 IONotifyController (const std::string &name, const std::string &section, std::shared_ptr< NCRestorer > dumper=nullptr)
 
 IONotifyController (const uniset::ObjectId id, std::shared_ptr< NCRestorer > dumper=nullptr)
 
virtual uniset::ObjectType getType () override
 
virtual uniset::SimpleInfogetInfo (const char *userparam=0) override
 
virtual void askSensor (const uniset::ObjectId sid, const uniset::ConsumerInfo &ci, UniversalIO::UIOCommand cmd) override
 
virtual void askThreshold (const uniset::ObjectId sid, const uniset::ConsumerInfo &ci, uniset::ThresholdId tid, CORBA::Long lowLimit, CORBA::Long hiLimit, CORBA::Boolean invert, UniversalIO::UIOCommand cmd) override
 
virtual
IONotifyController_i::ThresholdInfo 
getThresholdInfo (const uniset::ObjectId sid, uniset::ThresholdId tid) override
 
virtual
IONotifyController_i::ThresholdList
getThresholds (const uniset::ObjectId sid) override
 
virtual
IONotifyController_i::ThresholdsListSeq * 
getThresholdsList () override
 
virtual uniset::IDSeqaskSensorsSeq (const uniset::IDSeq &lst, const uniset::ConsumerInfo &ci, UniversalIO::UIOCommand cmd) override
 
virtual Poco::JSON::Object::Ptr httpHelp (const Poco::URI::QueryParameters &p) override
 
virtual Poco::JSON::Object::Ptr httpRequest (const string &req, const Poco::URI::QueryParameters &p) override
 
- Открытые члены унаследованные от uniset::IOController
 IOController (const std::string &name, const std::string &section)
 
 IOController (const uniset::ObjectId id)
 
virtual CORBA::Long getValue (uniset::ObjectId sid) override
 
virtual void setValue (uniset::ObjectId sid, CORBA::Long value, uniset::ObjectId sup_id=uniset::DefaultObjectId) override
 
virtual void setUndefinedState (uniset::ObjectId sid, CORBA::Boolean undefined, uniset::ObjectId sup_id=uniset::DefaultObjectId) override
 
virtual
IOController_i::SensorInfoSeq * 
getSensorSeq (const uniset::IDSeq &lst) override
 
virtual uniset::IDSeqsetOutputSeq (const IOController_i::OutSeq &lst, uniset::ObjectId sup_id) override
 
virtual UniversalIO::IOType getIOType (uniset::ObjectId sid) override
 
virtual
IOController_i::SensorInfoSeq * 
getSensorsMap () override
 
virtual
IOController_i::SensorIOInfo 
getSensorIOInfo (uniset::ObjectId sid) override
 
virtual CORBA::Long getRawValue (uniset::ObjectId sid) override
 
virtual void calibrate (uniset::ObjectId sid, const IOController_i::CalibrateInfo &ci, uniset::ObjectId adminId) override
 
IOController_i::CalibrateInfo getCalibrateInfo (uniset::ObjectId sid) override
 
IOController_i::SensorInfo SensorInfo (const uniset::ObjectId sid, const uniset::ObjectId node=uniset::uniset_conf() ->getLocalNode())
 
uniset::Message::Priority getPriority (const uniset::ObjectId id)
 
virtual IOController_i::ShortIOInfo getTimeChange (const uniset::ObjectId id) override
 
virtual
IOController_i::ShortMapSeq * 
getSensors () override
 
ChangeSignal signal_change_value (uniset::ObjectId sid)
 
ChangeSignal signal_change_value ()
 
ChangeUndefinedStateSignal signal_change_undefined_state (uniset::ObjectId sid)
 
ChangeUndefinedStateSignal signal_change_undefined_state ()
 
IOStateList::iterator ioBegin ()
 
IOStateList::iterator ioEnd ()
 
IOStateList::iterator find (uniset::ObjectId k)
 
int ioCount () const
 
- Открытые члены унаследованные от uniset::UniSetManager
 UniSetManager (uniset::ObjectId id)
 
 UniSetManager (const std::string &name, const std::string &section)
 
std::shared_ptr< UniSetManagerget_mptr ()
 
virtual void broadcast (const uniset::TransportMessage &msg) override
 
virtual uniset::SimpleInfoSeq * getObjectsInfo (CORBA::Long MaxLength=300, const char *userparam=0) override
 
virtual bool add (const std::shared_ptr< UniSetObject > &obj)
 
virtual bool remove (const std::shared_ptr< UniSetObject > &obj)
 
const std::shared_ptr
< UniSetManager
itemM (const uniset::ObjectId id)
 
const std::shared_ptr
< UniSetObject
itemO (const uniset::ObjectId id)
 
UniSetManagerList::const_iterator beginMList ()
 
UniSetManagerList::const_iterator endMList ()
 
ObjectsList::const_iterator beginOList ()
 
ObjectsList::const_iterator endOList ()
 
size_t objectsCount () const
 
PortableServer::POA_ptr getPOA ()
 
PortableServer::POAManager_ptr getPOAManager ()
 
- Открытые члены унаследованные от uniset::UniSetObject
 UniSetObject (const std::string &name, const std::string &section)
 
 UniSetObject (uniset::ObjectId id)
 
std::shared_ptr< UniSetObjectget_ptr ()
 
virtual CORBA::Boolean exist () override
 
virtual uniset::ObjectId getId () override
 
const uniset::ObjectId getId () const
 
std::string getName () const
 
const std::string getStrType ()
 
virtual uniset::SimpleInfoapiRequest (const char *query) override
 
virtual void push (const uniset::TransportMessage &msg) override
 поместить сообщение в очередь Подробнее...
 
virtual Poco::JSON::Object::Ptr httpGet (const Poco::URI::QueryParameters &p) override
 
uniset::ObjectPtr getRef () const
 
virtual timeout_t askTimer (uniset::TimerId timerid, timeout_t timeMS, clock_t ticks=-1, uniset::Message::Priority p=uniset::Message::High) override
 
- Открытые члены унаследованные от uniset::LT_Object
timeout_t checkTimers (UniSetObject *obj)
 
timeout_t getTimeInterval (uniset::TimerId timerid)
 
timeout_t getTimeLeft (uniset::TimerId timerid)
 

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

enum  UserDataID { udataConsumerList = 0, udataThresholdList = 1 }
 
- Защищенные типы унаследованные от uniset::IOController
typedef sigc::signal< void,
std::shared_ptr< USensorInfo >
&, IOController * > 
InitSignal
 
- Защищенные типы унаследованные от uniset::UniSetManager
enum  OManagerCommand { deactiv, activ, initial, term }
 
typedef UniSetManagerList::iterator MListIterator
 
- Защищенные типы унаследованные от uniset::LT_Object
typedef std::deque< TimerInfoTimersList
 

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

virtual bool activateObject () override
 
virtual void initItem (std::shared_ptr< USensorInfo > &usi, IOController *ic)
 
virtual void send (ConsumerListInfo &lst, const uniset::SensorMessage &sm)
 посылка информации об изменении состояния датчика Подробнее...
 
virtual void checkThreshold (std::shared_ptr< USensorInfo > &usi, bool send=true)
 проверка срабатывания пороговых датчиков Подробнее...
 
virtual void checkThreshold (IOController::IOStateList::iterator &li, const uniset::ObjectId sid, bool send_msg=true)
 
ThresholdExtList::iterator findThreshold (const uniset::ObjectId sid, const uniset::ThresholdId tid)
 поиск информации о пороговом датчике Подробнее...
 
virtual void dumpOrdersList (const uniset::ObjectId sid, const IONotifyController::ConsumerListInfo &lst)
 
virtual void dumpThresholdList (const uniset::ObjectId sid, const IONotifyController::ThresholdExtList &lst)
 
virtual void readDump ()
 
void onChangeUndefinedState (std::shared_ptr< USensorInfo > &usi, IOController *ic)
 
virtual long localSetValue (std::shared_ptr< USensorInfo > &usi, CORBA::Long value, uniset::ObjectId sup_id) override
 
Poco::JSON::Object::Ptr request_consumers (const std::string &req, const Poco::URI::QueryParameters &p)
 
Poco::JSON::Object::Ptr request_lost (const string &req, const Poco::URI::QueryParameters &p)
 
Poco::JSON::Object::Ptr getConsumers (uniset::ObjectId sid, ConsumerListInfo &clist, bool ifNotEmpty=true)
 
- Защищенные члены унаследованные от uniset::IOController
virtual long localSetValueIt (IOStateList::iterator &it, const uniset::ObjectId sid, CORBA::Long value, uniset::ObjectId sup_id)
 
virtual long localGetValue (IOStateList::iterator &it, const uniset::ObjectId sid)
 
virtual void localSetUndefinedState (IOStateList::iterator &it, bool undefined, const uniset::ObjectId sid)
 
long localGetValue (std::shared_ptr< USensorInfo > &usi)
 
virtual Poco::JSON::Object::Ptr request_get (const std::string &req, const Poco::URI::QueryParameters &p)
 
virtual Poco::JSON::Object::Ptr request_sensors (const std::string &req, const Poco::URI::QueryParameters &p)
 
void getSensorInfo (Poco::JSON::Array::Ptr &jdata, std::shared_ptr< USensorInfo > &s, bool shortInfo=false)
 
virtual bool deactivateObject () override
 
virtual void activateInit ()
 
virtual void sensorsRegistration ()
 
virtual void sensorsUnregistration ()
 
InitSignal signal_init ()
 
void ioRegistration (std::shared_ptr< USensorInfo > &usi, bool force=false)
 
void ioUnRegistration (const uniset::ObjectId sid)
 
IOController_i::SensorIOInfo SensorIOInfo (long v, UniversalIO::IOType t, const IOController_i::SensorInfo &si, uniset::Message::Priority p=uniset::Message::Medium, long defval=0, IOController_i::CalibrateInfo *ci=0, uniset::ObjectId sup_id=uniset::DefaultObjectId)
 
virtual void logging (uniset::SensorMessage &sm)
 сохранение информации об изменении состояния датчика Подробнее...
 
virtual void dumpToDB ()
 сохранение состояния всех датчиков в БД Подробнее...
 
IOStateList::iterator myioBegin ()
 
IOStateList::iterator myioEnd ()
 
IOStateList::iterator myiofind (uniset::ObjectId id)
 
size_t ioCount ()
 
- Защищенные члены унаследованные от uniset::UniSetManager
virtual bool addManager (const std::shared_ptr< UniSetManager > &mngr)
 
virtual bool removeManager (const std::shared_ptr< UniSetManager > &mngr)
 
virtual bool addObject (const std::shared_ptr< UniSetObject > &obj)
 
virtual bool removeObject (const std::shared_ptr< UniSetObject > &obj)
 
void objects (OManagerCommand cmd)
 
void managers (OManagerCommand cmd)
 
virtual void sigterm (int signo) override
 
void initPOA (const std::weak_ptr< UniSetManager > &rmngr)
 
const std::shared_ptr
< UniSetObject
findObject (const std::string &name)
 
const std::shared_ptr
< UniSetManager
findManager (const std::string &name)
 
const std::shared_ptr
< UniSetObject
deepFindObject (const std::string &name)
 
void getAllObjectsList (std::vector< std::shared_ptr< UniSetObject >> &vec, size_t lim=1000)
 
int getObjectsInfo (const std::shared_ptr< UniSetManager > &mngr, uniset::SimpleInfoSeq *seq, int begin, const long uplimit, const char *userparam)
 
- Защищенные члены унаследованные от uniset::UniSetObject
virtual void processingMessage (const uniset::VoidMessage *msg)
 
virtual void sysCommand (const uniset::SystemMessage *sm)
 
virtual void sensorInfo (const uniset::SensorMessage *sm)
 
virtual void timerInfo (const uniset::TimerMessage *tm)
 
VoidMessagePtr receiveMessage ()
 
virtual VoidMessagePtr waitMessage (timeout_t msec=UniSetTimer::WaitUpTime)
 
void termWaiting ()
 
size_t countMessages ()
 
size_t getCountOfLostMessages () const
 
void terminate ()
 
void thread (bool create)
 
void offThread ()
 
void onThread ()
 
virtual void callback ()
 
void setID (uniset::ObjectId id)
 
void setThreadPriority (Poco::Thread::Priority p)
 
void setMaxSizeOfMessageQueue (size_t s)
 
size_t getMaxSizeOfMessageQueue () const
 
bool isActive () const
 
void setActive (bool set)
 
virtual Poco::JSON::Object::Ptr httpGetMyInfo (Poco::JSON::Object::Ptr root)
 
Poco::JSON::Object::Ptr request_conf (const std::string &req, const Poco::URI::QueryParameters &p)
 
Poco::JSON::Object::Ptr request_conf_name (const std::string &name, const std::string &props)
 
- Защищенные члены унаследованные от uniset::LT_Object
virtual std::string getTimerName (int id)
 
TimersList getTimersList ()
 

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

std::shared_ptr< NCRestorerrestorer
 
- Защищенные данные унаследованные от uniset::UniSetManager
PortableServer::POA_var poa
 
PortableServer::POAManager_var pman
 
- Защищенные данные унаследованные от uniset::UniSetObject
std::shared_ptr< UInterfaceui
 
std::string myname
 
std::string section
 
std::weak_ptr< UniSetManagermymngr
 
- Защищенные данные унаследованные от uniset::LT_Object
timeout_t sleepTime
 

Друзья

class NCRestorer
 

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

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

....
ConsumerMaxAttempts - максимальное число неудачных

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

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

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

словарь: аналоговый датчик –> список порогов по нему

список порогов (информация по каждому порогу)

Перечисления

Предупреждения
Оптимизация использует userdata! Это опасно, если кто-то ещё захочет его использовать!

Методы

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

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

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

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

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

void IONotifyController::askSensor ( const uniset::ObjectId  sid,
const uniset::ConsumerInfo ci,
UniversalIO::UIOCommand  cmd 
)
overridevirtual
Аргументы
si- информация о датчике
ci- информация о заказчике
cmd- команда см. UniversalIO::UIOCommand
void IONotifyController::askThreshold ( const uniset::ObjectId  sid,
const uniset::ConsumerInfo ci,
uniset::ThresholdId  tid,
CORBA::Long  lowLimit,
CORBA::Long  hiLimit,
CORBA::Boolean  invert,
UniversalIO::UIOCommand  cmd 
)
overridevirtual
Предупреждения
Оптимизация использует userdata! Это опасно, если кто-то ещё захочет его использовать!
virtual void uniset::IONotifyController::checkThreshold ( std::shared_ptr< USensorInfo > &  usi,
bool  send = true 
)
protectedvirtual

проверка срабатывания пороговых датчиков

void IONotifyController::dumpOrdersList ( const uniset::ObjectId  sid,
const IONotifyController::ConsumerListInfo lst 
)
protectedvirtual

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

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

void IONotifyController::dumpThresholdList ( const uniset::ObjectId  sid,
const IONotifyController::ThresholdExtList lst 
)
protectedvirtual

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

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

IONotifyController::ThresholdExtList::iterator IONotifyController::findThreshold ( const uniset::ObjectId  sid,
const uniset::ThresholdId  tid 
)
protected

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

SimpleInfo * IONotifyController::getInfo ( const char *  userparam = 0)
overridevirtual

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

IONotifyController_i::ThresholdInfo IONotifyController::getThresholdInfo ( const uniset::ObjectId  sid,
uniset::ThresholdId  tid 
)
overridevirtual
Предупреждения
На самом деле список разрешает иметь много порогов с одинаковым ID, для разных "заказчиков". Но здесь мы возвращаем первый встретившийся..
long IONotifyController::localSetValue ( std::shared_ptr< USensorInfo > &  usi,
CORBA::Long  value,
uniset::ObjectId  sup_id 
)
overrideprotectedvirtual
Предупреждения
Оптимизация использует userdata! Это опасно, если кто-то ещё захочет его использовать!

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

void IONotifyController::onChangeUndefinedState ( std::shared_ptr< USensorInfo > &  usi,
IOController ic 
)
protected
Предупреждения
Оптимизация использует userdata! Это опасно, если кто-то ещё захочет его использовать!
void IONotifyController::readDump ( )
protectedvirtual

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

void IONotifyController::send ( ConsumerListInfo lst,
const uniset::SensorMessage sm 
)
protectedvirtual

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

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