2017-12-07 22 views
0

私は以前に「C++ RedHawkスタートアッププログラムの作成について」と尋ねましたが、CORBA仕様を読んでも波形とRedHawkのドメインからアプリケーションを起動する方法を確立できませんでしたサーチ。 RedHawkにパッケージされたPythonプログラムをC++に書き直すことで、C++の起動プログラムを作成できると思います。思考の方法は合っていますか? 私はPythonを削除してイメージサイズをコンパクトにしましたが、私自身のCPUで始めることができないと意味がありません。私はちょうど方向を教えたいと思います。RedHawkスタートアップPythonプログラムをC++プログラム

答えて

0

あなたは永続しましたが、あなたが望むことをやるためには、コアフレームワークのソースコードを掘り起こす必要があります。 here

void DeviceManager_impl::getDomainManagerReference (const std::string& domainManagerName) 

をリンクさmethotを見ると、ドメインby its nameの参照を取得する方法を探してみてください。その後、アプリケーションを起動するために利用可能なDomainメソッドがあります。ドメイン/デバイス/リソースのCORBA::Object_ptrを持っていれば、_narrow()メソッドを使用してリファレンスを取得できます。ドメインの場合、次のような方法にアクセスできます:

createApplication 
installApplication 
uninstallApplication 
deviceManagers 
applications 

問題を解決するのに十分なはずです。

+0

ありがとうございました。私はコアフレームワークのソースコードを掘り下げる必要があると思います...しかし、各ドメイン/デバイス/リソース/アプリケーションクラスには、ossie/CF/cf.hにスタブコードがあります。 ossie/CF/cf.hのオブジェクト参照呼び出しに使用します。この方法は正しいですか?コアフレームワークのソースコードを掘り下げずにそれを実行できますか? –

+0

私が「掘りなさい」と言うとき、私はあなたがコアフレームワークの実装を勉強することをたくさん学ぶかもしれないことを意味します。私はあなたの質問を理解していませんでした。このヘッダーファイルにはクラス定義があります。しかし、どのように[nodeBooter](https://github.com/RedhawkSDR/core-framework/blob/a291ec1996606104115dbe2c7a20e31bc9a58f73/redhawk/src/control/framework/nodebooter.cpp)によって開始されたドメインの参照を取得する予定ですか? ? –

+0

あなたは正しいです。私はnodeBooterによって起動されたドメインの参照を取得する方法を考えています。この場合、ヘッダーファイルのクラスは使用できません...コアフレームワークのソースコードを理解することは難しいです。さて、私は最善を尽くします。 –