OpenRTM / OpenRTP-aist

OpenRTP-aist: RT-Middleware and OMG RTC based component and system development tools implemented by AIST
Other
1 stars 6 forks source link

データポート接続時、シリアライザ選択時の動作の仕様を考える #295

Closed Nobu19800 closed 4 years ago

Nobu19800 commented 4 years ago

Is your feature request related to a problem? Please describe.

Describe the solution you'd like ポートプロファイルのdataport.marshaling_typesの値から特定のシリアライザを使うと通信可能かを判定して異なるデータ型のポートでも接続可能にする。

Describe alternatives you've considered InPort、OutPortの接続について以下の5種類の状況が考えられる。

image

image

-(C) OutPort側で独自シリアライザが使える場合

image

-(D) OutPort、InPortの両方で独自シリアライザ、デシリアライザが使える場合

image

-(E) cdr以外のシリアライザを使用可能な場合

image

まず(A)については従来通りシステムダイアグラム上でデータ型を比較して接続可能にする。

(D)については、使用可能なシリアライザから以下のシリアライザの種類符号化後のデータ型(複合前のデータ型)が一致した場合に接続可能にする。

シリアライザの命名規則を以下に示す。

image

(B)についてはさらに2種類の状況が考えられる。

この場合は(D)と同様にシリアライザの種類符号化後のデータ型(複合前のデータ型)を比較して判定する。

image

この場合についてはシリアライザの種類の比較はできるが、符号化後のデータ型(複合前のデータ型)の比較ができない。

image

符号化後のデータ型(複合前のデータ型)を省略している場合、ポートプロファイルから取得できるポートのデータ型と符号化後のデータ型(複合前のデータ型)は同一であるため、ポートプロファイルから取得したデータ型と比較する。

image

(C)についても同様に処理する。

(E)については(D)と同様にシリアライザの種類符号化後のデータ型(複合前のデータ型)を比較して判定する。

image

接続するポートのシリアライザの名前を全て比較して、上記の方法で接続可能かを判定する。

コネクタプロファイルの設定画面でポートを通信可能にするシリアライザの名前のみ表示するのが理想であるが、例えば以下のように通信可能にするシリアライザが複数存在し、組み合わせ次第で通信可能できない場合に問題になる。

image

この場合にOutPort Serializerのコンボボックスで選択したシリアライザと対応するデシリアライザをInPort Serializerに自動的に表示するという処理が必要になり難しくなるため、現行通り使用可能なシリアライザ、デシリアライザは全て表示するようにする。

ただし、Serializer Typeに表示する項目は現状ではシリアライザの種類を比較してシリアライザの種類をドロップダウンリストに表示するようになっているが、単純にInPortとOutPortのシリアライザの名前を比較して一致したものを表示するだけに変更する。

Additional context この修正内容は@n-ando さんに確認を取っていないため、指示を受けてから作業を行う。

Nobu19800 commented 4 years ago

上記の動作確認には以下にアップロードしたserializer_sample.zipを使用する。

n-ando commented 4 years ago
  1. 現在dataport.data_type が一致した時のみポートの接続が可能になっていますが、この判断をこのissueのロジックに変更してください。
  2. ConnectorProfileのダイアログの表示の変更 2.1 シリアライザ指定プルダウンには、cdr + rosなど他のシリアライザがあればそれらを表示 2.2 cdrのみ、詳細指定なしても接続可能 2.3 cdr以外は、詳細指定が必要
  3. 詳細指定ダイアログ 3.1 左に側にOutPort, 右側にInPortのプルダウン 3.2 プルダウンには、選択可能なシリアライザを列挙 3.3 選択時に接続可能せいは、赤文字でステータスバーに表示

以上のように変更をお願いいたします。> @ga-sakamoto

ga-sakamoto commented 4 years ago

@Nobu19800 様 サンプルRTCおよび実行用バッチファイルなどのご作成ありがとうございました. ただ,たいへん申し訳ございませんが,(B)の(1)に該当するサンプルがどれになるのかがわかりませんでした.

ga-sakamoto commented 4 years ago

@Nobu19800 様 何度も申し訳ございません. もしも可能であれば,「コネクタプロファイル設定画面について」に記載のある「接続可能」「接続不可」が混在したサンプルにつきましてもご提供頂けませんでしょうか?

Nobu19800 commented 4 years ago

以下のようにサンプルを追加しました。

ga-sakamoto commented 4 years ago

早速のご対応ありがとうございました.