Класс MBExchange

#include <MBExchange.h>

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

UniSetObject_LT UniSetObject_LT UniSetObject UniSetObject MBTCPMaster MBTCPMaster

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

Классы

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

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

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

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

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

Друзья

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 функции


Методы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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]

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


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

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