2017-04-20 14:10:12 +00:00
|
|
|
/*!
|
|
|
|
* \file rtklib_conversions.h
|
|
|
|
* \brief GNSS-SDR to RTKLIB data structures conversion functions
|
2017-04-24 22:48:13 +00:00
|
|
|
* \author 2017, Javier Arribas
|
2017-04-20 14:10:12 +00:00
|
|
|
*
|
2020-07-28 14:57:15 +00:00
|
|
|
* -----------------------------------------------------------------------------
|
2017-04-20 14:10:12 +00:00
|
|
|
*
|
2020-12-30 12:35:06 +00:00
|
|
|
* GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
|
2017-04-24 22:48:13 +00:00
|
|
|
* This file is part of GNSS-SDR.
|
2017-04-20 14:10:12 +00:00
|
|
|
*
|
2020-12-30 12:35:06 +00:00
|
|
|
* Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
|
2020-02-08 00:20:02 +00:00
|
|
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
2017-04-23 19:10:32 +00:00
|
|
|
*
|
2020-07-28 14:57:15 +00:00
|
|
|
* -----------------------------------------------------------------------------
|
2017-04-24 22:48:13 +00:00
|
|
|
*/
|
2017-04-21 09:34:23 +00:00
|
|
|
|
2020-02-08 09:10:46 +00:00
|
|
|
#ifndef GNSS_SDR_RTKLIB_CONVERSIONS_H
|
|
|
|
#define GNSS_SDR_RTKLIB_CONVERSIONS_H
|
2017-04-20 14:10:12 +00:00
|
|
|
|
2018-12-09 21:00:09 +00:00
|
|
|
#include "rtklib.h"
|
2023-02-28 12:08:53 +00:00
|
|
|
#include <cstdint>
|
|
|
|
#include <map>
|
|
|
|
#include <string>
|
2017-04-20 14:10:12 +00:00
|
|
|
|
2020-11-01 12:37:19 +00:00
|
|
|
/** \addtogroup PVT
|
|
|
|
* \{ */
|
|
|
|
/** \addtogroup RTKLIB_Library
|
|
|
|
* \{ */
|
|
|
|
|
|
|
|
|
2019-03-05 07:59:04 +00:00
|
|
|
class Beidou_Dnav_Ephemeris;
|
|
|
|
class Galileo_Almanac;
|
|
|
|
class Galileo_Ephemeris;
|
|
|
|
class Glonass_Gnav_Ephemeris;
|
|
|
|
class Glonass_Gnav_Utc_Model;
|
|
|
|
class Gnss_Synchro;
|
|
|
|
class Gps_Almanac;
|
|
|
|
class Gps_CNAV_Ephemeris;
|
|
|
|
class Gps_Ephemeris;
|
|
|
|
|
2023-02-28 12:08:53 +00:00
|
|
|
class HAS_clock_corrections
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
HAS_clock_corrections() = default;
|
|
|
|
float clock_correction_m{};
|
|
|
|
uint32_t valid_until{};
|
|
|
|
};
|
|
|
|
|
|
|
|
class HAS_orbit_corrections
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
HAS_orbit_corrections() = default;
|
|
|
|
float radial_m{};
|
|
|
|
float in_track_m{};
|
|
|
|
float cross_track_m{};
|
|
|
|
uint32_t valid_until{};
|
|
|
|
uint16_t iod{};
|
|
|
|
};
|
|
|
|
|
|
|
|
class HAS_obs_corrections
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
HAS_obs_corrections() = default;
|
|
|
|
float code_bias_m{};
|
|
|
|
float phase_bias_cycle{};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2019-09-18 16:25:07 +00:00
|
|
|
eph_t eph_to_rtklib(const Galileo_Ephemeris& gal_eph);
|
2023-02-28 12:08:53 +00:00
|
|
|
|
|
|
|
eph_t eph_to_rtklib(const Galileo_Ephemeris& gal_eph,
|
|
|
|
const std::map<int, HAS_orbit_corrections>& orbit_correction_map,
|
|
|
|
const std::map<int, HAS_clock_corrections>& clock_correction_map);
|
|
|
|
|
|
|
|
eph_t eph_to_rtklib(const Gps_Ephemeris& gps_eph,
|
|
|
|
bool pre_2009_file = false);
|
|
|
|
|
|
|
|
eph_t eph_to_rtklib(const Gps_Ephemeris& gps_eph,
|
|
|
|
const std::map<int, HAS_orbit_corrections>& orbit_correction_map,
|
|
|
|
const std::map<int, HAS_clock_corrections>& clock_correction_map,
|
|
|
|
bool pre_2009_file = false);
|
|
|
|
|
2019-09-18 16:25:07 +00:00
|
|
|
eph_t eph_to_rtklib(const Gps_CNAV_Ephemeris& gps_cnav_eph);
|
2018-10-22 20:12:50 +00:00
|
|
|
eph_t eph_to_rtklib(const Beidou_Dnav_Ephemeris& bei_eph);
|
2018-08-12 21:58:16 +00:00
|
|
|
|
2018-11-05 16:53:53 +00:00
|
|
|
alm_t alm_to_rtklib(const Gps_Almanac& gps_alm);
|
|
|
|
alm_t alm_to_rtklib(const Galileo_Almanac& gal_alm);
|
|
|
|
|
2017-07-19 14:45:54 +00:00
|
|
|
/*!
|
|
|
|
* \brief Transforms a Glonass_Gnav_Ephemeris to its RTKLIB counterpart
|
|
|
|
* \param glonass_gnav_eph GLONASS GNAV Ephemeris structure
|
|
|
|
* \return Ephemeris structure for RTKLIB parsing
|
|
|
|
*/
|
2018-03-03 01:03:39 +00:00
|
|
|
geph_t eph_to_rtklib(const Glonass_Gnav_Ephemeris& glonass_gnav_eph, const Glonass_Gnav_Utc_Model& gnav_clock_model);
|
2017-04-20 14:10:12 +00:00
|
|
|
|
2023-02-28 12:08:53 +00:00
|
|
|
obsd_t insert_obs_to_rtklib(obsd_t& rtklib_obs,
|
|
|
|
const Gnss_Synchro& gnss_synchro,
|
|
|
|
const std::map<std::string, std::map<int, HAS_obs_corrections>>& has_obs_corr,
|
|
|
|
int week,
|
|
|
|
int band,
|
|
|
|
bool pre_2009_file = false);
|
|
|
|
|
2019-09-18 16:25:07 +00:00
|
|
|
obsd_t insert_obs_to_rtklib(obsd_t& rtklib_obs, const Gnss_Synchro& gnss_synchro, int week, int band, bool pre_2009_file = false);
|
2017-04-20 14:10:12 +00:00
|
|
|
|
2020-11-01 12:37:19 +00:00
|
|
|
|
|
|
|
/** \} */
|
|
|
|
/** \} */
|
2020-02-08 09:10:46 +00:00
|
|
|
#endif // GNSS_SDR_RTKLIB_CONVERSIONS_H
|