#ifndef V2X_APP_HPP_EUIC2VFR #define V2X_APP_HPP_EUIC2VFR #include "rclcpp/rclcpp.hpp" #include "std_msgs/msg/string.hpp" #include "autoware_auto_perception_msgs/msg/predicted_objects.hpp" #include "autoware_auto_vehicle_msgs/msg/velocity_report.hpp" #include "autoware_adapi_v1_msgs/srv/get_vehicle_dimensions.hpp" #include "autoware_adapi_v1_msgs/msg/vehicle_dimensions.hpp" #include "autoware_adapi_v1_msgs/msg/vehicle_status.hpp" #include "tf2_msgs/msg/tf_message.hpp" #include #include "autoware_v2x/cpm_application.hpp" #include "autoware_v2x/cam_application.hpp" #include "autoware_v2x/time_trigger.hpp" #include "autoware_v2x/link_layer.hpp" #include "autoware_v2x/ethernet_device.hpp" #include "autoware_v2x/positioning.hpp" #include "autoware_v2x/security.hpp" #include "autoware_v2x/router_context.hpp" // #include "autoware_v2x/v2x_node.hpp" namespace v2x { class V2XNode; class V2XApp { public: V2XApp(V2XNode *); void start(); void objectsCallback(const autoware_auto_perception_msgs::msg::PredictedObjects::ConstSharedPtr); void setVehicleDimensions(const autoware_adapi_v1_msgs::msg::VehicleDimensions &); void velocityReportCallback(const autoware_auto_vehicle_msgs::msg::VelocityReport::ConstSharedPtr); void vehicleStatusCallback(const autoware_adapi_v1_msgs::msg::VehicleStatus::ConstSharedPtr); void tfCallback(const tf2_msgs::msg::TFMessage::ConstSharedPtr); CpmApplication *cp; CamApplication *cam; // V2XNode *v2x_node; private: friend class CpmApplication; friend class CamApplication; friend class Application; V2XNode* node_; bool tf_received_; int tf_interval_; bool velocity_report_received_; int velocity_report_interval_; bool vehicle_status_received_; int vehicle_status_interval_; bool vehicle_dimensions_set_; bool cp_started_; bool cam_started_; }; } #endif