GNU Radio官方教程系列(w五):运行时更新变量
本教程介绍如何使用 QT GUI 小部件在流程图运行时更新变量。
请回顾上一篇教程 《流程图中的变量》 ,了解变量的相关知识。下一篇教程 《信号数据类型 》将讨论数据类型以及如何在 GNU Radio 中表示复数信号和实数信号。
QT GUI range
GNU Radio 模块库自带 QT GUI 组件。这些组件允许在流程图运行时对其进行交互和修改。QT GUI Range 组件可以创建一个滑块,用于更新变量。
在代码块库中搜索 range :
![]()

将 QT GUI Range 模块拖放到工作区中:
![]()

QT GUI Range 的 工作方式类似于变量块。需要设置 QT GUI Range 的默认参数。双击 QT GUI Range 块即可编辑其属性。QT GUI Range 块会替换 frequency 变量,因此请先将 Id 字段更改为 frequency 。
默认值 是流程图开始时的值。 将默认值 设置为 0。 起始值 和 停止 值分别是滑块的起始值和停止值。起始值输入 -samp_rate/2 ,停止值输入 samp_rate/2 。 步长 值是滑块的分辨率。在本例中, 步长 设置为 100 Hz。
![]()

显示错误信息:
ID "frequency" is not unique.
出现此错误信息的原因是变量块和 QT GUI Range 都使用了名称 frequency 。此问题稍后将得到解决。单击 “确定” 保存属性。
右键单击变量块并选择 “禁用” ,或按键盘上的 D 键 :
![]()

该代码块已被忽略,错误已解决。
![]()

点击箭头或 播放 按钮运行流程图:
![]()

流程图的初始频率为 0,这是在 QT GUI range 块中输入的默认值:
![]()

然后可以通过以下方式更新频率参数:
- 拖动滑块
- 输入值
- 点击向上或向下箭头
![]()

频率已更新为 -5000,这在频谱图中以 橙色 反映出来。
QT GUI 选择器
QT GUI 选择器 会为变量创建一个下拉菜单选项。依次点击 “核心” 、 “GUI 小部件” 、 “QT” 模块,然后将 QT GUI 选择器 拖放到工作区中。
![]()

更新 “选择器” 模块的默认参数。“选择器”模块会在流程图运行时创建一个选项列表供 用户 选择。本例中使用了三个频率:0、1000 和 -2000。请更新 “选择器” 模块中的以下属性:
- ID :频率
- 默认选项 :0
- 选项 0 :0
- 标签 0 :频率:0
- 选项 1 :1000
- 标签 1 :频率:1000
- 选项 2 :-2000
- 标签 2 :频率:-2000
“选项” 字段是变量的值, “标签” 是显示在下拉菜单中的文本描述。图片显示了 “选项” 以 橙色 高亮显示, “标签” 以 红色 高亮显示的示例:
![]()

单击 频率将使用默认值:0 “确定” 0。 保存参数。运行流程图时,初始 0 的 。左上角的下拉框显示已选择频率 时域和频域均显示频率为 信号。
![]()

通过点击下拉菜单选择数值。点击 “频率:1000” :
![]()

更新后的频率可以在频谱图中看到:
![]()

下一个教程 “信号数据类型 ”讨论了 GNU Radio 中的数据类型以及如何表示复杂信号和实数信号。
全部回复 (0)
lium
社区创作者
