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 private:
00131 static const char* __s_getDataType_() { return "ublox_msgs/NavSOL"; }
00132 public:
00133 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00134
00135 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00136
00137 private:
00138 static const char* __s_getMD5Sum_() { return "1cf640142041f69c0d0e9f5d8a03729e"; }
00139 public:
00140 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00141
00142 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00143
00144 private:
00145 static const char* __s_getMessageDefinition_() { return "# NAV-SOL (0x01 0x06)\n\
00146 # Navigation Solution Information\n\
00147 #\n\
00148 # This message combines Position, velocity and time solution in ECEF, including accuracy\n\
00149 # figures\n\
00150 #\n\
00151 \n\
00152 uint8 CLASS_ID = 1\n\
00153 uint8 MESSAGE_ID = 6\n\
00154 \n\
00155 uint32 iTOW # GPS Millisecond time of week [ms]\n\
00156 int32 fTOW # Fractional Nanoseconds remainder of rounded\n\
00157 # ms above, range -500000 .. 500000 [ns]\n\
00158 int16 week # GPS week (GPS time)\n\
00159 \n\
00160 uint8 gpsFix # GPSfix Type, range 0..5\n\
00161 uint8 GPS_NO_FIX = 0\n\
00162 uint8 GPS_DEAD_RECKONING_ONLY = 1\n\
00163 uint8 GPS_2D_FIX = 2\n\
00164 uint8 GPS_3D_FIX = 3\n\
00165 uint8 GPS_GPS_DEAD_RECKONING_COMBINED = 4\n\
00166 uint8 GPS_TIME_ONLY_FIX = 6\n\
00167 \n\
00168 uint8 flags # Fix Status Flags\n\
00169 uint8 FLAGS_GPSFIXOK = 1 # i.e. within DOP & ACC Masks\n\
00170 uint8 FLAGS_DIFFSOLN = 2 # DGPS used\n\
00171 uint8 FLAGS_WKNSET = 4 # Week Number valid\n\
00172 uint8 FLAGS_TOWSET = 8 # Time of Week valid\n\
00173 \n\
00174 int32 ecefX # ECEF X coordinate [cm]\n\
00175 int32 ecefY # ECEF Y coordinate [cm]\n\
00176 int32 ecefZ # ECEF Z coordinate [cm]\n\
00177 uint32 pAcc # 3D Position Accuracy Estimate [cm]\n\
00178 int32 ecefVX # ECEF X velocity [cm/s]\n\
00179 int32 ecefVY # ECEF Y velocity [cm/s]\n\
00180 int32 ecefVZ # ECEF Z velocity [cm/s]\n\
00181 uint32 sAcc # Speed Accuracy Estimate [cm/s]\n\
00182 uint16 pDOP # Position DOP [cm]\n\
00183 uint8 reserved1 # Reserved\n\
00184 uint8 numSV # Number of SVs used in Nav Solution\n\
00185 uint32 reserved2 # Reserved\n\
00186 \n\
00187 "; }
00188 public:
00189 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00190
00191 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00192
00193 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00194 {
00195 ros::serialization::OStream stream(write_ptr, 1000000000);
00196 ros::serialization::serialize(stream, iTOW);
00197 ros::serialization::serialize(stream, fTOW);
00198 ros::serialization::serialize(stream, week);
00199 ros::serialization::serialize(stream, gpsFix);
00200 ros::serialization::serialize(stream, flags);
00201 ros::serialization::serialize(stream, ecefX);
00202 ros::serialization::serialize(stream, ecefY);
00203 ros::serialization::serialize(stream, ecefZ);
00204 ros::serialization::serialize(stream, pAcc);
00205 ros::serialization::serialize(stream, ecefVX);
00206 ros::serialization::serialize(stream, ecefVY);
00207 ros::serialization::serialize(stream, ecefVZ);
00208 ros::serialization::serialize(stream, sAcc);
00209 ros::serialization::serialize(stream, pDOP);
00210 ros::serialization::serialize(stream, reserved1);
00211 ros::serialization::serialize(stream, numSV);
00212 ros::serialization::serialize(stream, reserved2);
00213 return stream.getData();
00214 }
00215
00216 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00217 {
00218 ros::serialization::IStream stream(read_ptr, 1000000000);
00219 ros::serialization::deserialize(stream, iTOW);
00220 ros::serialization::deserialize(stream, fTOW);
00221 ros::serialization::deserialize(stream, week);
00222 ros::serialization::deserialize(stream, gpsFix);
00223 ros::serialization::deserialize(stream, flags);
00224 ros::serialization::deserialize(stream, ecefX);
00225 ros::serialization::deserialize(stream, ecefY);
00226 ros::serialization::deserialize(stream, ecefZ);
00227 ros::serialization::deserialize(stream, pAcc);
00228 ros::serialization::deserialize(stream, ecefVX);
00229 ros::serialization::deserialize(stream, ecefVY);
00230 ros::serialization::deserialize(stream, ecefVZ);
00231 ros::serialization::deserialize(stream, sAcc);
00232 ros::serialization::deserialize(stream, pDOP);
00233 ros::serialization::deserialize(stream, reserved1);
00234 ros::serialization::deserialize(stream, numSV);
00235 ros::serialization::deserialize(stream, reserved2);
00236 return stream.getData();
00237 }
00238
00239 ROS_DEPRECATED virtual uint32_t serializationLength() const
00240 {
00241 uint32_t size = 0;
00242 size += ros::serialization::serializationLength(iTOW);
00243 size += ros::serialization::serializationLength(fTOW);
00244 size += ros::serialization::serializationLength(week);
00245 size += ros::serialization::serializationLength(gpsFix);
00246 size += ros::serialization::serializationLength(flags);
00247 size += ros::serialization::serializationLength(ecefX);
00248 size += ros::serialization::serializationLength(ecefY);
00249 size += ros::serialization::serializationLength(ecefZ);
00250 size += ros::serialization::serializationLength(pAcc);
00251 size += ros::serialization::serializationLength(ecefVX);
00252 size += ros::serialization::serializationLength(ecefVY);
00253 size += ros::serialization::serializationLength(ecefVZ);
00254 size += ros::serialization::serializationLength(sAcc);
00255 size += ros::serialization::serializationLength(pDOP);
00256 size += ros::serialization::serializationLength(reserved1);
00257 size += ros::serialization::serializationLength(numSV);
00258 size += ros::serialization::serializationLength(reserved2);
00259 return size;
00260 }
00261
00262 typedef boost::shared_ptr< ::ublox_msgs::NavSOL_<ContainerAllocator> > Ptr;
00263 typedef boost::shared_ptr< ::ublox_msgs::NavSOL_<ContainerAllocator> const> ConstPtr;
00264 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00265 };
00266 typedef ::ublox_msgs::NavSOL_<std::allocator<void> > NavSOL;
00267
00268 typedef boost::shared_ptr< ::ublox_msgs::NavSOL> NavSOLPtr;
00269 typedef boost::shared_ptr< ::ublox_msgs::NavSOL const> NavSOLConstPtr;
00270
00271
00272 template<typename ContainerAllocator>
00273 std::ostream& operator<<(std::ostream& s, const ::ublox_msgs::NavSOL_<ContainerAllocator> & v)
00274 {
00275 ros::message_operations::Printer< ::ublox_msgs::NavSOL_<ContainerAllocator> >::stream(s, "", v);
00276 return s;}
00277
00278 }
00279
00280 namespace ros
00281 {
00282 namespace message_traits
00283 {
00284 template<class ContainerAllocator> struct IsMessage< ::ublox_msgs::NavSOL_<ContainerAllocator> > : public TrueType {};
00285 template<class ContainerAllocator> struct IsMessage< ::ublox_msgs::NavSOL_<ContainerAllocator> const> : public TrueType {};
00286 template<class ContainerAllocator>
00287 struct MD5Sum< ::ublox_msgs::NavSOL_<ContainerAllocator> > {
00288 static const char* value()
00289 {
00290 return "1cf640142041f69c0d0e9f5d8a03729e";
00291 }
00292
00293 static const char* value(const ::ublox_msgs::NavSOL_<ContainerAllocator> &) { return value(); }
00294 static const uint64_t static_value1 = 0x1cf640142041f69cULL;
00295 static const uint64_t static_value2 = 0x0d0e9f5d8a03729eULL;
00296 };
00297
00298 template<class ContainerAllocator>
00299 struct DataType< ::ublox_msgs::NavSOL_<ContainerAllocator> > {
00300 static const char* value()
00301 {
00302 return "ublox_msgs/NavSOL";
00303 }
00304
00305 static const char* value(const ::ublox_msgs::NavSOL_<ContainerAllocator> &) { return value(); }
00306 };
00307
00308 template<class ContainerAllocator>
00309 struct Definition< ::ublox_msgs::NavSOL_<ContainerAllocator> > {
00310 static const char* value()
00311 {
00312 return "# NAV-SOL (0x01 0x06)\n\
00313 # Navigation Solution Information\n\
00314 #\n\
00315 # This message combines Position, velocity and time solution in ECEF, including accuracy\n\
00316 # figures\n\
00317 #\n\
00318 \n\
00319 uint8 CLASS_ID = 1\n\
00320 uint8 MESSAGE_ID = 6\n\
00321 \n\
00322 uint32 iTOW # GPS Millisecond time of week [ms]\n\
00323 int32 fTOW # Fractional Nanoseconds remainder of rounded\n\
00324 # ms above, range -500000 .. 500000 [ns]\n\
00325 int16 week # GPS week (GPS time)\n\
00326 \n\
00327 uint8 gpsFix # GPSfix Type, range 0..5\n\
00328 uint8 GPS_NO_FIX = 0\n\
00329 uint8 GPS_DEAD_RECKONING_ONLY = 1\n\
00330 uint8 GPS_2D_FIX = 2\n\
00331 uint8 GPS_3D_FIX = 3\n\
00332 uint8 GPS_GPS_DEAD_RECKONING_COMBINED = 4\n\
00333 uint8 GPS_TIME_ONLY_FIX = 6\n\
00334 \n\
00335 uint8 flags # Fix Status Flags\n\
00336 uint8 FLAGS_GPSFIXOK = 1 # i.e. within DOP & ACC Masks\n\
00337 uint8 FLAGS_DIFFSOLN = 2 # DGPS used\n\
00338 uint8 FLAGS_WKNSET = 4 # Week Number valid\n\
00339 uint8 FLAGS_TOWSET = 8 # Time of Week valid\n\
00340 \n\
00341 int32 ecefX # ECEF X coordinate [cm]\n\
00342 int32 ecefY # ECEF Y coordinate [cm]\n\
00343 int32 ecefZ # ECEF Z coordinate [cm]\n\
00344 uint32 pAcc # 3D Position Accuracy Estimate [cm]\n\
00345 int32 ecefVX # ECEF X velocity [cm/s]\n\
00346 int32 ecefVY # ECEF Y velocity [cm/s]\n\
00347 int32 ecefVZ # ECEF Z velocity [cm/s]\n\
00348 uint32 sAcc # Speed Accuracy Estimate [cm/s]\n\
00349 uint16 pDOP # Position DOP [cm]\n\
00350 uint8 reserved1 # Reserved\n\
00351 uint8 numSV # Number of SVs used in Nav Solution\n\
00352 uint32 reserved2 # Reserved\n\
00353 \n\
00354 ";
00355 }
00356
00357 static const char* value(const ::ublox_msgs::NavSOL_<ContainerAllocator> &) { return value(); }
00358 };
00359
00360 template<class ContainerAllocator> struct IsFixedSize< ::ublox_msgs::NavSOL_<ContainerAllocator> > : public TrueType {};
00361 }
00362 }
00363
00364 namespace ros
00365 {
00366 namespace serialization
00367 {
00368
00369 template<class ContainerAllocator> struct Serializer< ::ublox_msgs::NavSOL_<ContainerAllocator> >
00370 {
00371 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00372 {
00373 stream.next(m.iTOW);
00374 stream.next(m.fTOW);
00375 stream.next(m.week);
00376 stream.next(m.gpsFix);
00377 stream.next(m.flags);
00378 stream.next(m.ecefX);
00379 stream.next(m.ecefY);
00380 stream.next(m.ecefZ);
00381 stream.next(m.pAcc);
00382 stream.next(m.ecefVX);
00383 stream.next(m.ecefVY);
00384 stream.next(m.ecefVZ);
00385 stream.next(m.sAcc);
00386 stream.next(m.pDOP);
00387 stream.next(m.reserved1);
00388 stream.next(m.numSV);
00389 stream.next(m.reserved2);
00390 }
00391
00392 ROS_DECLARE_ALLINONE_SERIALIZER;
00393 };
00394 }
00395 }
00396
00397 namespace ros
00398 {
00399 namespace message_operations
00400 {
00401
00402 template<class ContainerAllocator>
00403 struct Printer< ::ublox_msgs::NavSOL_<ContainerAllocator> >
00404 {
00405 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::ublox_msgs::NavSOL_<ContainerAllocator> & v)
00406 {
00407 s << indent << "iTOW: ";
00408 Printer<uint32_t>::stream(s, indent + " ", v.iTOW);
00409 s << indent << "fTOW: ";
00410 Printer<int32_t>::stream(s, indent + " ", v.fTOW);
00411 s << indent << "week: ";
00412 Printer<int16_t>::stream(s, indent + " ", v.week);
00413 s << indent << "gpsFix: ";
00414 Printer<uint8_t>::stream(s, indent + " ", v.gpsFix);
00415 s << indent << "flags: ";
00416 Printer<uint8_t>::stream(s, indent + " ", v.flags);
00417 s << indent << "ecefX: ";
00418 Printer<int32_t>::stream(s, indent + " ", v.ecefX);
00419 s << indent << "ecefY: ";
00420 Printer<int32_t>::stream(s, indent + " ", v.ecefY);
00421 s << indent << "ecefZ: ";
00422 Printer<int32_t>::stream(s, indent + " ", v.ecefZ);
00423 s << indent << "pAcc: ";
00424 Printer<uint32_t>::stream(s, indent + " ", v.pAcc);
00425 s << indent << "ecefVX: ";
00426 Printer<int32_t>::stream(s, indent + " ", v.ecefVX);
00427 s << indent << "ecefVY: ";
00428 Printer<int32_t>::stream(s, indent + " ", v.ecefVY);
00429 s << indent << "ecefVZ: ";
00430 Printer<int32_t>::stream(s, indent + " ", v.ecefVZ);
00431 s << indent << "sAcc: ";
00432 Printer<uint32_t>::stream(s, indent + " ", v.sAcc);
00433 s << indent << "pDOP: ";
00434 Printer<uint16_t>::stream(s, indent + " ", v.pDOP);
00435 s << indent << "reserved1: ";
00436 Printer<uint8_t>::stream(s, indent + " ", v.reserved1);
00437 s << indent << "numSV: ";
00438 Printer<uint8_t>::stream(s, indent + " ", v.numSV);
00439 s << indent << "reserved2: ";
00440 Printer<uint32_t>::stream(s, indent + " ", v.reserved2);
00441 }
00442 };
00443
00444
00445 }
00446 }
00447
00448 #endif // UBLOX_MSGS_MESSAGE_NAVSOL_H
00449