プロジェクト

全般

プロフィール

調査 #3643

未完了

Java版の1.2新機能の動作確認

n-miyamoto さんが約8年前に追加. 約8年前に更新.

ステータス:
新規
優先度:
通常
担当者:
対象バージョン:
開始日:
2016/09/15
期日:
2016/10/15 (8年以上 遅れ)
進捗率:

50%

予定工数:
30.00時間

説明

以下のチケット記載の機能がどのように実装されているかの調査を行い、C++版、Python版との違いを調べる。

n-miyamoto さんが約8年前に更新

  • 進捗率0 から 50 に変更

動作確認したところ以下の機能については正常に動作できませんでした。

⑤コンポーネント起動時に事前設定に従い起動時にポート同士を接続する(非同一プロセス)
⑥起動時にコンポーネントをアクティベーションする機能(非同一プロセス)
⑦トピックベースの接続機能
⑪共有メモリ型データポート接続機能
⑫名前ベースのコンポーネント指定方法の実装
⑬名前付けポリシー機能の拡張
⑭スレーブマネージャの名前によるグルーピング

⑤コンポーネント起動時に事前設定に従い起動時にポート同士を接続する(非同一プロセス)

⑥起動時にコンポーネントをアクティベーションする機能(非同一プロセス)

これらの機能についてはどこで実装しているのかが分からず、使用方法も不明なため動作確認はできませんでした。少なくともPython版と同じ実装はしていないと思います。

⑦トピックベースの接続機能

C++、Pythonとほぼ同じ実装ですが、動作はできませんでした。
publishPorts関数、subscribePorts関数の以下の部分に問題があるようですが、hasKey関数で要素が存在しないことを確かめてからgetProperty関数で取得した値がnullではないと判定することで要素が存在することを確認しており意味が不明です。

ここを修正しても他に問題があるらしく正常に動作はしません。

if(
      ( prop.hasKey("publish_topic")==null ||
        prop.getProperty("publish_topic")!=null )
      &&
      ( prop.hasKey("subscribe_topic")==null ||
        prop.getProperty("subscribe_topic")!=null )
      &&
      ( prop.hasKey("rendezvous_point")==null ||
        prop.getProperty("rendezvous_point")!=null )
   ){

   continue;
}

⑪共有メモリ型データポート接続機能

Windows、Ubuntuどちらも通信失敗しました。
write関数を呼び出した際にコネクタが切断されます。

⑫名前ベースのコンポーネント指定方法の実装

is_equivクラスに問題があるようなのですが詳細は不明です。

⑬名前付けポリシー機能の拡張

⑫の機能が正常に動作しないとこちらも動作できません。

⑭スレーブマネージャの名前によるグルーピング

create_component_by_address関数の以下の部分でエラーが発生します。
文字列mgrstrはnullの場合があるので、nullの時にエラーになります。


if(mgrstr.isEmpty())

何故かマスターマネージャ、もしくはスレーブマネージャが1つしか登録されていないはずなのに2つ登録される現象が発生しており、上の箇所を修正しても正常に動作できません。
ちなみにマスターマネージャ、スレーブマネージャを格納する配列m_masters、m_slavesの0番目にはnullが入ってしまいます。

他の形式にエクスポート: Atom PDF