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

Классы

struct  InitRegInfo
 
struct  RegInfo
 
struct  RSProperty
 
struct  RTUDevice
 

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

enum  ExchangeMode {
  emNone = 0, emWriteOnly = 1, emReadOnly = 2, emSkipSaveToSM = 3,
  emSkipExchange = 4
}
 
enum  DeviceType { dtUnknown, dtRTU, dtMTR, dtRTU188 }
 
enum  Timer { tmExchange }
 
typedef std::list< RSPropertyPList
 
typedef std::map
< ModbusRTU::RegID,
std::shared_ptr< RegInfo > > 
RegMap
 
typedef std::unordered_map
< ModbusRTU::ModbusAddr,
std::shared_ptr< RTUDevice > > 
RTUDeviceMap
 

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

 MBExchange (uniset::ObjectId objId, uniset::ObjectId shmID, const std::shared_ptr< SharedMemory > &ic=nullptr, const std::string &prefix="mb")
 
void printMap (RTUDeviceMap &d)
 
void execute ()
 
std::shared_ptr< LogAgregatorgetLogAggregator ()
 
std::shared_ptr< DebugStreamlog ()
 
virtual uniset::SimpleInfogetInfo (const char *userparam=0) override
 
- Открытые члены унаследованные от 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
 
virtual uniset::ObjectType getType () override
 
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
 
virtual Poco::JSON::Object::Ptr httpHelp (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)
 
- Открытые члены унаследованные от uniset::UHttp::IHttpRequest
virtual Poco::JSON::Object::Ptr httpRequest (const std::string &req, const Poco::URI::QueryParameters &p)
 

Открытые статические члены

static void help_print (int argc, const char *const *argv)
 
static DeviceType getDeviceType (const std::string &dtype)
 
static std::ostream & print_plist (std::ostream &os, const PList &p)
 

Статические открытые данные

static const int NoSafetyState = -1
 

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

typedef std::list< InitRegInfoInitList
 
typedef std::list< IOBaseThresholdList
 
- Защищенные типы унаследованные от uniset::LT_Object
typedef std::deque< TimerInfoTimersList
 

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

virtual void step ()
 
virtual void sysCommand (const uniset::SystemMessage *msg) override
 
virtual void sensorInfo (const uniset::SensorMessage *sm) override
 
virtual void timerInfo (const uniset::TimerMessage *tm) override
 
virtual void askSensors (UniversalIO::UIOCommand cmd)
 
virtual void initOutput ()
 
virtual void sigterm (int signo) override
 
virtual bool activateObject () override
 Активизация объекта (переопределяется для необходимых действий после активизации) Подробнее...
 
virtual void initIterators ()
 
virtual void initValues ()
 
void firstInitRegisters ()
 
bool preInitRead (InitList::iterator &p)
 
bool initSMValue (ModbusRTU::ModbusData *data, int count, RSProperty *p)
 
virtual std::shared_ptr
< ModbusClient
initMB (bool reopen=false)=0
 
virtual bool poll ()
 
bool pollRTU (std::shared_ptr< RTUDevice > &dev, RegMap::iterator &it)
 
void updateSM ()
 
void updateRTU (RegMap::iterator &it)
 
void updateMTR (RegMap::iterator &it)
 
void updateRTU188 (RegMap::iterator &it)
 
void updateRSProperty (RSProperty *p, bool write_only=false)
 
virtual void updateRespondSensors ()
 
bool checkUpdateSM (bool wrFunc, long devMode)
 
bool checkPoll (bool wrFunc) const
 
bool checkProcActive () const
 
void setProcActive (bool st)
 
void waitSMReady ()
 
void readConfiguration ()
 
bool readItem (const std::shared_ptr< UniXML > &xml, UniXML::iterator &it, xmlNode *sec)
 
bool initItem (UniXML::iterator &it)
 
void initDeviceList ()
 
void initOffsetList ()
 
std::shared_ptr< RTUDeviceaddDev (RTUDeviceMap &dmap, ModbusRTU::ModbusAddr a, UniXML::iterator &it)
 
std::shared_ptr< RegInfoaddReg (std::shared_ptr< RegMap > &devices, ModbusRTU::RegID id, ModbusRTU::ModbusData r, UniXML::iterator &it, std::shared_ptr< RTUDevice > dev)
 
RSPropertyaddProp (PList &plist, RSProperty &&p)
 
bool initMTRitem (UniXML::iterator &it, std::shared_ptr< RegInfo > &p)
 
bool initRTU188item (UniXML::iterator &it, std::shared_ptr< RegInfo > &p)
 
bool initRSProperty (RSProperty &p, UniXML::iterator &it)
 
bool initRegInfo (std::shared_ptr< RegInfo > &r, UniXML::iterator &it, std::shared_ptr< RTUDevice > &dev)
 
bool initRTUDevice (std::shared_ptr< RTUDevice > &d, UniXML::iterator &it)
 
virtual bool initDeviceInfo (RTUDeviceMap &m, ModbusRTU::ModbusAddr a, UniXML::iterator &it)
 
std::string initPropPrefix (const std::string &def_prop_prefix="")
 
void rtuQueryOptimization (RTUDeviceMap &m)
 
- Защищенные члены унаследованные от uniset::UniSetObject
virtual void processingMessage (const uniset::VoidMessage *msg)
 
VoidMessagePtr receiveMessage ()
 
virtual VoidMessagePtr waitMessage (timeout_t msec=UniSetTimer::WaitUpTime)
 
void termWaiting ()
 
size_t countMessages ()
 
size_t getCountOfLostMessages () const
 
virtual bool deactivateObject ()
 Деактивиция объекта (переопределяется для необходимых действий перед деактивацией) Подробнее...
 
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 ()
 

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

bool allInitOK
 
RTUDeviceMap devices
 
InitList initRegList
 
xmlNode * cnode = { 0 }
 
std::string s_field
 
std::string s_fvalue
 
std::shared_ptr< SMInterfaceshm
 
timeout_t initPause = { 3000 }
 
uniset::uniset_rwmutex mutex_start
 
bool force = { false }
 
bool force_out = { false }
 
bool mbregFromID = { false }
 
timeout_t polltime = { 100 }
 
timeout_t sleepPause_msec
 
size_t maxQueryCount = { ModbusRTU::MAXDATALEN }
 
PassiveTimer ptHeartBeat
 
uniset::ObjectId sidHeartBeat = { uniset::DefaultObjectId }
 
long maxHeartBeat = { 10 }
 
IOController::IOStateList::iterator itHeartBeat
 
uniset::ObjectId test_id = { uniset::DefaultObjectId }
 
uniset::ObjectId sidExchangeMode = { uniset::DefaultObjectId }
 
IOController::IOStateList::iterator itExchangeMode
 
long exchangeMode = {emNone}
 
std::atomic_bool activated = { false }
 
timeout_t activateTimeout = { 20000 }
 
bool noQueryOptimization = { false }
 
bool no_extimer = { false }
 
std::string prefix
 
timeout_t stat_time = { 0 }
 
size_t poll_count = { 0 }
 
PassiveTimer ptStatistic
 
std::string statInfo = { "" }
 
std::string prop_prefix
 
std::shared_ptr< ModbusClientmb
 
timeout_t recv_timeout = { 500 }
 
timeout_t default_timeout = { 5000 }
 
timeout_t aftersend_pause = { 0 }
 
PassiveTimer ptReopen
 
Trigger trReopen
 
PassiveTimer ptInitChannel
 
ThresholdList thrlist
 
std::string defaultMBtype
 
std::string defaultMBaddr
 
bool defaultMBinitOK = { false }
 
std::shared_ptr< LogAgregatorloga
 
std::shared_ptr< DebugStreammblog
 
std::shared_ptr< LogServerlogserv
 
std::string logserv_host = {""}
 
int logserv_port = {0}
 
const std::shared_ptr
< SharedMemory
ic
 
VMonitor vmon
 
size_t ncycle = { 0 }
 
- Защищенные данные унаследованные от uniset::UniSetObject
std::shared_ptr< UInterfaceui
 
std::string myname
 
std::string section
 
std::weak_ptr< UniSetManagermymngr
 
- Защищенные данные унаследованные от uniset::LT_Object
timeout_t sleepTime
 

Друзья

std::ostream & operator<< (std::ostream &os, const ExchangeMode &em)
 
std::ostream & operator<< (std::ostream &os, const DeviceType &dt)
 
std::ostream & operator<< (std::ostream &os, const RSProperty &p)
 
std::ostream & operator<< (std::ostream &os, RegInfo &r)
 
std::ostream & operator<< (std::ostream &os, RegInfo *r)
 
std::ostream & operator<< (std::ostream &os, RTUDevice &d)
 
std::ostream & operator<< (std::ostream &os, RTUDeviceMap &d)
 

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

Базовый класс для реализация обмена по протоколу Modbus [RTU|TCP].

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

Элементы перечислений
dtUnknown 

неизвестный

dtRTU 

RTU (default)

dtMTR 

MTR (DEIF)

dtRTU188 

RTU188 (Fastwell)

Режимы работы процесса обмена

Элементы перечислений
emNone 

нормальная работа (по умолчанию)

emWriteOnly 

"только посылка данных" (работают только write-функции)

emReadOnly 

"только чтение" (работают только read-функции)

emSkipSaveToSM 

не писать данные в SM (при этом работают и read и write функции)

emSkipExchange 

отключить обмен

Методы

bool uniset::MBExchange::activateObject ( )
overrideprotectedvirtual

Активизация объекта (переопределяется для необходимых действий после активизации)

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

void uniset::MBExchange::help_print ( int  argc,
const char *const *  argv 
)
static

глобальная функция для вывода help-а

bool uniset::MBExchange::initItem ( UniXML::iterator it)
protected

приоритет опроса: 1...n - задаёт "часоту" опроса. Т.е. каждые 1...n циклов

void uniset::MBExchange::sigterm ( int  signo)
overrideprotectedvirtual

Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.

Предупреждения
В обработчике сигналов ЗАПРЕЩЕНО вызывать функции подобные exit(..), abort()!!!!

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

Переопределяется в uniset::MBTCPMultiMaster и uniset::MBTCPMaster.

Данные класса

long uniset::MBExchange::exchangeMode = {emNone}
protected

режим работы см. ExchangeMode

bool uniset::MBExchange::force = { false }
protected

флаг означающий, что надо сохранять в SM, даже если значение не менялось

bool uniset::MBExchange::force_out = { false }
protected

флаг означающий, принудительного чтения выходов

InitList uniset::MBExchange::initRegList
protected

список регистров для инициализации

size_t uniset::MBExchange::maxQueryCount = { ModbusRTU::MAXDATALEN }
protected

максимальное количество регистров для одного запроса

size_t uniset::MBExchange::ncycle = { 0 }
protected

текущий номер цикла опроса

timeout_t uniset::MBExchange::polltime = { 100 }
protected

переодичность обновления данных, [мсек]

std::string uniset::MBExchange::prop_prefix
protected

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

PassiveTimer uniset::MBExchange::ptInitChannel
protected

задержка не инициализацию связи

PassiveTimer uniset::MBExchange::ptReopen
protected

таймер для переоткрытия соединения

PassiveTimer uniset::MBExchange::ptStatistic
protected

таймер для сбора статистики обмена

uniset::ObjectId uniset::MBExchange::sidExchangeMode = { uniset::DefaultObjectId }
protected

иденидентификатор для датчика режима работы

timeout_t uniset::MBExchange::stat_time = { 0 }
protected

время сбора статистики обмена, 0 - отключена