Motorcortex Core  version: 2.7.6
wd_module.h
1 /*
2  * Developer : Alexey Zakharov (alexey.zakharov@vectioneer.com)
3  * All rights reserved. Copyright (c) 2018 VECTIONEER.
4  */
5 
6 #ifndef MOTORCORTEX_CORE_WD_MODULE_H
7 #define MOTORCORTEX_CORE_WD_MODULE_H
8 
9 #include "ct_module.h"
10 #include "wd_base.h"
11 #include "utl_cmdparser.h"
12 
13 namespace mcx {
14 
15 namespace watchdog {
16 
17 enum class WatchdogType {
18  EXTERNAL,
19  MCX_BOX
20 };
21 
22 class WatchdogBase;
23 
24 class Module : public container::Module {
25 
26 public:
27 
28  Module() = delete;
29 
30  Module(utils::SystemMode system_mode, WatchdogType type, const char* device);
31 
32  ~Module() override;
33 
34 protected:
35 
36  void create_(const char* name, parameter_server::Parameter* parameter_server, uint64_t dt_micro_s) override;
37 
38  bool initPhase1_() override;
39 
40  bool initPhase2_() override;
41 
42  bool startOp_() override;
43 
44  bool stopOp_() override;
45 
46  bool iterateOp_(const container::TaskTime& system_time, container::UserTime* user_time) override;
47 
48 private:
49  double ack_duration_sec_{0.05};
50  double pulse_duration_sec_{0.005};
51  bool acknowledge_{};
52  bool do_no_estop_{true};
53  bool override_{false};
54  WatchdogOut watchdog_out_{};
55  std::string device_;
56  WatchdogBase* watchdog_;
57  WatchdogType type_;
58 
59 };
60 
61 } // namespace watchdog
62 
63 } // namespace mcx
64 
65 #endif //MOTORCORTEX_CORE_WD_MODULE_H
mcx::watchdog::Module::~Module
~Module() override
Default destructor.
Definition: wd_module.cpp:28
mcx::parameter_server::Parameter
Definition: ps_parameter.h:45
mcx::watchdog::Module
Definition: wd_module.h:24
mcx::container::TaskTime
Internal time source.
Definition: ct_time.h:25
mcx::watchdog::Module::create_
void create_(const char *name, parameter_server::Parameter *parameter_server, uint64_t dt_micro_s) override
User-defined callback, which is executed during 'Create' phase.
Definition: wd_module.cpp:32
mcx::watchdog::WatchdogBase
Definition: wd_base.h:29
mcx::watchdog::Module::startOp_
bool startOp_() override
User-defined callback before entering Operation mode.
Definition: wd_module.cpp:59
mcx::watchdog::WatchdogOut
Definition: wd_base.h:20
mcx::watchdog::Module::iterateOp_
bool iterateOp_(const container::TaskTime &system_time, container::UserTime *user_time) override
User-defined callback which is called during Operation mode.
Definition: wd_module.cpp:67
mcx::container::UserTime
External time source.
Definition: ct_time.h:40
mcx::container::Module
A building block of the Motorcortex components.
Definition: ct_module.h:64
mcx::watchdog::Module::initPhase2_
bool initPhase2_() override
User-defined callback after the parameter tree is ready.
Definition: wd_module.cpp:55
mcx::watchdog::Module::initPhase1_
bool initPhase1_() override
User-defined callback to register parameters in the tree.
Definition: wd_module.cpp:36
mcx::watchdog::Module::stopOp_
bool stopOp_() override
User-defined callback before to stop Operation mode.
Definition: wd_module.cpp:63