UniSet  2.6.0
MBSlaveTest/TestProc_SK.h
1 
2 // --------------------------------------------------------------------------
3 /*
4  DO NOT EDIT THIS FILE. IT IS AUTOGENERATED FILE.
5  ALL YOUR CHANGES WILL BE LOST.
6 
7  НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ. ЭТОТ ФАЙЛ СОЗДАН АВТОМАТИЧЕСКИ.
8  ВСЕ ВАШИ ИЗМЕНЕНИЯ БУДУТ ПОТЕРЯНЫ.
9 */
10 // --------------------------------------------------------------------------
11 // generate timestamp: 2017-03-02+03:00
12 // -----------------------------------------------------------------------------
13 #ifndef TestProc_SK_H_
14 #define TestProc_SK_H_
15 // -----------------------------------------------------------------------------
16 #include <memory>
17 #include <string>
18 #include <unordered_map>
19 #include <sstream>
20 #include "UniSetObject.h"
21 #include "UniXML.h"
22 #include "Trigger.h"
23 #include "DebugStream.h"
24 #include "LogServer.h"
25 #include "LogAgregator.h"
26 #include "VMonitor.h"
27 // -----------------------------------------------------------------------------
30 {
31  public:
32  TestProc_SK( uniset::ObjectId id, xmlNode* node=uniset::uniset_conf()->getNode("TestProc"), const std::string& argprefix="" );
33  TestProc_SK();
34  virtual ~TestProc_SK();
35 
36 
37  long getValue( uniset::ObjectId sid );
38  void setValue( uniset::ObjectId sid, long value );
39  void askSensor( uniset::ObjectId sid, UniversalIO::UIOCommand, uniset::ObjectId node = uniset::uniset_conf()->getLocalNode() );
40  void updateValues();
41 
42  virtual uniset::SimpleInfo* getInfo( const char* userparam ) override;
43 
44  virtual bool setMsg( uniset::ObjectId code, bool state = true ) noexcept;
45 
46  inline std::shared_ptr<DebugStream> log() noexcept { return mylog; }
47  inline std::shared_ptr<uniset::LogAgregator> logAgregator() noexcept { return loga; }
48 
49  void init_dlog( std::shared_ptr<DebugStream> d ) noexcept;
50 
51  // "синтаксический сахар"..для логов
52  #ifndef myinfo
53  #define myinfo if( log()->debugging(Debug::INFO) ) log()->info()
54  #endif
55  #ifndef mywarn
56  #define mywarn if( log()->debugging(Debug::WARN) ) log()->warn()
57  #endif
58  #ifndef mycrit
59  #define mycrit if( log()->debugging(Debug::CRIT) ) log()->crit()
60  #endif
61  #ifndef mylog1
62  #define mylog1 if( log()->debugging(Debug::LEVEL1) ) log()->level1()
63  #endif
64  #ifndef mylog2
65  #define mylog2 if( log()->debugging(Debug::LEVEL2) ) log()->level2()
66  #endif
67  #ifndef mylog3
68  #define mylog3 if( log()->debugging(Debug::LEVEL3) ) log()->level3()
69  #endif
70  #ifndef mylog4
71  #define mylog4 if( log()->debugging(Debug::LEVEL4) ) log()->level4()
72  #endif
73  #ifndef mylog5
74  #define mylog5 if( log()->debugging(Debug::LEVEL5) ) log()->level5()
75  #endif
76  #ifndef mylog6
77  #define mylog6 if( log()->debugging(Debug::LEVEL6) ) log()->level6()
78  #endif
79  #ifndef mylog7
80  #define mylog7 if( log()->debugging(Debug::LEVEL7) ) log()->level7()
81  #endif
82  #ifndef mylog8
83  #define mylog8 if( log()->debugging(Debug::LEVEL8) ) log()->level8()
84  #endif
85  #ifndef mylog9
86  #define mylog9 if( log()->debugging(Debug::LEVEL9) ) log()->level9()
87  #endif
88  #ifndef mylogany
89  #define mylogany log()->any()
90  #endif
91  #ifndef vmonit
92  #define vmonit( var ) vmon.add( #var, var )
93  #endif
94 
95  // Вспомогательные функции для удобства логирования
96  // ------------------------------------------------------------
104  std::string dumpIO();
105 
110  std::string str( uniset::ObjectId id, bool showLinkName=true ) const;
111 
116  std::string strval( uniset::ObjectId id, bool showLinkName=true ) const;
117 
119  inline std::string dumpVars(){ return vmon.pretty_str(); }
120  // ------------------------------------------------------------
121  std::string help() noexcept;
122 
123 
124 
125  // Используемые идентификаторы
126 
127  const uniset::ObjectId on_s;
128  const uniset::ObjectId node_on_s;
129 
130  const uniset::ObjectId lamp_c;
131  const uniset::ObjectId node_lamp_c;
132 
133  const uniset::ObjectId depend_c;
134  const uniset::ObjectId node_depend_c;
135 
136  const uniset::ObjectId d1_check_s;
137  const uniset::ObjectId node_d1_check_s;
138 
139  const uniset::ObjectId d2_check_s;
140  const uniset::ObjectId node_d2_check_s;
141 
142  const uniset::ObjectId set_d1_check_s;
143  const uniset::ObjectId node_set_d1_check_s;
144 
145  const uniset::ObjectId set_d2_check_s;
146  const uniset::ObjectId node_set_d2_check_s;
147 
148  const uniset::ObjectId undef_c;
149  const uniset::ObjectId node_undef_c;
150 
151  const uniset::ObjectId check_undef_s;
152  const uniset::ObjectId node_check_undef_s;
153 
154  const uniset::ObjectId t_set_c;
155  const uniset::ObjectId node_t_set_c;
156 
157  const uniset::ObjectId t_check_s;
158  const uniset::ObjectId node_t_check_s;
159 
160  const uniset::ObjectId log_c;
161  const uniset::ObjectId node_log_c;
162 
163  const uniset::ObjectId log_s;
164  const uniset::ObjectId node_log_s;
165 
166 
167  // Используемые идентификаторы сообщений
168 
169 
170  // Текущее значение
171  const long& in_on_s;
172  long out_lamp_c;
173  long out_depend_c;
174  const long& in_d1_check_s;
175  const long& in_d2_check_s;
176  long out_set_d1_check_s;
177  long out_set_d2_check_s;
178  long out_undef_c;
179  const long& in_check_undef_s;
180  long out_t_set_c;
181  const long& in_t_check_s;
182  long out_log_c;
183  const long& in_log_s;
184 
185 
186  // --- public variables ---
187 
188  const int changeTime;
189  const int checkWorkingTime;
190  const int checkTime;
191  const int checkLogTime;
192  const std::string mbIP;
193  const int mbADDR;
194  int mbPort;
196  // --- end of public variables ---
197 
198  protected:
199  // --- protected variables ---
200 
201 
202  // ---- end of protected variables ----
203 
204 
205  virtual void callback() noexcept override;
206  virtual void processingMessage( const uniset::VoidMessage* msg ) override;
207  virtual void sysCommand( const uniset::SystemMessage* sm ){};
208  virtual void askSensors( UniversalIO::UIOCommand cmd ){}
209  virtual void sensorInfo( const uniset::SensorMessage* sm ) override{}
210  virtual void timerInfo( const uniset::TimerMessage* tm ) override{}
211  virtual void sigterm( int signo ) override;
212  virtual bool activateObject() override;
213  virtual std::string getMonitInfo(){ return ""; }
215  // Выполнение очередного шага программы
216  virtual void step(){}
217 
218  void preAskSensors( UniversalIO::UIOCommand cmd );
219  void preSysCommand( const uniset::SystemMessage* sm );
220 
221  virtual void testMode( bool state );
222  void updateOutputs( bool force );
223 
224  void waitSM( int wait_msec, uniset::ObjectId testID = uniset::DefaultObjectId );
225  uniset::ObjectId getSMTestID();
226 
227  void resetMsg();
228  uniset::Trigger trResetMsg;
229  uniset::PassiveTimer ptResetMsg;
230  int resetMsgTime;
231 
233  bool active;
234 
235  const std::string argprefix;
238  // управление датчиком "сердцебиения"
239  uniset::PassiveTimer ptHeartBeat;
243  xmlNode* confnode;
245  int getIntProp(const std::string& name) { return uniset::uniset_conf()->getIntProp(confnode, name); }
247  inline const std::string getProp(const std::string& name) { return uniset::uniset_conf()->getProp(confnode, name); }
248 
249  uniset::timeout_t smReadyTimeout;
250  std::atomic_bool activated;
251  uniset::timeout_t activateTimeout;
253  int askPause;
256  bool forceOut;
258  std::shared_ptr<uniset::LogAgregator> loga;
259  std::shared_ptr<DebugStream> mylog;
260  std::shared_ptr<uniset::LogServer> logserv;
261  std::string logserv_host = {""};
262  int logserv_port = {0};
263 
264  uniset::VMonitor vmon;
265 
266 
267 
268  private:
269 
270  // --- private variables ---
271  // --- end of private variables ---
272 
273  // предыдущее значение (для работы UpdateValue())
274  long prev_in_on_s;
275  long prev_out_lamp_c;
276  long prev_out_depend_c;
277  long prev_in_d1_check_s;
278  long prev_in_d2_check_s;
279  long prev_out_set_d1_check_s;
280  long prev_out_set_d2_check_s;
281  long prev_out_undef_c;
282  long prev_in_check_undef_s;
283  long prev_out_t_set_c;
284  long prev_in_t_check_s;
285  long prev_out_log_c;
286  long prev_in_log_s;
287 
288 
289  // Текущее значение (rw-переменные)
290  long priv_in_on_s;
291  long priv_in_d1_check_s;
292  long priv_in_d2_check_s;
293  long priv_in_check_undef_s;
294  long priv_in_t_check_s;
295  long priv_in_log_s;
296 
297 
298  // Используемые идентификаторы сообщений
299 
300  // ------------ private функции ---------------
301  void updatePreviousValues() noexcept;
302  void preSensorInfo( const uniset::SensorMessage* sm );
303  void preTimerInfo( const uniset::TimerMessage* tm );
304  void initFromSM();
305  void checkSensors();
306  // --------------------------------------------
307 
308  class StatHashFn
309  {
310  public:
311  size_t operator() (const uniset::ObjectId& key) const
312  {
313  return std::hash<long>()(key);
314  }
315  };
316 
317  std::unordered_map<const uniset::ObjectId,size_t, StatHashFn> smStat;
318  size_t processingMessageCatchCount = { 0 };
320  std::string ostate = { "" };
323  bool end_private; // вспомогательное поле (для внутреннего использования при генерировании кода)
324 };
325 
326 // -----------------------------------------------------------------------------
327 #endif // TestProc_SK_H_
Пассивный таймер
Definition: PassiveTimer.h:90
const uniset::ObjectId d1_check_s
Definition: MBSlaveTest/TestProc_SK.h:136
std::string dumpVars()
Definition: MBSlaveTest/TestProc_SK.h:119
const int checkLogTime
Definition: MBSlaveTest/TestProc_SK.h:191
Definition: CallbackTimer.h:29
const uniset::ObjectId depend_c
Definition: MBSlaveTest/TestProc_SK.h:133
const uniset::ObjectId on_s
Definition: MBSlaveTest/TestProc_SK.h:127
virtual void callback() noexceptoverride
const std::string mbIP
Definition: MBSlaveTest/TestProc_SK.h:192
STL namespace.
int mbPort
Definition: MBSlaveTest/TestProc_SK.h:194
uniset::ObjectId idHeartBeat
Definition: MBSlaveTest/TestProc_SK.h:240
const int checkTime
Definition: MBSlaveTest/TestProc_SK.h:190
Definition: MessageType.h:166
const std::string getProp(const std::string &name)
Definition: MBSlaveTest/TestProc_SK.h:247
long maxHeartBeat
Definition: MBSlaveTest/TestProc_SK.h:241
const uniset::ObjectId d2_check_s
Definition: MBSlaveTest/TestProc_SK.h:139
std::string str(uniset::ObjectId id, bool showLinkName=true) const
const int mbADDR
Definition: MBSlaveTest/TestProc_SK.h:193
uniset::PassiveTimer ptStartUpTimeout
Definition: MBSlaveTest/TestProc_SK.h:252
Definition: UniSetObject.h:73
Definition: VMonitor.h:116
const uniset::ObjectId undef_c
Definition: MBSlaveTest/TestProc_SK.h:148
std::string strval(uniset::ObjectId id, bool showLinkName=true) const
Definition: MBSlaveTest/TestProc_SK.h:28
const uniset::ObjectId t_check_s
Definition: MBSlaveTest/TestProc_SK.h:157
std::shared_ptr< Configuration > uniset_conf() noexcept
Definition: Configuration.cc:89
std::string pretty_str(int namewidth=NameWidth, int colnum=ColCount)
Definition: VMonitor.cc:187
const ObjectId DefaultObjectId
Definition: UniSetTypes.h:56
const uniset::ObjectId log_c
Definition: MBSlaveTest/TestProc_SK.h:160
Definition: Trigger.h:29
const uniset::ObjectId set_d1_check_s
Definition: MBSlaveTest/TestProc_SK.h:142
const uniset::ObjectId t_set_c
Definition: MBSlaveTest/TestProc_SK.h:154
std::string dumpIO()
virtual void processingMessage(const uniset::VoidMessage *msg) override
Definition: MessageType.h:122
virtual std::string getMonitInfo()
Definition: MBSlaveTest/TestProc_SK.h:213
const uniset::ObjectId lamp_c
Definition: MBSlaveTest/TestProc_SK.h:130
const uniset::ObjectId log_s
Definition: MBSlaveTest/TestProc_SK.h:163
int sleep_msec
Definition: MBSlaveTest/TestProc_SK.h:232
Definition: MessageType.h:209
Definition: IOController_i.idl:56
const int checkWorkingTime
Definition: MBSlaveTest/TestProc_SK.h:189
xmlNode * confnode
Definition: MBSlaveTest/TestProc_SK.h:243
Definition: UniSetTypes_i.idl:64
const int changeTime
Definition: MBSlaveTest/TestProc_SK.h:188
int askPause
Definition: MBSlaveTest/TestProc_SK.h:253
virtual void sigterm(int signo) override
const uniset::ObjectId check_undef_s
Definition: MBSlaveTest/TestProc_SK.h:151
bool forceOut
Definition: MBSlaveTest/TestProc_SK.h:256
virtual bool activateObject() override
Активизация объекта (переопределяется для необходимых действий после активизации) ...
int getIntProp(const std::string &name)
Definition: MBSlaveTest/TestProc_SK.h:245
uniset::timeout_t smReadyTimeout
Definition: MBSlaveTest/TestProc_SK.h:249
const uniset::ObjectId set_d2_check_s
Definition: MBSlaveTest/TestProc_SK.h:145
uniset::timeout_t activateTimeout
Definition: MBSlaveTest/TestProc_SK.h:251
long ObjectId
Definition: UniSetTypes_i.idl:30
uniset::ObjectId smTestID
Definition: MBSlaveTest/TestProc_SK.h:236