Project

General

Profile

機能 #323

PortのユーザAPIの軽微な改良

Added by n-ando almost 13 years ago. Updated over 11 years ago.

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

100%

Estimated time:

Description

Port関連のユーザに公開するAPIに関して以下の改良を行うこと。

  • RTObject
    • ポートのインスタンスで削除する関数の追加
    • データポートを一気にread/writeする関数
    • 上記の関数をデフォルトで呼ぶように設定する関数
  • Port
    • Connectionをより容易に取得する関数
    • connect/disconnect 時のコールバック

Related issues

Related to OpenRTM-aist (Java) - 機能 #1285: PortのユーザAPIの軽微な改良終了2010-03-01

Related to OpenRTM-aist (Python) - 機能 #1350: データポートに関する機能拡張終了2010-03-26

History

#1 Updated by n-ando almost 12 years ago

  • Status changed from 新規 to 担当
  • Assignee changed from n-ando to kurihara
  • RTObject
    • ポートのインスタンスで削除する関数の追加
      • bool RTObject::removeInPort(InPortBase* )
      • bool RTObject::removeOutPort(OutPortBase*)
      • bool RTObject::removePort(PortBase* )
      • register*() -> add*()に変更、register*は残す(PortAdmin(add, remove), RTObject)
      • rtc-template を変更
    • データポートを一気にread/writeする関数
      • bool RTObject::readAll()
      • bool RTObject::writeAll()
  • 上記の関数をデフォルトで呼ぶように設定する関数
  • Connectorをより容易に取得する関数 (済み)
  • connect/disconnect 時のコールバック (済み)

#2 Updated by kurihara almost 12 years ago

RTObjectのadd*Port()にて、登録しようとしているポート名が既に登録済みのポートと同じ場合は、登録せずにfalseを返す。(2010/01/12のミーティングでの決定事項)

#3 Updated by kurihara almost 12 years ago

  • % Done changed from 0 to 50

#4 Updated by kurihara almost 12 years ago

  • Status changed from 担当 to 解決
  • % Done changed from 50 to 100

下記のメソッドを追加し、SimpleIO,SeqIOにて動作確認済み。(最終リビジョン1707)


 bool RTObject_impl::readAll()
 bool RTObject_impl::writeAll()
 void RTObject_impl::setReadAll(bool read=true, bool completion=false);
 void RTObject_impl::setWriteAll(bool write=true, bool completion=false);
 ※ completionオプションは、readAll()の際、どれか一つのポートのread()またはwrite()にて
    エラーが発生した場合に、続けて他のポートのread()またはwrite()を行うか、それとも
    エラーが発生した時点でリターンするかを指定するためのオプション。
    completionがtrueの場合は、エラーの有無に係わらず全てのポートに対してread()または
  write()をコールする。
    falseの場合は、エラーが発生した時点でリターンするため、エラーが発生したポートの他
  にRTCが保持するポートが存在する場合、それらのポートに対するread()またはwrite()
  呼出は行われない。

また、InPortBase,OutPortBase,InPort.hに下記の追加と変更を行った。


 InPortBase: 下記を追加
  virtual bool read() =0; 

 OutPortBase: 下記を追加
  virtual bool write() =0; 

 InPort: 下記を変更
  DataType read();   ---> bool read();

#5 Updated by kurihara over 11 years ago

  • Status changed from 解決 to フィードバック
  • % Done changed from 100 to 80

readAll(),writeAll()での処理を見直す。

現在の実装では、readAll(),writeAll()での処理時間がかかりすぎてしまうため、onExecute()での処理に影響を及ぼす。

RTObjectでInPortBase,OutPortBaseを管理するように変更する必要あり。

#6 Updated by kurihara over 11 years ago

  • Status changed from フィードバック to 解決
  • % Done changed from 80 to 100

RTObjectでInPortBase,OutPortBaseを管理するように変更。(リビジョン1795)

#7 Updated by n-ando over 11 years ago

  • Status changed from 解決 to 終了

#8 Updated by Anonymous over 11 years ago

関連リビジョン:(r1707)(r1795)

Also available in: Atom PDF