NDEVR
API Documentation
GPSPoint.h
1#pragma once
2#include <NDEVR/Vertex.h>
3#include <NDEVR/Time.h>
4#include <NDEVR/GNSSConstellation.h>
5#include <NDEVR/Angle.h>
6namespace NDEVR
7{
28
41
49 {
51 uint04 PRN = Constant<uint04>::Invalid;
52 fltp08 SNR = Constant<fltp08>::Invalid;
54 fltp08 elevation = Constant<fltp08>::Invalid;
55 bool use_for_navigation = false;
56
66 bool operator!=(const GNSSSatelliteInfo& info) const
67 {
69 || info.PRN != PRN
70 || info.SNR != SNR
72 return true;
73 if (IsInvalid(info.azimuth) != IsInvalid(azimuth))
74 return true;
76 return true;
77 if (IsValid(info.azimuth) && info.azimuth != azimuth)
78 return true;
79 if (IsValid(info.elevation) && info.elevation != elevation)
80 return true;
81 return false;
82 }
83 };
84}
Stores an angle in an optimized internal format with support for efficient trigonometric operations.
Definition Angle.h:83
Represents a timestamp with utilities for manipulation and conversion.
Definition Time.h:62
A point in N-dimensional space, used primarily for spatial location information.
Definition Vertex.hpp:44
The primary namespace for the NDEVR SDK.
static constexpr bool IsValid(const Angle< t_type > &value)
Checks whether the given Angle holds a valid value.
Definition Angle.h:398
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
double fltp08
Defines an alias representing an 8 byte floating-point number.
static constexpr bool IsInvalid(const Angle< t_type > &value)
Checks whether the given Angle holds an invalid value.
Definition Angle.h:388
@ e_unknown
Unknown device type.
GNSSQuality
Describes the quality level of a GNSS position fix.
Definition GPSPoint.h:16
@ e_timeout
Fix has timed out and is no longer current.
Definition GPSPoint.h:25
@ e_estimated
Estimated position via dead reckoning.
Definition GPSPoint.h:23
@ e_invalid
No fix available or fix is invalid.
Definition GPSPoint.h:17
@ e_pps_fix
GPS PPS (Pulse Per Second) mode, fix valid.
Definition GPSPoint.h:20
@ e_size
Number of entries in this enum; used for iteration.
Definition GPSPoint.h:26
@ e_rtk_fix
Real-Time Kinematic fixed solution (highest precision).
Definition GPSPoint.h:21
@ e_gps_dsps_fix
Differential GPS fix (DGPS). Values above 2 are NMEA 2.3+ features.
Definition GPSPoint.h:19
@ e_rtk_float
Real-Time Kinematic float solution (converging, lower precision than fixed).
Definition GPSPoint.h:22
@ e_gps_autonomous
Autonomous GPS fix (standard single-point positioning).
Definition GPSPoint.h:18
GNSSConstellation
Identifies the satellite constellation system providing GNSS data.
Definition GNSSEnums.h:16
@ e_unknown
Unknown constellation.
Definition GNSSEnums.h:17
Defines for a given type (such as sint04, fltp08, UUID, etc) a maximum, minimum, and reserved 'invali...
Information about a single GNSS satellite as reported by a receiver.
Definition GPSPoint.h:49
bool use_for_navigation
Whether this satellite is used in the current navigation/timing solution.
Definition GPSPoint.h:55
fltp08 SNR
Signal-to-noise ratio in dB-Hz.
Definition GPSPoint.h:52
fltp08 elevation
Elevation angle of the satellite above the horizon, in degrees.
Definition GPSPoint.h:54
bool operator!=(const GNSSSatelliteInfo &info) const
Compares two GNSSSatelliteInfo instances for inequality.
Definition GPSPoint.h:66
GNSSConstellation constellation_type
The GNSS constellation this satellite belongs to (GPS, GLONASS, Galileo, etc.).
Definition GPSPoint.h:50
uint04 PRN
Pseudo-random noise number (satellite ID within its constellation).
Definition GPSPoint.h:51
Angle< fltp08 > azimuth
Azimuth angle of the satellite from the receiver.
Definition GPSPoint.h:53
A geographic coordinate point produced by a GNSS receiver.
Definition GPSPoint.h:36
GNSSQuality quality
Quality indicator of the GNSS fix.
Definition GPSPoint.h:39
Time time
UTC timestamp of the fix.
Definition GPSPoint.h:38
Vertex< 3, fltp08 > lat_lon
Position as (latitude, longitude, altitude). Latitude in decimal degrees (S < 0 > N),...
Definition GPSPoint.h:37