ros2_canopen  master
C++ ROS CANopen Library
base.hpp
Go to the documentation of this file.
1 #ifndef CANOPEN_402_BASE_H
2 #define CANOPEN_402_BASE_H
3 #include <string>
4 
5 #include "lely/coapp/driver.hpp"
6 #include "lely/coapp/master.hpp"
7 
8 namespace ros2_canopen
9 {
10 
15 class MotorBase
16 {
17 protected:
18  MotorBase() {}
19 
20 public:
22  {
23  No_Mode = 0,
25  Velocity = 2,
28  Reserved = 5,
29  Homing = 6,
34  };
35 
43  virtual bool setTarget(double val) = 0;
44 
52  virtual bool enterModeAndWait(uint16_t mode) = 0;
53 
61  virtual bool isModeSupported(uint16_t mode) = 0;
62 
68  virtual uint16_t getMode() = 0;
69 
74  virtual void registerDefaultModes() {}
75 
76  typedef std::shared_ptr<MotorBase> MotorBaseSharedPtr;
77 };
79 
80 } // namespace ros2_canopen
81 
82 #endif
Motor Base Class.
Definition: base.hpp:16
MotorBase()
Definition: base.hpp:18
virtual void registerDefaultModes()
Register default Operation Modes.
Definition: base.hpp:74
virtual uint16_t getMode()=0
Get current Mode.
virtual bool setTarget(double val)=0
Set target.
virtual bool isModeSupported(uint16_t mode)=0
Check if Operation Mode is supported.
virtual bool enterModeAndWait(uint16_t mode)=0
Enter Operation Mode.
std::shared_ptr< MotorBase > MotorBaseSharedPtr
Definition: base.hpp:76
OperationMode
Definition: base.hpp:22
@ Profiled_Velocity
Definition: base.hpp:26
@ Cyclic_Synchronous_Velocity
Definition: base.hpp:32
@ Cyclic_Synchronous_Torque
Definition: base.hpp:33
@ Cyclic_Synchronous_Position
Definition: base.hpp:31
@ No_Mode
Definition: base.hpp:23
@ Profiled_Position
Definition: base.hpp:24
@ Homing
Definition: base.hpp:29
@ Reserved
Definition: base.hpp:28
@ Profiled_Torque
Definition: base.hpp:27
@ Interpolated_Position
Definition: base.hpp:30
@ Velocity
Definition: base.hpp:25
Definition: configuration_manager.hpp:28
MotorBase::MotorBaseSharedPtr MotorBaseSharedPtr
Definition: base.hpp:78