学习rtklib(五)

由于我还没有进行钟差方面的研究,因此就跳过有关于钟差的函数了。先看后面的函数。有了前面的函数作为铺垫,后面的函数好看多了(^_−)☆

1.init_rnxctr函数

extern int init_rnxctr(rnxctr_t *rnx)

老规矩,有参数的先看参数的意义,然后再看有没有子函数,最后看函数本体。出现了一个以前没有见过的结构体。到rtklib.h中查找相应的结构体。(其实这些步骤已经形成固定套路了)

typedef struct {        /* rinex control struct type */
    gtime_t time;       /* message time */
    double ver;         /* rinex version */
    char   type;        /* rinex file type ('O','N',...) */
    int    sys;         /* navigation system */
    int    tsys;        /* time system */
    char   tobs[6][MAXOBSTYPE][4]; /* rinex obs types */
    obs_t  obs;         /* observation data */
    nav_t  nav;         /* navigation data */
    sta_t  sta;         /* station info */
    int    ephsat;      /* ephemeris satellite number */
    char   opt[256];    /* rinex dependent options */
} rnxctr_t;

观察结构体定义可以看出,这个结构体就是将之前的导航电文结构体和观测值结构体进行了组合,从而形成了一个能够概括所有RINEX格式文件的结构体。
再回到函数本身,发现函数其实就是将上述的结构体进行初始化,即将指针指向新开辟的内存空间,将其中的各个参数置零,函数本身没有什么好说的。

2.free_rnxctr函数

extern void free_rnxctr(rnxctr_t *rnx)

函数本身没有什么太高深的东西,也并不是很长,但是却给我提了一个醒。我在平时使用C语言的指针的时候,没有注意到内存管理问题,其实应该严格一点,使用完指针和新开辟的内存之后,应该先释放内存,也就是进行free操作,然后将指针指向NULL。这样应该可以避免很多内存泄漏的问题。

3.open_rnxctr函数

extern int open_rnxctr(rnxctr_t *rnx, FILE *fp)

这个函数也没有什么太好说的,它是将RINEX文件头中的信息读入rnx参数中。注意,只是文件头的信息。

4.input_rnxctr函数

extern int input_rnxctr(rnxctr_t *rnx, FILE *fp)

这个函数是用来将RINEX文件体的信息读入rnx中。从下面的函数体中可以看出,rnx的类型是已知的,那么我们可以推测在调用这个函数的时候应该先调用open_rnxctr函数,解析头文件,然后再使用这个函数。

总结

剩下的rinex.c中的函数大多数是输出函数,也就是将各种信息输出到文件中,也可以说是RINEX文件产生的函数,我个人认为现在没有再看下去的必要了,因为我目前是想要读取现成的RINEX文件,然后掌握导航的各种算法。至于RINEX文件是怎么产生的,可以暂时不用了解,等着以后用到回来再看。下面就进入标准单点定位和精密单点定位的环节吧。这以后就需要导航专业知识的支撑了,所以应该一边学一边看了。以前的东西就是纯粹的C语言知识。最近在写课程的程序,还是尽量抽时间多学一点rtklib吧(*´゚∀゚`)ノ
(ps:这篇文章有点水,没什么太多的东西,嘿嘿嘿)

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值