32#ifndef GNSS_SDR_RTKLIB_RKTPOS_H
33#define GNSS_SDR_RTKLIB_RKTPOS_H
45const double VAR_POS = std::pow(30.0, 2.0);
46const double VAR_VEL = std::pow(10.0, 2.0);
47const double VAR_ACC = std::pow(10.0, 2.0);
48const double VAR_HWBIAS = std::pow(1.0, 2.0);
49const double VAR_GRA = std::pow(0.001, 2.0);
50const double INIT_ZWD = 0.15;
52const double PRN_HWBIA = 1E-6;
53const double MAXAC = 30.0;
55const double VAR_HOLDAMB = 0.001;
57const double TTOL_MOVEB = (1.0 + 2 *
DTTOL);
65#define II_RTK(s, opt) (NP_RTK(opt) + (s)-1)
66#define IT_RTK(r, opt) (NP_RTK(opt) + NI_RTK(opt) + NT_RTK(opt) / 2 * (r))
67#define IL_RTK(f, opt) (NP_RTK(opt) + NI_RTK(opt) + NT_RTK(opt) + (f))
68#define IB_RTK(s, f, opt) (NR_RTK(opt) + MAXSAT * (f) + (s)-1)
71int rtkopenstat(
const char *file,
int level);
75void rtkoutstat(
rtk_t *rtk);
79void outsolstat(
rtk_t *rtk);
81void errmsg(
rtk_t *rtk,
const char *format, ...);
83double sdobs(
const obsd_t *obs,
int i,
int j,
int f);
85double gfobs_L1L2(
const obsd_t *obs,
int i,
int j,
const double *lam);
87double gfobs_L1L5(
const obsd_t *obs,
int i,
int j,
const double *lam);
89double varerr(
int sat,
int sys,
double el,
double bl,
double dt,
int f,
93double baseline(
const double *ru,
const double *rb,
double *dr);
95void initx_rtk(
rtk_t *rtk,
double xi,
double var,
int i);
97int selsat(
const obsd_t *obs,
const double *azel,
int nu,
int nr,
98 const prcopt_t *opt,
int *sat,
int *iu,
int *ir);
100void udpos(
rtk_t *rtk,
double tt);
102void udion(
rtk_t *rtk,
double tt,
double bl,
const int *sat,
int ns);
104void udtrop(
rtk_t *rtk,
double tt,
double bl);
106void udrcvbias(
rtk_t *rtk,
double tt);
108void detslp_ll(
rtk_t *rtk,
const obsd_t *obs,
int i,
int rcv);
109void detslp_gf_L1L2(
rtk_t *rtk,
const obsd_t *obs,
int i,
int j,
112void detslp_gf_L1L5(
rtk_t *rtk,
const obsd_t *obs,
int i,
int j,
115void detslp_dop(
rtk_t *rtk,
const obsd_t *obs,
int i,
int rcv,
118void udbias(
rtk_t *rtk,
double tt,
const obsd_t *obs,
const int *sat,
119 const int *iu,
const int *ir,
int ns,
const nav_t *nav);
121void udstate(
rtk_t *rtk,
const obsd_t *obs,
const int *sat,
122 const int *iu,
const int *ir,
int ns,
const nav_t *nav);
124void zdres_sat(
int base,
double r,
const obsd_t *obs,
const nav_t *nav,
125 const double *azel,
const double *dant,
128int zdres(
int base,
const obsd_t *obs,
int n,
const double *rs,
129 const double *dts,
const int *svh,
const nav_t *nav,
130 const double *rr,
const prcopt_t *opt,
int index,
double *y,
131 double *e,
double *azel);
133int validobs(
int i,
int j,
int f,
int nf,
const double *y);
135void ddcov(
const int *nb,
int n,
const double *Ri,
const double *Rj,
138int constbl(
rtk_t *rtk,
const double *x,
const double *P,
double *v,
139 double *H,
double *Ri,
double *Rj,
int index);
141double prectrop(
gtime_t time,
const double *pos,
int r,
142 const double *azel,
const prcopt_t *opt,
const double *x,
145double gloicbcorr(
int sat1,
int sat2,
const prcopt_t *opt,
double lam1,
148int test_sys(
int sys,
int m);
150int ddres(
rtk_t *rtk,
const nav_t *nav,
double dt,
const double *x,
151 const double *P,
const int *sat,
double *y,
const double *e,
152 double *azel,
const int *iu,
const int *ir,
int ns,
double *v,
153 double *H,
double *R,
int *vflg);
156 rtk_t *rtk,
double *y);
159int ddmat(
rtk_t *rtk,
double *D);
161void restamb(
rtk_t *rtk,
const double *bias,
int nb,
double *xa);
163void holdamb(
rtk_t *rtk,
const double *xa);
165int resamb_LAMBDA(
rtk_t *rtk,
double *bias,
double *xa);
167int valpos(
rtk_t *rtk,
const double *v,
const double *R,
const int *vflg,
168 int nv,
double thres);
170int relpos(
rtk_t *rtk,
const obsd_t *obs,
int nu,
int nr,
175void rtkfree(
rtk_t *rtk);
const double DTTOL
tolerance of time difference (s)
main header file for the rtklib library