ROS Serial library for Mbed platforms for ROS Indigo Igloo. Check http://wiki.ros.org/rosserial_mbed/ for more information
Dependents: rosserial_mbed_hello_world_publisher rtos_base_control rosserial_mbed_F64MA ROS-RTOS ... more
JointTrajectoryControllerState.h
00001 #ifndef _ROS_control_msgs_JointTrajectoryControllerState_h 00002 #define _ROS_control_msgs_JointTrajectoryControllerState_h 00003 00004 #include <stdint.h> 00005 #include <string.h> 00006 #include <stdlib.h> 00007 #include "ros/msg.h" 00008 #include "std_msgs/Header.h" 00009 #include "trajectory_msgs/JointTrajectoryPoint.h" 00010 00011 namespace control_msgs 00012 { 00013 00014 class JointTrajectoryControllerState : public ros::Msg 00015 { 00016 public: 00017 std_msgs::Header header; 00018 uint8_t joint_names_length; 00019 char* st_joint_names; 00020 char* * joint_names; 00021 trajectory_msgs::JointTrajectoryPoint desired; 00022 trajectory_msgs::JointTrajectoryPoint actual; 00023 trajectory_msgs::JointTrajectoryPoint error; 00024 00025 JointTrajectoryControllerState(): 00026 header(), 00027 joint_names_length(0), joint_names(NULL), 00028 desired(), 00029 actual(), 00030 error() 00031 { 00032 } 00033 00034 virtual int serialize(unsigned char *outbuffer) const 00035 { 00036 int offset = 0; 00037 offset += this->header.serialize(outbuffer + offset); 00038 *(outbuffer + offset++) = joint_names_length; 00039 *(outbuffer + offset++) = 0; 00040 *(outbuffer + offset++) = 0; 00041 *(outbuffer + offset++) = 0; 00042 for( uint8_t i = 0; i < joint_names_length; i++){ 00043 uint32_t length_joint_namesi = strlen(this->joint_names[i]); 00044 memcpy(outbuffer + offset, &length_joint_namesi, sizeof(uint32_t)); 00045 offset += 4; 00046 memcpy(outbuffer + offset, this->joint_names[i], length_joint_namesi); 00047 offset += length_joint_namesi; 00048 } 00049 offset += this->desired.serialize(outbuffer + offset); 00050 offset += this->actual.serialize(outbuffer + offset); 00051 offset += this->error.serialize(outbuffer + offset); 00052 return offset; 00053 } 00054 00055 virtual int deserialize(unsigned char *inbuffer) 00056 { 00057 int offset = 0; 00058 offset += this->header.deserialize(inbuffer + offset); 00059 uint8_t joint_names_lengthT = *(inbuffer + offset++); 00060 if(joint_names_lengthT > joint_names_length) 00061 this->joint_names = (char**)realloc(this->joint_names, joint_names_lengthT * sizeof(char*)); 00062 offset += 3; 00063 joint_names_length = joint_names_lengthT; 00064 for( uint8_t i = 0; i < joint_names_length; i++){ 00065 uint32_t length_st_joint_names; 00066 memcpy(&length_st_joint_names, (inbuffer + offset), sizeof(uint32_t)); 00067 offset += 4; 00068 for(unsigned int k= offset; k< offset+length_st_joint_names; ++k){ 00069 inbuffer[k-1]=inbuffer[k]; 00070 } 00071 inbuffer[offset+length_st_joint_names-1]=0; 00072 this->st_joint_names = (char *)(inbuffer + offset-1); 00073 offset += length_st_joint_names; 00074 memcpy( &(this->joint_names[i]), &(this->st_joint_names), sizeof(char*)); 00075 } 00076 offset += this->desired.deserialize(inbuffer + offset); 00077 offset += this->actual.deserialize(inbuffer + offset); 00078 offset += this->error.deserialize(inbuffer + offset); 00079 return offset; 00080 } 00081 00082 const char * getType(){ return "control_msgs/JointTrajectoryControllerState"; }; 00083 const char * getMD5(){ return "10817c60c2486ef6b33e97dcd87f4474"; }; 00084 00085 }; 00086 00087 } 00088 #endif
Generated on Tue Jul 12 2022 18:39:39 by 1.7.2