ros2_canopen  master
C++ ROS CANopen Library
mode.hpp
Go to the documentation of this file.
1 #ifndef CANOPEN_402_DRIVER_MODE_HPP
2 #define CANOPEN_402_DRIVER_MODE_HPP
3 
4 #include <cstdint>
5 #include <memory>
6 #include "command.hpp"
7 #include "state.hpp"
8 #include "word_accessor.hpp"
9 
10 namespace ros2_canopen
11 {
12 class Mode
13 {
14 public:
15  const uint16_t mode_id_;
16  Mode(uint16_t id) : mode_id_(id) {}
17  typedef WordAccessor<
22  virtual bool start() = 0;
23  virtual bool read(const uint16_t & sw) = 0;
24  virtual bool write(OpModeAccesser & cw) = 0;
25  virtual bool setTarget(const double & val) { return false; }
26  virtual ~Mode() {}
27 };
28 typedef std::shared_ptr<Mode> ModeSharedPtr;
29 } // namespace ros2_canopen
30 
31 #endif // CANOPEN_402_DRIVER_MODE_HPP
@ CW_Operation_mode_specific3
Definition: command.hpp:52
@ CW_Operation_mode_specific1
Definition: command.hpp:48
@ CW_Operation_mode_specific0
Definition: command.hpp:47
@ CW_Operation_mode_specific2
Definition: command.hpp:49
Definition: mode.hpp:13
virtual bool read(const uint16_t &sw)=0
virtual bool setTarget(const double &val)
Definition: mode.hpp:25
virtual ~Mode()
Definition: mode.hpp:26
Mode(uint16_t id)
Definition: mode.hpp:16
virtual bool write(OpModeAccesser &cw)=0
const uint16_t mode_id_
Definition: mode.hpp:15
WordAccessor<(1<< Command402::CW_Operation_mode_specific0)|(1<< Command402::CW_Operation_mode_specific1)|(1<< Command402::CW_Operation_mode_specific2)|(1<< Command402::CW_Operation_mode_specific3)> OpModeAccesser
Definition: mode.hpp:21
virtual bool start()=0
Definition: word_accessor.hpp:10
Definition: configuration_manager.hpp:28
std::shared_ptr< Mode > ModeSharedPtr
Definition: mode.hpp:28