📄 sdsmooth_main.c
字号:
#include <stdio.h>#include "gpsconst.h"extern int readsmooth( FILE **inp, double *T, boolean *SV, double *P, double *C, double *S, long *N);extern void sdsmooth_input_support(vec3 Xr,vecb32 SVe, double eph[32][16]);extern void sdsmooth_calc_phase( FILE * out, vec3 Xr, vecb32 SVe, vecb32 SVr, vecb32 SVm, vec32 Sr, vec32 Sm, double eph[32][16], double Tr);main(int argc, char *argv[]){ FILE *inr, *inm, *out; double Te, Tr, Tm; int prn, k; double eph[32][16]; vec32 Pr, Pm, Cr, Cm, Sr; vec32 Sm; vecb32 SVe, SVr, SVm; veci32 Nr, Nm; vec3 Xr; /*the following data should be available: 1. Ephemeris data and reference position, file support.txt 2. Pseudoranges at ref rcvr with receiver time of reception for each SV in file rangeref.txt 3. Pseudoranges at mov rcvr in file rangemov.txt*/ sdsmooth_input_support(Xr, SVe, eph); /*open observation data file of reference receiver*/ inr = fopen("rangeref.txt","r"); inm = fopen("rangemov.txt","r"); /*open output data file*/ out = fopen("outsdsms.txt","w"); if (out == NULL) { fprintf(stderr,"Unable to open file outsdsms.txt\n"); exit(-1); } /*initialize values*/ Tr = -2.0; Tm = -1.0; for (prn = 1; prn <= 32; prn++) { Nr[prn - 1] = 0; Nm[prn - 1] = 0; } do { /*loop through epochs*/ /*look for set of observations with common epoch time*/ do { while (Tr < Tm) { if ( readsmooth(&inr, &Tr, SVr, Pr, Cr, Sr, Nr) == 0 ) { goto NO_MORE_INPUT; } } while (Tm < Tr) { if ( readsmooth(&inm, &Tm, SVm, Pm, Cm, Sm, Nm) == 0 ) { goto NO_MORE_INPUT; } } } while (Tm != Tr); /*observations with common epoch time found*/ sdsmooth_calc_phase(out,Xr,SVe,SVr,SVm, Sr, Sm, eph,Tr); readsmooth(&inr, &Tr, SVr, Pr, Cr, Sr, Nr); /*read next ref observation*/ } while ( 1 );NO_MORE_INPUT: /*end of either file*/ /*close files*/ fclose(inr); fclose(inm); fclose(out);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -