我对这个冗长的问题事先表示歉意。我想确保我把所有的东西都弄坏了。我已经在GNU无线电(并使用USRP b200)的帮助下设置了一个看似简单的python脚本来持续接收信号,当这个信号达到一定的功率水平时,一个阈值变量将让用户知道检测到了一个信号,然后我想开始收集该信号,以便稍后查看。因此,我有一个python脚本,它等待检测到一个信号,然后当它被检测到时,它将开始使用另一个python脚本进行收集。的问题是,USRP不会让我同时接收和收集。USRP能同时接收和收集吗?
我的GNU无线电设置
UHD: USRP Source ---> Low Pass Filter ---> Complex to Mag^2 ---> Threshold ---> Probe Signal使用一个函数探针和一个标签(以显示用户是否检测到信号)
生成/我更新的代码
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来运行时,它会开始运行它,但是当它到达tb = usrp_read()时会出现一个错误
Traceback (most recent call last):
File "USRP_collect.py", line 29, in __init__然后运行时错误
empty device address我尝试运行一个视图文件,而不是收集文件(view只显示信号的fft,它自己工作),当我试图调用这个类时,它给了我同样的错误。
发布于 2017-06-19 10:10:13
USRP能同时接收和收集吗?
是的,所有的设备都是全双工的。
您的错误是尝试从两个进程中使用相同的USRP。这是行不通的-你需要集成你的接收器和发射机在相同的流程图/过程。
事实上,在GNU无线电中,这很简单:只需在一个流图中使用USRP Sink和Source。我不知道你的流程图是做什么的,但也:信号探针几乎肯定不是走的路。
https://stackoverflow.com/questions/44595843
复制相似问题