#ifndef IO__SUBSCRIBE2NAV_HPP #define IO__SUBSCRIBE2NAV_HPP #include #include #include #include #include "sp_msgs/msg/autoaim_target_msg.hpp" #include "sp_msgs/msg/enemy_status_msg.hpp" #include "tools/thread_safe_queue.hpp" namespace io { class Subscribe2Nav : public rclcpp::Node { public: Subscribe2Nav(); ~Subscribe2Nav(); void start(); std::vector subscribe_enemy_status(); std::vector subscribe_autoaim_target(); private: void enemy_status_callback(const sp_msgs::msg::EnemyStatusMsg::SharedPtr msg); void autoaim_target_callback(const sp_msgs::msg::AutoaimTargetMsg::SharedPtr msg); int enemy_status_counter_; int autoaim_target_counter_; rclcpp::TimerBase::SharedPtr enemy_status_timer_; rclcpp::TimerBase::SharedPtr autoaim_target_timer_; rclcpp::Subscription::SharedPtr enemy_status_subscription_; rclcpp::Subscription::SharedPtr autoaim_target_subscription_; tools::ThreadSafeQueue enemy_statue_queue_; tools::ThreadSafeQueue autoaim_target_queue_; }; } // namespace io #endif // IO__SUBSCRIBE2NAV_HPP