⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdsmooth_main.c

📁 根据GPS官方网站提供的gps定位方法而编写的C语言gps定位代码
💻 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 + -