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
Trigger.h
00001 #ifndef _ROS_SERVICE_Trigger_h 00002 #define _ROS_SERVICE_Trigger_h 00003 #include <stdint.h> 00004 #include <string.h> 00005 #include <stdlib.h> 00006 #include "ros/msg.h" 00007 00008 namespace std_srvs 00009 { 00010 00011 static const char TRIGGER[] = "std_srvs/Trigger"; 00012 00013 class TriggerRequest : public ros::Msg 00014 { 00015 public: 00016 00017 TriggerRequest() 00018 { 00019 } 00020 00021 virtual int serialize(unsigned char *outbuffer) const 00022 { 00023 int offset = 0; 00024 return offset; 00025 } 00026 00027 virtual int deserialize(unsigned char *inbuffer) 00028 { 00029 int offset = 0; 00030 return offset; 00031 } 00032 00033 const char * getType(){ return TRIGGER; }; 00034 const char * getMD5(){ return "d41d8cd98f00b204e9800998ecf8427e"; }; 00035 00036 }; 00037 00038 class TriggerResponse : public ros::Msg 00039 { 00040 public: 00041 bool success; 00042 const char* message; 00043 00044 TriggerResponse(): 00045 success(0), 00046 message("") 00047 { 00048 } 00049 00050 virtual int serialize(unsigned char *outbuffer) const 00051 { 00052 int offset = 0; 00053 union { 00054 bool real; 00055 uint8_t base; 00056 } u_success; 00057 u_success.real = this->success; 00058 *(outbuffer + offset + 0) = (u_success.base >> (8 * 0)) & 0xFF; 00059 offset += sizeof(this->success); 00060 uint32_t length_message = strlen(this->message); 00061 memcpy(outbuffer + offset, &length_message, sizeof(uint32_t)); 00062 offset += 4; 00063 memcpy(outbuffer + offset, this->message, length_message); 00064 offset += length_message; 00065 return offset; 00066 } 00067 00068 virtual int deserialize(unsigned char *inbuffer) 00069 { 00070 int offset = 0; 00071 union { 00072 bool real; 00073 uint8_t base; 00074 } u_success; 00075 u_success.base = 0; 00076 u_success.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0); 00077 this->success = u_success.real; 00078 offset += sizeof(this->success); 00079 uint32_t length_message; 00080 memcpy(&length_message, (inbuffer + offset), sizeof(uint32_t)); 00081 offset += 4; 00082 for(unsigned int k= offset; k< offset+length_message; ++k){ 00083 inbuffer[k-1]=inbuffer[k]; 00084 } 00085 inbuffer[offset+length_message-1]=0; 00086 this->message = (char *)(inbuffer + offset-1); 00087 offset += length_message; 00088 return offset; 00089 } 00090 00091 const char * getType(){ return TRIGGER; }; 00092 const char * getMD5(){ return "937c9679a518e3a18d831e57125ea522"; }; 00093 00094 }; 00095 00096 class Trigger { 00097 public: 00098 typedef TriggerRequest Request; 00099 typedef TriggerResponse Response; 00100 }; 00101 00102 } 00103 #endif
Generated on Tue Jul 12 2022 18:39:41 by 1.7.2