tmcl_ros.h
Go to the documentation of this file.
1 
6 #ifndef TMCL_ROS_H
7 #define TMCL_ROS_H
8 
9 #include "tmcl_interpreter.h"
10 #include "tmcl_motor.h"
11 #include "tmcl_bldc_motor.h"
12 #include "tmcl_stepper_motor.h"
13 #include "adi_tmcl/TmcParam.h"
14 #include "adi_tmcl/TmcCustomCmd.h"
15 #include "adi_tmcl/TmcGapGgpAll.h"
16 #include "std_msgs/Int32.h"
17 #include "std_msgs/String.h"
18 
19 const uint8_t MOTOR_TYPE_BLDC = 6;
20 
21 /* Parameter limits and default values */
22 const uint8_t TXRX_ID_MAX = 255;
23 const uint8_t TX_ID_DEFAULT = 1;
24 const uint8_t RX_ID_DEFAULT = 2;
25 const uint16_t TIMEOUT_MS_MAX = 5000;
26 const uint8_t TIMEOUT_MS_DEFAULT = 10;
27 const uint8_t EXEC_CMD_RETRIES_MAX = 3;
28 const uint8_t EXEC_CMD_RETRIES_DEFAULT = 1;
29 const uint8_t PUB_RATE_MAX = 100;
30 const uint8_t PUB_RATE_MIN = 1;
31 const uint8_t PUB_RATE_DEFAULT = 10;
34 
35 class TmclROS
36 {
37 public:
38  /* Constructor */
39  TmclROS(ros::NodeHandle* p_nh);
40 
41  /* Destructor */
42  ~TmclROS();
43 
44  /* Initialization */
45  bool init();
46 
47  /* De-initialization */
48  bool deInit();
49 
50  /* Getter b_retries_exceeded variable */
52 
53 private:
54  /* Parameter Validation */
55  bool validateParams();
56 
57  /* Creates motor */
58  void createMotor();
59 
60  /* Initializes ROS Service */
61  void initService();
62 
63  /* ROS Services */
64  bool tmclCustomCMDCallBack(adi_tmcl::TmcCustomCmd::Request& req, adi_tmcl::TmcCustomCmd::Response& res);
65  bool tmclGAPAllCallBack(adi_tmcl::TmcGapGgpAll::Request& req, adi_tmcl::TmcGapGgpAll::Response& res);
66  bool tmclGGPAllCallBack(adi_tmcl::TmcGapGgpAll::Request& req, adi_tmcl::TmcGapGgpAll::Response& res);
70 
71  /* Pointers */
74  std::vector<Motor*> p_motor_;
75 
76  uint16_t module_number_;
77  uint8_t total_motors_;
78  uint8_t motor_type_;
79 
80  /* ROS parameters */
81  std::string s_node_name_;
82  std::string s_namespace_;
83 
84  /* Autogenerated YAML*/
85  std::vector<std::string> param_ap_name_;
86  std::vector<int> param_ap_type_;
87  std::vector<std::string> param_gp_name_;
88  std::vector<int> param_gp_type_;
89 
90  /* Ext YAML */
100  std::vector<int> param_en_motors_;
101 
102  adi_tmcl::TmcParam tmc_param_msg_;
103 };
104 
105 #endif // TMCL_ROS_H
TmclROS::gap_all_server_
ros::ServiceServer gap_all_server_
Definition: tmcl_ros.h:68
tmcl_motor.h
EXEC_CMD_RETRIES_DEFAULT
const uint8_t EXEC_CMD_RETRIES_DEFAULT
Definition: tmcl_ros.h:28
PUB_RATE_DEFAULT
const uint8_t PUB_RATE_DEFAULT
Definition: tmcl_ros.h:31
tmcl_stepper_motor.h
TmclROS::tmclCustomCMDCallBack
bool tmclCustomCMDCallBack(adi_tmcl::TmcCustomCmd::Request &req, adi_tmcl::TmcCustomCmd::Response &res)
Definition: tmcl_ros.cpp:496
TmclROS::p_tmcl_interpreter_
TmclInterpreter * p_tmcl_interpreter_
Definition: tmcl_ros.h:73
TmclROS::deInit
bool deInit()
Definition: tmcl_ros.cpp:636
TmclROS::tmclGAPAllCallBack
bool tmclGAPAllCallBack(adi_tmcl::TmcGapGgpAll::Request &req, adi_tmcl::TmcGapGgpAll::Response &res)
Definition: tmcl_ros.cpp:565
AUTO_START_ADDITIONAL_DELAY_DEFAULT
const uint8_t AUTO_START_ADDITIONAL_DELAY_DEFAULT
Definition: tmcl_ros.h:33
TmclROS::param_comm_interface_name_
std::string param_comm_interface_name_
Definition: tmcl_ros.h:92
TmclROS::s_namespace_
std::string s_namespace_
Definition: tmcl_ros.h:82
TmclROS::initService
void initService()
Definition: tmcl_ros.cpp:450
TIMEOUT_MS_DEFAULT
const uint8_t TIMEOUT_MS_DEFAULT
Definition: tmcl_ros.h:26
TmclROS::TmclROS
TmclROS(ros::NodeHandle *p_nh)
Definition: tmcl_ros.cpp:11
TmclROS::tmclGGPAllCallBack
bool tmclGGPAllCallBack(adi_tmcl::TmcGapGgpAll::Request &req, adi_tmcl::TmcGapGgpAll::Response &res)
Definition: tmcl_ros.cpp:599
TmclROS::param_comm_exec_cmd_retries_
int param_comm_exec_cmd_retries_
Definition: tmcl_ros.h:96
TX_ID_DEFAULT
const uint8_t TX_ID_DEFAULT
Definition: tmcl_ros.h:23
TmclROS::param_en_motors_
std::vector< int > param_en_motors_
Definition: tmcl_ros.h:100
TmclROS::param_auto_start_additional_delay_
int param_auto_start_additional_delay_
Definition: tmcl_ros.h:97
TmclROS::ggp_all_server_
ros::ServiceServer ggp_all_server_
Definition: tmcl_ros.h:69
TmclROS::param_comm_interface_
int param_comm_interface_
Definition: tmcl_ros.h:91
TmclROS::param_gp_name_
std::vector< std::string > param_gp_name_
Definition: tmcl_ros.h:87
tmcl_bldc_motor.h
TmclROS::param_comm_tx_id_
int param_comm_tx_id_
Definition: tmcl_ros.h:93
TmclROS::module_number_
uint16_t module_number_
Definition: tmcl_ros.h:76
TmclROS::param_gp_type_
std::vector< int > param_gp_type_
Definition: tmcl_ros.h:88
ros::ServiceServer
MOTOR_TYPE_BLDC
const uint8_t MOTOR_TYPE_BLDC
Definition: tmcl_ros.h:19
TmclROS::p_motor_
std::vector< Motor * > p_motor_
Definition: tmcl_ros.h:74
TmclROS::getRetriesExceededStatus
bool getRetriesExceededStatus()
Definition: tmcl_ros.cpp:677
TmclROS::param_ap_name_
std::vector< std::string > param_ap_name_
Definition: tmcl_ros.h:85
TIMEOUT_MS_MAX
const uint16_t TIMEOUT_MS_MAX
Definition: tmcl_ros.h:25
EXEC_CMD_RETRIES_MAX
const uint8_t EXEC_CMD_RETRIES_MAX
Definition: tmcl_ros.h:27
TmclROS::param_ap_type_
std::vector< int > param_ap_type_
Definition: tmcl_ros.h:86
RX_ID_DEFAULT
const uint8_t RX_ID_DEFAULT
Definition: tmcl_ros.h:24
TXRX_ID_MAX
const uint8_t TXRX_ID_MAX
Definition: tmcl_ros.h:22
TmclROS::param_pub_rate_tmc_info_
float param_pub_rate_tmc_info_
Definition: tmcl_ros.h:98
AUTO_START_ADDITIONAL_DELAY_MAX
const uint8_t AUTO_START_ADDITIONAL_DELAY_MAX
Definition: tmcl_ros.h:32
TmclROS::createMotor
void createMotor()
Definition: tmcl_ros.cpp:333
TmclInterpreter
Definition: tmcl_interpreter.h:98
TmclROS::~TmclROS
~TmclROS()
Definition: tmcl_ros.cpp:20
TmclROS::motor_type_
uint8_t motor_type_
Definition: tmcl_ros.h:78
tmcl_interpreter.h
TmclROS::validateParams
bool validateParams()
Definition: tmcl_ros.cpp:128
TmclROS::total_motors_
uint8_t total_motors_
Definition: tmcl_ros.h:77
TmclROS::init
bool init()
Definition: tmcl_ros.cpp:39
PUB_RATE_MAX
const uint8_t PUB_RATE_MAX
Definition: tmcl_ros.h:29
TmclROS::tmc_param_msg_
adi_tmcl::TmcParam tmc_param_msg_
Definition: tmcl_ros.h:102
TmclROS::p_nh_
ros::NodeHandle * p_nh_
Definition: tmcl_ros.h:72
TmclROS::custom_cmd_server_
ros::ServiceServer custom_cmd_server_
Definition: tmcl_ros.h:67
TmclROS::param_comm_rx_id_
int param_comm_rx_id_
Definition: tmcl_ros.h:94
TmclROS::s_node_name_
std::string s_node_name_
Definition: tmcl_ros.h:81
TmclROS
Definition: tmcl_ros.h:35
TmclROS::param_adhoc_mode_
bool param_adhoc_mode_
Definition: tmcl_ros.h:99
TmclROS::param_comm_timeout_ms_
int param_comm_timeout_ms_
Definition: tmcl_ros.h:95
ros::NodeHandle
PUB_RATE_MIN
const uint8_t PUB_RATE_MIN
Definition: tmcl_ros.h:30


adi_tmcl
Author(s):
autogenerated on Wed Apr 2 2025 02:43:01