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

#include <MBExchange.h>

Граф наследования:MBExchange:
UniSetObject_LT UniSetObject_LT UniSetObject UniSetObject MBTCPMaster MBTCPMaster RTUExchange RTUExchange

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

Классы

struct  InitRegInfo
struct  RegInfo
struct  RSProperty
struct  RTUDevice

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

enum  ExchangeMode {
  emNone, emWriteOnly, emReadOnly, emSkipSaveToSM,
  emNone, emWriteOnly, emReadOnly, emSkipSaveToSM
}
enum  DeviceType {
  dtUnknown, dtRTU, dtMTR, dtRTU188,
  dtUnknown, dtRTU, dtMTR, dtRTU188
}
enum  Timer { tmExchange, tmExchange }
enum  ExchangeMode {
  emNone, emWriteOnly, emReadOnly, emSkipSaveToSM,
  emNone, emWriteOnly, emReadOnly, emSkipSaveToSM
}
enum  DeviceType {
  dtUnknown, dtRTU, dtMTR, dtRTU188,
  dtUnknown, dtRTU, dtMTR, dtRTU188
}
enum  Timer { tmExchange, tmExchange }
typedef std::list< RSPropertyPList
typedef unsigned long RegID
typedef std::map< RegID,
RegInfo * > 
RegMap
typedef std::map
< ModbusRTU::ModbusAddr,
RTUDevice * > 
RTUDeviceMap
typedef std::list< RSPropertyPList
typedef unsigned long RegID
typedef std::map< RegID,
RegInfo * > 
RegMap
typedef std::map
< ModbusRTU::ModbusAddr,
RTUDevice * > 
RTUDeviceMap

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

 MBExchange (UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmID, SharedMemory *ic=0, const std::string prefix="mb")
void printMap (RTUDeviceMap &d)
void execute ()
 MBExchange (UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmID, SharedMemory *ic=0, const std::string prefix="mb")
void printMap (RTUDeviceMap &d)
void execute ()

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

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, PList &p)
static RegID genRegID (const ModbusRTU::ModbusData r, const int fn)
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, PList &p)
static RegID genRegID (const ModbusRTU::ModbusData r, const int fn)

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

static const int NoSafetyState = -1

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

typedef std::list< InitRegInfoInitList
typedef std::list< InitRegInfoInitList

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

virtual void step ()
virtual void processingMessage (UniSetTypes::VoidMessage *msg)
virtual void sysCommand (UniSetTypes::SystemMessage *msg)
virtual void sensorInfo (UniSetTypes::SensorMessage *sm)
virtual void timerInfo (UniSetTypes::TimerMessage *tm)
virtual void askSensors (UniversalIO::UIOCommand cmd)
virtual void initOutput ()
virtual void sigterm (int signo)
virtual bool activateObject ()
 Активизация объекта (переопределяется для необходимых действий после активизации)
virtual void initIterators ()
void firstInitRegisters ()
bool preInitRead (InitList::iterator &p)
bool initSMValue (ModbusRTU::ModbusData *data, int count, RSProperty *p)
virtual ModbusClientinitMB (bool reopen=false)=0
virtual void poll ()
bool pollRTU (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)
bool checkPoll (bool wrFunc)
bool checkProcActive ()
void setProcActive (bool st)
void waitSMReady ()
void readConfiguration ()
bool readItem (UniXML &xml, UniXML_iterator &it, xmlNode *sec)
bool initItem (UniXML_iterator &it)
void initDeviceList ()
void initOffsetList ()
RTUDeviceaddDev (RTUDeviceMap &dmap, ModbusRTU::ModbusAddr a, UniXML_iterator &it)
RegInfoaddReg (RegMap &rmap, RegID id, ModbusRTU::ModbusData r, UniXML_iterator &it, RTUDevice *dev, RegInfo *rcopy=0)
RSPropertyaddProp (PList &plist, RSProperty &p)
bool initMTRitem (UniXML_iterator &it, RegInfo *p)
bool initRTU188item (UniXML_iterator &it, RegInfo *p)
bool initRSProperty (RSProperty &p, UniXML_iterator &it)
bool initRegInfo (RegInfo *r, UniXML_iterator &it, RTUDevice *dev)
bool initRTUDevice (RTUDevice *d, UniXML_iterator &it)
virtual bool initDeviceInfo (RTUDeviceMap &m, ModbusRTU::ModbusAddr a, UniXML_iterator &it)
void rtuQueryOptimization (RTUDeviceMap &m)
virtual void step ()
virtual void processingMessage (UniSetTypes::VoidMessage *msg)
virtual void sysCommand (UniSetTypes::SystemMessage *msg)
virtual void sensorInfo (UniSetTypes::SensorMessage *sm)
virtual void timerInfo (UniSetTypes::TimerMessage *tm)
virtual void askSensors (UniversalIO::UIOCommand cmd)
virtual void initOutput ()
virtual void sigterm (int signo)
virtual bool activateObject ()
 Активизация объекта (переопределяется для необходимых действий после активизации)
virtual void initIterators ()
void firstInitRegisters ()
bool preInitRead (InitList::iterator &p)
bool initSMValue (ModbusRTU::ModbusData *data, int count, RSProperty *p)
virtual ModbusClientinitMB (bool reopen=false)=0
virtual void poll ()
bool pollRTU (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)
bool checkPoll (bool wrFunc)
bool checkProcActive ()
void setProcActive (bool st)
void waitSMReady ()
void readConfiguration ()
bool readItem (UniXML &xml, UniXML_iterator &it, xmlNode *sec)
bool initItem (UniXML_iterator &it)
void initDeviceList ()
void initOffsetList ()
RTUDeviceaddDev (RTUDeviceMap &dmap, ModbusRTU::ModbusAddr a, UniXML_iterator &it)
RegInfoaddReg (RegMap &rmap, RegID id, ModbusRTU::ModbusData r, UniXML_iterator &it, RTUDevice *dev, RegInfo *rcopy=0)
RSPropertyaddProp (PList &plist, RSProperty &p)
bool initMTRitem (UniXML_iterator &it, RegInfo *p)
bool initRTU188item (UniXML_iterator &it, RegInfo *p)
bool initRSProperty (RSProperty &p, UniXML_iterator &it)
bool initRegInfo (RegInfo *r, UniXML_iterator &it, RTUDevice *dev)
bool initRTUDevice (RTUDevice *d, UniXML_iterator &it)
virtual bool initDeviceInfo (RTUDeviceMap &m, ModbusRTU::ModbusAddr a, UniXML_iterator &it)
void rtuQueryOptimization (RTUDeviceMap &m)

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

bool allInitOK
RTUDeviceMap rmap
InitList initRegList
UniSetTypes::uniset_mutex pollMutex
xmlNode * cnode
std::string s_field
std::string s_fvalue
SMInterfaceshm
bool initPause
UniSetTypes::uniset_mutex mutex_start
bool force
bool force_out
bool mbregFromID
int polltime
timeout_t sleepPause_usec
PassiveTimer ptHeartBeat
UniSetTypes::ObjectId sidHeartBeat
int maxHeartBeat
IOController::AIOStateList::iterator aitHeartBeat
UniSetTypes::ObjectId test_id
UniSetTypes::ObjectId sidExchangeMode
IOController::AIOStateList::iterator aitExchangeMode
long exchangeMode
UniSetTypes::uniset_mutex actMutex
bool activated
int activateTimeout
bool noQueryOptimization
bool no_extimer
std::string prefix
timeout_t stat_time
int poll_count
PassiveTimer ptStatistic
std::string prop_prefix
ModbusClientmb
PassiveTimer ptTimeout
bool pollActivated
int recv_timeout

Друзья

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)
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)

dtUnknown 

неизвестный

dtRTU 

RTU (default)

dtMTR 

MTR (DEIF)

dtRTU188 

RTU188 (Fastwell)

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

неизвестный

dtRTU 

RTU (default)

dtMTR 

MTR (DEIF)

dtRTU188 

RTU188 (Fastwell)

dtUnknown 

неизвестный

dtRTU 

RTU (default)

dtMTR 

MTR (DEIF)

dtRTU188 

RTU188 (Fastwell)

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

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

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

emWriteOnly 

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

emReadOnly 

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

emSkipSaveToSM 

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

emNone 

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

emWriteOnly 

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

emReadOnly 

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

emSkipSaveToSM 

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

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

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

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

emWriteOnly 

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

emReadOnly 

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

emSkipSaveToSM 

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

emNone 

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

emWriteOnly 

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

emReadOnly 

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

emSkipSaveToSM 

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


Методы

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

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

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

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

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

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

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

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

Переопределяется в MBTCPMaster, MBTCPMaster, RTUExchange и RTUExchange.

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

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

Переопределяется в MBTCPMaster, MBTCPMaster, RTUExchange и RTUExchange.

void MBExchange::processingMessage ( UniSetTypes::VoidMessage msg) [protected, virtual]

обработка приходящих сообщений

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

virtual void MBExchange::processingMessage ( UniSetTypes::VoidMessage msg) [protected, virtual]

обработка приходящих сообщений

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

void MBExchange::sigterm ( int  signo) [protected, virtual]

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

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

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

virtual void MBExchange::sigterm ( int  signo) [protected, virtual]

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

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

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


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

long MBExchange::exchangeMode [protected]

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

bool MBExchange::force [protected]

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

bool MBExchange::force_out [protected]

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

InitList MBExchange::initRegList [protected]

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

int MBExchange::polltime [protected]

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

std::string MBExchange::prop_prefix [protected]

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

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

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

timeout_t MBExchange::stat_time [protected]

время сбора статистики обмена


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