Skip to content

Commit 1659535

Browse files
committed
feat(rtc_interface): add new function to remove old status
Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com>
1 parent 0d67095 commit 1659535

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

planning/rtc_interface/include/rtc_interface/rtc_interface.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class RTCInterface
5656
const UUID & uuid, const bool safe, const uint8_t state, const double start_distance,
5757
const double finish_distance, const rclcpp::Time & stamp);
5858
void removeCooperateStatus(const UUID & uuid);
59+
void removeExpiredCooperateStatus();
5960
void clearCooperateStatus();
6061
bool isActivated(const UUID & uuid) const;
6162
bool isRegistered(const UUID & uuid) const;

planning/rtc_interface/src/rtc_interface.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,18 @@ void RTCInterface::removeStoredCommand(const UUID & uuid)
265265
}
266266
}
267267

268+
void RTCInterface::removeExpiredCooperateStatus()
269+
{
270+
std::lock_guard<std::mutex> lock(mutex_);
271+
const auto itr = std::remove_if(
272+
registered_status_.statuses.begin(), registered_status_.statuses.end(),
273+
[](const auto & status) {
274+
return (rclcpp::Clock{RCL_ROS_TIME}.now() - status.stamp).seconds() > 10.0;
275+
});
276+
277+
registered_status_.statuses.erase(itr, registered_status_.statuses.end());
278+
}
279+
268280
void RTCInterface::clearCooperateStatus()
269281
{
270282
std::lock_guard<std::mutex> lock(mutex_);

0 commit comments

Comments
 (0)