61 const std::string& prefix =
"mb" );
65 static void help_print(
int argc,
const char*
const* argv );
75 inline std::shared_ptr<LogAgregator> getLogAggregator()
79 inline std::shared_ptr<DebugStream> log()
86 bool reload(
const std::string& confile );
88 static uint8_t firstBit( uint16_t mask );
91 static uint16_t getBits( uint16_t value, uint16_t mask, uint8_t offset );
93 static uint16_t setBits( uint16_t value, uint16_t set, uint16_t mask, uint8_t offset );
95 static uint16_t forceSetBits( uint16_t value, uint16_t set, uint16_t mask, uint8_t offset );
102 virtual void askSensors( UniversalIO::UIOCommand cmd );
103 virtual void initOutput();
106 virtual void initIterators();
107 virtual void initValues();
108 virtual bool reconfigure(
const std::shared_ptr<uniset::UniXML>& xml,
const std::shared_ptr<uniset::MBConfig>& mbconf );
109#ifndef DISABLE_REST_API
111 virtual Poco::JSON::Object::Ptr httpHelp(
const Poco::URI::QueryParameters& p )
override;
112 virtual Poco::JSON::Object::Ptr httpRequest(
const std::string& req,
const Poco::URI::QueryParameters& p )
override;
114 void firstInitRegisters();
115 bool preInitRead( MBConfig::InitList::iterator& p );
119 virtual std::shared_ptr<ModbusClient> initMB(
bool reopen =
false ) = 0;
122 bool pollRTU( std::shared_ptr<MBConfig::RTUDevice>& dev, MBConfig::RegMap::iterator& it );
128 void updateRTU(MBConfig::RegMap::iterator& it);
129 void updateMTR(MBConfig::RegMap::iterator& it);
130 void updateRTU188(MBConfig::RegMap::iterator& it);
132 virtual void updateRespondSensors();
134 bool isUpdateSM(
bool wrFunc,
long devMode )
const noexcept;
135 bool isPollEnabled(
bool wrFunc )
const noexcept;
136 bool isSafeMode( std::shared_ptr<MBConfig::RTUDevice>& dev )
const noexcept;
138 bool isProcActive()
const;
139 void setProcActive(
bool st );
142 bool readItem(
const std::shared_ptr<UniXML>& xml,
UniXML::iterator& it, xmlNode* sec );
144 void initOffsetList();
145 std::string initPropPrefix(
const std::string& def_prop_prefix );
147 xmlNode* cnode = { 0 };
148 std::shared_ptr<SMInterface> shm;
150 timeout_t initPause = { 3000 };
158 long maxHeartBeat = { 10 };
159 IOController::IOStateList::iterator itHeartBeat;
163 IOController::IOStateList::iterator itExchangeMode;
166 std::atomic_bool activated = {
false };
167 std::atomic_bool canceled = {
false };
168 timeout_t activateTimeout = { 20000 };
169 bool notUseExchangeTimer = {
false };
172 size_t poll_count = { 0 };
174 std::string statInfo = {
"" };
176 std::shared_ptr<ModbusClient> mb;
183 std::shared_ptr<LogAgregator> loga;
184 std::shared_ptr<DebugStream> mblog;
185 std::shared_ptr<LogServer> logserv;
186 std::string logserv_host = {
""};
187 int logserv_port = {0};
188 const std::shared_ptr<SharedMemory> ic;
194 std::shared_ptr<uniset::MBConfig> mbconf;
virtual bool deactivateObject() override
Деактивация объекта (переопределяется для необходимых действий при завершении работы)
Definition MBExchange.cc:310
virtual bool activateObject() override
Активизация объекта (переопределяется для необходимых действий после активизации)
Definition MBExchange.cc:2050