diff --git a/include/iri_base_algorithm/iri_base_algorithm.h b/include/iri_base_algorithm/iri_base_algorithm.h index 12727aa5b010f2cc25076a461bcaaae535e48f14..c1ac22ab8c3963a31a22a7769ba5f9630b45d40d 100644 --- a/include/iri_base_algorithm/iri_base_algorithm.h +++ b/include/iri_base_algorithm/iri_base_algorithm.h @@ -198,14 +198,15 @@ class IriBaseAlgorithm : public AbstractAlgorithmNode * \brief dynamic reconfigure server callback * * This method is called whenever a new configuration is received through - * the dynamic reconfigure. + * the dynamic reconfigure. The derivated generic algorithm class must + * implement it. * * \param config an object with new configuration from all algorithm * parameters defined in the config file. * \param level integer referring the level in which the configuration * has been changed. */ - void reconfigureCallback(Config &config, uint32_t level); + virtual void reconfigureCallback(Config &config, uint32_t level) = 0; /** * \brief add diagnostics @@ -257,11 +258,11 @@ class IriBaseAlgorithm : public AbstractAlgorithmNode template <class Algorithm> IriBaseAlgorithm<Algorithm>::IriBaseAlgorithm() : - private_node_handle_("~"), public_node_handle_(ros::this_node::getName()), + private_node_handle_("~"), + loop_rate_(DEFAULT_RATE), dsrv_(private_node_handle_), - diagnostic_(), - loop_rate_(DEFAULT_RATE) + diagnostic_() { // create thread server instance this->thread_server_ = CThreadServer::instance(); @@ -284,11 +285,11 @@ IriBaseAlgorithm<Algorithm>::~IriBaseAlgorithm() this->thread_server_->kill_thread(this->main_thread_id_); } -template <class Algorithm> -void IriBaseAlgorithm<Algorithm>::reconfigureCallback(Config &config, uint32_t level) -{ - this->alg_.config_ = config; -} +// template <class Algorithm> +// void IriBaseAlgorithm<Algorithm>::reconfigureCallback(Config &config, uint32_t level) +// { +// this->alg_.config_ = config; +// } template <class Algorithm> void IriBaseAlgorithm<Algorithm>::addDiagnostics(void)