00001 /* 00002 * SerialCommandDevice.hpp 00003 * 00004 * Created on: Jul 11, 2012 00005 * Author: mriedel 00006 */ 00007 00008 #ifndef SERIALCOMMANDDEVICE_HPP_ 00009 #define SERIALCOMMANDDEVICE_HPP_ 00010 00011 #include <telekyb_defines/telekyb_defines.hpp> 00012 #include <telekyb_msgs/TKMotorCommands.h> 00013 #include <telekyb_serial/SerialDevice.h> 00014 00015 #include <telekyb_base/Time.hpp> 00016 #include <telekyb_base/ROS.hpp> 00017 00018 #include "SerialCommandDeviceOptions.hpp" 00019 00020 namespace TELEKYB_NAMESPACE { 00021 00022 class SerialCommandDevice : public SerialDevice { 00023 private: 00024 SerialCommandDeviceOptions &options; 00025 00026 ros::NodeHandle nodeHandle; 00027 ros::Subscriber commandSub; 00028 telekyb::Timer secureTimer; 00029 00030 void commandCallback(const telekyb_msgs::TKMotorCommands::ConstPtr& commandMsg); 00031 inline 00032 unsigned char setpoint( double force); 00033 00034 public: 00035 SerialCommandDevice(); 00036 virtual ~SerialCommandDevice(); 00037 00038 }; 00039 00040 } 00041 00042 #endif /* SERIALCOMMANDDEVICE_HPP_ */