$search
00001 /* Auto-generated by genmsg_cpp for file /home/rosbuild/hudson/workspace/doc-electric-pr2_mechanism/doc_stacks/2013-03-01_16-59-32.624252/pr2_mechanism/pr2_mechanism_msgs/msg/ActuatorStatistics.msg */ 00002 #ifndef PR2_MECHANISM_MSGS_MESSAGE_ACTUATORSTATISTICS_H 00003 #define PR2_MECHANISM_MSGS_MESSAGE_ACTUATORSTATISTICS_H 00004 #include <string> 00005 #include <vector> 00006 #include <map> 00007 #include <ostream> 00008 #include "ros/serialization.h" 00009 #include "ros/builtin_message_traits.h" 00010 #include "ros/message_operations.h" 00011 #include "ros/time.h" 00012 00013 #include "ros/macros.h" 00014 00015 #include "ros/assert.h" 00016 00017 00018 namespace pr2_mechanism_msgs 00019 { 00020 template <class ContainerAllocator> 00021 struct ActuatorStatistics_ { 00022 typedef ActuatorStatistics_<ContainerAllocator> Type; 00023 00024 ActuatorStatistics_() 00025 : name() 00026 , device_id(0) 00027 , timestamp() 00028 , encoder_count(0) 00029 , encoder_offset(0.0) 00030 , position(0.0) 00031 , encoder_velocity(0.0) 00032 , velocity(0.0) 00033 , calibration_reading(false) 00034 , calibration_rising_edge_valid(false) 00035 , calibration_falling_edge_valid(false) 00036 , last_calibration_rising_edge(0.0) 00037 , last_calibration_falling_edge(0.0) 00038 , is_enabled(false) 00039 , halted(false) 00040 , last_commanded_current(0.0) 00041 , last_commanded_effort(0.0) 00042 , last_executed_current(0.0) 00043 , last_executed_effort(0.0) 00044 , last_measured_current(0.0) 00045 , last_measured_effort(0.0) 00046 , motor_voltage(0.0) 00047 , num_encoder_errors(0) 00048 { 00049 } 00050 00051 ActuatorStatistics_(const ContainerAllocator& _alloc) 00052 : name(_alloc) 00053 , device_id(0) 00054 , timestamp() 00055 , encoder_count(0) 00056 , encoder_offset(0.0) 00057 , position(0.0) 00058 , encoder_velocity(0.0) 00059 , velocity(0.0) 00060 , calibration_reading(false) 00061 , calibration_rising_edge_valid(false) 00062 , calibration_falling_edge_valid(false) 00063 , last_calibration_rising_edge(0.0) 00064 , last_calibration_falling_edge(0.0) 00065 , is_enabled(false) 00066 , halted(false) 00067 , last_commanded_current(0.0) 00068 , last_commanded_effort(0.0) 00069 , last_executed_current(0.0) 00070 , last_executed_effort(0.0) 00071 , last_measured_current(0.0) 00072 , last_measured_effort(0.0) 00073 , motor_voltage(0.0) 00074 , num_encoder_errors(0) 00075 { 00076 } 00077 00078 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _name_type; 00079 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > name; 00080 00081 typedef int32_t _device_id_type; 00082 int32_t device_id; 00083 00084 typedef ros::Time _timestamp_type; 00085 ros::Time timestamp; 00086 00087 typedef int32_t _encoder_count_type; 00088 int32_t encoder_count; 00089 00090 typedef double _encoder_offset_type; 00091 double encoder_offset; 00092 00093 typedef double _position_type; 00094 double position; 00095 00096 typedef double _encoder_velocity_type; 00097 double encoder_velocity; 00098 00099 typedef double _velocity_type; 00100 double velocity; 00101 00102 typedef uint8_t _calibration_reading_type; 00103 uint8_t calibration_reading; 00104 00105 typedef uint8_t _calibration_rising_edge_valid_type; 00106 uint8_t calibration_rising_edge_valid; 00107 00108 typedef uint8_t _calibration_falling_edge_valid_type; 00109 uint8_t calibration_falling_edge_valid; 00110 00111 typedef double _last_calibration_rising_edge_type; 00112 double last_calibration_rising_edge; 00113 00114 typedef double _last_calibration_falling_edge_type; 00115 double last_calibration_falling_edge; 00116 00117 typedef uint8_t _is_enabled_type; 00118 uint8_t is_enabled; 00119 00120 typedef uint8_t _halted_type; 00121 uint8_t halted; 00122 00123 typedef double _last_commanded_current_type; 00124 double last_commanded_current; 00125 00126 typedef double _last_commanded_effort_type; 00127 double last_commanded_effort; 00128 00129 typedef double _last_executed_current_type; 00130 double last_executed_current; 00131 00132 typedef double _last_executed_effort_type; 00133 double last_executed_effort; 00134 00135 typedef double _last_measured_current_type; 00136 double last_measured_current; 00137 00138 typedef double _last_measured_effort_type; 00139 double last_measured_effort; 00140 00141 typedef double _motor_voltage_type; 00142 double motor_voltage; 00143 00144 typedef int32_t _num_encoder_errors_type; 00145 int32_t num_encoder_errors; 00146 00147 00148 private: 00149 static const char* __s_getDataType_() { return "pr2_mechanism_msgs/ActuatorStatistics"; } 00150 public: 00151 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); } 00152 00153 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); } 00154 00155 private: 00156 static const char* __s_getMD5Sum_() { return "c37184273b29627de29382f1d3670175"; } 00157 public: 00158 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); } 00159 00160 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); } 00161 00162 private: 00163 static const char* __s_getMessageDefinition_() { return "# This message contains the state of an actuator on the pr2 robot.\n\ 00164 # An actuator contains a motor and an encoder, and is connected\n\ 00165 # to a joint by a transmission\n\ 00166 \n\ 00167 # the name of the actuator\n\ 00168 string name\n\ 00169 \n\ 00170 # the sequence number of the MCB in the ethercat chain. \n\ 00171 # the first device in the chain gets deviced_id zero\n\ 00172 int32 device_id\n\ 00173 \n\ 00174 # the time at which this actuator state was measured\n\ 00175 time timestamp\n\ 00176 \n\ 00177 # the encoder position, represented by the number of encoder ticks\n\ 00178 int32 encoder_count\n\ 00179 \n\ 00180 # The angular offset (in radians) that is added to the encoder reading, \n\ 00181 # to get to the position of the actuator. This number is computed when the referece\n\ 00182 # sensor is triggered during the calibration phase\n\ 00183 float64 encoder_offset\n\ 00184 \n\ 00185 # the encoder position in radians\n\ 00186 float64 position\n\ 00187 \n\ 00188 # the encoder velocity in encoder ticks per second\n\ 00189 float64 encoder_velocity\n\ 00190 \n\ 00191 # the encoder velocity in radians per second\n\ 00192 float64 velocity\n\ 00193 \n\ 00194 # the value of the calibration reading: low (false) or high (true)\n\ 00195 bool calibration_reading\n\ 00196 \n\ 00197 # bool to indicate if the joint already triggered the rising/falling edge of the reference sensor\n\ 00198 bool calibration_rising_edge_valid\n\ 00199 bool calibration_falling_edge_valid\n\ 00200 \n\ 00201 # the encoder position when the last rising/falling edge was observed. \n\ 00202 # only read this value when the calibration_rising/falling_edge_valid is true\n\ 00203 float64 last_calibration_rising_edge\n\ 00204 float64 last_calibration_falling_edge\n\ 00205 \n\ 00206 # flag to indicate if this actuator is enabled or not. \n\ 00207 # An actuator can only be commanded when it is enabled.\n\ 00208 bool is_enabled\n\ 00209 \n\ 00210 # indicates if the motor is halted. A motor can be halted because of a voltage or communication problem\n\ 00211 bool halted\n\ 00212 \n\ 00213 # the last current/effort command that was requested\n\ 00214 float64 last_commanded_current\n\ 00215 float64 last_commanded_effort\n\ 00216 \n\ 00217 # the last current/effort command that was executed by the actuator\n\ 00218 float64 last_executed_current\n\ 00219 float64 last_executed_effort\n\ 00220 \n\ 00221 # the last current/effort that was measured by the actuator\n\ 00222 float64 last_measured_current\n\ 00223 float64 last_measured_effort\n\ 00224 \n\ 00225 # the motor voltate\n\ 00226 float64 motor_voltage\n\ 00227 \n\ 00228 # the number of detected encoder problems \n\ 00229 int32 num_encoder_errors\n\ 00230 \n\ 00231 \n\ 00232 "; } 00233 public: 00234 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); } 00235 00236 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); } 00237 00238 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const 00239 { 00240 ros::serialization::OStream stream(write_ptr, 1000000000); 00241 ros::serialization::serialize(stream, name); 00242 ros::serialization::serialize(stream, device_id); 00243 ros::serialization::serialize(stream, timestamp); 00244 ros::serialization::serialize(stream, encoder_count); 00245 ros::serialization::serialize(stream, encoder_offset); 00246 ros::serialization::serialize(stream, position); 00247 ros::serialization::serialize(stream, encoder_velocity); 00248 ros::serialization::serialize(stream, velocity); 00249 ros::serialization::serialize(stream, calibration_reading); 00250 ros::serialization::serialize(stream, calibration_rising_edge_valid); 00251 ros::serialization::serialize(stream, calibration_falling_edge_valid); 00252 ros::serialization::serialize(stream, last_calibration_rising_edge); 00253 ros::serialization::serialize(stream, last_calibration_falling_edge); 00254 ros::serialization::serialize(stream, is_enabled); 00255 ros::serialization::serialize(stream, halted); 00256 ros::serialization::serialize(stream, last_commanded_current); 00257 ros::serialization::serialize(stream, last_commanded_effort); 00258 ros::serialization::serialize(stream, last_executed_current); 00259 ros::serialization::serialize(stream, last_executed_effort); 00260 ros::serialization::serialize(stream, last_measured_current); 00261 ros::serialization::serialize(stream, last_measured_effort); 00262 ros::serialization::serialize(stream, motor_voltage); 00263 ros::serialization::serialize(stream, num_encoder_errors); 00264 return stream.getData(); 00265 } 00266 00267 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr) 00268 { 00269 ros::serialization::IStream stream(read_ptr, 1000000000); 00270 ros::serialization::deserialize(stream, name); 00271 ros::serialization::deserialize(stream, device_id); 00272 ros::serialization::deserialize(stream, timestamp); 00273 ros::serialization::deserialize(stream, encoder_count); 00274 ros::serialization::deserialize(stream, encoder_offset); 00275 ros::serialization::deserialize(stream, position); 00276 ros::serialization::deserialize(stream, encoder_velocity); 00277 ros::serialization::deserialize(stream, velocity); 00278 ros::serialization::deserialize(stream, calibration_reading); 00279 ros::serialization::deserialize(stream, calibration_rising_edge_valid); 00280 ros::serialization::deserialize(stream, calibration_falling_edge_valid); 00281 ros::serialization::deserialize(stream, last_calibration_rising_edge); 00282 ros::serialization::deserialize(stream, last_calibration_falling_edge); 00283 ros::serialization::deserialize(stream, is_enabled); 00284 ros::serialization::deserialize(stream, halted); 00285 ros::serialization::deserialize(stream, last_commanded_current); 00286 ros::serialization::deserialize(stream, last_commanded_effort); 00287 ros::serialization::deserialize(stream, last_executed_current); 00288 ros::serialization::deserialize(stream, last_executed_effort); 00289 ros::serialization::deserialize(stream, last_measured_current); 00290 ros::serialization::deserialize(stream, last_measured_effort); 00291 ros::serialization::deserialize(stream, motor_voltage); 00292 ros::serialization::deserialize(stream, num_encoder_errors); 00293 return stream.getData(); 00294 } 00295 00296 ROS_DEPRECATED virtual uint32_t serializationLength() const 00297 { 00298 uint32_t size = 0; 00299 size += ros::serialization::serializationLength(name); 00300 size += ros::serialization::serializationLength(device_id); 00301 size += ros::serialization::serializationLength(timestamp); 00302 size += ros::serialization::serializationLength(encoder_count); 00303 size += ros::serialization::serializationLength(encoder_offset); 00304 size += ros::serialization::serializationLength(position); 00305 size += ros::serialization::serializationLength(encoder_velocity); 00306 size += ros::serialization::serializationLength(velocity); 00307 size += ros::serialization::serializationLength(calibration_reading); 00308 size += ros::serialization::serializationLength(calibration_rising_edge_valid); 00309 size += ros::serialization::serializationLength(calibration_falling_edge_valid); 00310 size += ros::serialization::serializationLength(last_calibration_rising_edge); 00311 size += ros::serialization::serializationLength(last_calibration_falling_edge); 00312 size += ros::serialization::serializationLength(is_enabled); 00313 size += ros::serialization::serializationLength(halted); 00314 size += ros::serialization::serializationLength(last_commanded_current); 00315 size += ros::serialization::serializationLength(last_commanded_effort); 00316 size += ros::serialization::serializationLength(last_executed_current); 00317 size += ros::serialization::serializationLength(last_executed_effort); 00318 size += ros::serialization::serializationLength(last_measured_current); 00319 size += ros::serialization::serializationLength(last_measured_effort); 00320 size += ros::serialization::serializationLength(motor_voltage); 00321 size += ros::serialization::serializationLength(num_encoder_errors); 00322 return size; 00323 } 00324 00325 typedef boost::shared_ptr< ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> > Ptr; 00326 typedef boost::shared_ptr< ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> const> ConstPtr; 00327 boost::shared_ptr<std::map<std::string, std::string> > __connection_header; 00328 }; // struct ActuatorStatistics 00329 typedef ::pr2_mechanism_msgs::ActuatorStatistics_<std::allocator<void> > ActuatorStatistics; 00330 00331 typedef boost::shared_ptr< ::pr2_mechanism_msgs::ActuatorStatistics> ActuatorStatisticsPtr; 00332 typedef boost::shared_ptr< ::pr2_mechanism_msgs::ActuatorStatistics const> ActuatorStatisticsConstPtr; 00333 00334 00335 template<typename ContainerAllocator> 00336 std::ostream& operator<<(std::ostream& s, const ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> & v) 00337 { 00338 ros::message_operations::Printer< ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> >::stream(s, "", v); 00339 return s;} 00340 00341 } // namespace pr2_mechanism_msgs 00342 00343 namespace ros 00344 { 00345 namespace message_traits 00346 { 00347 template<class ContainerAllocator> struct IsMessage< ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> > : public TrueType {}; 00348 template<class ContainerAllocator> struct IsMessage< ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> const> : public TrueType {}; 00349 template<class ContainerAllocator> 00350 struct MD5Sum< ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> > { 00351 static const char* value() 00352 { 00353 return "c37184273b29627de29382f1d3670175"; 00354 } 00355 00356 static const char* value(const ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> &) { return value(); } 00357 static const uint64_t static_value1 = 0xc37184273b29627dULL; 00358 static const uint64_t static_value2 = 0xe29382f1d3670175ULL; 00359 }; 00360 00361 template<class ContainerAllocator> 00362 struct DataType< ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> > { 00363 static const char* value() 00364 { 00365 return "pr2_mechanism_msgs/ActuatorStatistics"; 00366 } 00367 00368 static const char* value(const ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> &) { return value(); } 00369 }; 00370 00371 template<class ContainerAllocator> 00372 struct Definition< ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> > { 00373 static const char* value() 00374 { 00375 return "# This message contains the state of an actuator on the pr2 robot.\n\ 00376 # An actuator contains a motor and an encoder, and is connected\n\ 00377 # to a joint by a transmission\n\ 00378 \n\ 00379 # the name of the actuator\n\ 00380 string name\n\ 00381 \n\ 00382 # the sequence number of the MCB in the ethercat chain. \n\ 00383 # the first device in the chain gets deviced_id zero\n\ 00384 int32 device_id\n\ 00385 \n\ 00386 # the time at which this actuator state was measured\n\ 00387 time timestamp\n\ 00388 \n\ 00389 # the encoder position, represented by the number of encoder ticks\n\ 00390 int32 encoder_count\n\ 00391 \n\ 00392 # The angular offset (in radians) that is added to the encoder reading, \n\ 00393 # to get to the position of the actuator. This number is computed when the referece\n\ 00394 # sensor is triggered during the calibration phase\n\ 00395 float64 encoder_offset\n\ 00396 \n\ 00397 # the encoder position in radians\n\ 00398 float64 position\n\ 00399 \n\ 00400 # the encoder velocity in encoder ticks per second\n\ 00401 float64 encoder_velocity\n\ 00402 \n\ 00403 # the encoder velocity in radians per second\n\ 00404 float64 velocity\n\ 00405 \n\ 00406 # the value of the calibration reading: low (false) or high (true)\n\ 00407 bool calibration_reading\n\ 00408 \n\ 00409 # bool to indicate if the joint already triggered the rising/falling edge of the reference sensor\n\ 00410 bool calibration_rising_edge_valid\n\ 00411 bool calibration_falling_edge_valid\n\ 00412 \n\ 00413 # the encoder position when the last rising/falling edge was observed. \n\ 00414 # only read this value when the calibration_rising/falling_edge_valid is true\n\ 00415 float64 last_calibration_rising_edge\n\ 00416 float64 last_calibration_falling_edge\n\ 00417 \n\ 00418 # flag to indicate if this actuator is enabled or not. \n\ 00419 # An actuator can only be commanded when it is enabled.\n\ 00420 bool is_enabled\n\ 00421 \n\ 00422 # indicates if the motor is halted. A motor can be halted because of a voltage or communication problem\n\ 00423 bool halted\n\ 00424 \n\ 00425 # the last current/effort command that was requested\n\ 00426 float64 last_commanded_current\n\ 00427 float64 last_commanded_effort\n\ 00428 \n\ 00429 # the last current/effort command that was executed by the actuator\n\ 00430 float64 last_executed_current\n\ 00431 float64 last_executed_effort\n\ 00432 \n\ 00433 # the last current/effort that was measured by the actuator\n\ 00434 float64 last_measured_current\n\ 00435 float64 last_measured_effort\n\ 00436 \n\ 00437 # the motor voltate\n\ 00438 float64 motor_voltage\n\ 00439 \n\ 00440 # the number of detected encoder problems \n\ 00441 int32 num_encoder_errors\n\ 00442 \n\ 00443 \n\ 00444 "; 00445 } 00446 00447 static const char* value(const ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> &) { return value(); } 00448 }; 00449 00450 } // namespace message_traits 00451 } // namespace ros 00452 00453 namespace ros 00454 { 00455 namespace serialization 00456 { 00457 00458 template<class ContainerAllocator> struct Serializer< ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> > 00459 { 00460 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) 00461 { 00462 stream.next(m.name); 00463 stream.next(m.device_id); 00464 stream.next(m.timestamp); 00465 stream.next(m.encoder_count); 00466 stream.next(m.encoder_offset); 00467 stream.next(m.position); 00468 stream.next(m.encoder_velocity); 00469 stream.next(m.velocity); 00470 stream.next(m.calibration_reading); 00471 stream.next(m.calibration_rising_edge_valid); 00472 stream.next(m.calibration_falling_edge_valid); 00473 stream.next(m.last_calibration_rising_edge); 00474 stream.next(m.last_calibration_falling_edge); 00475 stream.next(m.is_enabled); 00476 stream.next(m.halted); 00477 stream.next(m.last_commanded_current); 00478 stream.next(m.last_commanded_effort); 00479 stream.next(m.last_executed_current); 00480 stream.next(m.last_executed_effort); 00481 stream.next(m.last_measured_current); 00482 stream.next(m.last_measured_effort); 00483 stream.next(m.motor_voltage); 00484 stream.next(m.num_encoder_errors); 00485 } 00486 00487 ROS_DECLARE_ALLINONE_SERIALIZER; 00488 }; // struct ActuatorStatistics_ 00489 } // namespace serialization 00490 } // namespace ros 00491 00492 namespace ros 00493 { 00494 namespace message_operations 00495 { 00496 00497 template<class ContainerAllocator> 00498 struct Printer< ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> > 00499 { 00500 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::pr2_mechanism_msgs::ActuatorStatistics_<ContainerAllocator> & v) 00501 { 00502 s << indent << "name: "; 00503 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.name); 00504 s << indent << "device_id: "; 00505 Printer<int32_t>::stream(s, indent + " ", v.device_id); 00506 s << indent << "timestamp: "; 00507 Printer<ros::Time>::stream(s, indent + " ", v.timestamp); 00508 s << indent << "encoder_count: "; 00509 Printer<int32_t>::stream(s, indent + " ", v.encoder_count); 00510 s << indent << "encoder_offset: "; 00511 Printer<double>::stream(s, indent + " ", v.encoder_offset); 00512 s << indent << "position: "; 00513 Printer<double>::stream(s, indent + " ", v.position); 00514 s << indent << "encoder_velocity: "; 00515 Printer<double>::stream(s, indent + " ", v.encoder_velocity); 00516 s << indent << "velocity: "; 00517 Printer<double>::stream(s, indent + " ", v.velocity); 00518 s << indent << "calibration_reading: "; 00519 Printer<uint8_t>::stream(s, indent + " ", v.calibration_reading); 00520 s << indent << "calibration_rising_edge_valid: "; 00521 Printer<uint8_t>::stream(s, indent + " ", v.calibration_rising_edge_valid); 00522 s << indent << "calibration_falling_edge_valid: "; 00523 Printer<uint8_t>::stream(s, indent + " ", v.calibration_falling_edge_valid); 00524 s << indent << "last_calibration_rising_edge: "; 00525 Printer<double>::stream(s, indent + " ", v.last_calibration_rising_edge); 00526 s << indent << "last_calibration_falling_edge: "; 00527 Printer<double>::stream(s, indent + " ", v.last_calibration_falling_edge); 00528 s << indent << "is_enabled: "; 00529 Printer<uint8_t>::stream(s, indent + " ", v.is_enabled); 00530 s << indent << "halted: "; 00531 Printer<uint8_t>::stream(s, indent + " ", v.halted); 00532 s << indent << "last_commanded_current: "; 00533 Printer<double>::stream(s, indent + " ", v.last_commanded_current); 00534 s << indent << "last_commanded_effort: "; 00535 Printer<double>::stream(s, indent + " ", v.last_commanded_effort); 00536 s << indent << "last_executed_current: "; 00537 Printer<double>::stream(s, indent + " ", v.last_executed_current); 00538 s << indent << "last_executed_effort: "; 00539 Printer<double>::stream(s, indent + " ", v.last_executed_effort); 00540 s << indent << "last_measured_current: "; 00541 Printer<double>::stream(s, indent + " ", v.last_measured_current); 00542 s << indent << "last_measured_effort: "; 00543 Printer<double>::stream(s, indent + " ", v.last_measured_effort); 00544 s << indent << "motor_voltage: "; 00545 Printer<double>::stream(s, indent + " ", v.motor_voltage); 00546 s << indent << "num_encoder_errors: "; 00547 Printer<int32_t>::stream(s, indent + " ", v.num_encoder_errors); 00548 } 00549 }; 00550 00551 00552 } // namespace message_operations 00553 } // namespace ros 00554 00555 #endif // PR2_MECHANISM_MSGS_MESSAGE_ACTUATORSTATISTICS_H 00556