プロジェクト

全般

プロフィール

機能 #2266

n-ando12年以上前に更新

現在の実装では、onUpdateParamコールバックが呼ばれないが、これを個々のパラメータが変更された際に呼ばれるようにする。
C++ではr2231/2232にてこの変更を行った。 C++ではr2231にてこの変更を行った。
C++における実装方法は以下のとおり。

* unbindParameter() の実装 (コールバックとは直接関係ない)
* changedParameters() の追加
* RTObject::getConfigService() の追加

* ConfigBaseにConfigAdminのポインタとメンバー関数ポインタを渡すsetCallback関数を実装
* ConfigBaseクラスメンバ変数としてConfigAdminのポインタとメンバー関数ポインタを追加
* bindParameter関数内でsetCallbackにてConfigAdminとメンバ関数onUpdateParamを渡す
* 実際にコールバックを呼ぶConfigBase::nofityUpdateを実装
* Configクラスでは、update()関数内で変数の値の変更があった場合にnotifyUpdateを呼ぶ

なお、ConfigAdmin::update() が呼ばれて初めて変数の値が変更されるため、特に意図的にコールしなければこのコールバックはRTCがactive状態の時にのみコールされる。

戻る