Mercurial > ublox > ublox8 > experimental
changeset 64:8e85919405df
gnss-galileo: add a valid bit to each ephemeris
This is easier than trying to guess whether the ephemeris contains any
meaningful values.
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Wed, 22 Jan 2020 10:10:26 -0500 |
parents | fbf26ed4884d |
children | 123cac19d9bd |
files | gnss-galileo-eph.c gnss-galileo-state.c gnss-galileo.h |
diffstat | 3 files changed, 10 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/gnss-galileo-eph.c Mon Jan 20 10:16:31 2020 -0500 +++ b/gnss-galileo-eph.c Wed Jan 22 10:10:26 2020 -0500 @@ -29,14 +29,15 @@ void galileo_print_eph(const struct galileo_ephemeris *eph) { - printf("E%02u: iod %u " + printf("E%02u: %svalid iod %u " "m0 %e delta_n %e e %e sqrt_a %e omega0 %e i0 %e " "omega %e omegadot %e idot %e cuc %e cus %e " "crc %e crs %e cic %e cis %e t0 %u (%u raw)\n", - eph->sv, eph->iod, eph->m0, eph->delta_n, eph->e, - eph->sqrt_a, eph->omega0, eph->i0, eph->omega, eph->omegadot, - eph->idot, eph->cuc, eph->cus, eph->crc, eph->crs, eph->cic, - eph->cis, eph->t0.gst, eph->t0.raw); + eph->sv, eph->valid ? "" : "NOT ", eph->iod, eph->m0, + eph->delta_n, eph->e, eph->sqrt_a, eph->omega0, eph->i0, + eph->omega, eph->omegadot, eph->idot, eph->cuc, eph->cus, + eph->crc, eph->crs, eph->cic, eph->cis, eph->t0.gst, + eph->t0.raw); } void galileo_eph_ecef(const struct galileo_ephemeris *eph, @@ -44,6 +45,8 @@ { int approx_iter; + ASSERT(eph->valid); + /* Based on Galileo ICD 5.1.1 */ const double mu = 3.986004418e14; /* m3/s2 */ const double omegaE = 7.2921151467e-5; /* rad/s */
--- a/gnss-galileo-state.c Mon Jan 20 10:16:31 2020 -0500 +++ b/gnss-galileo-state.c Wed Jan 22 10:10:26 2020 -0500 @@ -138,6 +138,7 @@ state->sv[sv].eph = state->wip[sv].nav.eph; state->sv[sv].eph.sv = sv; state->sv[sv].eph.iod = state->wip[sv].nav.iod[0]; + state->sv[sv].eph.valid = true; state->sv[sv].eph.t0.gst = tow2gst(ephwn, state->sv[sv].eph.t0.raw); state->sv[sv].valid_eph = true;