2017-06-16 10 views
0

私は長時間の質問のために事前にお詫び申し上げます。私はすべてがダウンしていることを確認したい。私は、GNU Radioの助けを借りて(そしてUSRP b200を使って)一貫して信号を受信するような、シンプルなPythonスクリプトを設定しました。この信号が一定の出力レベルに達すると、スレッショルド変数によって、検出された後、その信号を収集して後で表示したいと考えています。だから私はシグナルが検出されるのを待っているpythonスクリプトを持っています。それがそうであれば、別のpythonスクリプトを使って収集を開始します。 問題は、USRPは私が同時に受信し、収集することができないということです。 USRPは同時に受領して回収できますか?GNUラジオ/ Python - USRP同時に受信と収集

機能プローブとラベル(信号が検出されている場合は、ユーザーを表示する)と私のGNUラジオセットアップ

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_Co llect

Class usrp_read(...): 

    def __init__(...) 
    . 
    . 
    . 
if name == '__main__': 
    tb = usrp_read(...) 
    tb.run() 

問題: 私はUSRP_collectは私autoCollectスクリプトで実行するために呼び出すしようとすると、それを実行を開始するが、それは、それは次にエラー

Traceback (most recent call last): 
    File "USRP_collect.py", line 29, in __init__ 

を与える tb = usrp_read()ために取得するときランタイムエラー

empty device address 

代わりにビューファイルを実行しようとしました私はクラスを呼び出そうとすると、収集ファイル(ビューは単独で動作する信号のfftを表示します)を表示し、同じエラーを表示します。

答えて

1

USRPは同時に受信できますか?

はい、すべてのデバイスは全二重対応です。

あなたの間違いは、2つのプロセスから同じUSRPを使用しようとすることです。それは動作しません - 同じフローグラフ/プロセスで受信機と送信機を統合する必要があります。

実際、GNU Radioではこれは簡単です:ただ一つのフローグラフでUSRP SinkとSourceを使用してください。あなたのフローグラフが何をしているのか分かりませんが、シグナルプローブはほとんど確かに行く方法ではありません。

+0

基本的には、別のUSRP(作業中)を使用して送信している信号を受信しようとしています。次に、私は、信号のパワーレベルが信号が存在するかどうかを判断するのに十分高いかどうかを知りたいと思います。スレッショルドとプローブを入れて、常に更新し、信号があるかどうかを私に知らせることによって、私はすべてそれを行いました。信号が存在するかどうかを収集しながら、それをどのように保つことができますか? – BBEng

関連する問題