機能 #323
完了
n-ando さんがほぼ16年前に追加.
ほぼ15年前に更新.
説明
Port関連のユーザに公開するAPIに関して以下の改良を行うこと。
- RTObject
- ポートのインスタンスで削除する関数の追加
- データポートを一気にread/writeする関数
- 上記の関数をデフォルトで呼ぶように設定する関数
- Port
- Connectionをより容易に取得する関数
- connect/disconnect 時のコールバック
関連するチケット
2 (0件未完了 — 2件完了)
- ステータス を 新規 から 担当 に変更
- 担当者 を 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 時のコールバック (済み)
RTObjectのadd*Port()にて、登録しようとしているポート名が既に登録済みのポートと同じ場合は、登録せずにfalseを返す。(2010/01/12のミーティングでの決定事項)
- ステータス を 担当 から 解決 に変更
- 進捗率 を 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();
- ステータス を 解決 から フィードバック に変更
- 進捗率 を 100 から 80 に変更
readAll(),writeAll()での処理を見直す。¶
現在の実装では、readAll(),writeAll()での処理時間がかかりすぎてしまうため、onExecute()での処理に影響を及ぼす。
RTObjectでInPortBase,OutPortBaseを管理するように変更する必要あり。
- ステータス を フィードバック から 解決 に変更
- 進捗率 を 80 から 100 に変更
RTObjectでInPortBase,OutPortBaseを管理するように変更。(リビジョン1795)
他の形式にエクスポート: Atom
PDF