Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef LIBSWIFTNAV_PVT_H
00015 #define LIBSWIFTNAV_PVT_H
00016
00017 #include "common.h"
00018 #include "track.h"
00019
00020
00022 #define GPS_NUM_SATS 32
00023 #define GPS_PI 3.14159265358979323846
00024 #define GPS_L1_HZ 1.57542E9
00025 #define NAV_OMEGAE_DOT 7.2921151467e-005
00026 #define NAV_GM 3.986005e14
00027 #define NAV_C 299792458.0
00028 #define NAV_F -4.442807633e-010
00029 #define NOMINAL_RANGE 22980E3
00030 #define R2D (180.0/GPS_PI)
00031 #define D2R (GPS_PI/180.0)
00032
00033 #define GNSS_MAX_OBS GPS_NUM_SATS
00034 #define GNSS_MAX_RECEIVERS 1
00035
00036 #define PVT_MAX_ITERATIONS 20
00037
00038 typedef struct {
00039 double pdop;
00040 double gdop;
00041 double tdop;
00042 double hdop;
00043 double vdop;
00044 } dops_t;
00045
00046 typedef struct __attribute__((packed)) {
00047
00048
00049
00050
00051
00053 double pos_llh[3];
00055 double pos_ecef[3];
00057 double vel_ned[3];
00059 double vel_ecef[3];
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071 double err_cov[7];
00072
00073 double clock_offset;
00074 double clock_bias;
00075
00076
00077 gps_time_t time;
00078
00079
00080 u8 valid;
00081
00082 u8 n_used;
00083 } gnss_solution;
00084
00085 u8 calc_PVT(const u8 n_used,
00086 const navigation_measurement_t const nav_meas[n_used],
00087 gnss_solution *soln,
00088 dops_t *dops);
00089
00090 #endif
00091