17 #ifndef _MBTCPMultiMaster_H_
18 #define _MBTCPMultiMaster_H_
24 #include "MBExchange.h"
25 #include "modbus/ModbusTCPMaster.h"
290 const std::string& prefix =
"mbtcp" );
294 static std::shared_ptr<MBTCPMultiMaster>
init_mbmaster(
int argc,
const char*
const* argv,
296 const std::string& prefix =
"mbtcp" );
299 static void help_print(
int argc,
const char*
const* argv );
305 virtual void initIterators()
override;
306 virtual std::shared_ptr<ModbusClient> initMB(
bool reopen =
false )
override;
307 virtual void sigterm(
int signo )
override;
309 void initCheckConnectionParameters();
316 bool force_disconnect;
324 MBSlaveInfo(): ip(
""), port(0), mbtcp(0), priority(0),
326 recv_timeout(200), aftersend_pause(0), sleepPause_usec(100),
327 force_disconnect(
true),
328 myname(
""), use(
false), initOK(
false), ignore(
false) {}
332 std::shared_ptr<ModbusTCPMaster> mbtcp;
336 ModbusRTU::SlaveFunctionCode checkFunc = { ModbusRTU::fnUnknown };
337 ModbusRTU::ModbusAddr checkAddr = { 0x00 };
338 ModbusRTU::ModbusData checkReg = { 0 };
342 IOController::IOStateList::iterator respond_it;
344 bool respond_init = {
false };
345 bool respond_force = {
false };
347 timeout_t channel_timeout = { 0 };
349 inline bool operator < (
const MBSlaveInfo& mbs )
const noexcept
351 return priority < mbs.priority;
354 bool init( std::shared_ptr<DebugStream>& mblog );
356 void setUse(
bool st );
358 timeout_t recv_timeout;
359 timeout_t aftersend_pause;
360 timeout_t sleepPause_usec;
361 bool force_disconnect;
365 bool use = {
false };
366 bool initOK = {
false };
367 bool ignore = {
false };
370 const std::string getShortInfo()
const;
375 typedef std::list<std::shared_ptr<MBSlaveInfo>> MBGateList;
378 MBGateList::reverse_iterator mbi;
382 std::shared_ptr< ThreadCreator<MBTCPMultiMaster> > pollThread;
383 std::shared_ptr< ThreadCreator<MBTCPMultiMaster> > checkThread;
388 #endif // _MBTCPMultiMaster_H_
Пассивный таймер
Definition: PassiveTimer.h:90
Definition: MBExchange.h:55
Definition: CallbackTimer.h:29
Definition: MessageType.h:166
Definition: MBTCPMultiMaster.h:285
const ObjectId DefaultObjectId
Definition: UniSetTypes.h:56
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:719
Definition: DelayTimer.h:29
virtual bool deactivateObject() override
Деактивиция объекта (переопределяется для необходимых действий перед деактивацией) ...
Definition: MBTCPMultiMaster.cc:592
static void help_print(int argc, const char *const *argv)
Definition: MBTCPMultiMaster.cc:699
Definition: UniSetTypes_i.idl:64
virtual void sigterm(int signo) override
Definition: MBTCPMultiMaster.cc:558
long ObjectId
Definition: UniSetTypes_i.idl:30