00001 00025 #ifndef ROBOTEQ_CHANNEL 00026 #define ROBOTEQ_CHANNEL 00027 00028 #include "ros/ros.h" 00029 00030 namespace roboteq_msgs { 00031 ROS_DECLARE_MESSAGE(Command); 00032 ROS_DECLARE_MESSAGE(Feedback); 00033 } 00034 00035 namespace roboteq { 00036 00037 class Controller; 00038 00039 class Channel { 00040 public: 00041 Channel(int channel_num, std::string ns, Controller* controller); 00042 void feedbackCallback(std::vector<std::string>); 00043 00044 protected: 00045 void cmdCallback(const roboteq_msgs::Command&); 00046 void timerCallback(const ros::TimerEvent&); 00047 00048 ros::NodeHandle nh_; 00049 boost::shared_ptr<Controller> controller_; 00050 int channel_num_; 00051 float max_rpm_; 00052 00053 ros::Subscriber sub_cmd_; 00054 ros::Publisher pub_feedback_; 00055 ros::Timer timer_init_; 00056 00057 ros::Time last_feedback_time_; 00058 }; 00059 00060 } 00061 00062 #endif