AgIsoStack++
A control-function-focused implementation of the major ISOBUS and J1939 protocols
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
isobus::NMEA2000Messages::GNSSPositionData Class Reference

Represents the data sent in the NMEA2K PGN 129029 (0x1F805) More...

#include <nmea2000_message_definitions.hpp>

Classes

class  ReferenceStationData
 Used to group related reference station data together. More...
 

Public Types

enum class  TypeOfSystem {
  GPS = 0x00 , GLONASS = 0x01 , GPSPlusGLONASS = 0x02 , GPSPlusSBAS = 0x03 ,
  GPSPlusSBASPlusGLONASS = 0x04 , Chayka = 0x05 , Integrated = 0x06 , Surveyed = 0x07 ,
  Galileo = 0x08 , Null = 0x0F
}
 Enumerates the different GNSS systems that can be reported in this message. More...
 
enum class  GNSSMethod {
  NoGNSS = 0x00 , GNSSFix = 0x01 , DGNSSFix = 0x02 , PreciseGNSS = 0x03 ,
  RTKFixedInteger = 0x04 , RTKFloat = 0x05 , EstimatedMode = 0x06 , ManualInput = 0x07 ,
  SimulateMode = 0x08 , Null = 0x0F
}
 Enumerates the GNSS methods that can be reported in this message. More...
 
enum class  Integrity { NoIntegrityChecking = 0x00 , Safe = 0x01 , Caution = 0x02 , Unsafe = 0x03 }
 Enumerates the integrity checking modes that can be reported in this message. You will most often see "NoIntegrityChecking" in reality. More...
 

Public Member Functions

 GNSSPositionData (std::shared_ptr< ControlFunction > source)
 Constructor for a GNSSPositionData message data object.
 
std::shared_ptr< ControlFunctionget_control_function () const
 Returns the control function sending this instance of this message.
 
std::int64_t get_raw_altitude () const
 Returns the altitude portion of the position fix in its base units of 1x10E-6 meters. Range is +/- 9.223 x 10E+12 meters.
 
double get_altitude () const
 Returns the altitude portion of the position fix in scaled units of meters. Range is +/- 9.223 x 10E+12 meters.
 
bool set_altitude (std::int64_t altitudeToSet)
 Sets the reported altitude in units of 1x10E-6 meters. Range is +/- 9.223 x 10E+12 meters.
 
std::int64_t get_raw_latitude () const
 Returns our current position's latitude in its base units of 1x10E-16 degrees.
 
double get_latitude () const
 Returns our current position's latitude in units of degrees.
 
bool set_latitude (std::int64_t latitudeToSet)
 Sets the reported latitude in its base units of 1x10E-16 degrees.
 
std::int64_t get_raw_longitude () const
 Returns our current position's longitude in its base units of 1x10E-16 degrees.
 
double get_longitude () const
 Returns our current position's longitude in units of degrees.
 
bool set_longitude (std::int64_t longitudeToSet)
 Sets the reported longitude in its base units of 1x10E-16 degrees.
 
std::int32_t get_raw_geoidal_separation () const
 Returns the geoidal separation in units of 0.01 meters.
 
float get_geoidal_separation () const
 Returns the geoidal separation in units of meters.
 
bool set_geoidal_separation (std::int32_t separation)
 Sets the geoidal separation.
 
std::uint32_t get_timestamp () const
 Returns a timestamp in milliseconds corresponding to when the message was last sent or received.
 
bool set_timestamp (std::uint32_t timestamp)
 Sets the time in milliseconds when the message was last sent or received.
 
std::uint8_t get_sequence_id () const
 Returns the sequence ID. This is used to associate data within other PGNs with this message.
 
bool set_sequence_id (std::uint8_t sequenceNumber)
 Sets the sequence ID for this message.
 
TypeOfSystem get_type_of_system () const
 Returns the reported type of GNSS system that produced this position solution.
 
bool set_type_of_system (TypeOfSystem type)
 Sets the reported type of GNSS system that produced this position solution.
 
GNSSMethod get_gnss_method () const
 Returns the GNSS method being reported as part of this position solution, such as RTK Float or DGNSS.
 
bool set_gnss_method (GNSSMethod gnssFixMethod)
 Sets the GNSS method to report as the source of this position solution, such as RTK float or DGNSS.
 
Integrity get_integrity () const
 Sets the integrity being reported for this position solution if applicable.
 
bool set_integrity (Integrity integrity)
 Sets the integrity reported for this position solution.
 
std::uint8_t get_number_of_space_vehicles () const
 Returns the number of space vehicles used in this position solution.
 
bool set_number_of_space_vehicles (std::uint8_t numberOfSVs)
 Sets the number of space vehicles in view and used in this position solution.
 
std::int16_t get_raw_horizontal_dilution_of_precision () const
 Returns the HDOP for this solution. This Indicates the contribution of satellite configuration geometry to positioning error. Lower is better.
 
float get_horizontal_dilution_of_precision () const
 Returns the HDOP for this solution. This Indicates the contribution of satellite configuration geometry to positioning error. Lower is better.
 
bool set_horizontal_dilution_of_precision (std::int16_t hdop)
 Sets the horizontal dilution of precision (HDOP)
 
std::int16_t get_raw_positional_dilution_of_precision () const
 Returns the PDOP for this solution. This Indicates the contribution of satellite configuration geometry to positioning error. Lower is better.
 
float get_positional_dilution_of_precision () const
 Returns the PDOP for this solution. This Indicates the contribution of satellite configuration geometry to positioning error. Lower is better.
 
bool set_positional_dilution_of_precision (std::int16_t pdop)
 Sets the positional dilution of precision (PDOP)
 
std::uint8_t get_number_of_reference_stations () const
 Returns the number of reference stations used in this position solution (if applicable to GNSS method)
 
bool set_number_of_reference_stations (std::uint8_t stations)
 Sets the number of reference stations used in this position solution.
 
std::uint16_t get_reference_station_id (std::size_t index) const
 Returns the specified reference station's ID by index.
 
std::uint16_t get_raw_reference_station_corrections_age (std::size_t index) const
 Returns the specified reference station's DGNSS corrections age by index.
 
float get_reference_station_corrections_age (std::size_t index) const
 Returns the specified reference station's DGNSS corrections age by index.
 
TypeOfSystem get_reference_station_system_type (std::size_t index) const
 Returns the specified reference station's system type by index.
 
bool set_reference_station (std::size_t index, std::uint16_t ID, TypeOfSystem type, std::uint16_t ageOfCorrections)
 Sets the data for the specified reference station by index.
 
std::uint16_t get_position_date () const
 Returns the date associated with the current position.
 
bool set_position_date (std::uint16_t dateToSet)
 Sets the date to report relative to UTC since Jan 1 1970. Max normal value is 65532.
 
std::uint32_t get_raw_position_time () const
 Returns the number of seconds since midnight.
 
double get_position_time () const
 Returns the number of seconds since midnight.
 
bool set_position_time (std::uint32_t timeToSet)
 Sets the number of seconds since midnight.
 
void serialize (std::vector< std::uint8_t > &buffer) const
 Serializes the current state of this object into a buffer to be sent on the CAN bus.
 
bool deserialize (const CANMessage &receivedMessage)
 Deserializes a CAN message to populate this object's contents. Updates the timestamp when called.
 

Static Public Member Functions

static std::uint32_t get_timeout ()
 Returns the timeout (the sending interval) for this message in milliseconds.
 

Private Attributes

std::shared_ptr< ControlFunctionsenderControlFunction
 The sender of the message data.
 
std::vector< ReferenceStationDatareferenceStations
 Stores data about the reference stations used to generate this position solution.
 
std::int64_t altitude = 0
 The current altitude in 1x10E-6 meters. Range is +/- 9.223 x 10E+12 meters.
 
std::int64_t latitude = 0
 The current latitude in 1x10E-16 degrees. Range is -90 to 90 degrees. Negative values are south latitudes.
 
std::int64_t longitude = 0
 The current longitude in 1x10E-16 degrees. Range is -90 to 90 degrees. Negative values are west longitudes.
 
std::uint32_t messageTimestamp_ms = 0
 A timestamp in milliseconds when this message was last sent or received.
 
std::uint32_t positionTime = 0
 The number of seconds since midnight on the current day. Allows for up to 2 leap seconds per day. Max value is 86401 seconds.
 
std::int32_t geoidalSeparation = 0
 The difference between the earth ellipsoid and mean-sea-level (geoid) defined by the reference datum used in the position solution.
 
std::uint16_t positionDate = 0
 Number of days relative to UTC since Jan 1 1970 (so 0 is equal to Jan 1, 1970). Max value is 65532 days.
 
std::int16_t horizontalDilutionOfPrecision = 0
 Indicates the contribution of satellite configuration geometry to positioning error. Lower is better.
 
std::int16_t positionalDilutionOfPrecision = 0
 Indicates the contribution of satellite configuration geometry to positioning error. Lower is better.
 
std::uint8_t numberOfSpaceVehicles = 0
 Number of GPS satellites in view.
 
std::uint8_t sequenceID = 0
 The sequence identifier field is used to tie related PGNs together. Somewhat arbitrary.
 
TypeOfSystem systemType = TypeOfSystem::Null
 The type of GNSS system used when generating this message.
 
GNSSMethod method = GNSSMethod::NoGNSS
 Stores the method used to provide the GNSS fix.
 
Integrity integrityChecking = Integrity::NoIntegrityChecking
 Stores the integrity of the values in the message.
 

Static Private Attributes

static constexpr std::uint32_t CYCLIC_MESSAGE_RATE_MS = 1000
 The transmit interval for this message as specified in NMEA2000.
 
static constexpr std::uint8_t MINIMUM_LENGTH_BYTES = 43
 The minimum size of this message in bytes.
 

Detailed Description

Represents the data sent in the NMEA2K PGN 129029 (0x1F805)

Definition at line 471 of file nmea2000_message_definitions.hpp.

Member Enumeration Documentation

◆ GNSSMethod

Enumerates the GNSS methods that can be reported in this message.

Enumerator
NoGNSS 

Either there is not enough data to compute a navigation solution, or the computed solution is outside of the acceptable error criteria.

GNSSFix 

Position solution has been achieved.

DGNSSFix 

Differential solution achieved based on deviation from a well known reference point.

PreciseGNSS 

Solution achieved using Precise Point Positioning (PPP)

RTKFixedInteger 

Solution achieved using radio corrections (from an RTK base station)

RTKFloat 

Solution achieved using radio corrections (from an RTK base station) but using floating point instead of fixed integers.

EstimatedMode 

Dead reckoning.

Definition at line 490 of file nmea2000_message_definitions.hpp.

◆ Integrity

Enumerates the integrity checking modes that can be reported in this message. You will most often see "NoIntegrityChecking" in reality.

Definition at line 505 of file nmea2000_message_definitions.hpp.

◆ TypeOfSystem

Enumerates the different GNSS systems that can be reported in this message.

Enumerator
GPS 

A GNSS system operated by the United States military.

GLONASS 

A Russian state operated alternative to GPS.

GPSPlusGLONASS 

A system using both GPS and GLONASS.

GPSPlusSBAS 

Satellite Based Augmentation System (WAAS) enhanced GPS (Run by the US Federal Aviation Administration)

GPSPlusSBASPlusGLONASS 

A system using SBAS augmented GPS as well as GLONASS.

Chayka 

A Russian Hyperbolic Radio Navigation System similar to Loran-C.

Integrated 

Using internally integrated solution (maybe digital dead reckoning)

Galileo 

A GNSS system operated by the European Space Agency.

Definition at line 475 of file nmea2000_message_definitions.hpp.

Constructor & Destructor Documentation

◆ GNSSPositionData()

isobus::NMEA2000Messages::GNSSPositionData::GNSSPositionData ( std::shared_ptr< ControlFunction > source)
explicit

Constructor for a GNSSPositionData message data object.

Parameters
[in]sourceThe control function sending this message

Definition at line 592 of file nmea2000_message_definitions.cpp.

Member Function Documentation

◆ deserialize()

bool isobus::NMEA2000Messages::GNSSPositionData::deserialize ( const CANMessage & receivedMessage)

Deserializes a CAN message to populate this object's contents. Updates the timestamp when called.

Parameters
[in]receivedMessageThe CAN message to parse when deserializing
Returns
True if the message was successfully deserialized and the data content was different than the stored content.

Definition at line 928 of file nmea2000_message_definitions.cpp.

Here is the call graph for this function:

◆ get_altitude()

double isobus::NMEA2000Messages::GNSSPositionData::get_altitude ( ) const

Returns the altitude portion of the position fix in scaled units of meters. Range is +/- 9.223 x 10E+12 meters.

Returns
Altitude portion of the position fix in scaled units of meters. Range is +/- 9.223 x 10E+12 meters

Definition at line 607 of file nmea2000_message_definitions.cpp.

◆ get_control_function()

std::shared_ptr< ControlFunction > isobus::NMEA2000Messages::GNSSPositionData::get_control_function ( ) const

Returns the control function sending this instance of this message.

Returns
The control function sending this instance of this message

Definition at line 597 of file nmea2000_message_definitions.cpp.

◆ get_geoidal_separation()

float isobus::NMEA2000Messages::GNSSPositionData::get_geoidal_separation ( ) const

Returns the geoidal separation in units of meters.

This returns the difference between the earth ellipsoid and mean-sea-level (geoid) defined by the reference datum

Returns
The geoidal separation in units of meters

Definition at line 658 of file nmea2000_message_definitions.cpp.

◆ get_gnss_method()

GNSSPositionData::GNSSMethod isobus::NMEA2000Messages::GNSSPositionData::get_gnss_method ( ) const

Returns the GNSS method being reported as part of this position solution, such as RTK Float or DGNSS.

Returns
The GNSS method being reported as part of this position solution, such as RTK Float or DGNSS

Definition at line 706 of file nmea2000_message_definitions.cpp.

◆ get_horizontal_dilution_of_precision()

float isobus::NMEA2000Messages::GNSSPositionData::get_horizontal_dilution_of_precision ( ) const

Returns the HDOP for this solution. This Indicates the contribution of satellite configuration geometry to positioning error. Lower is better.

Returns
The horizontal dilution of precision (HDOP)

Definition at line 747 of file nmea2000_message_definitions.cpp.

◆ get_integrity()

GNSSPositionData::Integrity isobus::NMEA2000Messages::GNSSPositionData::get_integrity ( ) const

Sets the integrity being reported for this position solution if applicable.

Returns
The integrity being reported for this position solution

Definition at line 718 of file nmea2000_message_definitions.cpp.

◆ get_latitude()

double isobus::NMEA2000Messages::GNSSPositionData::get_latitude ( ) const

Returns our current position's latitude in units of degrees.

Returns
Current position's latitude in units of degrees

Definition at line 624 of file nmea2000_message_definitions.cpp.

◆ get_longitude()

double isobus::NMEA2000Messages::GNSSPositionData::get_longitude ( ) const

Returns our current position's longitude in units of degrees.

Returns
Current position's longitude in units of degrees

Definition at line 641 of file nmea2000_message_definitions.cpp.

◆ get_number_of_reference_stations()

std::uint8_t isobus::NMEA2000Messages::GNSSPositionData::get_number_of_reference_stations ( ) const

Returns the number of reference stations used in this position solution (if applicable to GNSS method)

Returns
The number of reference stations used in this position solution

Definition at line 776 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ get_number_of_space_vehicles()

std::uint8_t isobus::NMEA2000Messages::GNSSPositionData::get_number_of_space_vehicles ( ) const

Returns the number of space vehicles used in this position solution.

Returns
The number of space vehicles used in this position solution

Definition at line 730 of file nmea2000_message_definitions.cpp.

◆ get_position_date()

std::uint16_t isobus::NMEA2000Messages::GNSSPositionData::get_position_date ( ) const

Returns the date associated with the current position.

Returns
Number of days relative to UTC since Jan 1 1970 (0 is equal to Jan 1, 1970). Max value is 65532 days.

Definition at line 840 of file nmea2000_message_definitions.cpp.

◆ get_position_time()

double isobus::NMEA2000Messages::GNSSPositionData::get_position_time ( ) const

Returns the number of seconds since midnight.

Returns
Number of seconds since midnight (0 == midnight), range allows for up to two leap seconds per day, in units of 0.0001 seconds

Definition at line 857 of file nmea2000_message_definitions.cpp.

◆ get_positional_dilution_of_precision()

float isobus::NMEA2000Messages::GNSSPositionData::get_positional_dilution_of_precision ( ) const

Returns the PDOP for this solution. This Indicates the contribution of satellite configuration geometry to positioning error. Lower is better.

Returns
The positional dilution of precision (PDOP)

Definition at line 764 of file nmea2000_message_definitions.cpp.

◆ get_raw_altitude()

std::int64_t isobus::NMEA2000Messages::GNSSPositionData::get_raw_altitude ( ) const

Returns the altitude portion of the position fix in its base units of 1x10E-6 meters. Range is +/- 9.223 x 10E+12 meters.

Returns
Altitude portion of the position fix in its base units of 1x10E-6 meters. Range is +/- 9.223 x 10E+12 meters

Definition at line 602 of file nmea2000_message_definitions.cpp.

◆ get_raw_geoidal_separation()

std::int32_t isobus::NMEA2000Messages::GNSSPositionData::get_raw_geoidal_separation ( ) const

Returns the geoidal separation in units of 0.01 meters.

This returns the difference between the earth ellipsoid and mean-sea-level (geoid) defined by the reference datum

Returns
The geoidal separation in units of 0.01m

Definition at line 653 of file nmea2000_message_definitions.cpp.

◆ get_raw_horizontal_dilution_of_precision()

std::int16_t isobus::NMEA2000Messages::GNSSPositionData::get_raw_horizontal_dilution_of_precision ( ) const

Returns the HDOP for this solution. This Indicates the contribution of satellite configuration geometry to positioning error. Lower is better.

Returns
The horizontal dilution of precision (HDOP)

Definition at line 742 of file nmea2000_message_definitions.cpp.

◆ get_raw_latitude()

std::int64_t isobus::NMEA2000Messages::GNSSPositionData::get_raw_latitude ( ) const

Returns our current position's latitude in its base units of 1x10E-16 degrees.

Returns
Current position's latitude in units of 1x10E-16 degrees

Definition at line 619 of file nmea2000_message_definitions.cpp.

◆ get_raw_longitude()

std::int64_t isobus::NMEA2000Messages::GNSSPositionData::get_raw_longitude ( ) const

Returns our current position's longitude in its base units of 1x10E-16 degrees.

Returns
Current position's longitude in units of 1x10E-16 degrees

Definition at line 636 of file nmea2000_message_definitions.cpp.

◆ get_raw_position_time()

std::uint32_t isobus::NMEA2000Messages::GNSSPositionData::get_raw_position_time ( ) const

Returns the number of seconds since midnight.

Returns
Number of seconds since midnight (0 == midnight), range allows for up to two leap seconds per day

Definition at line 852 of file nmea2000_message_definitions.cpp.

◆ get_raw_positional_dilution_of_precision()

std::int16_t isobus::NMEA2000Messages::GNSSPositionData::get_raw_positional_dilution_of_precision ( ) const

Returns the PDOP for this solution. This Indicates the contribution of satellite configuration geometry to positioning error. Lower is better.

Returns
The positional dilution of precision (PDOP)

Definition at line 759 of file nmea2000_message_definitions.cpp.

◆ get_raw_reference_station_corrections_age()

std::uint16_t isobus::NMEA2000Messages::GNSSPositionData::get_raw_reference_station_corrections_age ( std::size_t index) const

Returns the specified reference station's DGNSS corrections age by index.

Parameters
[in]indexThe index of the reference station to get the DGNSS corrections age for
Returns
Reference station's DGNSS corrections age by index

Definition at line 799 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ get_reference_station_corrections_age()

float isobus::NMEA2000Messages::GNSSPositionData::get_reference_station_corrections_age ( std::size_t index) const

Returns the specified reference station's DGNSS corrections age by index.

Parameters
[in]indexThe index of the reference station to get the DGNSS corrections age for
Returns
Reference station's DGNSS corrections age by index

Definition at line 810 of file nmea2000_message_definitions.cpp.

Here is the call graph for this function:

◆ get_reference_station_id()

std::uint16_t isobus::NMEA2000Messages::GNSSPositionData::get_reference_station_id ( std::size_t index) const

Returns the specified reference station's ID by index.

Parameters
[in]indexThe index of the reference station to get the ID of
Returns
Reference station's ID by index

Definition at line 788 of file nmea2000_message_definitions.cpp.

◆ get_reference_station_system_type()

GNSSPositionData::TypeOfSystem isobus::NMEA2000Messages::GNSSPositionData::get_reference_station_system_type ( std::size_t index) const

Returns the specified reference station's system type by index.

Parameters
[in]indexThe index of the reference station to get the system type for
Returns
The specified reference station's system type by index

Definition at line 815 of file nmea2000_message_definitions.cpp.

◆ get_sequence_id()

std::uint8_t isobus::NMEA2000Messages::GNSSPositionData::get_sequence_id ( ) const

Returns the sequence ID. This is used to associate data within other PGNs with this message.

Returns
The sequence ID for this message

Definition at line 682 of file nmea2000_message_definitions.cpp.

◆ get_timeout()

std::uint32_t isobus::NMEA2000Messages::GNSSPositionData::get_timeout ( )
static

Returns the timeout (the sending interval) for this message in milliseconds.

Returns
This message's timeout (the sending interval) in milliseconds

Definition at line 973 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ get_timestamp()

std::uint32_t isobus::NMEA2000Messages::GNSSPositionData::get_timestamp ( ) const

Returns a timestamp in milliseconds corresponding to when the message was last sent or received.

Returns
A timestamp in milliseconds corresponding to when the message was last sent or received

Definition at line 670 of file nmea2000_message_definitions.cpp.

◆ get_type_of_system()

GNSSPositionData::TypeOfSystem isobus::NMEA2000Messages::GNSSPositionData::get_type_of_system ( ) const

Returns the reported type of GNSS system that produced this position solution.

Returns
The type of GNSS system that produced this position solution

Definition at line 694 of file nmea2000_message_definitions.cpp.

◆ serialize()

void isobus::NMEA2000Messages::GNSSPositionData::serialize ( std::vector< std::uint8_t > & buffer) const

Serializes the current state of this object into a buffer to be sent on the CAN bus.

Parameters
[in]bufferA buffer to serialize the message data into

Definition at line 869 of file nmea2000_message_definitions.cpp.

Here is the call graph for this function:

◆ set_altitude()

bool isobus::NMEA2000Messages::GNSSPositionData::set_altitude ( std::int64_t altitudeToSet)

Sets the reported altitude in units of 1x10E-6 meters. Range is +/- 9.223 x 10E+12 meters.

Parameters
[in]altitudeToSetAltitude to set in units of 1x10E-6 meters. Range is +/- 9.223 x 10E+12 meters
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 612 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ set_geoidal_separation()

bool isobus::NMEA2000Messages::GNSSPositionData::set_geoidal_separation ( std::int32_t separation)

Sets the geoidal separation.

This value is the difference between the earth ellipsoid and mean-sea-level (geoid) defined by the reference datum

Parameters
[in]separationThe geoidal separation to set
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 663 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ set_gnss_method()

bool isobus::NMEA2000Messages::GNSSPositionData::set_gnss_method ( GNSSMethod gnssFixMethod)

Sets the GNSS method to report as the source of this position solution, such as RTK float or DGNSS.

Parameters
[in]gnssFixMethodThe GNSS method to report as the source of this position solution
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 711 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ set_horizontal_dilution_of_precision()

bool isobus::NMEA2000Messages::GNSSPositionData::set_horizontal_dilution_of_precision ( std::int16_t hdop)

Sets the horizontal dilution of precision (HDOP)

Parameters
[in]hdopThe positional dilution of precision to set
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 752 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ set_integrity()

bool isobus::NMEA2000Messages::GNSSPositionData::set_integrity ( Integrity integrity)

Sets the integrity reported for this position solution.

Parameters
[in]integrityThe integrity to report
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 723 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ set_latitude()

bool isobus::NMEA2000Messages::GNSSPositionData::set_latitude ( std::int64_t latitudeToSet)

Sets the reported latitude in its base units of 1x10E-16 degrees.

Parameters
[in]latitudeToSetThe latitude to set in 1x10E-16 degrees
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 629 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ set_longitude()

bool isobus::NMEA2000Messages::GNSSPositionData::set_longitude ( std::int64_t longitudeToSet)

Sets the reported longitude in its base units of 1x10E-16 degrees.

Parameters
[in]longitudeToSetThe longitude to set in 1x10E-16 degrees
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 646 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ set_number_of_reference_stations()

bool isobus::NMEA2000Messages::GNSSPositionData::set_number_of_reference_stations ( std::uint8_t stations)

Sets the number of reference stations used in this position solution.

Parameters
[in]stationsThe number of reference stations to set (if applicable to GNSS method, otherwise should be zero)
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 781 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ set_number_of_space_vehicles()

bool isobus::NMEA2000Messages::GNSSPositionData::set_number_of_space_vehicles ( std::uint8_t numberOfSVs)

Sets the number of space vehicles in view and used in this position solution.

Parameters
[in]numberOfSVsThe number of space vehicles to set
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 735 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ set_position_date()

bool isobus::NMEA2000Messages::GNSSPositionData::set_position_date ( std::uint16_t dateToSet)

Sets the date to report relative to UTC since Jan 1 1970. Max normal value is 65532.

Parameters
[in]dateToSetDate to report relative to UTC since Jan 1 1970. Max normal value is 65532
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 845 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ set_position_time()

bool isobus::NMEA2000Messages::GNSSPositionData::set_position_time ( std::uint32_t timeToSet)

Sets the number of seconds since midnight.

Parameters
[in]timeToSetSeconds since midnight (0 == midnight), range allows for up to two leap seconds per day, in units of 0.0001 seconds
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 862 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ set_positional_dilution_of_precision()

bool isobus::NMEA2000Messages::GNSSPositionData::set_positional_dilution_of_precision ( std::int16_t pdop)

Sets the positional dilution of precision (PDOP)

Parameters
[in]pdopThe positional dilution of precision to set
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 769 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ set_reference_station()

bool isobus::NMEA2000Messages::GNSSPositionData::set_reference_station ( std::size_t index,
std::uint16_t ID,
TypeOfSystem type,
std::uint16_t ageOfCorrections )

Sets the data for the specified reference station by index.

Parameters
[in]indexThe index of the reference station to set
[in]IDThe station ID to set
[in]typeThe type of reference station
[in]ageOfCorrectionsAge of the DGNSS corrections in units of 0.01 seconds
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 826 of file nmea2000_message_definitions.cpp.

◆ set_sequence_id()

bool isobus::NMEA2000Messages::GNSSPositionData::set_sequence_id ( std::uint8_t sequenceNumber)

Sets the sequence ID for this message.

Parameters
[in]sequenceNumberThe sequence number to set. Max value is 252.
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 687 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

◆ set_timestamp()

bool isobus::NMEA2000Messages::GNSSPositionData::set_timestamp ( std::uint32_t timestamp)

Sets the time in milliseconds when the message was last sent or received.

Parameters
[in]timestampThe timestamp (in milliseconds) to set for when this message was sent or received
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 675 of file nmea2000_message_definitions.cpp.

◆ set_type_of_system()

bool isobus::NMEA2000Messages::GNSSPositionData::set_type_of_system ( TypeOfSystem type)

Sets the reported type of GNSS system that produced this position solution.

Parameters
[in]typeThe type of system to set
Returns
True if the value that was set differed from the stored value, otherwise false

Definition at line 699 of file nmea2000_message_definitions.cpp.

Here is the caller graph for this function:

Member Data Documentation

◆ altitude

std::int64_t isobus::NMEA2000Messages::GNSSPositionData::altitude = 0
private

The current altitude in 1x10E-6 meters. Range is +/- 9.223 x 10E+12 meters.

Definition at line 755 of file nmea2000_message_definitions.hpp.

◆ CYCLIC_MESSAGE_RATE_MS

constexpr std::uint32_t isobus::NMEA2000Messages::GNSSPositionData::CYCLIC_MESSAGE_RATE_MS = 1000
staticconstexprprivate

The transmit interval for this message as specified in NMEA2000.

Definition at line 750 of file nmea2000_message_definitions.hpp.

◆ geoidalSeparation

std::int32_t isobus::NMEA2000Messages::GNSSPositionData::geoidalSeparation = 0
private

The difference between the earth ellipsoid and mean-sea-level (geoid) defined by the reference datum used in the position solution.

Definition at line 760 of file nmea2000_message_definitions.hpp.

◆ horizontalDilutionOfPrecision

std::int16_t isobus::NMEA2000Messages::GNSSPositionData::horizontalDilutionOfPrecision = 0
private

Indicates the contribution of satellite configuration geometry to positioning error. Lower is better.

Definition at line 762 of file nmea2000_message_definitions.hpp.

◆ integrityChecking

Integrity isobus::NMEA2000Messages::GNSSPositionData::integrityChecking = Integrity::NoIntegrityChecking
private

Stores the integrity of the values in the message.

Definition at line 768 of file nmea2000_message_definitions.hpp.

◆ latitude

std::int64_t isobus::NMEA2000Messages::GNSSPositionData::latitude = 0
private

The current latitude in 1x10E-16 degrees. Range is -90 to 90 degrees. Negative values are south latitudes.

Definition at line 756 of file nmea2000_message_definitions.hpp.

◆ longitude

std::int64_t isobus::NMEA2000Messages::GNSSPositionData::longitude = 0
private

The current longitude in 1x10E-16 degrees. Range is -90 to 90 degrees. Negative values are west longitudes.

Definition at line 757 of file nmea2000_message_definitions.hpp.

◆ messageTimestamp_ms

std::uint32_t isobus::NMEA2000Messages::GNSSPositionData::messageTimestamp_ms = 0
private

A timestamp in milliseconds when this message was last sent or received.

Definition at line 758 of file nmea2000_message_definitions.hpp.

◆ method

GNSSMethod isobus::NMEA2000Messages::GNSSPositionData::method = GNSSMethod::NoGNSS
private

Stores the method used to provide the GNSS fix.

Definition at line 767 of file nmea2000_message_definitions.hpp.

◆ MINIMUM_LENGTH_BYTES

constexpr std::uint8_t isobus::NMEA2000Messages::GNSSPositionData::MINIMUM_LENGTH_BYTES = 43
staticconstexprprivate

The minimum size of this message in bytes.

Definition at line 751 of file nmea2000_message_definitions.hpp.

◆ numberOfSpaceVehicles

std::uint8_t isobus::NMEA2000Messages::GNSSPositionData::numberOfSpaceVehicles = 0
private

Number of GPS satellites in view.

Definition at line 764 of file nmea2000_message_definitions.hpp.

◆ positionalDilutionOfPrecision

std::int16_t isobus::NMEA2000Messages::GNSSPositionData::positionalDilutionOfPrecision = 0
private

Indicates the contribution of satellite configuration geometry to positioning error. Lower is better.

Definition at line 763 of file nmea2000_message_definitions.hpp.

◆ positionDate

std::uint16_t isobus::NMEA2000Messages::GNSSPositionData::positionDate = 0
private

Number of days relative to UTC since Jan 1 1970 (so 0 is equal to Jan 1, 1970). Max value is 65532 days.

Definition at line 761 of file nmea2000_message_definitions.hpp.

◆ positionTime

std::uint32_t isobus::NMEA2000Messages::GNSSPositionData::positionTime = 0
private

The number of seconds since midnight on the current day. Allows for up to 2 leap seconds per day. Max value is 86401 seconds.

Definition at line 759 of file nmea2000_message_definitions.hpp.

◆ referenceStations

std::vector<ReferenceStationData> isobus::NMEA2000Messages::GNSSPositionData::referenceStations
private

Stores data about the reference stations used to generate this position solution.

Definition at line 754 of file nmea2000_message_definitions.hpp.

◆ senderControlFunction

std::shared_ptr<ControlFunction> isobus::NMEA2000Messages::GNSSPositionData::senderControlFunction
private

The sender of the message data.

Definition at line 753 of file nmea2000_message_definitions.hpp.

◆ sequenceID

std::uint8_t isobus::NMEA2000Messages::GNSSPositionData::sequenceID = 0
private

The sequence identifier field is used to tie related PGNs together. Somewhat arbitrary.

Definition at line 765 of file nmea2000_message_definitions.hpp.

◆ systemType

TypeOfSystem isobus::NMEA2000Messages::GNSSPositionData::systemType = TypeOfSystem::Null
private

The type of GNSS system used when generating this message.

Definition at line 766 of file nmea2000_message_definitions.hpp.


The documentation for this class was generated from the following files: