MRPT  2.0.1
gnss_messages_topcon.h
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See: https://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 #pragma once
10 
11 #include <mrpt/math/CMatrixFixed.h>
12 #include "gnss_messages_common.h"
13 
14 namespace mrpt::obs::gnss
15 {
16 /** GPS datum for TopCon's mmGPS devices: PZS. \sa mrpt::obs::CObservationGPS */
18 {
19  /** Static msg type (member expected by templates) */
20  enum
21  {
23  };
24 
25  /** The measured latitude, in degrees (North:+ , South:-) */
26  double latitude_degrees{0};
27  /** The measured longitude, in degrees (East:+ , West:-) */
28  double longitude_degrees{0};
29  /** ellipsoidal height from N-beam [m] perhaps weighted with regular gps */
30  double height_meters{0};
31  /** ellipsoidal height [m] without N-beam correction */
32  double RTK_height_meters{0};
33  /** position SEP [m] */
34  float PSigma{0};
35  /** Vertical angle of N-beam */
36  double angle_transmitter{0};
37  /** ID of the transmitter [1-4], 0 if none. */
38  uint8_t nId{0};
39  /** 1: GPS, 2: mmGPS */
40  uint8_t Fix{0};
41  /** battery level on transmitter */
42  uint8_t TXBattery{0};
43  /** battery level on receiver */
44  uint8_t RXBattery{0};
45  uint8_t error{0}; //! system error indicator
46 
47  bool hasCartesianPosVel{false};
48  /** Only if hasCartesianPosVel is true */
49  double cartesian_x{0}, cartesian_y{0}, cartesian_z{0};
50  /** Only if hasCartesianPosVel is true */
52 
53  bool hasPosCov{false};
54  /** Only if hasPosCov is true */
56 
57  bool hasVelCov{false};
58  /** Only if hasPosCov is true */
60 
61  bool hasStats{false};
62  uint8_t stats_GPS_sats_used{0},
63  stats_GLONASS_sats_used{0}; //<! Only if hasStats is true
64  /** [0,100] %, only in modes other than RTK FIXED. */
66 
68  /** Return the geodetic coords as a mrpt::topography::TGeodeticCoords
69  * structure (requires linking against mrpt-topography)
70  * Call as: getAsStruct<TGeodeticCoords>(); */
71  template <class TGEODETICCOORDS>
72  inline TGEODETICCOORDS getAsStruct() const
73  {
74  return TGEODETICCOORDS(
76  }
77  void dumpToStream(std::ostream& out) const override; // See docs in base
78 
79  protected:
81  mrpt::serialization::CArchive& out) const override;
83 
84  public:
85 };
86 
87 /** TopCon mmGPS devices: SATS, a generic structure for statistics about tracked
88  * satelites and their positions. \sa mrpt::obs::CObservationGPS */
90 {
91  /** Static msg type (member expected by templates) */
92  enum
93  {
95  };
96 
98 
99  /** The list of USI (Universal Sat ID) for the detected sats (See GRIL
100  * Manual, pag 4-31). */
101  std::vector<uint8_t> USIs;
102  /** Elevation (in degrees, 0-90) for each satellite in USIs. */
103  std::vector<int8_t> ELs;
104  /** Azimuth (in degrees, 0-360) for each satellite in USIs. */
105  std::vector<int16_t> AZs;
106 
107  void dumpToStream(std::ostream& out) const override; // See docs in base
108  protected:
110  mrpt::serialization::CArchive& out) const override;
112 };
113 } // namespace mrpt::obs::gnss
double angle_transmitter
Vertical angle of N-beam.
std::vector< int16_t > AZs
Azimuth (in degrees, 0-360) for each satellite in USIs.
uint8_t stats_rtk_fix_progress
[0,100] %, only in modes other than RTK FIXED.
double height_meters
ellipsoidal height from N-beam [m] perhaps weighted with regular gps
void dumpToStream(std::ostream &out) const override
Dumps the contents of the observation in a human-readable form to a given output stream.
TopCon mmGPS devices: SATS, a generic structure for statistics about tracked satelites and their posi...
mrpt::math::CMatrixFloat44 vel_covariance
Only if hasPosCov is true.
void dumpToStream(std::ostream &out) const override
Dumps the contents of the observation in a human-readable form to a given output stream.
TGEODETICCOORDS getAsStruct() const
Return the geodetic coords as a mrpt::topography::TGeodeticCoords structure (requires linking against...
void internal_writeToStream(mrpt::serialization::CArchive &out) const override
Save to binary stream.
void internal_readFromStream(mrpt::serialization::CArchive &in) override
Save to binary stream.
GPS datum for TopCon&#39;s mmGPS devices: PZS.
double latitude_degrees
The measured latitude, in degrees (North:+ , South:-)
uint8_t nId
ID of the transmitter [1-4], 0 if none.
bool hasCartesianPosVel
system error indicator
mrpt::math::CMatrixFloat44 pos_covariance
Only if hasPosCov is true.
void internal_readFromStream(mrpt::serialization::CArchive &in) override
Save to binary stream.
uint8_t RXBattery
battery level on receiver
GNSS (GPS) data structures, mainly for use within mrpt::obs::CObservationGPS.
double cartesian_x
Only if hasCartesianPosVel is true.
std::vector< uint8_t > USIs
The list of USI (Universal Sat ID) for the detected sats (See GRIL Manual, pag 4-31).
Virtual base class for "archives": classes abstracting I/O streams.
Definition: CArchive.h:54
mrpt::vision::TStereoCalibResults out
Pure virtual base for all message types.
uint8_t TXBattery
battery level on transmitter
double cartesian_vx
Only if hasCartesianPosVel is true.
double RTK_height_meters
ellipsoidal height [m] without N-beam correction
std::vector< int8_t > ELs
Elevation (in degrees, 0-90) for each satellite in USIs.
double longitude_degrees
The measured longitude, in degrees (East:+ , West:-)
void internal_writeToStream(mrpt::serialization::CArchive &out) const override
Save to binary stream.



Page generated by Doxygen 1.8.14 for MRPT 2.0.1 Git: 0fef1a6d7 Fri Apr 3 23:00:21 2020 +0200 at vie abr 3 23:20:28 CEST 2020