17 #ifndef _MBTCPMultiMaster_H_
18 #define _MBTCPMultiMaster_H_
24 #include "MBExchange.h"
25 #include "modbus/ModbusTCPMaster.h"
276 const std::string& prefix =
"mbtcp" );
280 static std::shared_ptr<MBTCPMultiMaster>
init_mbmaster(
int argc,
const char*
const* argv,
282 const std::string& prefix =
"mbtcp" );
284 static void help_print(
int argc,
const char*
const* argv );
290 virtual void initIterators()
override;
291 virtual std::shared_ptr<ModbusClient> initMB(
bool reopen =
false )
override;
293 virtual bool reconfigure(
const std::shared_ptr<uniset::UniXML>& xml,
const std::shared_ptr<uniset::MBConfig>& mbconf )
override;
294 void initCheckConnectionParameters();
302 bool force_disconnect;
304 timeout_t defaultIgnoreTimeout;
305 timeout_t channelTimeout;
312 MBSlaveInfo(): ip(
""), port(0), mbtcp(0), priority(0),
314 recv_timeout(200), aftersend_pause(0), sleepPause_usec(100),
315 force_disconnect(
true),
316 myname(
""), use(
false), initOK(
false), ignore(
false) {}
320 std::shared_ptr<ModbusTCPMaster> mbtcp;
324 ModbusRTU::SlaveFunctionCode checkFunc = { ModbusRTU::fnUnknown };
325 ModbusRTU::ModbusAddr checkAddr = { 0x00 };
326 ModbusRTU::ModbusData checkReg = { 0 };
330 IOController::IOStateList::iterator respond_it;
332 bool respond_init = {
false };
333 bool respond_force = {
false };
335 timeout_t channel_timeout = { 0 };
337 inline bool operator < (
const MBSlaveInfo& mbs )
const noexcept
339 return priority < mbs.priority;
342 bool init( std::shared_ptr<DebugStream>& mblog );
344 void setUse(
bool st );
346 timeout_t recv_timeout;
347 timeout_t aftersend_pause;
348 timeout_t sleepPause_usec;
349 bool force_disconnect;
353 bool use = {
false };
354 bool initOK = {
false };
355 bool ignore = {
false };
358 const std::string getShortInfo()
const;
363 typedef std::list<std::shared_ptr<MBSlaveInfo>> MBGateList;
366 MBGateList::reverse_iterator mbi;
370 std::unique_ptr< ThreadCreator<MBTCPMultiMaster> > pollThread;
371 std::unique_ptr< ThreadCreator<MBTCPMultiMaster> > checkThread;
Definition: DelayTimer.h:30
Definition: MBExchange.h:58
Definition: MBTCPMultiMaster.h:273
virtual bool deactivateObject() override
Деактивация объекта (переопределяется для необходимых действий при завершении работы)
Definition: MBTCPMultiMaster.cc:574
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")
Definition: MBTCPMultiMaster.cc:698
Пассивный таймер
Definition: PassiveTimer.h:94
Definition: MessageType.h:171
Definition: CommonEventLoop.h:15
const ObjectId DefaultObjectId
Definition: UniSetTypes.h:70
long ObjectId
Definition: UniSetTypes_i.idl:30
Definition: UniSetTypes_i.idl:65