18 #ifndef GNSS_SDR_SERDES_GPS_EPH_H 19 #define GNSS_SDR_SERDES_GPS_EPH_H 22 #include "gps_ephemeris.pb.h" 43 GOOGLE_PROTOBUF_VERIFY_VERSION;
57 this->monitor_ = rhs.monitor_;
69 this->monitor_ = std::move(other.monitor_);
79 monitor_.set_prn(monitor->PRN);
80 monitor_.set_m_0(monitor->M_0);
81 monitor_.set_delta_n(monitor->delta_n);
82 monitor_.set_ecc(monitor->ecc);
83 monitor_.set_sqrta(monitor->sqrtA);
84 monitor_.set_omega_0(monitor->OMEGA_0);
85 monitor_.set_i_0(monitor->i_0);
86 monitor_.set_omega(monitor->omega);
87 monitor_.set_omegadot(monitor->OMEGAdot);
88 monitor_.set_idot(monitor->idot);
89 monitor_.set_cuc(monitor->Cuc);
90 monitor_.set_cus(monitor->Cus);
91 monitor_.set_crc(monitor->Crc);
92 monitor_.set_crs(monitor->Crs);
93 monitor_.set_cic(monitor->Cic);
94 monitor_.set_cis(monitor->Cis);
95 monitor_.set_toe(monitor->toe);
96 monitor_.set_toc(monitor->toc);
97 monitor_.set_af0(monitor->af0);
98 monitor_.set_af1(monitor->af1);
99 monitor_.set_af2(monitor->af2);
100 monitor_.set_satclkdrift(monitor->satClkDrift);
101 monitor_.set_dtr(monitor->dtr);
102 monitor_.set_wn(monitor->WN);
103 monitor_.set_tow(monitor->tow);
106 monitor_.set_code_on_l2(monitor->code_on_L2);
107 monitor_.set_l2_p_data_flag(monitor->L2_P_data_flag);
108 monitor_.set_sv_accuracy(monitor->SV_accuracy);
109 monitor_.set_sv_health(monitor->SV_health);
110 monitor_.set_tgd(monitor->TGD);
111 monitor_.set_iodc(monitor->IODC);
112 monitor_.set_iode_sf2(monitor->IODE_SF2);
113 monitor_.set_iode_sf3(monitor->IODE_SF3);
114 monitor_.set_aodo(monitor->AODO);
115 monitor_.set_fit_interval_flag(monitor->fit_interval_flag);
116 monitor_.set_spare1(monitor->spare1);
117 monitor_.set_spare2(monitor->spare2);
118 monitor_.set_integrity_status_flag(monitor->integrity_status_flag);
119 monitor_.set_alert_flag(monitor->alert_flag);
120 monitor_.set_antispoofing_flag(monitor->antispoofing_flag);
122 monitor_.SerializeToString(&data);
130 monitor.
PRN = mon.prn();
131 monitor.
M_0 = mon.m_0();
132 monitor.
delta_n = mon.delta_n();
133 monitor.
ecc = mon.ecc();
134 monitor.
sqrtA = mon.sqrta();
135 monitor.
OMEGA_0 = mon.omega_0();
136 monitor.
i_0 = mon.i_0();
137 monitor.
omega = mon.omega();
139 monitor.
idot = mon.idot();
140 monitor.
Cuc = mon.cuc();
141 monitor.
Cus = mon.cus();
142 monitor.
Crc = mon.crc();
143 monitor.
Crs = mon.crs();
144 monitor.
Cic = mon.cic();
145 monitor.
Cis = mon.cis();
146 monitor.
toe = mon.toe();
147 monitor.
toc = mon.toc();
148 monitor.
af0 = mon.af0();
149 monitor.
af1 = mon.af1();
150 monitor.
af2 = mon.af2();
152 monitor.
dtr = mon.dtr();
153 monitor.
WN = mon.wn();
154 monitor.
tow = mon.tow();
161 monitor.
TGD = mon.tgd();
162 monitor.
IODC = mon.iodc();
165 monitor.
AODO = mon.aodo();
167 monitor.spare1 = mon.spare1();
168 monitor.spare2 = mon.spare2();
177 gnss_sdr::GpsEphemeris monitor_{};
183 #endif // GNSS_SDR_SERDES_GPS_EPH_H Gps_Ephemeris readProtobuffer(const gnss_sdr::GpsEphemeris &mon) const
< Deserialization
bool alert_flag
If true, indicates that the SV URA may be worse than indicated in d_SV_accuracy, use that SV at our o...
This class is a storage and orbital model functions for the GPS SV ephemeris data as described in IS-...
int32_t code_on_L2
If 1, P code ON in L2; if 2, C/A code ON in L2;.
bool integrity_status_flag
If true, enhanced level of integrity assurance.
int32_t AODO
Age of Data Offset (AODO) term for the navigation message correction table (NMCT) contained in subfra...
int32_t SV_accuracy
User Range Accuracy (URA) index of the SV (reference paragraph 6.2.1) for the standard positioning se...
double i_0
Inclination angle at reference time [semi-circles].
Serdes_Gps_Eph & operator=(const Serdes_Gps_Eph &rhs) noexcept
< Copy assignment operator
double OMEGA_0
Longitude of ascending node of orbital plane at weekly epoch [semi-circles].
int32_t IODE_SF3
Issue of Data, Ephemeris (IODE), subframe 3.
double TGD
Estimated Group Delay Differential: L1-L2 correction term only for the benefit of "L1 P(Y)" or "L2 P(...
int32_t toc
Clock correction data reference Time of Week [sec].
int32_t IODC
Issue of Data, Clock.
double Crc
Amplitude of the cosine harmonic correction term to the orbit radius [meters].
bool L2_P_data_flag
When true, indicates that the NAV data stream was commanded OFF on the P-code of the L2 channel...
double af2
SV clock drift rate correction coefficient [s/s^2].
bool antispoofing_flag
If true, the AntiSpoofing mode is ON in that SV.
double Cis
Amplitude of the sine harmonic correction term to the angle of inclination [radians].
This class implements serialization and deserialization of Gps_Ephemeris objects using Protocol Buffe...
double af0
SV clock bias correction coefficient [s].
bool fit_interval_flag
indicates the curve-fit interval used by the CS (Block II/IIA/IIR/IIR-M/IIF) and SS (Block IIIA) in d...
double M_0
Mean anomaly at reference time [semi-circles].
int32_t toe
Ephemeris reference time [s].
double Cus
Amplitude of the sine harmonic correction term to the argument of latitude [radians].
int32_t SV_health
Satellite heath status.
double OMEGAdot
Rate of right ascension [semi-circles/sec].
double delta_n
Mean motion difference from computed value [semi-circles/sec].
double idot
Rate of inclination angle [semi-circles/sec].
Serdes_Gps_Eph & operator=(Serdes_Gps_Eph &&other) noexcept
< Move assignment operator
Interface of a GPS EPHEMERIS storage.
std::string createProtobuffer(const std::shared_ptr< Gps_Ephemeris > monitor)
double Cic
Amplitude of the cosine harmonic correction term to the angle of inclination [radians].
int32_t IODE_SF2
Issue of Data, Ephemeris (IODE), subframe 2.
double Cuc
Amplitude of the cosine harmonic correction term to the argument of latitude [radians].
double omega
Argument of perigee [semi-circles].
double af1
SV clock drift correction coefficient [s/s].
double Crs
Amplitude of the sine harmonic correction term to the orbit radius [meters].
double satClkDrift
SV clock drift.
double dtr
Relativistic clock correction term.
double sqrtA
Square root of the semi-major axis [meters^1/2].