私はPythonを使ってSRIのキーワードにアクセスしようとしています。 Pythonでこれを行うための例やドキュメントはありません。PythonでアクセスするSRI(redhawksdr)
私はSRIを取得し、キーワードをチェックし、もしあれば、対応する値をコピーしたいと思います。
SRIはタプルとしてコピーされると思いますが、おそらくCF変換があり、例が見つかりません。
どうすればよいですか?
私はPythonを使ってSRIのキーワードにアクセスしようとしています。 Pythonでこれを行うための例やドキュメントはありません。PythonでアクセスするSRI(redhawksdr)
私はSRIを取得し、キーワードをチェックし、もしあれば、対応する値をコピーしたいと思います。
SRIはタプルとしてコピーされると思いますが、おそらくCF変換があり、例が見つかりません。
どうすればよいですか?
これまで見てきたとおり、SRIオブジェクトはPythonで、HardLimitのPython実装と同じ方法で受け取ることができます(here)。
データ、T、EOS、streamIDで、スリランカ、sriChanged、inputQueueFlushed = self.port_dataFloat_in.getPacket()
あなたはSRIオブジェクトを作成したら、キーワードがリストされています。 pythonのサンドボックスの例を見てみましょう。私はプロパティが設定されている場合、キーワードCHAN_RFとCOL_RFを出力するREDHAWK 2.0.1とSigGen 2.0.1を使用しています。
>>> from ossie.utils import sb >>> src = sb.launch('rh.SigGen') >>> src.chan_rf = 1e6 >>> src.col_rf = 1e3 sink = sb.DataSink() >>> src.connect(sink, usesPortName="dataFloat_out") >>> sb.start() >>> sb.stop() >>> sri = sink.sri() >>> sri.keywords [ossie.cf.CF.DataType(id='CHAN_RF', value=CORBA.Any(CORBA.TC_double, 1000000.0)), ossie.cf.CF.DataType(id='COL_RF', value=CORBA.Any(CORBA.TC_double, 1000.0))] >>> sri.keywords[0].id 'CHAN_RF' >>> sri.keywords[0].value CORBA.Any(CORBA.TC_double, 1000000.0) >>> sri.keywords[0].value.value() 1000000.0
キーワードは、SRIでstring/CORBA :: AnyのペアであるCF DataTypのリストとして渡されます。 Pythonでは、キーワードは次のようなものを使ってアクセスできます:
from omniORB import any
packet = self.port_myPortName.getPacket() # note that the return value is a little different for REDHAWK versions < 2.0
if packet.dataBuffer is None:
return NOOP
for keyword in packet.SRI.keywords:
if "keywordOfInterest" == keyword.id:
myValue = any.from_any(keyword.value)