61#define CSSR_MAX_GNSS 16
62#define CSSR_MAX_SV_GNSS 40
64#define CSSR_MAX_SIG 16
65#define CSSR_MAX_CELLMASK 64
66#define CSSR_MAX_NET 32
67#define CSSR_MAX_LOCAL_SV 32
68#define CSSR_MAX_GP 128
80#define CSSR_SYS_NONE -1
86#define CSSR_TYPE_NUM 14
87#define CSSR_TYPE_MASK 1
92#define CSSR_TYPE_BIAS 6
93#define CSSR_TYPE_URA 7
94#define CSSR_TYPE_STEC 8
95#define CSSR_TYPE_GRID 9
96#define CSSR_TYPE_SI 10
97#define CSSR_TYPE_COMBO 11
98#define CSSR_TYPE_ATMOS 12
99#define CSSR_TYPE_INIT 254
100#define CSSR_TYPE_NULL 255
106#define P2_S16_MAX 32767
107#define P2_S15_MAX 16383
108#define P2_S14_MAX 8191
109#define P2_S13_MAX 4095
110#define P2_S12_MAX 2047
111#define P2_S11_MAX 1023
112#define P2_S10_MAX 511
122#define CSSR_TROP_HS_REF 2.3
123#define CSSR_TROP_WET_REF 0.252
129#define CSSR_UPDATE_TROP 0
130#define CSSR_UPDATE_STEC 1
131#define CSSR_UPDATE_PBIAS 2
137#define CSSR_TROPVALIDAGE 3600
138#define CSSR_STECVALIDAGE 3600
144#define CSSR_INVALID_VALUE -10000
150#define L6FRMPREAMB L6_PREAMBLE
151#define BLEN_MSG L6_FRAME_LEN
186#define CLAS_MAX_NETWORK 13
187#define CLAS_BANK_NUM 32
188#define CLAS_MAX_GP 80
194#define CLAS_MAX_NGRID 4
195#define CLAS_MAXPBCORSSR 20.0
498 double CPC[NFREQ + NEXOBS];
499 double PRC[NFREQ + NEXOBS];
502 double c[NFREQ + NEXOBS];
503 double p[NFREQ + NEXOBS];
808#define CLAS_L6_RELOCK_TIMEOUT 10.0
868 const double* Gmat,
const double* Emat,
double* iono,
double* rate,
double* var,
int* brk);
885 const double* Gmat,
const double* Emat,
double* zwd,
double* ztd,
int* tbrk);
956#define CLAS_CSSRINVALID (-10000)
959#define CLAS_MAXAGESSR_BIAS 120.0
962#define CLAS_MAXPBCORSSR 20.0
1023int clas_osr_zdres(
const obsd_t* obs,
int n,
const double* rs,
const double* dts,
const double* vare,
const int* svh,
1024 nav_t* nav,
double* x,
double* y,
double* e,
double* azel,
rtk_t* rtk,
int osrlog,
1045 const double* pb,
double* compL,
int* pbreset,
const prcopt_t* opt,
ssat_t ssat,
int ch,
MRTKLIB Bits Module — Binary bit operations and CRC functions.
void clas_check_grid_status(clas_ctx_t *ctx, const clas_corr_t *corr, int ch)
Check and update grid status flags based on correction availability.
int clas_osr_selfreqpair(int sat, const prcopt_t *opt, const obsd_t *obs)
Select frequency pair for multi-frequency processing.
int clas_route_l6frame(clas_ctx_t *ctx, int prn, int ptn, int l6mrg, gtime_t now)
Route one interleaved L6D frame to a CLAS channel (or drop it).
int clas_trop_grid_data(clas_corr_t *corr, const int *index, gtime_t time, int n, const double *weight, const double *Gmat, const double *Emat, double *zwd, double *ztd, int *tbrk)
Interpolate troposphere delay from grid points.
int readL2C(const char *file, nav_t *nav)
Read L2C 1/4 cycle phase shift table from file.
int clas_osr_corrmeas(const obsd_t *obs, nav_t *nav, const double *pos, const double *azel, const prcopt_t *opt, clas_grid_t *grid, clas_corr_t *corr, ssat_t ssat, int *brk, clas_osrd_t *osr, int *pbreset, int ch, clas_osr_ctx_t *osr_ctx)
Assemble per-satellite ionosphere/bias/antenna corrections.
int clas_input_cssr(clas_ctx_t *ctx, uint8_t data, int ch)
Input CSSR byte stream (one byte at a time, real-time).
void clas_restore_backup(clas_ctx_t *ctx, gtime_t time, clas_grid_t *grid, int l6mrg)
int cssr_sys2gnss(int sys, int *prn0)
Convert RTKLIB system bitmask to CSSR GNSS ID.
void clas_init_oload(clas_ctx_t *ctx)
Initialize ocean loading data in context.
void clas_set_l6tag(clas_ctx_t *ctx, int ch, double tag)
Set the receiver time tag of the L6 frame about to be input.
void clas_ctx_free(clas_ctx_t *ctx)
Free CLAS context (release heap-allocated bank control).
int cssr_gnss2sys(int gnss, int *prn0)
Convert CSSR GNSS ID to RTKLIB system bitmask.
int clas_bank_get_close(const clas_ctx_t *ctx, gtime_t time, int network, int ch, clas_corr_t *corr)
Merge closest corrections from all banks into a clas_corr_t snapshot.
int clas_osr_zdres(const obsd_t *obs, int n, const double *rs, const double *dts, const double *vare, const int *svh, nav_t *nav, double *x, double *y, double *e, double *azel, rtk_t *rtk, int osrlog, clas_osr_ctx_t *osr_ctx, clas_grid_t *grid, clas_corr_t *corr, ssat_t *ssat, prcopt_t *opt, sol_t *sol, clas_osrd_t *osr, int ch)
Compute zero-differenced phase/code residuals with CLAS corrections.
int clas_input_cssrf(clas_ctx_t *ctx, FILE *fp, int ch)
Input CSSR from file (one message at a time, post-processing).
int clas_read_grid_def(clas_ctx_t *ctx, const char *file)
Read CLAS grid definition file.
void chk_isb(int sysno, const prcopt_t *opt, const sta_t *sta, double y[5][2])
Get ISB correction values for a satellite system.
int clas_get_correct_fac(int msgid)
Get L6 facility ID from message ID byte.
int clas_osr_satcorr_update(gtime_t time, gtime_t teph, int sat, const prcopt_t *opt, const nav_t *nav, int ch, clas_osr_ctx_t *ctx)
Compute zero-differenced phase/code residuals with CLAS corrections.
void clas_check_grid_status_time(clas_ctx_t *ctx, gtime_t time, int ch)
void clas_bank_init(clas_ctx_t *ctx, int ch)
Initialize bank control for a channel.
int clas_ssr2osr(rtk_t *rtk, obsd_t *obs, int n, nav_t *nav, clas_osrd_t *osr, int mode, clas_ctx_t *clas)
Convert compact SSR corrections to observation-space representations.
int clas_get_grid_index(clas_ctx_t *ctx, const double *pos, clas_grid_t *grid, int gridsel, gtime_t obstime)
Select surrounding grid points and compute interpolation weights.
int readblqgrid(const char *file, clas_ctx_t *ctx)
Read BLQ ocean tide loading parameters for CLAS grid points.
void clas_update_global(nav_t *nav, const clas_corr_t *corr, int ch)
Apply global corrections (orbit/clock/bias) to nav_t.ssr[].
int readisb(const char *file, nav_t *nav)
Read ISB correction table from file.
#define CSSR_MAX_LOCAL_SV
int isL2C(int code)
Check if observation code is L2C.
int clas_ctx_init(clas_ctx_t *ctx)
Initialize CLAS context (allocate bank control on heap).
int clas_backup_valid(const clas_ctx_t *ctx, gtime_t obstime, int l6mrg)
Save/restore the latest usable CSSR snapshot for short correction gaps.
int clas_stec_grid_data(clas_corr_t *corr, const int *index, gtime_t time, int sat, int n, const double *weight, const double *Gmat, const double *Emat, double *iono, double *rate, double *var, int *brk)
Interpolate STEC (ionosphere delay) from grid points.
void setisb(const nav_t *nav, const char *rectype0, const char *rectype1, sta_t *sta0, sta_t *sta1)
Set ISB corrections for rover and reference stations.
void clas_osr_ctx_init(clas_osr_ctx_t *ctx)
Initialize OSR conversion context.
void clas_update_local(nav_t *nav, const clas_corr_t *corr, int ch)
Apply local corrections (trop/STEC) to nav_t.
void clas_osr_compensatedisp(clas_corr_t *corr, const int *index, const obsd_t *obs, int sat, double iono, const double *pb, double *compL, int *pbreset, const prcopt_t *opt, ssat_t ssat, int ch, clas_osr_ctx_t *osr_ctx, const nav_t *nav)
Compensate time variation of signal bias and ionosphere delay.
void clas_backup_current(clas_ctx_t *ctx, const clas_grid_t *grid, int l6mrg)
void clas_clear_current(clas_ctx_t *ctx, int ch)
Drop the current correction snapshot of one channel.
int clas_decode_msg(clas_ctx_t *ctx, int ch)
Decode the next pending CSSR message from the assembled bit buffer.
double clas_osr_prectrop(gtime_t time, const double *pos, const double *azel, double zwd, double ztd)
Precise troposphere model for CLAS (MOPS standard + mapping function).
MRTKLIB Foundation — Common types, standard includes, and system constants (MAXSAT,...
MRTKLIB L6 Module — QZSS L6 frame header parsing.
MRTKLIB Navigation Module — Navigation data types and satellite/nav utility functions.
MRTKLIB RTK Positioning Module — relative and precise positioning.
MRTKLIB Time Module — GNSS time types and conversion functions.
clas_clock_bank_t ClockBank[32]
clas_bias_bank_t BiasBank[32]
clas_trop_bank_t TropBank[32]
clas_orbit_bank_t OrbitBank[32]
clas_latest_trop_t LatestTrop
double pbias[MAXSAT][MAXCODE]
int sflag[MAXSAT][MAXCODE]
int smode[MAXSAT][MAXCODE]
double cbias[MAXSAT][MAXCODE]
double cbias[MAXSAT][MAXCODE]
double pbias[MAXSAT][MAXCODE]
stecd_t stecdata[80][MAXSAT]
int smode[MAXSAT][MAXCODE]
gtime_t obs_ref[CSSR_REF_MAX]
int tow_ref[CSSR_REF_MAX]
double grid_pos[13][80][3]
clas_dec_ssr_t dec_ssr[MAXSAT]
clas_grid_t backup_grid[2]
clas_bank_ctrl_t * bank[2]
int week_ref[CSSR_REF_MAX]
uint8_t fbuff[L6_FRAME_LEN]
double stec[13][80][MAXSAT]
double stec0[13][80][MAXSAT]
gtime_t stectime[13][80][MAXSAT]
double gridpos[13][80][3]
double comp_coef[2][MAXSAT *(5+5)]
double pbias_ofst[MAXSAT *(5+5)]
int comp_slip[2][MAXSAT *5]
double prev_ssr_range[MAXSAT]
clas_satcorr_t satcorr[2][MAXSAT]
double comp_bm[2][MAXSAT *(5+5)]
double comp_b0[2][MAXSAT *(5+5)]
double comp_iono0[2][MAXSAT]
double prev_ssr_orb_tow[MAXSAT]
double cpctmp[MAXSAT *(5+5)]
gtime_t comp_tm[2][MAXSAT]
gtime_t pt0tmp[MAXSAT *(5+5)]
double comp_ionom[2][MAXSAT]
gtime_t comp_t0[2][MAXSAT]
double discontinuity[5+5]
double gridpos[13][80][3]
double iono[13][80][MAXSAT]
int amb_bias[MAXSAT][MAXCODE]
uint8_t disc[MAXSAT][MAXCODE]
GNSS time representation.