在此记录代码学习过程,如有错误还请各位大佬多多指点;
pppmaster是基于clion2019.3.4版本下编译的,可以进行多系统,多产品调试,基于无电离层组合进行ppp解算,其中也包含惯导部分,本人方向不涉及因此不进行学习。
相关源码网址如下:yxw027/PPP_AR: Multi-GNSS Precise Point Postioning with Ambiguity Resolution (github.com)
首先进行程序调试,在此不进行记录,此处采用的是ppp-wumconf文件,采用wum产品进行解算
程序开始于pppar.c源文件中,在main函数中进行以下过程:
1.根据parsecmd函数进行读取conf文件
2.对起始时间和结束时间相减并用newround函数进行取整来判断是否为单日文件,若日期大于1,则在令popt.prctype=1;即设置为批处理模式。
3.
extern int loadprcfiles(const char *dir, const prcopt_t *popt, filopt_t *fopt, sta_t *sta, int *nsta)
该函数将各个文件路径配置到fopt_结构体中,其中dir为popt_.prcdir即conf里预先设置的文件总路径,popt,fopt同rtklib中一致,为处理和文件参数结构体,sta_t *sta,nsta这两个参数都未用到,个人猜测应该是存储基准站坐标的相应结构体。
4.随后进入
extern int process(prcopt_t *popt, filopt_t *fopt, solopt_t *sopt)
该函数功能为获取基准站站名,创建输出文件(matchout),以及将广播星历,轨道钟差文件赋值到infile数组中,并最后进入postpos文件开始进行spp的处理。其三个参数为三个基础结构体,分别为处理设置,文件设置,输出设置结构体。
补:在prcopt_t *popt, filopt_t *fopt, solopt_t *sopt这几个结构体中,是有设定好的初值的,初值则是在option.c源文件中进行初始的设置。