00001
00002 #ifndef APPLANIX_MSGS_MESSAGE_NAVIGATIONSOLUTION_H
00003 #define APPLANIX_MSGS_MESSAGE_NAVIGATIONSOLUTION_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 "applanix_msgs/TimeDistance.h"
00018
00019 namespace applanix_msgs
00020 {
00021 template <class ContainerAllocator>
00022 struct NavigationSolution_ {
00023 typedef NavigationSolution_<ContainerAllocator> Type;
00024
00025 NavigationSolution_()
00026 : td()
00027 , latitude(0.0)
00028 , longitude(0.0)
00029 , altitude(0.0)
00030 , north_vel(0.0)
00031 , east_vel(0.0)
00032 , down_vel(0.0)
00033 , roll(0.0)
00034 , pitch(0.0)
00035 , heading(0.0)
00036 , wander_angle(0.0)
00037 , track_angle(0.0)
00038 , speed(0.0)
00039 , ang_rate_long(0.0)
00040 , ang_rate_trans(0.0)
00041 , ang_rate_down(0.0)
00042 , long_accel(0.0)
00043 , trans_accel(0.0)
00044 , down_accel(0.0)
00045 , alignment_status(0)
00046 {
00047 }
00048
00049 NavigationSolution_(const ContainerAllocator& _alloc)
00050 : td(_alloc)
00051 , latitude(0.0)
00052 , longitude(0.0)
00053 , altitude(0.0)
00054 , north_vel(0.0)
00055 , east_vel(0.0)
00056 , down_vel(0.0)
00057 , roll(0.0)
00058 , pitch(0.0)
00059 , heading(0.0)
00060 , wander_angle(0.0)
00061 , track_angle(0.0)
00062 , speed(0.0)
00063 , ang_rate_long(0.0)
00064 , ang_rate_trans(0.0)
00065 , ang_rate_down(0.0)
00066 , long_accel(0.0)
00067 , trans_accel(0.0)
00068 , down_accel(0.0)
00069 , alignment_status(0)
00070 {
00071 }
00072
00073 typedef ::applanix_msgs::TimeDistance_<ContainerAllocator> _td_type;
00074 ::applanix_msgs::TimeDistance_<ContainerAllocator> td;
00075
00076 typedef double _latitude_type;
00077 double latitude;
00078
00079 typedef double _longitude_type;
00080 double longitude;
00081
00082 typedef double _altitude_type;
00083 double altitude;
00084
00085 typedef float _north_vel_type;
00086 float north_vel;
00087
00088 typedef float _east_vel_type;
00089 float east_vel;
00090
00091 typedef float _down_vel_type;
00092 float down_vel;
00093
00094 typedef double _roll_type;
00095 double roll;
00096
00097 typedef double _pitch_type;
00098 double pitch;
00099
00100 typedef double _heading_type;
00101 double heading;
00102
00103 typedef double _wander_angle_type;
00104 double wander_angle;
00105
00106 typedef float _track_angle_type;
00107 float track_angle;
00108
00109 typedef float _speed_type;
00110 float speed;
00111
00112 typedef float _ang_rate_long_type;
00113 float ang_rate_long;
00114
00115 typedef float _ang_rate_trans_type;
00116 float ang_rate_trans;
00117
00118 typedef float _ang_rate_down_type;
00119 float ang_rate_down;
00120
00121 typedef float _long_accel_type;
00122 float long_accel;
00123
00124 typedef float _trans_accel_type;
00125 float trans_accel;
00126
00127 typedef float _down_accel_type;
00128 float down_accel;
00129
00130 typedef uint8_t _alignment_status_type;
00131 uint8_t alignment_status;
00132
00133 enum { ALIGNMENT_FULL_NAVIGATION = 0 };
00134 enum { ALIGNMENT_FINE_ALIGNMENT_ACTIVE = 1 };
00135 enum { ALIGNMENT_GC_CHI_2 = 2 };
00136 enum { ALIGNMENT_PC_CHI_2 = 3 };
00137 enum { ALIGNMENT_GC_CHI_1 = 4 };
00138 enum { ALIGNMENT_PC_CHI_1 = 5 };
00139 enum { ALIGNMENT_COARSE_LEVELING = 6 };
00140 enum { ALIGNMENT_INITIAL_SOLUTION = 7 };
00141 enum { ALIGNMENT_NO_VALID_SOLUTION = 8 };
00142
00143 typedef boost::shared_ptr< ::applanix_msgs::NavigationSolution_<ContainerAllocator> > Ptr;
00144 typedef boost::shared_ptr< ::applanix_msgs::NavigationSolution_<ContainerAllocator> const> ConstPtr;
00145 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00146 };
00147 typedef ::applanix_msgs::NavigationSolution_<std::allocator<void> > NavigationSolution;
00148
00149 typedef boost::shared_ptr< ::applanix_msgs::NavigationSolution> NavigationSolutionPtr;
00150 typedef boost::shared_ptr< ::applanix_msgs::NavigationSolution const> NavigationSolutionConstPtr;
00151
00152
00153 template<typename ContainerAllocator>
00154 std::ostream& operator<<(std::ostream& s, const ::applanix_msgs::NavigationSolution_<ContainerAllocator> & v)
00155 {
00156 ros::message_operations::Printer< ::applanix_msgs::NavigationSolution_<ContainerAllocator> >::stream(s, "", v);
00157 return s;}
00158
00159 }
00160
00161 namespace ros
00162 {
00163 namespace message_traits
00164 {
00165 template<class ContainerAllocator> struct IsMessage< ::applanix_msgs::NavigationSolution_<ContainerAllocator> > : public TrueType {};
00166 template<class ContainerAllocator> struct IsMessage< ::applanix_msgs::NavigationSolution_<ContainerAllocator> const> : public TrueType {};
00167 template<class ContainerAllocator>
00168 struct MD5Sum< ::applanix_msgs::NavigationSolution_<ContainerAllocator> > {
00169 static const char* value()
00170 {
00171 return "5bd9b6a0dde762b9354121b78d050654";
00172 }
00173
00174 static const char* value(const ::applanix_msgs::NavigationSolution_<ContainerAllocator> &) { return value(); }
00175 static const uint64_t static_value1 = 0x5bd9b6a0dde762b9ULL;
00176 static const uint64_t static_value2 = 0x354121b78d050654ULL;
00177 };
00178
00179 template<class ContainerAllocator>
00180 struct DataType< ::applanix_msgs::NavigationSolution_<ContainerAllocator> > {
00181 static const char* value()
00182 {
00183 return "applanix_msgs/NavigationSolution";
00184 }
00185
00186 static const char* value(const ::applanix_msgs::NavigationSolution_<ContainerAllocator> &) { return value(); }
00187 };
00188
00189 template<class ContainerAllocator>
00190 struct Definition< ::applanix_msgs::NavigationSolution_<ContainerAllocator> > {
00191 static const char* value()
00192 {
00193 return "TimeDistance td\n\
00194 \n\
00195 # Position in degrees\n\
00196 float64 latitude\n\
00197 float64 longitude\n\
00198 \n\
00199 # Meters\n\
00200 float64 altitude\n\
00201 \n\
00202 # Meters/second\n\
00203 float32 north_vel\n\
00204 float32 east_vel\n\
00205 float32 down_vel\n\
00206 \n\
00207 # Degrees\n\
00208 float64 roll\n\
00209 float64 pitch\n\
00210 float64 heading\n\
00211 float64 wander_angle\n\
00212 float32 track_angle\n\
00213 \n\
00214 # Meters/second\n\
00215 float32 speed\n\
00216 \n\
00217 # Degrees/second\n\
00218 float32 ang_rate_long\n\
00219 float32 ang_rate_trans\n\
00220 float32 ang_rate_down\n\
00221 \n\
00222 # Meters/second^2\n\
00223 float32 long_accel\n\
00224 float32 trans_accel\n\
00225 float32 down_accel\n\
00226 \n\
00227 uint8 ALIGNMENT_FULL_NAVIGATION=0\n\
00228 uint8 ALIGNMENT_FINE_ALIGNMENT_ACTIVE=1\n\
00229 uint8 ALIGNMENT_GC_CHI_2=2\n\
00230 uint8 ALIGNMENT_PC_CHI_2=3\n\
00231 uint8 ALIGNMENT_GC_CHI_1=4\n\
00232 uint8 ALIGNMENT_PC_CHI_1=5\n\
00233 uint8 ALIGNMENT_COARSE_LEVELING=6\n\
00234 uint8 ALIGNMENT_INITIAL_SOLUTION=7\n\
00235 uint8 ALIGNMENT_NO_VALID_SOLUTION=8\n\
00236 uint8 alignment_status\n\
00237 \n\
00238 ================================================================================\n\
00239 MSG: applanix_msgs/TimeDistance\n\
00240 float64 time1\n\
00241 float64 time2\n\
00242 float64 distance\n\
00243 uint8 time_types\n\
00244 uint8 distance_type\n\
00245 \n\
00246 ";
00247 }
00248
00249 static const char* value(const ::applanix_msgs::NavigationSolution_<ContainerAllocator> &) { return value(); }
00250 };
00251
00252 template<class ContainerAllocator> struct IsFixedSize< ::applanix_msgs::NavigationSolution_<ContainerAllocator> > : public TrueType {};
00253 }
00254 }
00255
00256 namespace ros
00257 {
00258 namespace serialization
00259 {
00260
00261 template<class ContainerAllocator> struct Serializer< ::applanix_msgs::NavigationSolution_<ContainerAllocator> >
00262 {
00263 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00264 {
00265 stream.next(m.td);
00266 stream.next(m.latitude);
00267 stream.next(m.longitude);
00268 stream.next(m.altitude);
00269 stream.next(m.north_vel);
00270 stream.next(m.east_vel);
00271 stream.next(m.down_vel);
00272 stream.next(m.roll);
00273 stream.next(m.pitch);
00274 stream.next(m.heading);
00275 stream.next(m.wander_angle);
00276 stream.next(m.track_angle);
00277 stream.next(m.speed);
00278 stream.next(m.ang_rate_long);
00279 stream.next(m.ang_rate_trans);
00280 stream.next(m.ang_rate_down);
00281 stream.next(m.long_accel);
00282 stream.next(m.trans_accel);
00283 stream.next(m.down_accel);
00284 stream.next(m.alignment_status);
00285 }
00286
00287 ROS_DECLARE_ALLINONE_SERIALIZER;
00288 };
00289 }
00290 }
00291
00292 namespace ros
00293 {
00294 namespace message_operations
00295 {
00296
00297 template<class ContainerAllocator>
00298 struct Printer< ::applanix_msgs::NavigationSolution_<ContainerAllocator> >
00299 {
00300 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::applanix_msgs::NavigationSolution_<ContainerAllocator> & v)
00301 {
00302 s << indent << "td: ";
00303 s << std::endl;
00304 Printer< ::applanix_msgs::TimeDistance_<ContainerAllocator> >::stream(s, indent + " ", v.td);
00305 s << indent << "latitude: ";
00306 Printer<double>::stream(s, indent + " ", v.latitude);
00307 s << indent << "longitude: ";
00308 Printer<double>::stream(s, indent + " ", v.longitude);
00309 s << indent << "altitude: ";
00310 Printer<double>::stream(s, indent + " ", v.altitude);
00311 s << indent << "north_vel: ";
00312 Printer<float>::stream(s, indent + " ", v.north_vel);
00313 s << indent << "east_vel: ";
00314 Printer<float>::stream(s, indent + " ", v.east_vel);
00315 s << indent << "down_vel: ";
00316 Printer<float>::stream(s, indent + " ", v.down_vel);
00317 s << indent << "roll: ";
00318 Printer<double>::stream(s, indent + " ", v.roll);
00319 s << indent << "pitch: ";
00320 Printer<double>::stream(s, indent + " ", v.pitch);
00321 s << indent << "heading: ";
00322 Printer<double>::stream(s, indent + " ", v.heading);
00323 s << indent << "wander_angle: ";
00324 Printer<double>::stream(s, indent + " ", v.wander_angle);
00325 s << indent << "track_angle: ";
00326 Printer<float>::stream(s, indent + " ", v.track_angle);
00327 s << indent << "speed: ";
00328 Printer<float>::stream(s, indent + " ", v.speed);
00329 s << indent << "ang_rate_long: ";
00330 Printer<float>::stream(s, indent + " ", v.ang_rate_long);
00331 s << indent << "ang_rate_trans: ";
00332 Printer<float>::stream(s, indent + " ", v.ang_rate_trans);
00333 s << indent << "ang_rate_down: ";
00334 Printer<float>::stream(s, indent + " ", v.ang_rate_down);
00335 s << indent << "long_accel: ";
00336 Printer<float>::stream(s, indent + " ", v.long_accel);
00337 s << indent << "trans_accel: ";
00338 Printer<float>::stream(s, indent + " ", v.trans_accel);
00339 s << indent << "down_accel: ";
00340 Printer<float>::stream(s, indent + " ", v.down_accel);
00341 s << indent << "alignment_status: ";
00342 Printer<uint8_t>::stream(s, indent + " ", v.alignment_status);
00343 }
00344 };
00345
00346
00347 }
00348 }
00349
00350 #endif // APPLANIX_MSGS_MESSAGE_NAVIGATIONSOLUTION_H
00351