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接口

这里基本就是核心的地方了。
长风破浪会有时,直挂云帆济沧海!
可通过下方链接找到博主
https://www.cnblogs.com/judes/p/10875138.html