[hamradio-commits] [gnss-sdr] 117/251: Merge branch 'next' of git+ssh://github.com/gnss-sdr/gnss-sdr into next
Carles Fernandez
carles_fernandez-guest at moszumanska.debian.org
Wed Sep 2 00:22:41 UTC 2015
This is an automated email from the git hooks/post-receive script.
carles_fernandez-guest pushed a commit to branch master
in repository gnss-sdr.
commit fb45d31eed11b96f914a23f4d4a6311a7570e77e
Merge: 644af36 61c7ab8
Author: Carles Fernandez <carles.fernandez at gmail.com>
Date: Fri May 22 18:30:21 2015 +0200
Merge branch 'next' of git+ssh://github.com/gnss-sdr/gnss-sdr into next
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
src/algorithms/channel/libs/channel_fsm.cc | 2 +-
.../gnuradio_blocks/rtl_tcp_signal_source_c.cc | 2 +-
.../gps_l2_m_dll_pll_tracking_cc.cc | 12 +-
.../gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.h | 1 -
src/core/system_parameters/CMakeLists.txt | 1 +
src/core/system_parameters/GPS_L2C.h | 130 +++++++++++++++
src/core/system_parameters/MATH_CONSTANTS.h | 5 +
src/core/system_parameters/gps_cnav_ephemeris.cc | 76 +++++++++
src/core/system_parameters/gps_cnav_ephemeris.h | 174 +++++++++++++++++++++
9 files changed, 394 insertions(+), 9 deletions(-)
diff --cc src/algorithms/channel/libs/channel_fsm.cc
index 7abb010,0000000..6d208b6
mode 100644,000000..100644
--- a/src/algorithms/channel/libs/channel_fsm.cc
+++ b/src/algorithms/channel/libs/channel_fsm.cc
@@@ -1,222 -1,0 +1,222 @@@
+/*!
+ * \file channel_fsm.cc
+ * \brief Implementation of a State Machine for channel using boost::statechart
+ * \author Luis Esteve, 2011. luis(at)epsilon-formacion.com
+ *
+ * -------------------------------------------------------------------------
+ *
+ * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ *
+ * GNSS-SDR is a software defined Global Navigation
+ * Satellite Systems receiver
+ *
+ * This file is part of GNSS-SDR.
+ *
+ * GNSS-SDR is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GNSS-SDR is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNSS-SDR. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * -------------------------------------------------------------------------
+ */
+
+#include "channel_fsm.h"
+#include <list>
+#include <memory>
+#include <glog/logging.h>
+#include "control_message_factory.h"
+#include "channel.h"
+
+
+struct Ev_channel_start_acquisition: sc::event<Ev_channel_start_acquisition>
+{};
+
+struct Ev_channel_valid_acquisition: sc::event<Ev_channel_valid_acquisition>
+{};
+
+struct Ev_channel_failed_acquisition_repeat: sc::event<Ev_channel_failed_acquisition_repeat>
+{};
+
+struct Ev_channel_failed_acquisition_no_repeat: sc::event<Ev_channel_failed_acquisition_no_repeat>
+{};
+
+struct Ev_channel_failed_tracking_standby: sc::event<Ev_channel_failed_tracking_standby>
+{};
+
+//struct Ev_channel_failed_tracking_reacq: sc::event<Ev_channel_failed_tracking_reacq>
+//{};
+
+struct channel_idle_fsm_S0: public sc::state<channel_idle_fsm_S0, ChannelFsm>
+{
+public:
+ // sc::transition(event, next state)
+ typedef sc::transition<Ev_channel_start_acquisition, channel_acquiring_fsm_S1> reactions;
+ channel_idle_fsm_S0(my_context ctx) : my_base(ctx)
+ {
+ //std::cout << "Enter Channel_Idle_S0 " << std::endl;
+ }
+};
+
+
+struct channel_acquiring_fsm_S1: public sc::state<channel_acquiring_fsm_S1, ChannelFsm>
+{
+public:
+ typedef mpl::list<sc::transition<Ev_channel_failed_acquisition_no_repeat, channel_waiting_fsm_S3>,
+ sc::transition<Ev_channel_failed_acquisition_repeat, channel_acquiring_fsm_S1>,
+ sc::transition<Ev_channel_valid_acquisition, channel_tracking_fsm_S2> > reactions;
+
+ channel_acquiring_fsm_S1(my_context ctx) : my_base(ctx)
+ {
+ //std::cout << "Enter Channel_Acq_S1 " << std::endl;
+ context<ChannelFsm> ().start_acquisition();
+ }
+};
+
+
+struct channel_tracking_fsm_S2: public sc::state<channel_tracking_fsm_S2, ChannelFsm>
+{
+public:
+ typedef mpl::list<sc::transition<Ev_channel_failed_tracking_standby, channel_idle_fsm_S0>,
+ sc::transition<Ev_channel_start_acquisition, channel_acquiring_fsm_S1>> reactions;
+
+ channel_tracking_fsm_S2(my_context ctx) : my_base(ctx)
+ {
+ //std::cout << "Enter Channel_tracking_S2 " << std::endl;
+ context<ChannelFsm> ().start_tracking();
+ }
+
+};
+
+
+struct channel_waiting_fsm_S3: public sc::state<channel_waiting_fsm_S3, ChannelFsm>
+{
+public:
+ typedef sc::transition<Ev_channel_start_acquisition,
+ channel_acquiring_fsm_S1> reactions;
+
+ channel_waiting_fsm_S3(my_context ctx) :
+ my_base(ctx)
+ {
+ //std::cout << "Enter Channel_waiting_S3 " << std::endl;
+ context<ChannelFsm> ().request_satellite();
+ }
- ~channel_waiting_fsm_S3(){}
++ // ~channel_waiting_fsm_S3(){}
+};
+
+
+
+ChannelFsm::ChannelFsm()
+{
+ acq_ = nullptr;
+ trk_ = nullptr;
+ channel_ = 0;
+ initiate(); //start the FSM
+}
+
+
+
+ChannelFsm::ChannelFsm(AcquisitionInterface *acquisition) :
+ acq_(acquisition)
+{
+ trk_ = nullptr;
+ channel_ = 0;
+ initiate(); //start the FSM
+}
+
+
+
+void ChannelFsm::Event_start_acquisition()
+{
+ this->process_event(Ev_channel_start_acquisition());
+}
+
+
+void ChannelFsm::Event_valid_acquisition()
+{
+ this->process_event(Ev_channel_valid_acquisition());
+}
+
+
+void ChannelFsm::Event_failed_acquisition_repeat()
+{
+ this->process_event(Ev_channel_failed_acquisition_repeat());
+}
+
+void ChannelFsm::Event_failed_acquisition_no_repeat()
+{
+ this->process_event(Ev_channel_failed_acquisition_no_repeat());
+}
+
+
+// Something is wrong here, we are using a memory after it ts freed
+void ChannelFsm::Event_failed_tracking_standby()
+{
+ this->process_event(Ev_channel_failed_tracking_standby());
+}
+
+//void ChannelFsm::Event_failed_tracking_reacq() {
+// this->process_event(Ev_channel_failed_tracking_reacq());
+//}
+
+void ChannelFsm::set_acquisition(AcquisitionInterface *acquisition)
+{
+ acq_ = acquisition;
+}
+
+void ChannelFsm::set_tracking(TrackingInterface *tracking)
+{
+ trk_ = tracking;
+}
+
+void ChannelFsm::set_queue(boost::shared_ptr<gr::msg_queue> queue)
+{
+ queue_ = queue;
+}
+
+void ChannelFsm::set_channel(unsigned int channel)
+{
+ channel_ = channel;
+}
+
+void ChannelFsm::start_acquisition()
+{
+ acq_->reset();
+}
+
+void ChannelFsm::start_tracking()
+{
+ //LOG_AT_LEVEL(INFO) << "Channel " << channel_
+ //<< " passing prn code phase " << acq_->prn_code_phase();
+ //LOG_AT_LEVEL(INFO) << "Channel " << channel_
+ //<< " passing doppler freq shift " << acq_->doppler_freq_shift();
+ //LOG_AT_LEVEL(INFO) << "Channel " << channel_
+ //<< " passing acquisition sample stamp "
+ //<< acq_->get_sample_stamp();
+ //trk_->set_prn_code_phase(acq_->prn_code_phase());
+ //trk_->set_doppler_freq_shift(acq_->doppler_freq_shift());
+ //trk_->set_acq_sample_stamp(acq_->get_sample_stamp());
+ trk_->start_tracking();
+ std::unique_ptr<ControlMessageFactory> cmf(new ControlMessageFactory());
+ if (queue_ != gr::msg_queue::make())
+ {
+ queue_->handle(cmf->GetQueueMessage(channel_, 1));
+ }
+}
+
+void ChannelFsm::request_satellite()
+{
+ std::unique_ptr<ControlMessageFactory> cmf(new ControlMessageFactory());
+ if (queue_ != gr::msg_queue::make())
+ {
+ queue_->handle(cmf->GetQueueMessage(channel_, 0));
+ }
+}
+
diff --cc src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc
index 381e079,381e079..567b8df
--- a/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc
+++ b/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc
@@@ -300,7 -300,7 +300,7 @@@ rtl_tcp_signal_source_c::handle_read (c
while (!not_full( )) {
// uh-oh, buffer overflow
// wait until there's space for more
-- not_empty_.notify_one ();
++ not_empty_.notify_one (); // needed?
not_full_.wait (lock,
boost::bind (&rtl_tcp_signal_source_c::not_full,
this));
diff --cc src/core/system_parameters/gps_cnav_ephemeris.cc
index 0000000,c791d4f..6b231f0
mode 000000,100644..100644
--- a/src/core/system_parameters/gps_cnav_ephemeris.cc
+++ b/src/core/system_parameters/gps_cnav_ephemeris.cc
@@@ -1,0 -1,115 +1,76 @@@
+ /*!
- * \file Gps_CNAV_Ephemeris.cc
++ * \file gps_cnav_ephemeris.cc
+ * \brief Interface of a GPS CNAV EPHEMERIS storage and orbital model functions
+ *
+ * See http://www.gps.gov/technical/icwg/IS-GPS-200E.pdf Appendix II
+ * \author Javier Arribas, 2015. jarribas(at)cttc.es
+ *
+ * -------------------------------------------------------------------------
+ *
+ * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ *
+ * GNSS-SDR is a software defined Global Navigation
+ * Satellite Systems receiver
+ *
+ * This file is part of GNSS-SDR.
+ *
+ * GNSS-SDR is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GNSS-SDR is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNSS-SDR. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * -------------------------------------------------------------------------
+ */
+
+ #include "gps_cnav_ephemeris.h"
+
+ Gps_CNAV_Ephemeris::Gps_CNAV_Ephemeris()
+ {
+ i_satellite_PRN = 0;
+
+ d_TOW = 0;
+ d_Crs = 0;
+ d_M_0 = 0;
+ d_Cuc = 0;
+ d_e_eccentricity = 0;
+ d_Cus = 0;
+
+ d_Toe = 0;
+ d_Toc = 0;
+ d_Cic = 0;
+ d_OMEGA0 = 0;
+ d_Cis = 0;
+ d_i_0 = 0;
+ d_Crc = 0;
+ d_OMEGA = 0;
+ d_IDOT = 0;
+
+ i_GPS_week = 0;
+
+ d_TGD = 0; // Estimated Group Delay Differential: L1-L2 correction term only for the benefit of "L1 P(Y)" or "L2 P(Y)" s users [s]
+
+ d_A_f0 = 0; // Coefficient 0 of code phase offset model [s]
+ d_A_f1 = 0; // Coefficient 1 of code phase offset model [s/s]
+ d_A_f2 = 0; // Coefficient 2 of code phase offset model [s/s^2]
+
+ b_integrity_status_flag = false;
+ b_alert_flag = false; // If true, indicates that the SV URA may be worse than indicated in d_SV_accuracy, use that SV at our own risk.
+ b_antispoofing_flag = false; // If true, the AntiSpoofing mode is ON in that SV
+
- //Plane A (info from http://www.navcen.uscg.gov/?Do=constellationStatus)
- satelliteBlock[9] = "IIA";
- satelliteBlock[31] = "IIR-M";
- satelliteBlock[8] = "IIA";
- satelliteBlock[7] = "IIR-M";
- satelliteBlock[27] = "IIA";
- //Plane B
- satelliteBlock[16] = "IIR";
- satelliteBlock[25] = "IIF";
- satelliteBlock[28] = "IIR";
- satelliteBlock[12] = "IIR-M";
- satelliteBlock[30] = "IIA";
- //Plane C
- satelliteBlock[29] = "IIR-M";
- satelliteBlock[3] = "IIA";
- satelliteBlock[19] = "IIR";
- satelliteBlock[17] = "IIR-M";
- satelliteBlock[6] = "IIA";
- //Plane D
- satelliteBlock[2] = "IIR";
- satelliteBlock[1] = "IIF";
- satelliteBlock[21] = "IIR";
- satelliteBlock[4] = "IIA";
- satelliteBlock[11] = "IIR";
- satelliteBlock[24] = "IIA"; // Decommissioned from active service on 04 Nov 2011
- //Plane E
- satelliteBlock[20] = "IIR";
- satelliteBlock[22] = "IIR";
- satelliteBlock[5] = "IIR-M";
- satelliteBlock[18] = "IIR";
- satelliteBlock[32] = "IIA";
- satelliteBlock[10] = "IIA";
- //Plane F
- satelliteBlock[14] = "IIR";
- satelliteBlock[15] = "IIR-M";
- satelliteBlock[13] = "IIR";
- satelliteBlock[23] = "IIR";
- satelliteBlock[26] = "IIA";
-
+ d_satClkDrift = 0.0;
+ d_dtr = 0.0;
+ d_satpos_X = 0.0;
+ d_satpos_Y = 0.0;
+ d_satpos_Z = 0.0;
+ d_satvel_X = 0.0;
+ d_satvel_Y = 0.0;
+ d_satvel_Z = 0.0;
+ }
diff --cc src/core/system_parameters/gps_cnav_ephemeris.h
index 0000000,a570209..fc0def4
mode 000000,100644..100644
--- a/src/core/system_parameters/gps_cnav_ephemeris.h
+++ b/src/core/system_parameters/gps_cnav_ephemeris.h
@@@ -1,0 -1,179 +1,174 @@@
+ /*!
- * \file Gps_CNAV_Ephemeris.h
- * \brief Interface of a GPS EPHEMERIS storage
- * \author Javier Arribas, 2013. jarribas(at)cttc.es
++ * \file gps_cnav_ephemeris.h
++ * \brief Interface of a GPS CNAV EPHEMERIS storage
++ * \author Javier Arribas, 2015. jarribas(at)cttc.es
+ *
+ * -------------------------------------------------------------------------
+ *
+ * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ *
+ * GNSS-SDR is a software defined Global Navigation
+ * Satellite Systems receiver
+ *
+ * This file is part of GNSS-SDR.
+ *
+ * GNSS-SDR is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GNSS-SDR is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNSS-SDR. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * -------------------------------------------------------------------------
+ */
+
+
-#ifndef GNSS_SDR_Gps_CNAV_Ephemeris_H_
-#define GNSS_SDR_Gps_CNAV_Ephemeris_H_
++#ifndef GNSS_SDR_GPS_CNAV_EPHEMERIS_H_
++#define GNSS_SDR_GPS_CNAV_EPHEMERIS_H_
+
+ #include <iostream>
+ #include <map>
+ #include <string>
+ #include "boost/assign.hpp"
+ #include <boost/serialization/nvp.hpp>
+ #include "GPS_L2C.h"
+
+
+ /*!
+ * \brief This class is a storage and orbital model functions for the GPS SV ephemeris data as described in IS-GPS-200E
+ *
+ * See http://www.gps.gov/technical/icwg/IS-GPS-200E.pdf Appendix II
+ */
+ class Gps_CNAV_Ephemeris
+ {
+ private:
+
+ public:
+ unsigned int i_satellite_PRN; // SV PRN NUMBER
+
+ //Message Types 10 and 11 Parameters (1 of 2)
+ int i_GPS_week; //!< GPS week number, aka WN [week]
- int i_URA; //!< ED Accuracy Index
- int i_signal_health; //!< Signal health (L1/L2/L5)
- double d_Top; //!< Data predict time of week
- double d_DELTA_A; //!< Semi-major axis difference at reference time
- double d_A_DOT; //!< Change rate in semi-major axis
++ int i_URA; //!< ED Accuracy Index
++ int i_signal_health; //!< Signal health (L1/L2/L5)
++ double d_Top; //!< Data predict time of week
++ double d_DELTA_A; //!< Semi-major axis difference at reference time
++ double d_A_DOT; //!< Change rate in semi-major axis
+ double d_Delta_n; //!< Mean Motion Difference From Computed Value [semi-circles/s]
- double d_DELTA_DOT_N; // Rate of mean motion difference from computed value
++ double d_DELTA_DOT_N; //!< Rate of mean motion difference from computed value
+ double d_M_0; //!< Mean Anomaly at Reference Time [semi-circles]
- double d_e_eccentricity; //< Eccentricity
++ double d_e_eccentricity; //!< Eccentricity
+ double d_OMEGA; //!< Argument of Perigee [semi-cicles]
- double d_OMEGA0; //!< Longitude of Ascending Node of Orbit Plane at Weekly Epoch [semi-cicles]
++ double d_OMEGA0; //!< Longitude of Ascending Node of Orbit Plane at Weekly Epoch [semi-cicles]
+ double d_Toe; //!< Ephemeris data reference time of week (Ref. 20.3.3.4.3 IS-GPS-200E) [s]
+ double d_DELTA_OMEGA_DOT; //!< Rate of Right Ascension difference [semi-circles/s]
+ double d_i_0; //!< Inclination Angle at Reference Time [semi-circles]
+ double d_IDOT; //!< Rate of Inclination Angle [semi-circles/s]
+ double d_Cis; //!< Amplitude of the Sine Harmonic Correction Term to the Angle of Inclination [rad]
+ double d_Cic; //!< Amplitude of the Cosine Harmonic Correction Term to the Angle of Inclination [rad]
+ double d_Crs; //!< Amplitude of the Sine Harmonic Correction Term to the Orbit Radius [m]
+ double d_Crc; //!< Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius [m]
+ double d_Cus; //!< Amplitude of the Sine Harmonic Correction Term to the Argument of Latitude [rad]
+ double d_Cuc; //!< Amplitude of the Cosine Harmonic Correction Term to the Argument of Latitude [rad]
+
+ //Clock Correction and Accuracy Parameters
+ double d_Toc; //!< clock data reference time (Ref. 20.3.3.3.3.1 IS-GPS-200E) [s]
- double d_A_f0; //!< Coefficient 0 of code phase offset model [s]
- double d_A_f1; //!< Coefficient 1 of code phase offset model [s/s]
- double d_A_f2; //!< Coefficient 2 of code phase offset model [s/s^2]
++ double d_A_f0; //!< Coefficient 0 of code phase offset model [s]
++ double d_A_f1; //!< Coefficient 1 of code phase offset model [s/s]
++ double d_A_f2; //!< Coefficient 2 of code phase offset model [s/s^2]
+
- double d_URA0; //!<NED Accuracy Index
- double d_URA1; //!<NED Accuracy Change Index
- double d_URA2; //!< NED Accuracy Change Rate Index
++ double d_URA0; //!<NED Accuracy Index
++ double d_URA1; //!<NED Accuracy Change Index
++ double d_URA2; //!< NED Accuracy Change Rate Index
+
+
+ //Group Delay Differential Parameters
+ double d_TGD; //!< Estimated Group Delay Differential: L1-L2 correction term only for the benefit of "L1 P(Y)" or "L2 P(Y)" s users [s]
+ double d_ISCL1;
+ double d_ISCL2;
+ double d_ISCL5I;
+ double d_ISCL5Q;
+
+ double d_TOW; //!< Time of GPS Week of the ephemeris set (taken from subframes TOW) [s]
+
-
-
-
+ // Flags
+
+ /*! \brief If true, enhanced level of integrity assurance.
+ *
+ * If false, indicates that the conveying signal is provided with the legacy level of integrity assurance.
+ * That is, the probability that the instantaneous URE of the conveying signal exceeds 4.42 times the upper bound
+ * value of the current broadcast URA index, for more than 5.2 seconds, without an accompanying alert, is less
+ * than 1E-5 per hour. If true, indicates that the conveying signal is provided with an enhanced level of
+ * integrity assurance. That is, the probability that the instantaneous URE of the conveying signal exceeds 5.73
+ * times the upper bound value of the current broadcast URA index, for more than 5.2 seconds, without an
+ * accompanying alert, is less than 1E-8 per hour.
+ */
+ bool b_integrity_status_flag;
+ bool b_alert_flag; //!< If true, indicates that the SV URA may be worse than indicated in d_SV_accuracy, use that SV at our own risk.
+ bool b_antispoofing_flag; //!< If true, the AntiSpoofing mode is ON in that SV
+
+ // clock terms derived from ephemeris data
+ double d_satClkDrift; //!< GPS clock error
+ double d_dtr; //!< relativistic clock correction term
+
+ // satellite positions
+ double d_satpos_X; //!< Earth-fixed coordinate x of the satellite [m]. Intersection of the IERS Reference Meridian (IRM) and the plane passing through the origin and normal to the Z-axis.
+ double d_satpos_Y; //!< Earth-fixed coordinate y of the satellite [m]. Completes a right-handed, Earth-Centered, Earth-Fixed orthogonal coordinate system.
+ double d_satpos_Z; //!< Earth-fixed coordinate z of the satellite [m]. The direction of the IERS (International Earth Rotation and Reference Systems Service) Reference Pole (IRP).
+
+ // Satellite velocity
+ double d_satvel_X; //!< Earth-fixed velocity coordinate x of the satellite [m]
+ double d_satvel_Y; //!< Earth-fixed velocity coordinate y of the satellite [m]
+ double d_satvel_Z; //!< Earth-fixed velocity coordinate z of the satellite [m]
+
- std::map<int,std::string> satelliteBlock; //!< Map that stores to which block the PRN belongs http://www.navcen.uscg.gov/?Do=constellationStatus
-
+ template<class Archive>
+
+ /*!
+ * \brief Serialize is a boost standard method to be called by the boost XML serialization. Here is used to save the ephemeris data on disk file.
+ */
+ void serialize(Archive& archive, const unsigned int version)
+ {
+ using boost::serialization::make_nvp;
+ if(version){};
+
+ archive & make_nvp("i_satellite_PRN", i_satellite_PRN); // SV PRN NUMBER
+ archive & make_nvp("d_TOW", d_TOW); //!< Time of GPS Week of the ephemeris set (taken from subframes TOW) [s]
+ archive & make_nvp("d_Crs", d_Crs); //!< Amplitude of the Sine Harmonic Correction Term to the Orbit Radius [m]
+ archive & make_nvp("d_M_0", d_M_0); //!< Mean Anomaly at Reference Time [semi-circles]
+ archive & make_nvp("d_Cuc", d_Cuc); //!< Amplitude of the Cosine Harmonic Correction Term to the Argument of Latitude [rad]
+ archive & make_nvp("d_e_eccentricity", d_e_eccentricity); //!< Eccentricity [dimensionless]
+ archive & make_nvp("d_Cus", d_Cus); //!< Amplitude of the Sine Harmonic Correction Term to the Argument of Latitude [rad]
+ archive & make_nvp("d_Toe", d_Toe); //!< Ephemeris data reference time of week (Ref. 20.3.3.4.3 IS-GPS-200E) [s]
+ archive & make_nvp("d_Toc", d_Toe); //!< clock data reference time (Ref. 20.3.3.3.3.1 IS-GPS-200E) [s]
+ archive & make_nvp("d_Cic", d_Cic); //!< Amplitude of the Cosine Harmonic Correction Term to the Angle of Inclination [rad]
+ archive & make_nvp("d_OMEGA0", d_OMEGA0); //!< Longitude of Ascending Node of Orbit Plane at Weekly Epoch [semi-circles]
+ archive & make_nvp("d_Cis", d_Cis); //!< Amplitude of the Sine Harmonic Correction Term to the Angle of Inclination [rad]
+ archive & make_nvp("d_i_0", d_i_0); //!< Inclination Angle at Reference Time [semi-circles]
+ archive & make_nvp("d_Crc", d_Crc); //!< Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius [m]
+ archive & make_nvp("d_OMEGA", d_OMEGA); //!< Argument of Perigee [semi-cicles]
+ archive & make_nvp("d_IDOT", d_IDOT); //!< Rate of Inclination Angle [semi-circles/s]
+ archive & make_nvp("i_GPS_week", i_GPS_week); //!< GPS week number, aka WN [week]
+ archive & make_nvp("d_TGD", d_TGD); //!< Estimated Group Delay Differential: L1-L2 correction term only for the benefit of "L1 P(Y)" or "L2 P(Y)" s users [s]
+
+
+ archive & make_nvp("d_A_f0", d_A_f0); //!< Coefficient 0 of code phase offset model [s]
+ archive & make_nvp("d_A_f1", d_A_f1); //!< Coefficient 1 of code phase offset model [s/s]
+ archive & make_nvp("d_A_f2", d_A_f2); //!< Coefficient 2 of code phase offset model [s/s^2]
+
+ archive & make_nvp("b_integrity_status_flag", b_integrity_status_flag);
+ archive & make_nvp("b_alert_flag", b_alert_flag); //!< If true, indicates that the SV URA may be worse than indicated in d_SV_accuracy, use that SV at our own risk.
+ archive & make_nvp("b_antispoofing_flag", b_antispoofing_flag); //!< If true, the AntiSpoofing mode is ON in that SV
+ }
+
+ /*!
+ * Default constructor
+ */
+ Gps_CNAV_Ephemeris();
+ };
+
+ #endif
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/gnss-sdr.git
More information about the pkg-hamradio-commits
mailing list