#ifndef NODE_APPLICATION_H #define NODE_APPLICATION_H #include #include "node_types.h" class NodeApplication { public: virtual ~NodeApplication() {} // NMT virtual void to_initialization() = 0; virtual void to_pre_operational() = 0; virtual void to_operational() = 0; virtual void to_stopped() = 0; virtual void reset_parameters() = 0; virtual NodeState get_state() const = 0; // 0x2000 virtual void select_controller(ControllerType type) = 0; virtual ControllerType get_controller_type() const = 0; // 0x2001 virtual void set_Kp(double value) = 0; virtual double get_Kp() const = 0; // 0x2002 virtual bool set_Ti(double value) = 0; virtual double get_Ti() const = 0; // 0x2010 virtual double get_duty_percent() const = 0; // 0x606C virtual double get_actual_rpm() const = 0; // 0x6083 virtual void set_profile_acceleration(uint32_t value) = 0; virtual uint32_t get_profile_acceleration() const = 0; // 0x6084 virtual void set_profile_deceleration(uint32_t value) = 0; virtual uint32_t get_profile_deceleration() const = 0; // 0x60FF (RPDO1) virtual void set_target_rpm(double value) = 0; virtual double get_target_rpm() const = 0; }; #endif