Класс MBExchange

#include <MBExchange.h>

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

UniSetObject_LT UniSetObject_LT UniSetObject_LT UniSetObject UniSetObject UniSetObject MBTCPMaster MBTCPMaster MBTCPMaster

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

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

enum  ExchangeMode {
  emNone, emWriteOnly, emReadOnly, emSkipSaveToSM,
  emNone, emWriteOnly, emReadOnly, emSkipSaveToSM,
  emNone, emWriteOnly, emReadOnly, emSkipSaveToSM
}
enum  DeviceType {
  dtUnknown, dtRTU, dtMTR, dtRTU188,
  dtUnknown, dtRTU, dtMTR, dtRTU188,
  dtUnknown, dtRTU, dtMTR, dtRTU188
}
enum  Timer { tmExchange, tmExchange, tmExchange }
enum  ExchangeMode {
  emNone, emWriteOnly, emReadOnly, emSkipSaveToSM,
  emNone, emWriteOnly, emReadOnly, emSkipSaveToSM,
  emNone, emWriteOnly, emReadOnly, emSkipSaveToSM
}
enum  DeviceType {
  dtUnknown, dtRTU, dtMTR, dtRTU188,
  dtUnknown, dtRTU, dtMTR, dtRTU188,
  dtUnknown, dtRTU, dtMTR, dtRTU188
}
enum  Timer { tmExchange, tmExchange, tmExchange }
enum  ExchangeMode {
  emNone, emWriteOnly, emReadOnly, emSkipSaveToSM,
  emNone, emWriteOnly, emReadOnly, emSkipSaveToSM,
  emNone, emWriteOnly, emReadOnly, emSkipSaveToSM
}
enum  DeviceType {
  dtUnknown, dtRTU, dtMTR, dtRTU188,
  dtUnknown, dtRTU, dtMTR, dtRTU188,
  dtUnknown, dtRTU, dtMTR, dtRTU188
}
enum  Timer { tmExchange, tmExchange, tmExchange }
typedef std::list< RSProperty > PList
typedef unsigned long RegID
typedef std::map< RegID,
RegInfo * > 
RegMap
typedef std::map
< ModbusRTU::ModbusAddr,
RTUDevice * > 
RTUDeviceMap
typedef std::list< RSProperty > PList
typedef unsigned long RegID
typedef std::map< RegID,
RegInfo * > 
RegMap
typedef std::map
< ModbusRTU::ModbusAddr,
RTUDevice * > 
RTUDeviceMap
typedef std::list< RSProperty > PList
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 ()
 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 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< InitRegInfo > InitList
typedef std::list< InitRegInfo > InitList
typedef std::list< InitRegInfo > InitList

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

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 ()
RTUDevice * addDev (RTUDeviceMap &dmap, ModbusRTU::ModbusAddr a, UniXML_iterator &it)
RegInfo * addReg (RegMap &rmap, RegID id, ModbusRTU::ModbusData r, UniXML_iterator &it, RTUDevice *dev, RegInfo *rcopy=0)
RSProperty * addProp (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 ()
RTUDevice * addDev (RTUDeviceMap &dmap, ModbusRTU::ModbusAddr a, UniXML_iterator &it)
RegInfo * addReg (RegMap &rmap, RegID id, ModbusRTU::ModbusData r, UniXML_iterator &it, RTUDevice *dev, RegInfo *rcopy=0)
RSProperty * addProp (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 ()
RTUDevice * addDev (RTUDeviceMap &dmap, ModbusRTU::ModbusAddr a, UniXML_iterator &it)
RegInfo * addReg (RegMap &rmap, RegID id, ModbusRTU::ModbusData r, UniXML_iterator &it, RTUDevice *dev, RegInfo *rcopy=0)
RSProperty * addProp (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
SMInterface * shm
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
xmlNode * cnode
SMInterface * shm
ModbusClientmb
xmlNode * cnode
SMInterface * shm
ModbusClientmb

Друзья

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

Классы

struct  InitRegInfo
struct  RegInfo
struct  RSProperty
struct  RTUDevice


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

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

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

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

Элементы перечислений:
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 функции

Элементы перечислений:
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 функции

Элементы перечислений:
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 функции

Элементы перечислений:
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)


Методы

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

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

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

Используется в MBTCPMaster::help_print().

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

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

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

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

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

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

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

Перекрестные ссылки UniSetObject::sigterm().

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

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

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

Перекрестные ссылки UniSetObject::activateObject().

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

InitList MBExchange::initRegList [protected]

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

bool MBExchange::force [protected]

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

bool MBExchange::force_out [protected]

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

int MBExchange::polltime [protected]

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

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

long MBExchange::exchangeMode [protected]

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

timeout_t MBExchange::stat_time [protected]

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

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

std::string MBExchange::prop_prefix [protected]

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


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

Документация по UniSet. Последние изменения: Tue Jul 10 20:46:20 2012. Создано системой  doxygen 1.5.5