プロジェクト

全般

プロフィール

機能 #323

完了

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

n-ando さんが15年以上前に追加. 14年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2009/01/10
期日:
進捗率:

100%

予定工数:

説明

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

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

関連するチケット 2 (0件未完了2件完了)

関連している OpenRTM-aist (Java) - 機能 #1285: PortのユーザAPIの軽微な改良終了2010/03/01

操作
関連している OpenRTM-aist (Python) - 機能 #1350: データポートに関する機能拡張終了2010/03/26

操作

n-ando さんが14年以上前に更新

  • ステータス新規 から 担当 に変更
  • 担当者n-ando から 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 時のコールバック (済み)

kurihara さんが14年以上前に更新

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

kurihara さんが14年以上前に更新

  • 進捗率0 から 50 に変更

kurihara さんが14年以上前に更新

  • ステータス担当 から 解決 に変更
  • 進捗率50 から 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();

kurihara さんが14年以上前に更新

  • ステータス解決 から フィードバック に変更
  • 進捗率100 から 80 に変更

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

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

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

kurihara さんが14年以上前に更新

  • ステータスフィードバック から 解決 に変更
  • 進捗率80 から 100 に変更

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

n-ando さんが14年以上前に更新

  • ステータス解決 から 終了 に変更

匿名ユーザー さんが14年以上前に更新

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

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