对于这个冗长的问题,我提前道歉。我想确保我把所有东西都放下了。我在 GNU Radio 的帮助下(并使用 USRP b200)设置了一个看似简单的 python 脚本来连续接收信号,当这个信号达到一定的功率水平时,一个阈值变量会让用户知道信号有被检测到,然后我想开始收集该信号以便稍后查看。所以我有一个等待检测到信号的python脚本,然后当它被检测到时,它将开始使用另一个python脚本进行收集。问题是,USRP 不允许我同时收货和收货。USRP 可以同时接收和收集吗?
我的 GNU Radio 设置
UHD: USRP Source ---> Low Pass Filter ---> Complex to Mag^2 ---> Threshold ---> Probe Signal
带有功能探针和标签(在检测到信号时向用户显示)
GNU 生成/我更新的 Python 代码
Class autoCollect(gr.top_block, Qt.QWidget):
def __init__(self):
.
. #some setup stuff
.
def _probe_variable_probe():
while True:
val = self.probe_signal.level()
try:
self.set_probe_variable(val)
except AttributeError:
pass
if val == 1.0 # If there is a signal detected...
p = subprocess.Popen("python USRP_collect.py", shell=True)
p.wait()
_probe_variable_thread = threading.Thread(target=_probe_variable_probe)
_probe_variable_thread.daemon = True
_probe_variable_thread.start()
.
. #some more setup stuff
.
if __name__ == '__main__':
tb = autoCollect()
tb.start()
tb.show()
USRP_Collect
Class usrp_read(...):
def __init__(...)
.
.
.
if name == '__main__':
tb = usrp_read(...)
tb.run()
问题:
当我尝试调用 USRP_collect 以在我的 autoCollect 脚本中运行时,它开始运行它,但是当它运行时会tb = usrp_read()
出现错误
Traceback (most recent call last):
File "USRP_collect.py", line 29, in __init__
然后是运行时错误
empty device address
我尝试运行视图文件而不是收集文件(视图只显示信号的 fft,它自己工作)并且当我尝试调用类时它给了我同样的错误。