2016-11-10 1 views
0

pythonスクリプトを使用して、単一のホスト上の異なるドメインとノードで実行されているアプリケーションで外部ポートを正常に接続していますuses-component.connect(provide-component>、providePortName = "portName"別のホストではエラーが発生します。私はnodeBooterを使ってリモートドメインとノードを起動し、ローカルのpythonを使ってそれを制御し、波形を起動して起動することができますが、使用ポートホストでpythonを実行すると、提供ポートホスト上のドメインにredhawk.attach() 。エラーはStandardErrorです:ドメインが見つかりませんでした。ドメインが他のホスト上で実行されていて、ネームサービスが正しく接続されるようにnameclt listに表示されます。これは可能であると思われますか、私はただ何かを見逃しているのですか、別のホストのドメイン間で外部接続を行うことに問題がありますか?pythonを使用して異なるホスト上で動作するアプリケーションで外部ポートを接続するにはどうすればよいですか?

+0

申し訳ありません - 質問の半分が何かに落ちました。私はそれに入るでしょう。 –

答えて

2

あなたの環境をエミュレートするためにドッカーを使用します。うまくいけば私はあなたの状況を正しく理解しました。私は3台のマシンを持っています。 A、B、およびC。AとBはそれぞれ独自のドメイン、GPP、およびランニング波形を持ちます。私の場合、AとBはドッカーのコンテナです。 Cは接続してAとBと連絡を取り合い、接続するために使用されます。

これらの画像は一般公開されていますので、ドッカーがインストールされている場合はお気軽にお問い合わせください。

マシンA(IPアドレス172.17.0.3)

# Launch our 2.0.2 container 
[[email protected]]$docker run -it --rm axios/redhawk:2.0.2 bash -l 

# Install a test waveform 
[[email protected] ~]$ sudo yum install -y rh.FM_mono_demo 

# Start the omni services 
[[email protected] ~]$ sudo $OSSIEHOME/bin/cleanomni 

# Start domain and dev manager 
[[email protected] ~]$ nodeBooter --daemon -D 
[[email protected] ~]$ nodeBooter --daemon -d $SDRROOT/dev/nodes/DevMgr_12ef887a9000/DeviceManager.dcd.xml 

# Launch the waveform via python 
[[email protected] ~]$ python 
>>> from ossie.utils import redhawk 
>>> dom = redhawk.attach() 
>>> app = dom.createApplication('/waveforms/rh/FM_mono_demo/FM_mono_demo.sad.xml') 

私たちは、IPは172.17.0.2として与えられたのマシンB、のためのまったく同じ手順を実行します。これらの端末を閉じたり、終了したりしないようにしてください。

今やホストCで、私たちはPythonに飛び込み、各ドメインに接続し、接続を行うことができます。

[[email protected]]$python 
>>> from ossie.utils import redhawk 
>>> dom1 = redhawk.attach('REDHAWK_DEV', '172.17.0.3') 
>>> dom2 = redhawk.attach('REDHAWK_DEV', '172.17.0.2') 
>>> app1 = dom1.apps[0] 
>>> app2 = dom2.apps[0] 
>>> app1.comps[0].name 
'rh.TuneFilterDecimate' 
>>> tfd1 = app1.comps[0] 
>>> app2.comps[1].name 
'rh.psd' 
>>> psd2 = app2.comps[1] 
>>> tfd1.connect(psd2) 

SO 3台のマシンを持っていた我々は、A、B、およびC、AおよびBはそれぞれ波形を実行し、マシンCから、我々は、マシンB

上で実行されているPSD成分にマシンA上で実行されているTFDコンポーネントを接続します
+0

ありがとうございます。私の問題は、ホストaddrに付けるオプションのparamでした。今それは正常に動作します。 –

関連する問題