GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
Rtcm Class Reference

This class implements the generation and reading of some Message Types defined in the RTCM 3.2 Standard, plus some utilities to handle messages. More...

#include <rtcm.h>

Public Member Functions

 Rtcm (uint16_t port=2101)
 Default constructor that sets TCP port of the RTCM message server and RTCM Station ID. 2101 is the standard RTCM port according to the Internet Assigned Numbers Authority (IANA). See https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml.
std::string print_MT1001 (const Gps_Ephemeris &gps_eph, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint16_t station_id)
 Prints message type 1001 (L1-Only GPS RTK Observables).
std::string print_MT1002 (const Gps_Ephemeris &gps_eph, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint16_t station_id)
 Prints message type 1002 (Extended L1-Only GPS RTK Observables).
std::string print_MT1003 (const Gps_Ephemeris &ephL1, const Gps_CNAV_Ephemeris &ephL2, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint16_t station_id)
 Prints message type 1003 (L1 & L2 GPS RTK Observables).
std::string print_MT1004 (const Gps_Ephemeris &ephL1, const Gps_CNAV_Ephemeris &ephL2, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint16_t station_id)
 Prints message type 1004 (Extended L1 & L2 GPS RTK Observables).
std::string print_MT1005 (uint32_t ref_id, double ecef_x, double ecef_y, double ecef_z, bool gps, bool glonass, bool galileo, bool non_physical, bool single_oscillator, uint32_t quarter_cycle_indicator)
 Prints message type 1005 (Stationary Antenna Reference Point).
int32_t read_MT1005 (const std::string &message, uint32_t &ref_id, double &ecef_x, double &ecef_y, double &ecef_z, bool &gps, bool &glonass, bool &galileo)
 Verifies and reads messages of type 1005 (Stationary Antenna Reference Point). Returns 1 if anything goes wrong, 0 otherwise.
std::string print_MT1006 (uint32_t ref_id, double ecef_x, double ecef_y, double ecef_z, bool gps, bool glonass, bool galileo, bool non_physical, bool single_oscillator, uint32_t quarter_cycle_indicator, double height)
 Prints message type 1006 (Stationary Antenna Reference Point, with Height Information).
std::string print_MT1005_test ()
 For testing purposes.
std::string print_MT1008 (uint32_t ref_id, const std::string &antenna_descriptor, uint32_t antenna_setup_id, const std::string &antenna_serial_number)
 Prints message type 1008 (Antenna Descriptor & Serial Number).
std::string print_MT1009 (const Glonass_Gnav_Ephemeris &glonass_gnav_eph, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint16_t station_id)
 Prints L1-Only GLONASS RTK Observables.
std::string print_MT1010 (const Glonass_Gnav_Ephemeris &glonass_gnav_eph, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint16_t station_id)
 Prints Extended L1-Only GLONASS RTK Observables.
std::string print_MT1011 (const Glonass_Gnav_Ephemeris &glonass_gnav_ephL1, const Glonass_Gnav_Ephemeris &glonass_gnav_ephL2, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint16_t station_id)
 Prints L1&L2 GLONASS RTK Observables.
std::string print_MT1012 (const Glonass_Gnav_Ephemeris &glonass_gnav_ephL1, const Glonass_Gnav_Ephemeris &glonass_gnav_ephL2, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint16_t station_id)
 Prints Extended L1&L2 GLONASS RTK Observables.
std::string print_MT1019 (const Gps_Ephemeris &gps_eph)
 Prints message type 1019 (GPS Ephemeris), should be broadcast in the event that the IODC does not match the IODE, and every 2 minutes.
int32_t read_MT1019 (const std::string &message, Gps_Ephemeris &gps_eph) const
 Verifies and reads messages of type 1019 (GPS Ephemeris). Returns 1 if anything goes wrong, 0 otherwise.
std::string print_MT1020 (const Glonass_Gnav_Ephemeris &glonass_gnav_eph, const Glonass_Gnav_Utc_Model &glonass_gnav_utc_model)
 Prints message type 1020 (GLONASS Ephemeris).
int32_t read_MT1020 (const std::string &message, Glonass_Gnav_Ephemeris &glonass_gnav_eph, Glonass_Gnav_Utc_Model &glonass_gnav_utc_model) const
 Verifies and reads messages of type 1020 (GLONASS Ephemeris).
std::string print_MT1029 (uint32_t ref_id, const Gps_Ephemeris &gps_eph, double obs_time, const std::string &message)
 Prints message type 1029 (Unicode Text String).
std::string print_MT1045 (const Galileo_Ephemeris &gal_eph)
 Prints message type 1045 (Galileo Ephemeris), should be broadcast every 2 minutes.
int32_t read_MT1045 (const std::string &message, Galileo_Ephemeris &gal_eph) const
 Verifies and reads messages of type 1045 (Galileo Ephemeris). Returns 1 if anything goes wrong, 0 otherwise.
std::string print_MSM_1 (const Gps_Ephemeris &gps_eph, const Gps_CNAV_Ephemeris &gps_cnav_eph, const Galileo_Ephemeris &gal_eph, const Glonass_Gnav_Ephemeris &glo_gnav_eph, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint32_t ref_id, uint32_t clock_steering_indicator, uint32_t external_clock_indicator, int32_t smooth_int, bool divergence_free, bool more_messages)
 Prints messages of type MSM1 (Compact GNSS observables).
std::string print_MSM_2 (const Gps_Ephemeris &gps_eph, const Gps_CNAV_Ephemeris &gps_cnav_eph, const Galileo_Ephemeris &gal_eph, const Glonass_Gnav_Ephemeris &glo_gnav_eph, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint32_t ref_id, uint32_t clock_steering_indicator, uint32_t external_clock_indicator, int32_t smooth_int, bool divergence_free, bool more_messages)
 Prints messages of type MSM2 (Compact GNSS phaseranges).
std::string print_MSM_3 (const Gps_Ephemeris &gps_eph, const Gps_CNAV_Ephemeris &gps_cnav_eph, const Galileo_Ephemeris &gal_eph, const Glonass_Gnav_Ephemeris &glo_gnav_eph, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint32_t ref_id, uint32_t clock_steering_indicator, uint32_t external_clock_indicator, int32_t smooth_int, bool divergence_free, bool more_messages)
 Prints messages of type MSM3 (Compact GNSS pseudoranges and phaseranges).
std::string print_MSM_4 (const Gps_Ephemeris &gps_eph, const Gps_CNAV_Ephemeris &gps_cnav_eph, const Galileo_Ephemeris &gal_eph, const Glonass_Gnav_Ephemeris &glo_gnav_eph, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint32_t ref_id, uint32_t clock_steering_indicator, uint32_t external_clock_indicator, int32_t smooth_int, bool divergence_free, bool more_messages)
 Prints messages of type MSM4 (Full GNSS pseudoranges and phaseranges plus CNR).
std::string print_MSM_5 (const Gps_Ephemeris &gps_eph, const Gps_CNAV_Ephemeris &gps_cnav_eph, const Galileo_Ephemeris &gal_eph, const Glonass_Gnav_Ephemeris &glo_gnav_eph, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint32_t ref_id, uint32_t clock_steering_indicator, uint32_t external_clock_indicator, int32_t smooth_int, bool divergence_free, bool more_messages)
 Prints messages of type MSM5 (Full GNSS pseudoranges, phaseranges, phaserange rate and CNR).
std::string print_MSM_6 (const Gps_Ephemeris &gps_eph, const Gps_CNAV_Ephemeris &gps_cnav_eph, const Galileo_Ephemeris &gal_eph, const Glonass_Gnav_Ephemeris &glo_gnav_eph, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint32_t ref_id, uint32_t clock_steering_indicator, uint32_t external_clock_indicator, int32_t smooth_int, bool divergence_free, bool more_messages)
 Prints messages of type MSM6 (Full GNSS pseudoranges and phaseranges plus CNR, high resolution).
std::string print_MSM_7 (const Gps_Ephemeris &gps_eph, const Gps_CNAV_Ephemeris &gps_cnav_eph, const Galileo_Ephemeris &gal_eph, const Glonass_Gnav_Ephemeris &glo_gnav_eph, double obs_time, const std::map< int32_t, Gnss_Synchro > &observables, uint32_t ref_id, uint32_t clock_steering_indicator, uint32_t external_clock_indicator, int32_t smooth_int, bool divergence_free, bool more_messages)
 Prints messages of type MSM7 (Full GNSS pseudoranges, phaseranges, phaserange rate and CNR, high resolution).
std::vector< std::string > print_IGM01 (const Galileo_HAS_data &has_data)
 Prints messages of type IGM01 (SSR Orbit Correction).
std::vector< std::string > print_IGM02 (const Galileo_HAS_data &has_data)
 Prints messages of type IGM02 (SSR Clock Correction).
std::vector< std::string > print_IGM03 (const Galileo_HAS_data &has_data)
 Prints messages of type IGM03 (SSR Combined Orbit and Clock Correction).
std::vector< std::string > print_IGM05 (const Galileo_HAS_data &has_data)
 Prints messages of type IGM05 (SSR Bias Correction).
uint32_t lock_time (const Gps_Ephemeris &eph, double obs_time, const Gnss_Synchro &gnss_synchro)
 Returns the time period in which GPS L1 signals have been continually tracked.
uint32_t lock_time (const Gps_CNAV_Ephemeris &eph, double obs_time, const Gnss_Synchro &gnss_synchro)
 Returns the time period in which GPS L2 signals have been continually tracked.
uint32_t lock_time (const Galileo_Ephemeris &eph, double obs_time, const Gnss_Synchro &gnss_synchro)
 Returns the time period in which Galileo signals have been continually tracked.
uint32_t lock_time (const Glonass_Gnav_Ephemeris &eph, double obs_time, const Gnss_Synchro &gnss_synchro)
 Locks time period in which GLONASS signals have been continually tracked.
std::string bin_to_hex (const std::string &s) const
 Returns a string of hexadecimal symbols from a string of binary symbols.
std::string hex_to_bin (const std::string &s) const
 Returns a string of binary symbols from a string of hexadecimal symbols.
std::string bin_to_binary_data (const std::string &s) const
 Returns a string of binary data from a string of binary symbols.
std::string binary_data_to_bin (const std::string &s) const
 Returns a string of binary symbols from a string of binary data.
uint32_t bin_to_uint (const std::string &s) const
 Returns an uint32_t from a string of binary symbols.
int32_t bin_to_int (const std::string &s) const
double bin_to_double (const std::string &s) const
 Returns double from a string of binary symbols.
int32_t bin_to_sint (const std::string &s) const
uint64_t hex_to_uint (const std::string &s) const
 Returns an uint64_t from a string of hexadecimal symbols.
int64_t hex_to_int (const std::string &s) const
 Returns a int64_t from a string of hexadecimal symbols.
bool check_CRC (const std::string &message) const
 Checks that the CRC of a RTCM package is correct.
void run_server ()
 Starts running the server.
void stop_server ()
 Stops the server.
void send_message (const std::string &msg)
 Sends a message through the server to all connected clients.
bool is_server_running () const
 Returns true if the server is running, false otherwise.

Detailed Description

This class implements the generation and reading of some Message Types defined in the RTCM 3.2 Standard, plus some utilities to handle messages.

Generation of the following Message Types: 1001, 1002, 1003, 1004, 1005, 1006, 1008, 1019, 1020, 1029, 1045

Decoding of the following Message Types: 1019, 1045

Generation of the following Multiple Signal Messages: MSM1 (message types 1071, 1091) MSM2 (message types 1072, 1092) MSM3 (message types 1073, 1093) MSM4 (message types 1074, 1094) MSM5 (message types 1075, 1095) MSM6 (message types 1076, 1096) MSM7 (message types 1077, 1097)

RTCM 3 message format (size in bits): +-------—+-----—+--------—+-----------------—+-------—+ | preamble | 000000 | length | data message | parity | +-------—+-----—+--------—+-----------------—+-------—+ |<– 8 --->|<- 6 -->|<– 10 --->|<— length x 8 --->|<– 24 -->| +-------—+-----—+--------—+-----------------—+-------—+

(C) Carles Fernandez-Prades, 2015. cfernandez(at)cttc.es

Definition at line 97 of file rtcm.h.

Constructor & Destructor Documentation

◆ Rtcm()

Rtcm::Rtcm ( uint16_t port = 2101)
explicit

Default constructor that sets TCP port of the RTCM message server and RTCM Station ID. 2101 is the standard RTCM port according to the Internet Assigned Numbers Authority (IANA). See https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml.

References Rtcm().

Referenced by Rtcm().

Member Function Documentation

◆ bin_to_binary_data()

std::string Rtcm::bin_to_binary_data ( const std::string & s) const

Returns a string of binary data from a string of binary symbols.

◆ bin_to_double()

double Rtcm::bin_to_double ( const std::string & s) const

Returns double from a string of binary symbols.

◆ bin_to_hex()

std::string Rtcm::bin_to_hex ( const std::string & s) const

Returns a string of hexadecimal symbols from a string of binary symbols.

◆ bin_to_uint()

uint32_t Rtcm::bin_to_uint ( const std::string & s) const

Returns an uint32_t from a string of binary symbols.

◆ binary_data_to_bin()

std::string Rtcm::binary_data_to_bin ( const std::string & s) const

Returns a string of binary symbols from a string of binary data.

◆ check_CRC()

bool Rtcm::check_CRC ( const std::string & message) const

Checks that the CRC of a RTCM package is correct.

◆ hex_to_bin()

std::string Rtcm::hex_to_bin ( const std::string & s) const

Returns a string of binary symbols from a string of hexadecimal symbols.

◆ hex_to_int()

int64_t Rtcm::hex_to_int ( const std::string & s) const

Returns a int64_t from a string of hexadecimal symbols.

◆ hex_to_uint()

uint64_t Rtcm::hex_to_uint ( const std::string & s) const

Returns an uint64_t from a string of hexadecimal symbols.

◆ is_server_running()

bool Rtcm::is_server_running ( ) const

Returns true if the server is running, false otherwise.

◆ lock_time() [1/4]

uint32_t Rtcm::lock_time ( const Galileo_Ephemeris & eph,
double obs_time,
const Gnss_Synchro & gnss_synchro )

Returns the time period in which Galileo signals have been continually tracked.

◆ lock_time() [2/4]

uint32_t Rtcm::lock_time ( const Glonass_Gnav_Ephemeris & eph,
double obs_time,
const Gnss_Synchro & gnss_synchro )

Locks time period in which GLONASS signals have been continually tracked.

Note
Code added as part of GSoC 2017 program
Parameters
ephGLONASS GNAV Broadcast Ephemeris
obs_timeTime of observation at the moment of printing
observablesSet of observables as defined by the platform
Returns
Returns the time period in which GLONASS signals have been continually tracked.

◆ lock_time() [3/4]

uint32_t Rtcm::lock_time ( const Gps_CNAV_Ephemeris & eph,
double obs_time,
const Gnss_Synchro & gnss_synchro )

Returns the time period in which GPS L2 signals have been continually tracked.

◆ lock_time() [4/4]

uint32_t Rtcm::lock_time ( const Gps_Ephemeris & eph,
double obs_time,
const Gnss_Synchro & gnss_synchro )

Returns the time period in which GPS L1 signals have been continually tracked.

◆ print_IGM01()

std::vector< std::string > Rtcm::print_IGM01 ( const Galileo_HAS_data & has_data)

Prints messages of type IGM01 (SSR Orbit Correction).

◆ print_IGM02()

std::vector< std::string > Rtcm::print_IGM02 ( const Galileo_HAS_data & has_data)

Prints messages of type IGM02 (SSR Clock Correction).

◆ print_IGM03()

std::vector< std::string > Rtcm::print_IGM03 ( const Galileo_HAS_data & has_data)

Prints messages of type IGM03 (SSR Combined Orbit and Clock Correction).

◆ print_IGM05()

std::vector< std::string > Rtcm::print_IGM05 ( const Galileo_HAS_data & has_data)

Prints messages of type IGM05 (SSR Bias Correction).

◆ print_MSM_1()

std::string Rtcm::print_MSM_1 ( const Gps_Ephemeris & gps_eph,
const Gps_CNAV_Ephemeris & gps_cnav_eph,
const Galileo_Ephemeris & gal_eph,
const Glonass_Gnav_Ephemeris & glo_gnav_eph,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint32_t ref_id,
uint32_t clock_steering_indicator,
uint32_t external_clock_indicator,
int32_t smooth_int,
bool divergence_free,
bool more_messages )

Prints messages of type MSM1 (Compact GNSS observables).

◆ print_MSM_2()

std::string Rtcm::print_MSM_2 ( const Gps_Ephemeris & gps_eph,
const Gps_CNAV_Ephemeris & gps_cnav_eph,
const Galileo_Ephemeris & gal_eph,
const Glonass_Gnav_Ephemeris & glo_gnav_eph,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint32_t ref_id,
uint32_t clock_steering_indicator,
uint32_t external_clock_indicator,
int32_t smooth_int,
bool divergence_free,
bool more_messages )

Prints messages of type MSM2 (Compact GNSS phaseranges).

◆ print_MSM_3()

std::string Rtcm::print_MSM_3 ( const Gps_Ephemeris & gps_eph,
const Gps_CNAV_Ephemeris & gps_cnav_eph,
const Galileo_Ephemeris & gal_eph,
const Glonass_Gnav_Ephemeris & glo_gnav_eph,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint32_t ref_id,
uint32_t clock_steering_indicator,
uint32_t external_clock_indicator,
int32_t smooth_int,
bool divergence_free,
bool more_messages )

Prints messages of type MSM3 (Compact GNSS pseudoranges and phaseranges).

◆ print_MSM_4()

std::string Rtcm::print_MSM_4 ( const Gps_Ephemeris & gps_eph,
const Gps_CNAV_Ephemeris & gps_cnav_eph,
const Galileo_Ephemeris & gal_eph,
const Glonass_Gnav_Ephemeris & glo_gnav_eph,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint32_t ref_id,
uint32_t clock_steering_indicator,
uint32_t external_clock_indicator,
int32_t smooth_int,
bool divergence_free,
bool more_messages )

Prints messages of type MSM4 (Full GNSS pseudoranges and phaseranges plus CNR).

◆ print_MSM_5()

std::string Rtcm::print_MSM_5 ( const Gps_Ephemeris & gps_eph,
const Gps_CNAV_Ephemeris & gps_cnav_eph,
const Galileo_Ephemeris & gal_eph,
const Glonass_Gnav_Ephemeris & glo_gnav_eph,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint32_t ref_id,
uint32_t clock_steering_indicator,
uint32_t external_clock_indicator,
int32_t smooth_int,
bool divergence_free,
bool more_messages )

Prints messages of type MSM5 (Full GNSS pseudoranges, phaseranges, phaserange rate and CNR).

◆ print_MSM_6()

std::string Rtcm::print_MSM_6 ( const Gps_Ephemeris & gps_eph,
const Gps_CNAV_Ephemeris & gps_cnav_eph,
const Galileo_Ephemeris & gal_eph,
const Glonass_Gnav_Ephemeris & glo_gnav_eph,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint32_t ref_id,
uint32_t clock_steering_indicator,
uint32_t external_clock_indicator,
int32_t smooth_int,
bool divergence_free,
bool more_messages )

Prints messages of type MSM6 (Full GNSS pseudoranges and phaseranges plus CNR, high resolution).

◆ print_MSM_7()

std::string Rtcm::print_MSM_7 ( const Gps_Ephemeris & gps_eph,
const Gps_CNAV_Ephemeris & gps_cnav_eph,
const Galileo_Ephemeris & gal_eph,
const Glonass_Gnav_Ephemeris & glo_gnav_eph,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint32_t ref_id,
uint32_t clock_steering_indicator,
uint32_t external_clock_indicator,
int32_t smooth_int,
bool divergence_free,
bool more_messages )

Prints messages of type MSM7 (Full GNSS pseudoranges, phaseranges, phaserange rate and CNR, high resolution).

◆ print_MT1001()

std::string Rtcm::print_MT1001 ( const Gps_Ephemeris & gps_eph,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint16_t station_id )

Prints message type 1001 (L1-Only GPS RTK Observables).

◆ print_MT1002()

std::string Rtcm::print_MT1002 ( const Gps_Ephemeris & gps_eph,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint16_t station_id )

Prints message type 1002 (Extended L1-Only GPS RTK Observables).

◆ print_MT1003()

std::string Rtcm::print_MT1003 ( const Gps_Ephemeris & ephL1,
const Gps_CNAV_Ephemeris & ephL2,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint16_t station_id )

Prints message type 1003 (L1 & L2 GPS RTK Observables).

◆ print_MT1004()

std::string Rtcm::print_MT1004 ( const Gps_Ephemeris & ephL1,
const Gps_CNAV_Ephemeris & ephL2,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint16_t station_id )

Prints message type 1004 (Extended L1 & L2 GPS RTK Observables).

◆ print_MT1005()

std::string Rtcm::print_MT1005 ( uint32_t ref_id,
double ecef_x,
double ecef_y,
double ecef_z,
bool gps,
bool glonass,
bool galileo,
bool non_physical,
bool single_oscillator,
uint32_t quarter_cycle_indicator )

Prints message type 1005 (Stationary Antenna Reference Point).

◆ print_MT1005_test()

std::string Rtcm::print_MT1005_test ( )

For testing purposes.

◆ print_MT1006()

std::string Rtcm::print_MT1006 ( uint32_t ref_id,
double ecef_x,
double ecef_y,
double ecef_z,
bool gps,
bool glonass,
bool galileo,
bool non_physical,
bool single_oscillator,
uint32_t quarter_cycle_indicator,
double height )

Prints message type 1006 (Stationary Antenna Reference Point, with Height Information).

◆ print_MT1008()

std::string Rtcm::print_MT1008 ( uint32_t ref_id,
const std::string & antenna_descriptor,
uint32_t antenna_setup_id,
const std::string & antenna_serial_number )

Prints message type 1008 (Antenna Descriptor & Serial Number).

◆ print_MT1009()

std::string Rtcm::print_MT1009 ( const Glonass_Gnav_Ephemeris & glonass_gnav_eph,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint16_t station_id )

Prints L1-Only GLONASS RTK Observables.

This GLONASS message type is not generally used or supported; type 1012 is to be preferred.

Note
Code added as part of GSoC 2017 program
Parameters
glonass_gnav_ephGLONASS GNAV Broadcast Ephemeris
obs_timeTime of observation at the moment of printing
observablesSet of observables as defined by the platform
Returns
string with message contents

◆ print_MT1010()

std::string Rtcm::print_MT1010 ( const Glonass_Gnav_Ephemeris & glonass_gnav_eph,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint16_t station_id )

Prints Extended L1-Only GLONASS RTK Observables.

This GLONASS message type is used when only L1 data is present and bandwidth is very tight, often 1012 is used in such cases.

Note
Code added as part of GSoC 2017 program
Parameters
glonass_gnav_ephGLONASS GNAV Broadcast Ephemeris
obs_timeTime of observation at the moment of printing
observablesSet of observables as defined by the platform
Returns
string with message contents

◆ print_MT1011()

std::string Rtcm::print_MT1011 ( const Glonass_Gnav_Ephemeris & glonass_gnav_ephL1,
const Glonass_Gnav_Ephemeris & glonass_gnav_ephL2,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint16_t station_id )

Prints L1&L2 GLONASS RTK Observables.

This GLONASS message type is not generally used or supported; type 1012 is to be preferred

Note
Code added as part of GSoC 2017 program
Parameters
glonass_gnav_ephGLONASS GNAV Broadcast Ephemeris
obs_timeTime of observation at the moment of printing
observablesSet of observables as defined by the platform
Returns
string with message contents

◆ print_MT1012()

std::string Rtcm::print_MT1012 ( const Glonass_Gnav_Ephemeris & glonass_gnav_ephL1,
const Glonass_Gnav_Ephemeris & glonass_gnav_ephL2,
double obs_time,
const std::map< int32_t, Gnss_Synchro > & observables,
uint16_t station_id )

Prints Extended L1&L2 GLONASS RTK Observables.

This GLONASS message type is the most common observational message type, with L1/L2/SNR content. This is one of the most common messages found.

Note
Code added as part of GSoC 2017 program
Parameters
glonass_gnav_ephGLONASS GNAV Broadcast Ephemeris
obs_timeTime of observation at the moment of printing
observablesSet of observables as defined by the platform
Returns
string with message contents

◆ print_MT1019()

std::string Rtcm::print_MT1019 ( const Gps_Ephemeris & gps_eph)

Prints message type 1019 (GPS Ephemeris), should be broadcast in the event that the IODC does not match the IODE, and every 2 minutes.

◆ print_MT1020()

std::string Rtcm::print_MT1020 ( const Glonass_Gnav_Ephemeris & glonass_gnav_eph,
const Glonass_Gnav_Utc_Model & glonass_gnav_utc_model )

Prints message type 1020 (GLONASS Ephemeris).

Note
Code added as part of GSoC 2017 program
Parameters
glonass_gnav_ephGLONASS GNAV Broadcast Ephemeris
glonass_gnav_utc_modelGLONASS GNAV Clock Information
Returns
Returns message type as a string type

◆ print_MT1029()

std::string Rtcm::print_MT1029 ( uint32_t ref_id,
const Gps_Ephemeris & gps_eph,
double obs_time,
const std::string & message )

Prints message type 1029 (Unicode Text String).

◆ print_MT1045()

std::string Rtcm::print_MT1045 ( const Galileo_Ephemeris & gal_eph)

Prints message type 1045 (Galileo Ephemeris), should be broadcast every 2 minutes.

◆ read_MT1005()

int32_t Rtcm::read_MT1005 ( const std::string & message,
uint32_t & ref_id,
double & ecef_x,
double & ecef_y,
double & ecef_z,
bool & gps,
bool & glonass,
bool & galileo )

Verifies and reads messages of type 1005 (Stationary Antenna Reference Point). Returns 1 if anything goes wrong, 0 otherwise.

◆ read_MT1019()

int32_t Rtcm::read_MT1019 ( const std::string & message,
Gps_Ephemeris & gps_eph ) const

Verifies and reads messages of type 1019 (GPS Ephemeris). Returns 1 if anything goes wrong, 0 otherwise.

◆ read_MT1020()

int32_t Rtcm::read_MT1020 ( const std::string & message,
Glonass_Gnav_Ephemeris & glonass_gnav_eph,
Glonass_Gnav_Utc_Model & glonass_gnav_utc_model ) const

Verifies and reads messages of type 1020 (GLONASS Ephemeris).

Note
Code added as part of GSoC 2017 program
Parameters
messageMessage to read as a string type
glonass_gnav_ephGLONASS GNAV Broadcast Ephemeris
glonass_gnav_utc_modelGLONASS GNAV Clock Information
Returns
Returns 1 if anything goes wrong, 0 otherwise.

◆ read_MT1045()

int32_t Rtcm::read_MT1045 ( const std::string & message,
Galileo_Ephemeris & gal_eph ) const

Verifies and reads messages of type 1045 (Galileo Ephemeris). Returns 1 if anything goes wrong, 0 otherwise.

◆ run_server()

void Rtcm::run_server ( )

Starts running the server.

◆ send_message()

void Rtcm::send_message ( const std::string & msg)

Sends a message through the server to all connected clients.

◆ stop_server()

void Rtcm::stop_server ( )

Stops the server.


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