single_diff.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2014 Swift Navigation Inc.
00003  * Contact: Fergus Noble <fergus@swift-nav.com>
00004  *
00005  * This source is subject to the license found in the file 'LICENSE' which must
00006  * be be distributed together with this source. All other rights reserved.
00007  *
00008  * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
00009  * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
00010  * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
00011  */
00012 
00013 #ifndef LIBSWIFTNAV_SINGLE_DIFF_H
00014 #define LIBSWIFTNAV_SINGLE_DIFF_H
00015 
00016 #include "common.h"
00017 #include "track.h"
00018 #include "almanac.h"
00019 #include "ephemeris.h"
00020 #include "gpstime.h"
00021 
00022 typedef struct {
00023   double pseudorange;
00024   double carrier_phase;
00025   double doppler;
00026   double sat_pos[3];
00027   double sat_vel[3];
00028   double snr;
00029   u8 prn;
00030 } sdiff_t;
00031 
00032 u8 propagate(u8 n, double ref_ecef[3],
00033              navigation_measurement_t *m_in_base, gps_time_t *t_base,
00034              navigation_measurement_t *m_in_rover, gps_time_t *t_rover,
00035              navigation_measurement_t *m_out_base);
00036 
00037 u8 single_diff(u8 n_a, navigation_measurement_t *m_a,
00038                u8 n_b, navigation_measurement_t *m_b,
00039                sdiff_t *sds);
00040 void double_diff(u8 n, sdiff_t *sds, sdiff_t *dds, u8 ref_idx);
00041 
00042 int sdiff_search_prn(const void *a, const void *b);
00043 
00044 u8 make_propagated_sdiffs(u8 n_local, navigation_measurement_t *m_local,
00045                           u8 n_remote, navigation_measurement_t *m_remote,
00046                           double *remote_dists, double remote_pos_ecef[3],
00047                           ephemeris_t *es, gps_time_t t,
00048                           sdiff_t *sds);
00049 
00050 void almanacs_to_single_diffs(u8 n, almanac_t *alms, gps_time_t timestamp, sdiff_t *sdiffs);
00051 
00052 s8 copy_sdiffs_put_ref_first(u8 ref_prn, u8 num_sdiffs, sdiff_t *sdiffs, sdiff_t *sdiffs_with_ref_first);
00053 
00054 u8 filter_sdiffs(u8 num_sdiffs, sdiff_t *sdiffs, u8 num_sats_to_drop, u8 *sats_to_drop);
00055 
00056 #endif /* LIBSWIFTNAV_SINGLE_DIFF_H */
00057 


swiftnav
Author(s):
autogenerated on Sat Jun 8 2019 18:56:09