|
UniSet
2.2.1
|
#include <MBExchange.h>
Классы | |
| 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< RSProperty > | PList |
|
typedef std::map < ModbusRTU::RegID, std::shared_ptr< RegInfo > > | RegMap |
|
typedef std::unordered_map < ModbusRTU::ModbusAddr, std::shared_ptr< RTUDevice > > | RTUDeviceMap |
Открытые члены | |
| MBExchange (UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmID, const std::shared_ptr< SharedMemory > &ic=nullptr, const std::string &prefix="mb") | |
| void | printMap (RTUDeviceMap &d) |
| void | execute () |
| std::shared_ptr< LogAgregator > | getLogAggregator () |
| std::shared_ptr< DebugStream > | log () |
| virtual UniSetTypes::SimpleInfo * | getInfo (CORBA::Long userparam=0) override |
Открытые статические члены | |
| 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< InitRegInfo > | InitList |
| typedef std::list< IOBase > | ThresholdList |
Защищенные члены | |
| virtual void | step () |
| virtual void | sysCommand (const UniSetTypes::SystemMessage *msg) override |
| virtual void | sensorInfo (const UniSetTypes::SensorMessage *sm) override |
| virtual void | timerInfo (const UniSetTypes::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) |
| bool | checkProcActive () |
| 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< RTUDevice > | addDev (RTUDeviceMap &dmap, ModbusRTU::ModbusAddr a, UniXML::iterator &it) |
| std::shared_ptr< RegInfo > | addReg (std::shared_ptr< RegMap > &devices, ModbusRTU::RegID id, ModbusRTU::ModbusData r, UniXML::iterator &it, std::shared_ptr< RTUDevice > dev) |
| RSProperty * | addProp (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) |
Защищенные данные | |
| bool | allInitOK |
| RTUDeviceMap | devices |
| InitList | initRegList |
| UniSetTypes::uniset_rwmutex | pollMutex |
| xmlNode * | cnode = { 0 } |
| std::string | s_field |
| std::string | s_fvalue |
| std::shared_ptr< SMInterface > | shm |
| timeout_t | initPause = { 3000 } |
| UniSetTypes::uniset_rwmutex | mutex_start |
| bool | force = { false } |
| bool | force_out = { false } |
| bool | mbregFromID = { false } |
| int | polltime = { 100 } |
| timeout_t | sleepPause_usec |
| unsigned int | maxQueryCount = { ModbusRTU::MAXDATALEN } |
| PassiveTimer | ptHeartBeat |
| UniSetTypes::ObjectId | sidHeartBeat = { UniSetTypes::DefaultObjectId } |
| int | maxHeartBeat = { 10 } |
| IOController::IOStateList::iterator | itHeartBeat |
| UniSetTypes::ObjectId | test_id = { UniSetTypes::DefaultObjectId } |
| UniSetTypes::ObjectId | sidExchangeMode = { UniSetTypes::DefaultObjectId } |
| IOController::IOStateList::iterator | itExchangeMode |
| long | exchangeMode = {emNone} |
| std::atomic_bool | activated = { false } |
| int | activateTimeout = { 20000 } |
| bool | noQueryOptimization = { false } |
| bool | no_extimer = { false } |
| std::string | prefix |
| timeout_t | stat_time = { 0 } |
| unsigned int | poll_count = { 0 } |
| PassiveTimer | ptStatistic |
| std::string | prop_prefix |
| std::shared_ptr< ModbusClient > | mb |
| timeout_t | recv_timeout = { 500 } |
| timeout_t | default_timeout = { 5000 } |
| int | aftersend_pause = { 0 } |
| PassiveTimer | ptReopen |
| Trigger | trReopen |
| PassiveTimer | ptInitChannel |
| ThresholdList | thrlist |
| std::string | defaultMBtype |
| std::string | defaultMBaddr |
| bool | defaultMBinitOK = { false } |
| std::shared_ptr< LogAgregator > | loga |
| std::shared_ptr< DebugStream > | mblog |
| std::shared_ptr< LogServer > | logserv |
| std::string | logserv_host = {""} |
| int | logserv_port = {0} |
|
const std::shared_ptr < SharedMemory > | ic |
| VMonitor | vmon |
| unsigned long | ncycle = { 0 } |
Друзья | |
| 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) |
Режимы работы процесса обмена
| bool MBExchange::activateObject | ( | ) | [override, protected, virtual] |
Активизация объекта (переопределяется для необходимых действий после активизации)
Переопределяет метод предка UniSetObject.
| void MBExchange::help_print | ( | int | argc, |
| const char *const * | argv | ||
| ) | [static] |
глобальная функция для вывода help-а
Переопределяется в MBTCPMultiMaster, MBTCPMaster и RTUExchange.
| bool MBExchange::initItem | ( | UniXML::iterator & | it | ) | [protected] |
приоритет опроса: 1...n - задаёт "часоту" опроса. Т.е. каждые 1...n циклов
Перекрестные ссылки UniSetTypes::DefaultObjectId, dtMTR, dtRTU188, ORepHelpers::getShortName(), IOController_i::SensorInfo::id, initRegList, MBExchange::RSProperty::nbit, prop_prefix, MBExchange::RSProperty::rnum, IOBase::stype, IOBase::t_ai, UniSetTypes::uni_atoi(), UniSetTypes::uniset_conf() и MBExchange::RSProperty::vType.
| void MBExchange::sigterm | ( | int | signo | ) | [override, protected, virtual] |
Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.
Переопределяет метод предка UniSetObject.
Переопределяется в MBTCPMultiMaster и MBTCPMaster.
long MBExchange::exchangeMode = {emNone} [protected] |
режим работы см. ExchangeMode
bool MBExchange::force = { false } [protected] |
флаг означающий, что надо сохранять в SM, даже если значение не менялось
bool MBExchange::force_out = { false } [protected] |
флаг означающий, принудительного чтения выходов
InitList MBExchange::initRegList [protected] |
список регистров для инициализации
Используется в initItem().
unsigned int MBExchange::maxQueryCount = { ModbusRTU::MAXDATALEN } [protected] |
максимальное количество регистров для одного запроса
unsigned long MBExchange::ncycle = { 0 } [protected] |
текущий номер цикла опроса
int MBExchange::polltime = { 100 } [protected] |
переодичность обновления данных, [мсек]
std::string MBExchange::prop_prefix [protected] |
префикс для считывания параметров обмена
Используется в initItem().
PassiveTimer MBExchange::ptInitChannel [protected] |
таймер не реинициализацию канала связи
PassiveTimer MBExchange::ptReopen [protected] |
таймер для переоткрытия соединения
PassiveTimer MBExchange::ptStatistic [protected] |
таймер для сбора статистики обмена
UniSetTypes::ObjectId MBExchange::sidExchangeMode = { UniSetTypes::DefaultObjectId } [protected] |
иденидентификатор для датчика режима работы
timeout_t MBExchange::stat_time = { 0 } [protected] |
время сбора статистики обмена, 0 - отключена
1.7.6.1