34 #ifndef GNSS_SDR_RTKLIB_PPP_H 35 #define GNSS_SDR_RTKLIB_PPP_H 40 #define MIN_PPP(x, y) ((x) <= (y) ? (x) : (y)) 41 #define ROUND_PPP(x) static_cast<int>(floor((x) + 0.5)) 43 #define SWAP_I(x, y) \ 51 #define SWAP_D(x, y) \ 60 const double MIN_ARC_GAP = 300.0;
61 const double CONST_AMB = 0.001;
62 const double THRES_RES = 0.3;
63 const double LOG_PI = 1.14472988584940017;
64 const double SQRT2 = 1.41421356237309510;
66 const double VAR_POS_PPP = std::pow(100.0, 2.0);
67 const double VAR_CLK = std::pow(100.0, 2.0);
68 const double VAR_ZTD = std::pow(0.3, 2.0);
69 const double VAR_GRA_PPP = std::pow(0.001, 2.0);
70 const double VAR_BIAS = std::pow(100.0, 2.0);
72 const double VAR_IONO_OFF = std::pow(10.0, 2.0);
76 double lam_LC(
int i,
int j,
int k);
78 double L_LC(
int i,
int j,
int k,
const double *L);
80 double P_LC(
int i,
int j,
int k,
const double *P);
82 double var_LC(
int i,
int j,
int k,
double sig);
84 double q_gamma(
double a,
double x,
double log_gamma_a);
86 double p_gamma(
double a,
double x,
double log_gamma_a);
88 double f_erfc(
double x);
90 double conffunc(
int N,
double B,
double sig);
92 void average_LC(
rtk_t *rtk,
const obsd_t *obs,
int n,
const nav_t *nav,
const double *azel);
94 int fix_amb_WL(
rtk_t *rtk,
const nav_t *nav,
int sat1,
int sat2,
int *NW);
96 int is_depend(
int sat1,
int sat2,
int *flgs,
int *max_flg);
98 int sel_amb(
int *sat1,
int *sat2,
double *N,
double *var,
int n);
100 int fix_sol(
rtk_t *rtk,
const int *sat1,
const int *sat2,
const double *NC,
int n);
102 int fix_amb_ROUND(
rtk_t *rtk,
int *sat1,
int *sat2,
const int *NW,
int n);
104 int fix_amb_ILS(
rtk_t *rtk,
int *sat1,
int *sat2,
int *NW,
int n);
106 int pppamb(
rtk_t *rtk,
const obsd_t *obs,
int n,
const nav_t *nav,
const double *azel);
110 void pppoutsolstat(
rtk_t *rtk,
int level, FILE *fp);
112 void testeclipse(
const obsd_t *obs,
int n,
const nav_t *nav,
double *rs);
114 double varerr(
int sat,
int sys,
double el,
int type,
const prcopt_t *opt);
116 void initx(
rtk_t *rtk,
double xi,
double var,
int i);
118 int ifmeas(
const obsd_t *obs,
const nav_t *nav,
const double *azel,
119 const prcopt_t *opt,
const double *dantr,
const double *dants,
120 double phw,
double *meas,
double *var);
122 double gettgd_ppp(
int sat,
const nav_t *nav);
124 int corr_ion(
gtime_t time,
const nav_t *nav,
int sat,
const double *pos,
125 const double *azel,
int ionoopt,
double *ion,
double *var,
128 int corrmeas(
const obsd_t *obs,
const nav_t *nav,
const double *pos,
129 const double *azel,
const prcopt_t *opt,
130 const double *dantr,
const double *dants,
double phw,
131 double *meas,
double *var,
int *brk);
133 double gfmeas(
const obsd_t *obs,
const nav_t *nav);
135 void udpos_ppp(
rtk_t *rtk);
137 void udclk_ppp(
rtk_t *rtk);
139 void udtrop_ppp(
rtk_t *rtk);
141 void detslp_ll(
rtk_t *rtk,
const obsd_t *obs,
int n);
149 void satantpcv(
const double *rs,
const double *rr,
const pcv_t *pcv,
double *dant);
151 double prectrop(
gtime_t time,
const double *pos,
const double *azel,
152 const prcopt_t *opt,
const double *x,
double *dtdx,
155 int res_ppp(
int iter,
const obsd_t *obs,
int n,
const double *rs,
156 const double *dts,
const double *vare,
const int *svh,
157 const nav_t *nav,
const double *x,
rtk_t *rtk,
double *v,
158 double *H,
double *R,
double *azel);
main header file for the rtklib library