00001 00028 #ifndef _SHADOW_PSTS_HPP_ 00029 #define _SHADOW_PSTS_HPP_ 00030 00031 #include <vector> 00032 #include <sr_robot_msgs/ShadowPST.h> 00033 #include <realtime_tools/realtime_publisher.h> 00034 00035 #include <sr_hardware_interface/tactile_sensors.hpp> 00036 #include "sr_robot_lib/generic_tactiles.hpp" 00037 #include "sr_robot_lib/generic_updater.hpp" 00038 00039 namespace tactiles 00040 { 00041 class ShadowPSTs : 00042 public GenericTactiles 00043 { 00044 public: 00045 ShadowPSTs(std::vector<generic_updater::UpdateConfig> update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state); 00046 ShadowPSTs(std::vector<generic_updater::UpdateConfig> update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state, boost::shared_ptr< std::vector<GenericTactileData> > init_tactiles_vector); 00047 00048 ~ShadowPSTs() {}; 00049 00050 void init(std::vector<generic_updater::UpdateConfig> update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state); 00051 00059 virtual void update(ETHERCAT_DATA_STRUCTURE_0200_PALM_EDC_STATUS* status_data); 00060 00065 virtual void publish(); 00066 00071 virtual void add_diagnostics(std::vector<diagnostic_msgs::DiagnosticStatus> &vec, 00072 diagnostic_updater::DiagnosticStatusWrapper &d); 00073 00075 boost::shared_ptr< std::vector<PST3Data> > tactiles_vector; 00076 00077 virtual std::vector<AllTactileData>* get_tactile_data(); 00078 00079 protected: 00080 00081 // Tactile sensor real time publisher 00082 boost::shared_ptr<realtime_tools::RealtimePublisher<sr_robot_msgs::ShadowPST> > tactile_publisher; 00083 };//end class 00084 }//end namespace 00085 00086 /* For the emacs weenies in the crowd. 00087 Local Variables: 00088 c-basic-offset: 2 00089 End: 00090 */ 00091 00092 #endif /* _SHADOW_PSTS_HPP_ */