00001
00002 #ifndef UBLOX_MSGS_MESSAGE_NAVSOL_H
00003 #define UBLOX_MSGS_MESSAGE_NAVSOL_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
00018 namespace ublox_msgs
00019 {
00020 template <class ContainerAllocator>
00021 struct NavSOL_ {
00022 typedef NavSOL_<ContainerAllocator> Type;
00023
00024 NavSOL_()
00025 : iTOW(0)
00026 , fTOW(0)
00027 , week(0)
00028 , gpsFix(0)
00029 , flags(0)
00030 , ecefX(0)
00031 , ecefY(0)
00032 , ecefZ(0)
00033 , pAcc(0)
00034 , ecefVX(0)
00035 , ecefVY(0)
00036 , ecefVZ(0)
00037 , sAcc(0)
00038 , pDOP(0)
00039 , reserved1(0)
00040 , numSV(0)
00041 , reserved2(0)
00042 {
00043 }
00044
00045 NavSOL_(const ContainerAllocator& _alloc)
00046 : iTOW(0)
00047 , fTOW(0)
00048 , week(0)
00049 , gpsFix(0)
00050 , flags(0)
00051 , ecefX(0)
00052 , ecefY(0)
00053 , ecefZ(0)
00054 , pAcc(0)
00055 , ecefVX(0)
00056 , ecefVY(0)
00057 , ecefVZ(0)
00058 , sAcc(0)
00059 , pDOP(0)
00060 , reserved1(0)
00061 , numSV(0)
00062 , reserved2(0)
00063 {
00064 }
00065
00066 typedef uint32_t _iTOW_type;
00067 uint32_t iTOW;
00068
00069 typedef int32_t _fTOW_type;
00070 int32_t fTOW;
00071
00072 typedef int16_t _week_type;
00073 int16_t week;
00074
00075 typedef uint8_t _gpsFix_type;
00076 uint8_t gpsFix;
00077
00078 typedef uint8_t _flags_type;
00079 uint8_t flags;
00080
00081 typedef int32_t _ecefX_type;
00082 int32_t ecefX;
00083
00084 typedef int32_t _ecefY_type;
00085 int32_t ecefY;
00086
00087 typedef int32_t _ecefZ_type;
00088 int32_t ecefZ;
00089
00090 typedef uint32_t _pAcc_type;
00091 uint32_t pAcc;
00092
00093 typedef int32_t _ecefVX_type;
00094 int32_t ecefVX;
00095
00096 typedef int32_t _ecefVY_type;
00097 int32_t ecefVY;
00098
00099 typedef int32_t _ecefVZ_type;
00100 int32_t ecefVZ;
00101
00102 typedef uint32_t _sAcc_type;
00103 uint32_t sAcc;
00104
00105 typedef uint16_t _pDOP_type;
00106 uint16_t pDOP;
00107
00108 typedef uint8_t _reserved1_type;
00109 uint8_t reserved1;
00110
00111 typedef uint8_t _numSV_type;
00112 uint8_t numSV;
00113
00114 typedef uint32_t _reserved2_type;
00115 uint32_t reserved2;
00116
00117 enum { CLASS_ID = 1 };
00118 enum { MESSAGE_ID = 6 };
00119 enum { GPS_NO_FIX = 0 };
00120 enum { GPS_DEAD_RECKONING_ONLY = 1 };
00121 enum { GPS_2D_FIX = 2 };
00122 enum { GPS_3D_FIX = 3 };
00123 enum { GPS_GPS_DEAD_RECKONING_COMBINED = 4 };
00124 enum { GPS_TIME_ONLY_FIX = 6 };
00125 enum { FLAGS_GPSFIXOK = 1 };
00126 enum { FLAGS_DIFFSOLN = 2 };
00127 enum { FLAGS_WKNSET = 4 };
00128 enum { FLAGS_TOWSET = 8 };
00129
00130 typedef boost::shared_ptr< ::ublox_msgs::NavSOL_<ContainerAllocator> > Ptr;
00131 typedef boost::shared_ptr< ::ublox_msgs::NavSOL_<ContainerAllocator> const> ConstPtr;
00132 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00133 };
00134 typedef ::ublox_msgs::NavSOL_<std::allocator<void> > NavSOL;
00135
00136 typedef boost::shared_ptr< ::ublox_msgs::NavSOL> NavSOLPtr;
00137 typedef boost::shared_ptr< ::ublox_msgs::NavSOL const> NavSOLConstPtr;
00138
00139
00140 template<typename ContainerAllocator>
00141 std::ostream& operator<<(std::ostream& s, const ::ublox_msgs::NavSOL_<ContainerAllocator> & v)
00142 {
00143 ros::message_operations::Printer< ::ublox_msgs::NavSOL_<ContainerAllocator> >::stream(s, "", v);
00144 return s;}
00145
00146 }
00147
00148 namespace ros
00149 {
00150 namespace message_traits
00151 {
00152 template<class ContainerAllocator> struct IsMessage< ::ublox_msgs::NavSOL_<ContainerAllocator> > : public TrueType {};
00153 template<class ContainerAllocator> struct IsMessage< ::ublox_msgs::NavSOL_<ContainerAllocator> const> : public TrueType {};
00154 template<class ContainerAllocator>
00155 struct MD5Sum< ::ublox_msgs::NavSOL_<ContainerAllocator> > {
00156 static const char* value()
00157 {
00158 return "1cf640142041f69c0d0e9f5d8a03729e";
00159 }
00160
00161 static const char* value(const ::ublox_msgs::NavSOL_<ContainerAllocator> &) { return value(); }
00162 static const uint64_t static_value1 = 0x1cf640142041f69cULL;
00163 static const uint64_t static_value2 = 0x0d0e9f5d8a03729eULL;
00164 };
00165
00166 template<class ContainerAllocator>
00167 struct DataType< ::ublox_msgs::NavSOL_<ContainerAllocator> > {
00168 static const char* value()
00169 {
00170 return "ublox_msgs/NavSOL";
00171 }
00172
00173 static const char* value(const ::ublox_msgs::NavSOL_<ContainerAllocator> &) { return value(); }
00174 };
00175
00176 template<class ContainerAllocator>
00177 struct Definition< ::ublox_msgs::NavSOL_<ContainerAllocator> > {
00178 static const char* value()
00179 {
00180 return "# NAV-SOL (0x01 0x06)\n\
00181 # Navigation Solution Information\n\
00182 #\n\
00183 # This message combines Position, velocity and time solution in ECEF, including accuracy\n\
00184 # figures\n\
00185 #\n\
00186 \n\
00187 uint8 CLASS_ID = 1\n\
00188 uint8 MESSAGE_ID = 6\n\
00189 \n\
00190 uint32 iTOW # GPS Millisecond time of week [ms]\n\
00191 int32 fTOW # Fractional Nanoseconds remainder of rounded\n\
00192 # ms above, range -500000 .. 500000 [ns]\n\
00193 int16 week # GPS week (GPS time)\n\
00194 \n\
00195 uint8 gpsFix # GPSfix Type, range 0..5\n\
00196 uint8 GPS_NO_FIX = 0\n\
00197 uint8 GPS_DEAD_RECKONING_ONLY = 1\n\
00198 uint8 GPS_2D_FIX = 2\n\
00199 uint8 GPS_3D_FIX = 3\n\
00200 uint8 GPS_GPS_DEAD_RECKONING_COMBINED = 4\n\
00201 uint8 GPS_TIME_ONLY_FIX = 6\n\
00202 \n\
00203 uint8 flags # Fix Status Flags\n\
00204 uint8 FLAGS_GPSFIXOK = 1 # i.e. within DOP & ACC Masks\n\
00205 uint8 FLAGS_DIFFSOLN = 2 # DGPS used\n\
00206 uint8 FLAGS_WKNSET = 4 # Week Number valid\n\
00207 uint8 FLAGS_TOWSET = 8 # Time of Week valid\n\
00208 \n\
00209 int32 ecefX # ECEF X coordinate [cm]\n\
00210 int32 ecefY # ECEF Y coordinate [cm]\n\
00211 int32 ecefZ # ECEF Z coordinate [cm]\n\
00212 uint32 pAcc # 3D Position Accuracy Estimate [cm]\n\
00213 int32 ecefVX # ECEF X velocity [cm/s]\n\
00214 int32 ecefVY # ECEF Y velocity [cm/s]\n\
00215 int32 ecefVZ # ECEF Z velocity [cm/s]\n\
00216 uint32 sAcc # Speed Accuracy Estimate [cm/s]\n\
00217 uint16 pDOP # Position DOP [cm]\n\
00218 uint8 reserved1 # Reserved\n\
00219 uint8 numSV # Number of SVs used in Nav Solution\n\
00220 uint32 reserved2 # Reserved\n\
00221 \n\
00222 ";
00223 }
00224
00225 static const char* value(const ::ublox_msgs::NavSOL_<ContainerAllocator> &) { return value(); }
00226 };
00227
00228 template<class ContainerAllocator> struct IsFixedSize< ::ublox_msgs::NavSOL_<ContainerAllocator> > : public TrueType {};
00229 }
00230 }
00231
00232 namespace ros
00233 {
00234 namespace serialization
00235 {
00236
00237 template<class ContainerAllocator> struct Serializer< ::ublox_msgs::NavSOL_<ContainerAllocator> >
00238 {
00239 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00240 {
00241 stream.next(m.iTOW);
00242 stream.next(m.fTOW);
00243 stream.next(m.week);
00244 stream.next(m.gpsFix);
00245 stream.next(m.flags);
00246 stream.next(m.ecefX);
00247 stream.next(m.ecefY);
00248 stream.next(m.ecefZ);
00249 stream.next(m.pAcc);
00250 stream.next(m.ecefVX);
00251 stream.next(m.ecefVY);
00252 stream.next(m.ecefVZ);
00253 stream.next(m.sAcc);
00254 stream.next(m.pDOP);
00255 stream.next(m.reserved1);
00256 stream.next(m.numSV);
00257 stream.next(m.reserved2);
00258 }
00259
00260 ROS_DECLARE_ALLINONE_SERIALIZER;
00261 };
00262 }
00263 }
00264
00265 namespace ros
00266 {
00267 namespace message_operations
00268 {
00269
00270 template<class ContainerAllocator>
00271 struct Printer< ::ublox_msgs::NavSOL_<ContainerAllocator> >
00272 {
00273 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::ublox_msgs::NavSOL_<ContainerAllocator> & v)
00274 {
00275 s << indent << "iTOW: ";
00276 Printer<uint32_t>::stream(s, indent + " ", v.iTOW);
00277 s << indent << "fTOW: ";
00278 Printer<int32_t>::stream(s, indent + " ", v.fTOW);
00279 s << indent << "week: ";
00280 Printer<int16_t>::stream(s, indent + " ", v.week);
00281 s << indent << "gpsFix: ";
00282 Printer<uint8_t>::stream(s, indent + " ", v.gpsFix);
00283 s << indent << "flags: ";
00284 Printer<uint8_t>::stream(s, indent + " ", v.flags);
00285 s << indent << "ecefX: ";
00286 Printer<int32_t>::stream(s, indent + " ", v.ecefX);
00287 s << indent << "ecefY: ";
00288 Printer<int32_t>::stream(s, indent + " ", v.ecefY);
00289 s << indent << "ecefZ: ";
00290 Printer<int32_t>::stream(s, indent + " ", v.ecefZ);
00291 s << indent << "pAcc: ";
00292 Printer<uint32_t>::stream(s, indent + " ", v.pAcc);
00293 s << indent << "ecefVX: ";
00294 Printer<int32_t>::stream(s, indent + " ", v.ecefVX);
00295 s << indent << "ecefVY: ";
00296 Printer<int32_t>::stream(s, indent + " ", v.ecefVY);
00297 s << indent << "ecefVZ: ";
00298 Printer<int32_t>::stream(s, indent + " ", v.ecefVZ);
00299 s << indent << "sAcc: ";
00300 Printer<uint32_t>::stream(s, indent + " ", v.sAcc);
00301 s << indent << "pDOP: ";
00302 Printer<uint16_t>::stream(s, indent + " ", v.pDOP);
00303 s << indent << "reserved1: ";
00304 Printer<uint8_t>::stream(s, indent + " ", v.reserved1);
00305 s << indent << "numSV: ";
00306 Printer<uint8_t>::stream(s, indent + " ", v.numSV);
00307 s << indent << "reserved2: ";
00308 Printer<uint32_t>::stream(s, indent + " ", v.reserved2);
00309 }
00310 };
00311
00312
00313 }
00314 }
00315
00316 #endif // UBLOX_MSGS_MESSAGE_NAVSOL_H
00317