18#include <unordered_map>
20#include "UniSetObject.h"
23#include "DebugStream.h"
25#include "LogAgregator.h"
34 virtual ~TestProc_SK();
46 inline std::shared_ptr<DebugStream> log()
noexcept {
return mylog; }
47 inline std::shared_ptr<uniset::LogAgregator> logAgregator()
noexcept {
return loga; }
49 void init_dlog( std::shared_ptr<DebugStream> d )
noexcept;
53 #define myinfo if( log()->debugging(Debug::INFO) ) log()->info()
56 #define mywarn if( log()->debugging(Debug::WARN) ) log()->warn()
59 #define mycrit if( log()->debugging(Debug::CRIT) ) log()->crit()
62 #define mylog1 if( log()->debugging(Debug::LEVEL1) ) log()->level1()
65 #define mylog2 if( log()->debugging(Debug::LEVEL2) ) log()->level2()
68 #define mylog3 if( log()->debugging(Debug::LEVEL3) ) log()->level3()
71 #define mylog4 if( log()->debugging(Debug::LEVEL4) ) log()->level4()
74 #define mylog5 if( log()->debugging(Debug::LEVEL5) ) log()->level5()
77 #define mylog6 if( log()->debugging(Debug::LEVEL6) ) log()->level6()
80 #define mylog7 if( log()->debugging(Debug::LEVEL7) ) log()->level7()
83 #define mylog8 if( log()->debugging(Debug::LEVEL8) ) log()->level8()
86 #define mylog9 if( log()->debugging(Debug::LEVEL9) ) log()->level9()
89 #define mylogany log()->any()
92 #define vmonit( var ) vmon.add( #var, var )
125 inline std::string
dumpVars(){
return vmon.pretty_str(); }
127 std::string help() const noexcept;
130#ifndef DISABLE_REST_API
133 virtual Poco::JSON::Object::Ptr httpHelp(
const Poco::URI::QueryParameters& p )
override;
185 const long& in_d1_check_s;
186 const long& in_d2_check_s;
187 long out_set_d1_check_s;
188 long out_set_d2_check_s;
190 const long& in_check_undef_s;
192 const long& in_t_check_s;
194 const long& in_log_s;
218 virtual
void sysCommand( const
uniset::SystemMessage* sm )
override {}
219 virtual void askSensors( UniversalIO::UIOCommand cmd ) {}
220 virtual void sensorInfo(
const uniset::SensorMessage* sm )
override {}
221 virtual void timerInfo(
const uniset::TimerMessage* tm )
override {}
225 virtual std::string
getTypeOfMessage(
int t )
const {
return uniset::strTypeOfMessage(t); }
227#ifndef DISABLE_REST_API
229 virtual Poco::JSON::Object::Ptr httpDumpIO();
230 virtual Poco::JSON::Object::Ptr httpRequestLog(
const Poco::URI::QueryParameters& p );
231 virtual Poco::JSON::Object::Ptr request_params_set(
const std::string& req,
const Poco::URI::QueryParameters& p )
override;
232 virtual Poco::JSON::Object::Ptr request_params_get(
const std::string& req,
const Poco::URI::QueryParameters& p )
override;
235 void preAskSensors( UniversalIO::UIOCommand cmd );
243 virtual void step(){}
245 void updateOutputs(
bool force );
247 uniset::Trigger trResetMsg;
248 uniset::PassiveTimer ptResetMsg;
257 const std::string argprefix;
272 std::atomic_bool activated = {
false };
273 std::atomic_bool canceled = {
false };
280 std::shared_ptr<uniset::LogAgregator> loga;
281 std::shared_ptr<DebugStream> mylog;
282 std::shared_ptr<uniset::LogServer> logserv;
283 std::string logserv_host = {
""};
284 int logserv_port = {0};
286 uniset::VMonitor vmon;
297 long prev_out_lamp_c;
298 long prev_out_depend_c;
299 long prev_in_d1_check_s;
300 long prev_in_d2_check_s;
301 long prev_out_set_d1_check_s;
302 long prev_out_set_d2_check_s;
303 long prev_out_undef_c;
304 long prev_in_check_undef_s;
305 long prev_out_t_set_c;
306 long prev_in_t_check_s;
313 long priv_in_d1_check_s;
314 long priv_in_d2_check_s;
315 long priv_in_check_undef_s;
316 long priv_in_t_check_s;
324 void updatePreviousValues() noexcept;
328 void preSensorInfo( const uniset::SensorMessage* sm );
329 void preTimerInfo( const uniset::TimerMessage* tm );
337 return std::hash<long>()(
key);
341 std::unordered_map<const uniset::ObjectId,size_t, StatHashFn> smStat;
342 size_t processingMessageCatchCount = { 0 };
344 std::unordered_map<long,size_t> msgTypeStat;
346 std::string ostate = {
"" };
long maxHeartBeat
Определения MBSlaveTest/TestProc_SK.h:263
const uniset::ObjectId undef_c
Определения MBSlaveTest/TestProc_SK.h:159
virtual bool activateObject() override
Активизация объекта (переопределяется для необходимых действий после активизации).
const int checkLogTime
Определения MBSlaveTest/TestProc_SK.h:202
const uniset::ObjectId log_s
Определения MBSlaveTest/TestProc_SK.h:174
uniset::PassiveTimer ptStartUpTimeout
Определения MBSlaveTest/TestProc_SK.h:275
const uniset::ObjectId set_d1_check_s
Определения MBSlaveTest/TestProc_SK.h:153
virtual void callback() noexcept override
virtual void processingMessage(const uniset::VoidMessage *msg) override
const uniset::ObjectId d1_check_s
Определения MBSlaveTest/TestProc_SK.h:147
int sleep_msec
Определения MBSlaveTest/TestProc_SK.h:251
virtual void httpGetUserData(Poco::JSON::Object::Ptr &jdata)
Определения MBSlaveTest/TestProc_SK.h:228
std::string msgstr(uniset::ObjectId id, bool showLinkName=true) const
int mbPort
Определения MBSlaveTest/TestProc_SK.h:205
uniset::timeout_t smReadyTimeout
Определения MBSlaveTest/TestProc_SK.h:271
const uniset::ObjectId t_set_c
Определения MBSlaveTest/TestProc_SK.h:165
const uniset::ObjectId log_c
Определения MBSlaveTest/TestProc_SK.h:171
virtual std::string getTypeOfMessage(int t) const
Определения MBSlaveTest/TestProc_SK.h:225
int getIntProp(const std::string &name)
Определения MBSlaveTest/TestProc_SK.h:267
virtual bool deactivateObject() override
Деактивация объекта (переопределяется для необходимых действий при завершении работы).
const int checkWorkingTime
Определения MBSlaveTest/TestProc_SK.h:200
const int mbADDR
Определения MBSlaveTest/TestProc_SK.h:204
const uniset::ObjectId check_undef_s
Определения MBSlaveTest/TestProc_SK.h:162
const uniset::ObjectId lamp_c
Определения MBSlaveTest/TestProc_SK.h:141
std::string strval(uniset::ObjectId id, bool showLinkName=true) const
const std::string mbIP
Определения MBSlaveTest/TestProc_SK.h:203
const uniset::ObjectId on_s
Определения MBSlaveTest/TestProc_SK.h:138
const int checkTime
Определения MBSlaveTest/TestProc_SK.h:201
const uniset::ObjectId depend_c
Определения MBSlaveTest/TestProc_SK.h:144
uniset::timeout_t activateTimeout
Определения MBSlaveTest/TestProc_SK.h:274
const uniset::ObjectId d2_check_s
Определения MBSlaveTest/TestProc_SK.h:150
const std::string getProp(const std::string &name)
Определения MBSlaveTest/TestProc_SK.h:269
bool forceOut
Определения MBSlaveTest/TestProc_SK.h:252
const int changeTime
Определения MBSlaveTest/TestProc_SK.h:199
uniset::ObjectId idHeartBeat
Определения MBSlaveTest/TestProc_SK.h:262
uniset::ObjectId smTestID
Определения MBSlaveTest/TestProc_SK.h:258
const uniset::ObjectId t_check_s
Определения MBSlaveTest/TestProc_SK.h:168
int askPause
Определения MBSlaveTest/TestProc_SK.h:276
std::string str(uniset::ObjectId id, bool showLinkName=true) const
const uniset::ObjectId set_d2_check_s
Определения MBSlaveTest/TestProc_SK.h:156
virtual std::string getMonitInfo() const
Определения MBSlaveTest/TestProc_SK.h:224
xmlNode * confnode
Определения MBSlaveTest/TestProc_SK.h:265
std::string dumpVars()
Определения MBSlaveTest/TestProc_SK.h:125
Пассивный таймер
Определения PassiveTimer.h:94
Определения MessageType.h:171
Определения UniSetObject.h:80
Определения Calibration.h:27
KeyType key(const uniset::ObjectId id, const uniset::ObjectId node)
Определения UniSetTypes.cc:1048
const ObjectId DefaultObjectId
Определения UniSetTypes.h:71
std::shared_ptr< Configuration > uniset_conf() noexcept
Определения Configuration.cc:106
long ObjectId
Определения UniSetTypes_i.idl:30
Определения IOController_i.idl:64
Определения UniSetTypes_i.idl:65
Определения UHttpRequestHandler.h:87