Go to the documentation of this file.00001
00002 #ifndef ETHERCAT_TRIGGER_CONTROLLERS_SERVICE_SETMULTIWAVEFORM_H
00003 #define ETHERCAT_TRIGGER_CONTROLLERS_SERVICE_SETMULTIWAVEFORM_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 #include "ros/service_traits.h"
00018
00019 #include "ethercat_trigger_controllers/MultiWaveform.h"
00020
00021
00022
00023 namespace ethercat_trigger_controllers
00024 {
00025 template <class ContainerAllocator>
00026 struct SetMultiWaveformRequest_ {
00027 typedef SetMultiWaveformRequest_<ContainerAllocator> Type;
00028
00029 SetMultiWaveformRequest_()
00030 : waveform()
00031 {
00032 }
00033
00034 SetMultiWaveformRequest_(const ContainerAllocator& _alloc)
00035 : waveform(_alloc)
00036 {
00037 }
00038
00039 typedef ::ethercat_trigger_controllers::MultiWaveform_<ContainerAllocator> _waveform_type;
00040 ::ethercat_trigger_controllers::MultiWaveform_<ContainerAllocator> waveform;
00041
00042
00043 typedef boost::shared_ptr< ::ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> > Ptr;
00044 typedef boost::shared_ptr< ::ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> const> ConstPtr;
00045 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00046 };
00047 typedef ::ethercat_trigger_controllers::SetMultiWaveformRequest_<std::allocator<void> > SetMultiWaveformRequest;
00048
00049 typedef boost::shared_ptr< ::ethercat_trigger_controllers::SetMultiWaveformRequest> SetMultiWaveformRequestPtr;
00050 typedef boost::shared_ptr< ::ethercat_trigger_controllers::SetMultiWaveformRequest const> SetMultiWaveformRequestConstPtr;
00051
00052
00053 template <class ContainerAllocator>
00054 struct SetMultiWaveformResponse_ {
00055 typedef SetMultiWaveformResponse_<ContainerAllocator> Type;
00056
00057 SetMultiWaveformResponse_()
00058 : success(false)
00059 , status_message()
00060 {
00061 }
00062
00063 SetMultiWaveformResponse_(const ContainerAllocator& _alloc)
00064 : success(false)
00065 , status_message(_alloc)
00066 {
00067 }
00068
00069 typedef uint8_t _success_type;
00070 uint8_t success;
00071
00072 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _status_message_type;
00073 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > status_message;
00074
00075
00076 typedef boost::shared_ptr< ::ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> > Ptr;
00077 typedef boost::shared_ptr< ::ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> const> ConstPtr;
00078 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00079 };
00080 typedef ::ethercat_trigger_controllers::SetMultiWaveformResponse_<std::allocator<void> > SetMultiWaveformResponse;
00081
00082 typedef boost::shared_ptr< ::ethercat_trigger_controllers::SetMultiWaveformResponse> SetMultiWaveformResponsePtr;
00083 typedef boost::shared_ptr< ::ethercat_trigger_controllers::SetMultiWaveformResponse const> SetMultiWaveformResponseConstPtr;
00084
00085 struct SetMultiWaveform
00086 {
00087
00088 typedef SetMultiWaveformRequest Request;
00089 typedef SetMultiWaveformResponse Response;
00090 Request request;
00091 Response response;
00092
00093 typedef Request RequestType;
00094 typedef Response ResponseType;
00095 };
00096 }
00097
00098 namespace ros
00099 {
00100 namespace message_traits
00101 {
00102 template<class ContainerAllocator> struct IsMessage< ::ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> > : public TrueType {};
00103 template<class ContainerAllocator> struct IsMessage< ::ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> const> : public TrueType {};
00104 template<class ContainerAllocator>
00105 struct MD5Sum< ::ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> > {
00106 static const char* value()
00107 {
00108 return "bfedad8205348a9bcc90e6ae4b778d86";
00109 }
00110
00111 static const char* value(const ::ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> &) { return value(); }
00112 static const uint64_t static_value1 = 0xbfedad8205348a9bULL;
00113 static const uint64_t static_value2 = 0xcc90e6ae4b778d86ULL;
00114 };
00115
00116 template<class ContainerAllocator>
00117 struct DataType< ::ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> > {
00118 static const char* value()
00119 {
00120 return "ethercat_trigger_controllers/SetMultiWaveformRequest";
00121 }
00122
00123 static const char* value(const ::ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> &) { return value(); }
00124 };
00125
00126 template<class ContainerAllocator>
00127 struct Definition< ::ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> > {
00128 static const char* value()
00129 {
00130 return "MultiWaveform waveform\n\
00131 \n\
00132 ================================================================================\n\
00133 MSG: ethercat_trigger_controllers/MultiWaveform\n\
00134 # Transitions will occur at k * period + zero_offset + transitions[j].time, where j and\n\
00135 # k are integers.\n\
00136 \n\
00137 float64 period # Period of the waveform in seconds.\n\
00138 float64 zero_offset # Time corresponding to a time of 0 in times[] in seconds\n\
00139 MultiWaveformTransition[] transitions # Transitions in the waveform. Transition times should be in increasing order, and be between 0 (inclusive) and period (exclusive)\n\
00140 \n\
00141 ================================================================================\n\
00142 MSG: ethercat_trigger_controllers/MultiWaveformTransition\n\
00143 # Used to specify a transition in the SetMultiWaveform service.\n\
00144 \n\
00145 float64 time # Transition time after start of period.\n\
00146 uint32 value # Value of the digital output after the transition time.\n\
00147 string topic # Topic to publish the transition timestamp to, or empty string if the transition should not be published.\n\
00148 \n\
00149 ";
00150 }
00151
00152 static const char* value(const ::ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> &) { return value(); }
00153 };
00154
00155 }
00156 }
00157
00158
00159 namespace ros
00160 {
00161 namespace message_traits
00162 {
00163 template<class ContainerAllocator> struct IsMessage< ::ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> > : public TrueType {};
00164 template<class ContainerAllocator> struct IsMessage< ::ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> const> : public TrueType {};
00165 template<class ContainerAllocator>
00166 struct MD5Sum< ::ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> > {
00167 static const char* value()
00168 {
00169 return "2ec6f3eff0161f4257b808b12bc830c2";
00170 }
00171
00172 static const char* value(const ::ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> &) { return value(); }
00173 static const uint64_t static_value1 = 0x2ec6f3eff0161f42ULL;
00174 static const uint64_t static_value2 = 0x57b808b12bc830c2ULL;
00175 };
00176
00177 template<class ContainerAllocator>
00178 struct DataType< ::ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> > {
00179 static const char* value()
00180 {
00181 return "ethercat_trigger_controllers/SetMultiWaveformResponse";
00182 }
00183
00184 static const char* value(const ::ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> &) { return value(); }
00185 };
00186
00187 template<class ContainerAllocator>
00188 struct Definition< ::ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> > {
00189 static const char* value()
00190 {
00191 return "bool success\n\
00192 string status_message\n\
00193 \n\
00194 \n\
00195 ";
00196 }
00197
00198 static const char* value(const ::ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> &) { return value(); }
00199 };
00200
00201 }
00202 }
00203
00204 namespace ros
00205 {
00206 namespace serialization
00207 {
00208
00209 template<class ContainerAllocator> struct Serializer< ::ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> >
00210 {
00211 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00212 {
00213 stream.next(m.waveform);
00214 }
00215
00216 ROS_DECLARE_ALLINONE_SERIALIZER;
00217 };
00218 }
00219 }
00220
00221
00222 namespace ros
00223 {
00224 namespace serialization
00225 {
00226
00227 template<class ContainerAllocator> struct Serializer< ::ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> >
00228 {
00229 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00230 {
00231 stream.next(m.success);
00232 stream.next(m.status_message);
00233 }
00234
00235 ROS_DECLARE_ALLINONE_SERIALIZER;
00236 };
00237 }
00238 }
00239
00240 namespace ros
00241 {
00242 namespace service_traits
00243 {
00244 template<>
00245 struct MD5Sum<ethercat_trigger_controllers::SetMultiWaveform> {
00246 static const char* value()
00247 {
00248 return "cbb7e900a71a9a437da9999c8d39fff4";
00249 }
00250
00251 static const char* value(const ethercat_trigger_controllers::SetMultiWaveform&) { return value(); }
00252 };
00253
00254 template<>
00255 struct DataType<ethercat_trigger_controllers::SetMultiWaveform> {
00256 static const char* value()
00257 {
00258 return "ethercat_trigger_controllers/SetMultiWaveform";
00259 }
00260
00261 static const char* value(const ethercat_trigger_controllers::SetMultiWaveform&) { return value(); }
00262 };
00263
00264 template<class ContainerAllocator>
00265 struct MD5Sum<ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> > {
00266 static const char* value()
00267 {
00268 return "cbb7e900a71a9a437da9999c8d39fff4";
00269 }
00270
00271 static const char* value(const ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> &) { return value(); }
00272 };
00273
00274 template<class ContainerAllocator>
00275 struct DataType<ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> > {
00276 static const char* value()
00277 {
00278 return "ethercat_trigger_controllers/SetMultiWaveform";
00279 }
00280
00281 static const char* value(const ethercat_trigger_controllers::SetMultiWaveformRequest_<ContainerAllocator> &) { return value(); }
00282 };
00283
00284 template<class ContainerAllocator>
00285 struct MD5Sum<ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> > {
00286 static const char* value()
00287 {
00288 return "cbb7e900a71a9a437da9999c8d39fff4";
00289 }
00290
00291 static const char* value(const ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> &) { return value(); }
00292 };
00293
00294 template<class ContainerAllocator>
00295 struct DataType<ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> > {
00296 static const char* value()
00297 {
00298 return "ethercat_trigger_controllers/SetMultiWaveform";
00299 }
00300
00301 static const char* value(const ethercat_trigger_controllers::SetMultiWaveformResponse_<ContainerAllocator> &) { return value(); }
00302 };
00303
00304 }
00305 }
00306
00307 #endif // ETHERCAT_TRIGGER_CONTROLLERS_SERVICE_SETMULTIWAVEFORM_H
00308