Skip to content
Snippets Groups Projects
Commit 74df86e4 authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

avoid 2 consec publish to compensate after 2 periods not publishing

parent a250b702
No related branches found
No related tags found
3 merge requests!11new release,!10new release,!4Gauss
...@@ -49,7 +49,7 @@ class Publisher ...@@ -49,7 +49,7 @@ class Publisher
const ProblemPtr _problem) : const ProblemPtr _problem) :
problem_(_problem), problem_(_problem),
first_publish_time_(ros::Time(0)), first_publish_time_(ros::Time(0)),
n_published_(0), last_n_period_(0),
prefix_("ROS publisher/" + _unique_name) prefix_("ROS publisher/" + _unique_name)
{ {
period_ = _server.getParam<double>(prefix_ + "/period"); period_ = _server.getParam<double>(prefix_ + "/period");
...@@ -74,24 +74,29 @@ class Publisher ...@@ -74,24 +74,29 @@ class Publisher
ros::Publisher publisher_; ros::Publisher publisher_;
double period_; double period_;
ros::Time first_publish_time_; ros::Time first_publish_time_;
long unsigned int n_published_; long unsigned int last_n_period_;
std::string prefix_; std::string prefix_;
std::string topic_; std::string topic_;
}; };
inline void Publisher::publish() inline void Publisher::publish()
{ {
if (n_published_ == 0) if (last_n_period_ == 0)
first_publish_time_ = ros::Time::now(); first_publish_time_ = ros::Time::now();
n_published_++;
publishDerived(); publishDerived();
} }
inline bool Publisher::ready() inline bool Publisher::ready()
{ {
long unsigned int n_pub = (long unsigned int)((ros::Time::now() - first_publish_time_).toSec() / period_); long unsigned int n_period = (long unsigned int)((ros::Time::now() - first_publish_time_).toSec() / period_);
return n_pub > n_published_; if (n_period > last_n_period_)
{
last_n_period_ = n_period;
return true;
}
return false;
} }
inline std::string Publisher::getTopic() const inline std::string Publisher::getTopic() const
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment