GNU Radio Block 运行 程序终止代码

GNU Radio Block run code on program termination

我正在为自定义 SDR 硬件编写 gnuradio 接收器块。当 gnuradio 程序关闭时,我需要确保功率放大器被禁用(因为它们消耗相当多的功率并产生大量热量)。我尝试使用 class 析构函数来执行此操作,认为它会在程序终止时被调用,但事实并非如此。 gnuradio 是否提供了在程序终止时 运行 清理的方法?

您可以重载 gr::block 基础 class 的 stop 方法。正是为了这个!

Python 中的覆盖示例:如果插入 Python 块,请像这样添加 stop 方法:


class blk(gr.sync_block):
    def __init__(self):
        # omitted...

    def work(self):
        # omitted...

    def stop(self):
        print "do stopping work here"
        return True

备注:

  • 我不知道 return 值有什么用。在评论中回答了——谢谢! )
  • 在我的实验中,对于缺少输入和输出的块,stop 似乎不会 运行。