Project

General

Profile

調査 #3643

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

Added by n-miyamoto about 5 years ago. Updated about 5 years ago.

Status:
新規
Priority:
通常
Assignee:
Start date:
09/15/2016
Due date:
10/15/2016
% Done:

50%

Estimated time:
30.00 h

Description

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

History

#1 Updated by n-miyamoto about 5 years ago

  • % Done changed from 0 to 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が入ってしまいます。

Also available in: Atom PDF