00001
00002 #ifndef APPLANIX_MSGS_MESSAGE_GNSSSTATUS_H
00003 #define APPLANIX_MSGS_MESSAGE_GNSSSTATUS_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 #include "applanix_msgs/GNSSChannelStatus.h"
00019
00020 namespace applanix_msgs
00021 {
00022 template <class ContainerAllocator>
00023 struct GNSSStatus_ {
00024 typedef GNSSStatus_<ContainerAllocator> Type;
00025
00026 GNSSStatus_()
00027 : td()
00028 , solution_status(0)
00029 , channels_count(0)
00030 , reserved(0)
00031 , channels()
00032 , hdop(0.0)
00033 , vdop(0.0)
00034 , dgps_latency(0.0)
00035 , dgps_reference_id(0)
00036 , gps_week(0)
00037 , gps_time_offset(0.0)
00038 , gnss_latency(0.0)
00039 , geoidal_separation(0.0)
00040 , gnss_type(0)
00041 , gnss_status(0)
00042 {
00043 }
00044
00045 GNSSStatus_(const ContainerAllocator& _alloc)
00046 : td(_alloc)
00047 , solution_status(0)
00048 , channels_count(0)
00049 , reserved(0)
00050 , channels(_alloc)
00051 , hdop(0.0)
00052 , vdop(0.0)
00053 , dgps_latency(0.0)
00054 , dgps_reference_id(0)
00055 , gps_week(0)
00056 , gps_time_offset(0.0)
00057 , gnss_latency(0.0)
00058 , geoidal_separation(0.0)
00059 , gnss_type(0)
00060 , gnss_status(0)
00061 {
00062 }
00063
00064 typedef ::applanix_msgs::TimeDistance_<ContainerAllocator> _td_type;
00065 ::applanix_msgs::TimeDistance_<ContainerAllocator> td;
00066
00067 typedef uint8_t _solution_status_type;
00068 uint8_t solution_status;
00069
00070 typedef uint8_t _channels_count_type;
00071 uint8_t channels_count;
00072
00073 typedef uint16_t _reserved_type;
00074 uint16_t reserved;
00075
00076 typedef std::vector< ::applanix_msgs::GNSSChannelStatus_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::applanix_msgs::GNSSChannelStatus_<ContainerAllocator> >::other > _channels_type;
00077 std::vector< ::applanix_msgs::GNSSChannelStatus_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::applanix_msgs::GNSSChannelStatus_<ContainerAllocator> >::other > channels;
00078
00079 typedef float _hdop_type;
00080 float hdop;
00081
00082 typedef float _vdop_type;
00083 float vdop;
00084
00085 typedef float _dgps_latency_type;
00086 float dgps_latency;
00087
00088 typedef uint16_t _dgps_reference_id_type;
00089 uint16_t dgps_reference_id;
00090
00091 typedef uint32_t _gps_week_type;
00092 uint32_t gps_week;
00093
00094 typedef double _gps_time_offset_type;
00095 double gps_time_offset;
00096
00097 typedef float _gnss_latency_type;
00098 float gnss_latency;
00099
00100 typedef float _geoidal_separation_type;
00101 float geoidal_separation;
00102
00103 typedef uint16_t _gnss_type_type;
00104 uint16_t gnss_type;
00105
00106 typedef uint32_t _gnss_status_type;
00107 uint32_t gnss_status;
00108
00109 enum { SOLUTION_UNKNOWN = 255 };
00110 enum { SOLUTION_NO_DATA = 0 };
00111 enum { SOLUTION_HORIZONTAL_CA = 1 };
00112 enum { SOLUTION_3D_CA = 2 };
00113 enum { SOLUTION_HORIZONTAL_DGPS = 3 };
00114 enum { SOLUTION_3D_DGPS = 4 };
00115 enum { SOLUTION_FLOAT_RTK = 5 };
00116 enum { SOLUTION_WIDE_LANE_RTK = 6 };
00117 enum { SOLUTION_NARROW_LANE_RTK = 7 };
00118 enum { SOLUTION_P_CODE = 8 };
00119 enum { SOLUTION_OMNISTAR_HP = 9 };
00120 enum { SOLUTION_OMNISTAR_XP = 10 };
00121 enum { SOLUTION_OMNISTAR_VBS = 11 };
00122 enum { TYPE_NONE = 0 };
00123 enum { TYPE_TRIMBLE_BD960 = 16 };
00124
00125 typedef boost::shared_ptr< ::applanix_msgs::GNSSStatus_<ContainerAllocator> > Ptr;
00126 typedef boost::shared_ptr< ::applanix_msgs::GNSSStatus_<ContainerAllocator> const> ConstPtr;
00127 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00128 };
00129 typedef ::applanix_msgs::GNSSStatus_<std::allocator<void> > GNSSStatus;
00130
00131 typedef boost::shared_ptr< ::applanix_msgs::GNSSStatus> GNSSStatusPtr;
00132 typedef boost::shared_ptr< ::applanix_msgs::GNSSStatus const> GNSSStatusConstPtr;
00133
00134
00135 template<typename ContainerAllocator>
00136 std::ostream& operator<<(std::ostream& s, const ::applanix_msgs::GNSSStatus_<ContainerAllocator> & v)
00137 {
00138 ros::message_operations::Printer< ::applanix_msgs::GNSSStatus_<ContainerAllocator> >::stream(s, "", v);
00139 return s;}
00140
00141 }
00142
00143 namespace ros
00144 {
00145 namespace message_traits
00146 {
00147 template<class ContainerAllocator> struct IsMessage< ::applanix_msgs::GNSSStatus_<ContainerAllocator> > : public TrueType {};
00148 template<class ContainerAllocator> struct IsMessage< ::applanix_msgs::GNSSStatus_<ContainerAllocator> const> : public TrueType {};
00149 template<class ContainerAllocator>
00150 struct MD5Sum< ::applanix_msgs::GNSSStatus_<ContainerAllocator> > {
00151 static const char* value()
00152 {
00153 return "025a8154ac59effa20d8e6dc5c1ba784";
00154 }
00155
00156 static const char* value(const ::applanix_msgs::GNSSStatus_<ContainerAllocator> &) { return value(); }
00157 static const uint64_t static_value1 = 0x025a8154ac59effaULL;
00158 static const uint64_t static_value2 = 0x20d8e6dc5c1ba784ULL;
00159 };
00160
00161 template<class ContainerAllocator>
00162 struct DataType< ::applanix_msgs::GNSSStatus_<ContainerAllocator> > {
00163 static const char* value()
00164 {
00165 return "applanix_msgs/GNSSStatus";
00166 }
00167
00168 static const char* value(const ::applanix_msgs::GNSSStatus_<ContainerAllocator> &) { return value(); }
00169 };
00170
00171 template<class ContainerAllocator>
00172 struct Definition< ::applanix_msgs::GNSSStatus_<ContainerAllocator> > {
00173 static const char* value()
00174 {
00175 return "TimeDistance td\n\
00176 \n\
00177 uint8 SOLUTION_UNKNOWN=255\n\
00178 uint8 SOLUTION_NO_DATA=0\n\
00179 uint8 SOLUTION_HORIZONTAL_CA=1\n\
00180 uint8 SOLUTION_3D_CA=2\n\
00181 uint8 SOLUTION_HORIZONTAL_DGPS=3\n\
00182 uint8 SOLUTION_3D_DGPS=4\n\
00183 uint8 SOLUTION_FLOAT_RTK=5\n\
00184 uint8 SOLUTION_WIDE_LANE_RTK=6\n\
00185 uint8 SOLUTION_NARROW_LANE_RTK=7\n\
00186 uint8 SOLUTION_P_CODE=8\n\
00187 uint8 SOLUTION_OMNISTAR_HP=9\n\
00188 uint8 SOLUTION_OMNISTAR_XP=10\n\
00189 uint8 SOLUTION_OMNISTAR_VBS=11\n\
00190 uint8 solution_status\n\
00191 \n\
00192 uint8 channels_count\n\
00193 uint16 reserved\n\
00194 GNSSChannelStatus[] channels\n\
00195 \n\
00196 float32 hdop\n\
00197 float32 vdop\n\
00198 float32 dgps_latency\n\
00199 uint16 dgps_reference_id\n\
00200 \n\
00201 uint32 gps_week\n\
00202 float64 gps_time_offset\n\
00203 \n\
00204 float32 gnss_latency\n\
00205 float32 geoidal_separation\n\
00206 \n\
00207 uint16 TYPE_NONE=0\n\
00208 uint16 TYPE_TRIMBLE_BD960=16\n\
00209 uint16 gnss_type\n\
00210 \n\
00211 # Receiver-dependent.\n\
00212 uint32 gnss_status\n\
00213 \n\
00214 ================================================================================\n\
00215 MSG: applanix_msgs/TimeDistance\n\
00216 float64 time1\n\
00217 float64 time2\n\
00218 float64 distance\n\
00219 uint8 time_types\n\
00220 uint8 distance_type\n\
00221 \n\
00222 ================================================================================\n\
00223 MSG: applanix_msgs/GNSSChannelStatus\n\
00224 uint16 sv_prn\n\
00225 \n\
00226 uint16 STATUS_L1_IDLE=0\n\
00227 uint16 STATUS_L1_ACQUISITION=1\n\
00228 uint16 STATUS_L1_CODE_LOCK=3\n\
00229 uint16 STATUS_L1_PHASE_LOCK=5\n\
00230 uint16 STATUS_L2_IDLE=6\n\
00231 uint16 STATUS_L2_ACQUISITION=8\n\
00232 uint16 STATUS_L2_CODE_LOCK=9\n\
00233 uint16 STATUS_L2_PHASE_LOCK=11\n\
00234 uint16 status\n\
00235 \n\
00236 float32 sv_azimuth\n\
00237 float32 sv_elevation\n\
00238 float32 sv_l1_snr\n\
00239 float32 sv_l2_snr\n\
00240 \n\
00241 ";
00242 }
00243
00244 static const char* value(const ::applanix_msgs::GNSSStatus_<ContainerAllocator> &) { return value(); }
00245 };
00246
00247 }
00248 }
00249
00250 namespace ros
00251 {
00252 namespace serialization
00253 {
00254
00255 template<class ContainerAllocator> struct Serializer< ::applanix_msgs::GNSSStatus_<ContainerAllocator> >
00256 {
00257 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00258 {
00259 stream.next(m.td);
00260 stream.next(m.solution_status);
00261 stream.next(m.channels_count);
00262 stream.next(m.reserved);
00263 stream.next(m.channels);
00264 stream.next(m.hdop);
00265 stream.next(m.vdop);
00266 stream.next(m.dgps_latency);
00267 stream.next(m.dgps_reference_id);
00268 stream.next(m.gps_week);
00269 stream.next(m.gps_time_offset);
00270 stream.next(m.gnss_latency);
00271 stream.next(m.geoidal_separation);
00272 stream.next(m.gnss_type);
00273 stream.next(m.gnss_status);
00274 }
00275
00276 ROS_DECLARE_ALLINONE_SERIALIZER;
00277 };
00278 }
00279 }
00280
00281 namespace ros
00282 {
00283 namespace message_operations
00284 {
00285
00286 template<class ContainerAllocator>
00287 struct Printer< ::applanix_msgs::GNSSStatus_<ContainerAllocator> >
00288 {
00289 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::applanix_msgs::GNSSStatus_<ContainerAllocator> & v)
00290 {
00291 s << indent << "td: ";
00292 s << std::endl;
00293 Printer< ::applanix_msgs::TimeDistance_<ContainerAllocator> >::stream(s, indent + " ", v.td);
00294 s << indent << "solution_status: ";
00295 Printer<uint8_t>::stream(s, indent + " ", v.solution_status);
00296 s << indent << "channels_count: ";
00297 Printer<uint8_t>::stream(s, indent + " ", v.channels_count);
00298 s << indent << "reserved: ";
00299 Printer<uint16_t>::stream(s, indent + " ", v.reserved);
00300 s << indent << "channels[]" << std::endl;
00301 for (size_t i = 0; i < v.channels.size(); ++i)
00302 {
00303 s << indent << " channels[" << i << "]: ";
00304 s << std::endl;
00305 s << indent;
00306 Printer< ::applanix_msgs::GNSSChannelStatus_<ContainerAllocator> >::stream(s, indent + " ", v.channels[i]);
00307 }
00308 s << indent << "hdop: ";
00309 Printer<float>::stream(s, indent + " ", v.hdop);
00310 s << indent << "vdop: ";
00311 Printer<float>::stream(s, indent + " ", v.vdop);
00312 s << indent << "dgps_latency: ";
00313 Printer<float>::stream(s, indent + " ", v.dgps_latency);
00314 s << indent << "dgps_reference_id: ";
00315 Printer<uint16_t>::stream(s, indent + " ", v.dgps_reference_id);
00316 s << indent << "gps_week: ";
00317 Printer<uint32_t>::stream(s, indent + " ", v.gps_week);
00318 s << indent << "gps_time_offset: ";
00319 Printer<double>::stream(s, indent + " ", v.gps_time_offset);
00320 s << indent << "gnss_latency: ";
00321 Printer<float>::stream(s, indent + " ", v.gnss_latency);
00322 s << indent << "geoidal_separation: ";
00323 Printer<float>::stream(s, indent + " ", v.geoidal_separation);
00324 s << indent << "gnss_type: ";
00325 Printer<uint16_t>::stream(s, indent + " ", v.gnss_type);
00326 s << indent << "gnss_status: ";
00327 Printer<uint32_t>::stream(s, indent + " ", v.gnss_status);
00328 }
00329 };
00330
00331
00332 }
00333 }
00334
00335 #endif // APPLANIX_MSGS_MESSAGE_GNSSSTATUS_H
00336