GnuRadio-查看源码方式

1.创建grp

以PLL Frequency Detector为例

 

 

创建一个空的锁相环频率检波模块

 2.将Options设置成python输出

因为很多模块对C++的支持不好,会报错

 3.生成py代码

查看模块名

 

 

 4.使用everything,搜索pll_freqdet_cf【这就是相关模块实现】

 

 

  这里前提必须要下载源码,否则找不到;其中xx.yml文件是grp的配置,pll_freqdet_cf.h是类头文件,pll_freqdet_cf_impl.xx是实现私有化

5.查看pll_freqdet_cf.h

 

 

 这个接口是面向用户的,一般都是一个静态make函数,这里有三个入参:loop_bw,max_freq,min_freq,最终会在GRP中供设置:

 

 

6.查看pll_freqdet_cf_impl.h

 

 

 

 可以看到pll_freqdet_cf_impl继承了pll_freqdet_cf

7.查看pll_freqdet_cf_impl.cc

 

 

  这里实现了接口的make接口,内部是创建了一个实现类pll_freqdet_cf_impl的智能指针,故会调用pll_freqdet_cf_impl构造函数

 

 

 ①、用户传递进入的三个参数依旧作为构造入参;

 ②、在初始化列表里实现了pll_freqdet_cf的父类sync_block

 

 

  这里应该只是对模块做一些标记

③、在初始化列表里实现了pll_freqdet_cf的父类control_loop,同时传入用户参数

 

 

 

 

 

 此时都是将相关参数存储

8.开始运行

上面第7步主要是通过层层代码查看其源码,实际上运行的时候会调用实现类的work接口

 

 这里基本就是核心的地方了。

posted @ 2023-03-19 23:28  朱小勇  阅读(414)  评论(0编辑  收藏  举报