// Generated by gencpp from file unitree_legged_msgs/MotorCmd.msg // DO NOT EDIT! #ifndef UNITREE_LEGGED_MSGS_MESSAGE_MOTORCMD_H #define UNITREE_LEGGED_MSGS_MESSAGE_MOTORCMD_H #include #include #include #include #include #include #include namespace unitree_legged_msgs { template struct MotorCmd_ { typedef MotorCmd_ Type; MotorCmd_() : mode(0) , q(0.0) , dq(0.0) , tau(0.0) , Kp(0.0) , Kd(0.0) , reserve() { reserve.assign(0); } MotorCmd_(const ContainerAllocator& _alloc) : mode(0) , q(0.0) , dq(0.0) , tau(0.0) , Kp(0.0) , Kd(0.0) , reserve() { (void)_alloc; reserve.assign(0); } typedef uint8_t _mode_type; _mode_type mode; typedef float _q_type; _q_type q; typedef float _dq_type; _dq_type dq; typedef float _tau_type; _tau_type tau; typedef float _Kp_type; _Kp_type Kp; typedef float _Kd_type; _Kd_type Kd; typedef boost::array _reserve_type; _reserve_type reserve; typedef boost::shared_ptr< ::unitree_legged_msgs::MotorCmd_ > Ptr; typedef boost::shared_ptr< ::unitree_legged_msgs::MotorCmd_ const> ConstPtr; }; // struct MotorCmd_ typedef ::unitree_legged_msgs::MotorCmd_ > MotorCmd; typedef boost::shared_ptr< ::unitree_legged_msgs::MotorCmd > MotorCmdPtr; typedef boost::shared_ptr< ::unitree_legged_msgs::MotorCmd const> MotorCmdConstPtr; // constants requiring out of line definition template std::ostream& operator<<(std::ostream& s, const ::unitree_legged_msgs::MotorCmd_ & v) { ros::message_operations::Printer< ::unitree_legged_msgs::MotorCmd_ >::stream(s, "", v); return s; } template bool operator==(const ::unitree_legged_msgs::MotorCmd_ & lhs, const ::unitree_legged_msgs::MotorCmd_ & rhs) { return lhs.mode == rhs.mode && lhs.q == rhs.q && lhs.dq == rhs.dq && lhs.tau == rhs.tau && lhs.Kp == rhs.Kp && lhs.Kd == rhs.Kd && lhs.reserve == rhs.reserve; } template bool operator!=(const ::unitree_legged_msgs::MotorCmd_ & lhs, const ::unitree_legged_msgs::MotorCmd_ & rhs) { return !(lhs == rhs); } } // namespace unitree_legged_msgs namespace ros { namespace message_traits { template struct IsFixedSize< ::unitree_legged_msgs::MotorCmd_ > : TrueType { }; template struct IsFixedSize< ::unitree_legged_msgs::MotorCmd_ const> : TrueType { }; template struct IsMessage< ::unitree_legged_msgs::MotorCmd_ > : TrueType { }; template struct IsMessage< ::unitree_legged_msgs::MotorCmd_ const> : TrueType { }; template struct HasHeader< ::unitree_legged_msgs::MotorCmd_ > : FalseType { }; template struct HasHeader< ::unitree_legged_msgs::MotorCmd_ const> : FalseType { }; template struct MD5Sum< ::unitree_legged_msgs::MotorCmd_ > { static const char* value() { return "bbb3b7d91319c3a1b99055f0149ba221"; } static const char* value(const ::unitree_legged_msgs::MotorCmd_&) { return value(); } static const uint64_t static_value1 = 0xbbb3b7d91319c3a1ULL; static const uint64_t static_value2 = 0xb99055f0149ba221ULL; }; template struct DataType< ::unitree_legged_msgs::MotorCmd_ > { static const char* value() { return "unitree_legged_msgs/MotorCmd"; } static const char* value(const ::unitree_legged_msgs::MotorCmd_&) { return value(); } }; template struct Definition< ::unitree_legged_msgs::MotorCmd_ > { static const char* value() { return "uint8 mode # motor target mode\n" "float32 q # motor target position\n" "float32 dq # motor target velocity\n" "float32 tau # motor target torque\n" "float32 Kp # motor spring stiffness coefficient\n" "float32 Kd # motor damper coefficient\n" "uint32[3] reserve # motor target torque\n" ; } static const char* value(const ::unitree_legged_msgs::MotorCmd_&) { return value(); } }; } // namespace message_traits } // namespace ros namespace ros { namespace serialization { template struct Serializer< ::unitree_legged_msgs::MotorCmd_ > { template inline static void allInOne(Stream& stream, T m) { stream.next(m.mode); stream.next(m.q); stream.next(m.dq); stream.next(m.tau); stream.next(m.Kp); stream.next(m.Kd); stream.next(m.reserve); } ROS_DECLARE_ALLINONE_SERIALIZER }; // struct MotorCmd_ } // namespace serialization } // namespace ros namespace ros { namespace message_operations { template struct Printer< ::unitree_legged_msgs::MotorCmd_ > { template static void stream(Stream& s, const std::string& indent, const ::unitree_legged_msgs::MotorCmd_& v) { s << indent << "mode: "; Printer::stream(s, indent + " ", v.mode); s << indent << "q: "; Printer::stream(s, indent + " ", v.q); s << indent << "dq: "; Printer::stream(s, indent + " ", v.dq); s << indent << "tau: "; Printer::stream(s, indent + " ", v.tau); s << indent << "Kp: "; Printer::stream(s, indent + " ", v.Kp); s << indent << "Kd: "; Printer::stream(s, indent + " ", v.Kd); s << indent << "reserve[]" << std::endl; for (size_t i = 0; i < v.reserve.size(); ++i) { s << indent << " reserve[" << i << "]: "; Printer::stream(s, indent + " ", v.reserve[i]); } } }; } // namespace message_operations } // namespace ros #endif // UNITREE_LEGGED_MSGS_MESSAGE_MOTORCMD_H