.. _program_listing_file__tmp_ws_src_sicks300_2_include_sicks300_2_sicks300_2.hpp: Program Listing for File sicks300_2.hpp ======================================= |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/sicks300_2/include/sicks300_2/sicks300_2.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /* * SICK S300 2 ROS NODE * * Copyright (c) 2022-2023 Alberto José Tudela Roldán * * This file is part of sicks300_2 project. * * All rights reserved. * */ #ifndef SICKS300_2__SICKS300_2_HPP_ #define SICKS300_2__SICKS300_2_HPP_ // C++ #include // ROS #include "rclcpp/rclcpp.hpp" #include "rclcpp_lifecycle/lifecycle_node.hpp" #include "rclcpp_lifecycle/lifecycle_publisher.hpp" #include "lifecycle_msgs/msg/transition.hpp" #include "std_msgs/msg/bool.hpp" #include "sensor_msgs/msg/laser_scan.hpp" #include "diagnostic_msgs/msg/diagnostic_array.hpp" // Common #include "common/ScannerSickS300.h" typedef rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn rclcpp_CallReturn; class SickS3002: public rclcpp_lifecycle::LifecycleNode{ public: SickS3002(const std::string& name, bool intra_process_comms = false); ~SickS3002(); rclcpp_CallReturn on_configure(const rclcpp_lifecycle::State &); rclcpp_CallReturn on_activate(const rclcpp_lifecycle::State & state); rclcpp_CallReturn on_deactivate(const rclcpp_lifecycle::State & state); rclcpp_CallReturn on_cleanup(const rclcpp_lifecycle::State &); rclcpp_CallReturn on_shutdown(const rclcpp_lifecycle::State & state); private: rclcpp_lifecycle::LifecyclePublisher::SharedPtr laser_scan_pub_; rclcpp_lifecycle::LifecyclePublisher::SharedPtr in_standby_pub_; rclcpp_lifecycle::LifecyclePublisher::SharedPtr diag_pub_; std_msgs::msg::Bool in_standby_; rclcpp::Time synced_ros_time_; std::string frame_id_, scan_topic_, port_; int baud_, scan_id_; bool inverted_, debug_, synced_time_ready_; unsigned int synced_sick_stamp_; double scan_duration_, scan_cycle_time_, scan_delay_, communication_timeout_; ScannerSickS300 scanner_; rclcpp::TimerBase::SharedPtr timer_; bool open(); bool receiveScan(); void publishStandby(bool in_standby); void publishLaserScan(std::vector vdDistM, std::vector vdAngRAD, std::vector vdIntensAU, unsigned int iSickTimeStamp, unsigned int iSickNow); void publishError(std::string error); void publishWarn(std::string warn); }; #endif