Skip to content
This repository was archived by the owner on Apr 13, 2021. It is now read-only.

Commit 48a47c8

Browse files
committed
use arrays of pointers in calc_navigation_measurement()
1 parent d977213 commit 48a47c8

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

include/libswiftnav/track.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,8 +231,8 @@ void cn0_est_init(cn0_est_state_t *s, float bw, float cn0_0,
231231
float cutoff_freq, float loop_freq);
232232
float cn0_est(cn0_est_state_t *s, float I, float Q);
233233

234-
void calc_navigation_measurement(u8 n_channels, channel_measurement_t meas[],
235-
navigation_measurement_t nav_meas[],
234+
void calc_navigation_measurement(u8 n_channels, const channel_measurement_t *meas[],
235+
navigation_measurement_t *nav_meas[],
236236
double nav_time, const ephemeris_t* e[]);
237237

238238
int nav_meas_cmp(const void *a, const void *b);

src/track.c

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -745,36 +745,36 @@ float cn0_est(cn0_est_state_t *s, float I, float Q)
745745
return s->log_bw - 10.f*log10f(s->nsr);
746746
}
747747

748-
void calc_navigation_measurement(u8 n_channels, channel_measurement_t meas[],
749-
navigation_measurement_t nav_meas[],
748+
void calc_navigation_measurement(u8 n_channels, const channel_measurement_t *meas[],
749+
navigation_measurement_t *nav_meas[],
750750
double nav_time, const ephemeris_t* e[])
751751
{
752752
double TOTs[n_channels];
753753
double min_TOF = -DBL_MAX;
754754
double clock_err[n_channels], clock_rate_err[n_channels];
755755

756756
for (u8 i=0; i<n_channels; i++) {
757-
TOTs[i] = 1e-3 * meas[i].time_of_week_ms;
758-
TOTs[i] += meas[i].code_phase_chips / 1.023e6;
759-
TOTs[i] += (nav_time - meas[i].receiver_time) * meas[i].code_phase_rate / 1.023e6;
757+
TOTs[i] = 1e-3 * meas[i]->time_of_week_ms;
758+
TOTs[i] += meas[i]->code_phase_chips / 1.023e6;
759+
TOTs[i] += (nav_time - meas[i]->receiver_time) * meas[i]->code_phase_rate / 1.023e6;
760760

761761
/** \todo Maybe keep track of week number in tracking channel
762762
state or derive it from system time. */
763-
nav_meas[i].tot.tow = TOTs[i];
764-
gps_time_match_weeks(&nav_meas[i].tot, &e[i]->toe);
763+
nav_meas[i]->tot.tow = TOTs[i];
764+
gps_time_match_weeks(&nav_meas[i]->tot, &e[i]->toe);
765765

766-
nav_meas[i].raw_doppler = meas[i].carrier_freq;
767-
nav_meas[i].snr = meas[i].snr;
768-
nav_meas[i].sid = meas[i].sid;
766+
nav_meas[i]->raw_doppler = meas[i]->carrier_freq;
767+
nav_meas[i]->snr = meas[i]->snr;
768+
nav_meas[i]->sid = meas[i]->sid;
769769

770-
nav_meas[i].carrier_phase = meas[i].carrier_phase;
771-
nav_meas[i].carrier_phase += (nav_time - meas[i].receiver_time) * meas[i].carrier_freq;
770+
nav_meas[i]->carrier_phase = meas[i]->carrier_phase;
771+
nav_meas[i]->carrier_phase += (nav_time - meas[i]->receiver_time) * meas[i]->carrier_freq;
772772

773-
nav_meas[i].lock_counter = meas[i].lock_counter;
773+
nav_meas[i]->lock_counter = meas[i]->lock_counter;
774774

775775
/* calc sat clock error */
776-
calc_sat_state(e[i], nav_meas[i].tot,
777-
nav_meas[i].sat_pos, nav_meas[i].sat_vel,
776+
calc_sat_state(e[i], nav_meas[i]->tot,
777+
nav_meas[i]->sat_pos, nav_meas[i]->sat_vel,
778778
&clock_err[i], &clock_rate_err[i]);
779779

780780
/* remove clock error to put all tots within the same time window */
@@ -783,14 +783,14 @@ void calc_navigation_measurement(u8 n_channels, channel_measurement_t meas[],
783783
}
784784

785785
for (u8 i=0; i<n_channels; i++) {
786-
nav_meas[i].raw_pseudorange = (min_TOF - TOTs[i])*GPS_C + GPS_NOMINAL_RANGE;
786+
nav_meas[i]->raw_pseudorange = (min_TOF - TOTs[i])*GPS_C + GPS_NOMINAL_RANGE;
787787

788-
nav_meas[i].pseudorange = nav_meas[i].raw_pseudorange \
788+
nav_meas[i]->pseudorange = nav_meas[i]->raw_pseudorange \
789789
+ clock_err[i]*GPS_C;
790-
nav_meas[i].doppler = nav_meas[i].raw_doppler + clock_rate_err[i]*GPS_L1_HZ;
790+
nav_meas[i]->doppler = nav_meas[i]->raw_doppler + clock_rate_err[i]*GPS_L1_HZ;
791791

792-
nav_meas[i].tot.tow -= clock_err[i];
793-
nav_meas[i].tot = normalize_gps_time(nav_meas[i].tot);
792+
nav_meas[i]->tot.tow -= clock_err[i];
793+
nav_meas[i]->tot = normalize_gps_time(nav_meas[i]->tot);
794794
}
795795
}
796796

0 commit comments

Comments
 (0)