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

Классы

struct  MBSlaveInfo

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

 MBTCPMultiMaster (uniset::ObjectId objId, uniset::ObjectId shmID, const std::shared_ptr< SharedMemory > &ic=nullptr, const std::string &prefix="mbtcp")
virtual uniset::SimpleInfogetInfo (const char *userparam=0) override
- Открытые члены inherited from uniset::MBExchange
 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 ()
- Открытые члены inherited from 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
- Открытые члены inherited from uniset::LT_Object
timeout_t checkTimers (UniSetObject *obj)
timeout_t getTimeInterval (uniset::TimerId timerid)
timeout_t getTimeLeft (uniset::TimerId timerid)
- Открытые члены inherited from uniset::UHttp::IHttpRequest
virtual Poco::JSON::Object::Ptr httpRequest (const std::string &req, const Poco::URI::QueryParameters &p)

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

static std::shared_ptr
< MBTCPMultiMaster
init_mbmaster (int argc, const char *const *argv, uniset::ObjectId shmID, const std::shared_ptr< SharedMemory > &ic=nullptr, const std::string &prefix="mbtcp")
static void help_print (int argc, const char *const *argv)
- Открытые статические члены inherited from uniset::MBExchange
static DeviceType getDeviceType (const std::string &dtype)
static std::ostream & print_plist (std::ostream &os, const PList &p)

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

virtual void sysCommand (const uniset::SystemMessage *sm) override
virtual void initIterators () override
virtual std::shared_ptr
< ModbusClient
initMB (bool reopen=false) override
virtual void sigterm (int signo) override
virtual bool deactivateObject () override
 Деактивиция объекта (переопределяется для необходимых действий перед деактивацией)
void initCheckConnectionParameters ()
void poll_thread ()
void check_thread ()
void final_thread ()
- Защищенные члены inherited from uniset::MBExchange
virtual void step ()
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 bool activateObject () override
 Активизация объекта (переопределяется для необходимых действий после активизации)
virtual void initValues ()
void firstInitRegisters ()
bool preInitRead (InitList::iterator &p)
bool initSMValue (ModbusRTU::ModbusData *data, int count, RSProperty *p)
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)
- Защищенные члены inherited from 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
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)
- Защищенные члены inherited from uniset::LT_Object
virtual std::string getTimerName (int id)
TimersList getTimersList ()

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

uniset::uniset_rwmutex mbMutex
bool force_disconnect
timeout_t checktime
- Защищенные данные inherited from uniset::MBExchange
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 }
- Защищенные данные inherited from uniset::UniSetObject
std::shared_ptr< UInterfaceui
std::string myname
std::string section
std::weak_ptr< UniSetManagermymngr
- Защищенные данные inherited from uniset::LT_Object
timeout_t sleepTime

Additional Inherited Members

- Открытые типы inherited from uniset::MBExchange
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
- Статические открытые данные inherited from uniset::MBExchange
static const int NoSafetyState = -1
- Защищенные типы inherited from uniset::MBExchange
typedef std::list< InitRegInfoInitList
typedef std::list< IOBaseThresholdList

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

Реализация Modbus TCP MultiMaster для обмена с многими ModbusRTU устройствами
через один modbus tcp шлюз, доступный по нескольким ip-адресам.
Чтобы не зависеть от таймаутов TCP соединений, которые могут неопределённо зависать
на создании соединения с недоступным хостом. Обмен вынесен в отдельный поток. При этом в этом же потоке обновляются данные в SM. В свою очередь информация о датчиках связи обновляется в основном потоке (чтобы не зависеть от TCP).

Методы

bool MBTCPMultiMaster::deactivateObject ( )
overrideprotectedvirtual

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

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

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

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

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

std::shared_ptr< MBTCPMultiMaster > MBTCPMultiMaster::init_mbmaster ( int  argc,
const char *const *  argv,
uniset::ObjectId  shmID,
const std::shared_ptr< SharedMemory > &  ic = nullptr,
const std::string &  prefix = "mbtcp" 
)
static

глобальная функция для инициализации объекта

void MBTCPMultiMaster::sigterm ( int  signo)
overrideprotectedvirtual

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

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

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