Project

General

Profile

Actions

機能 #990

closed

相手Port死亡時の自動接続解除機能

Added by n-ando almost 16 years ago. Updated over 15 years ago.

Status:
終了
Priority:
通常
Assignee:
-
Target version:
-
Start date:
11/19/2009
Due date:
% Done:

100%

Estimated time:

Description

  • get_port_profile
  • get_connector_profile
  • get_connector_profilesが呼ばれた際に、自分が保持しているPortProfile内の
    に、ConnectorProfileListをチェックして、死んでいるポートがあれば、
    disconnectを呼ぶロジックを追加する。

接続しているかの状態を知り、かつ相手が死んでいた場合それを
disconnectする必要があるケースというのは、

  1. 相手のポートのサービスオペレーションを呼ぶ場合
    • これはOutPort ではInPort::put() を呼んでCOMM_FAILUR が帰った場合 disconnect する、これまでの方法。OutPort::get() でも同様のことを行うべき。
         サービスポートについては、フレームワーク的にこれを検知する方法が思いつかないので、従来通りユーザに任せることにします。
  1. コネクタを取得して、接続リストを調査する場合
    • RTSEにおいて、接続線はget_port_profile から取得するConnectorProfileList により1秒おきにチェックされ描画が更新されています。つまり、get_port_profile 等のオペレーションが呼ばれるまでは、外部からは接続状態を知りえないので、そのタイミングで接続に関わるポートを調査すれば十分だということになります。

詳細は、C++版r1572のコミットを参照。


Related issues 1 (0 open1 closed)

Related to OpenRTM-aist (Python) - 機能 #991: 相手Port死亡時の自動接続解除機能終了kurihara11/19/2009

Actions
Actions

Also available in: Atom PDF