ping lidar

This commit is contained in:
acki
2025-05-28 18:12:25 -04:00
parent c6631e4bd7
commit 49aa2d539c
3 changed files with 31 additions and 0 deletions

View File

@@ -9,6 +9,26 @@ namespace ModelecGUI {
ROS2QtGUI::ROS2QtGUI(rclcpp::Node::SharedPtr node, QWidget *parent)
: QMainWindow(parent), node_(std::move(node)), stackedWidget(new QStackedWidget(this)) {
auto request = std::make_shared<std_srvs::srv::Empty::Request>();
auto client = node_->create_client<std_srvs::srv::Empty>("enemy_manager/ping");
int timeout = 3;
while (!client->wait_for_service(std::chrono::seconds(1)) && timeout-- > 0)
{
if (!rclcpp::ok())
{
RCLCPP_ERROR(node_->get_logger(), "Interrupted while waiting for the service. Exiting.");
return;
}
RCLCPP_INFO(node_->get_logger(), "service not available, waiting again...");
}
if (timeout <= 0)
{
// Quit app
this->close();
return;
}
// Add pages to stack
resize(1200, 800);

View File

@@ -5,6 +5,7 @@
#include <modelec_interfaces/msg/odometry_pos.hpp>
#include <modelec_interfaces/msg/strat_state.hpp>
#include <sensor_msgs/msg/laser_scan.hpp>
#include <std_srvs/srv/empty.hpp>
namespace Modelec
{
@@ -27,6 +28,9 @@ namespace Modelec
rclcpp::Publisher<modelec_interfaces::msg::OdometryPos>::SharedPtr enemy_pos_pub_;
rclcpp::Publisher<modelec_interfaces::msg::OdometryPos>::SharedPtr close_enemy_pos_pub_;
rclcpp::Publisher<modelec_interfaces::msg::OdometryPos>::SharedPtr enemy_long_time_pub_;
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr ping_service_;
rclcpp::TimerBase::SharedPtr timer_;
rclcpp::Time last_movement_time_;

View File

@@ -75,6 +75,13 @@ namespace Modelec
);
last_publish_time_ = this->now();
ping_service_ = this->create_service<std_srvs::srv::Empty>(
"enemy_manager/ping",
[this](const std::shared_ptr<std_srvs::srv::Empty::Request>,
std::shared_ptr<std_srvs::srv::Empty::Response>)
{
});
}
void EnemyManager::OnCurrentPos(const modelec_interfaces::msg::OdometryPos::SharedPtr msg)