Mercurial > ublox > ublox8
changeset 69:9dd833ef57d3
print-state: move disco math into a helper function
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Mon, 20 Jan 2020 12:58:48 -0500 |
parents | 269c4e8a96ac |
children | 919ca4da4660 |
files | print-state.c |
diffstat | 1 files changed, 17 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/print-state.c Mon Jan 20 12:56:21 2020 -0500 +++ b/print-state.c Mon Jan 20 12:58:48 2020 -0500 @@ -77,6 +77,21 @@ return false; } +static double calc_disco(const struct galileo_ephemeris *a_eph, + const struct galileo_ephemeris *b_eph, + const uint32_t gst) +{ + struct ecef a; + struct ecef b; + struct ecef diff; + + galileo_eph_ecef(a_eph, gst, &a); + galileo_eph_ecef(b_eph, gst, &b); + ecef_subtract(&diff, &a, &b); + + return ecef_magnitude(&diff); +} + static void galileo_update_eph(struct galileo_state *state, const struct galileo_ephemeris *prev, const struct galileo_ephemeris *new) @@ -108,21 +123,11 @@ prev_age = new->t0.gst - prev->t0.gst; /* calculate the discontinuity... */ - struct ecef prev_ecef; - struct ecef new_ecef; - struct ecef diff; - /* ...at t0 for the new ephemeris */ - galileo_eph_ecef(prev, new->t0.gst, &prev_ecef); - galileo_eph_ecef(new, new->t0.gst, &new_ecef); - ecef_subtract(&diff, &new_ecef, &prev_ecef); - disco_t0 = ecef_magnitude(&diff); + disco_t0 = calc_disco(prev, new, new->t0.gst); /* ...right now */ - galileo_eph_ecef(prev, state->time.gst, &prev_ecef); - galileo_eph_ecef(new, state->time.gst, &new_ecef); - ecef_subtract(&diff, &new_ecef, &prev_ecef); - disco_now = ecef_magnitude(&diff); + disco_now = calc_disco(prev, new, state->time.gst); } printf("EPHEMERIS: %s for E%02u (prev %.1f hrs older): "