void statusCheckCallback()

in sensor_fusion_pkg/src/sensor_fusion_node.cpp [375:404]


        void statusCheckCallback(const std::shared_ptr<rmw_request_id_t> request_header,
                                 std::shared_ptr<deepracer_interfaces_pkg::srv::SensorStatusCheckSrv::Request> req,
                                 std::shared_ptr<deepracer_interfaces_pkg::srv::SensorStatusCheckSrv::Response> res) {
            try {
                (void)request_header; 
                (void)req;

                res->single_camera_status = 0;
                res->stereo_camera_status = 0;
                res->lidar_status = 0;
                std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();
                if(std::chrono::duration_cast<std::chrono::seconds>(now - lastLidarMsgRecievedTime).count() > 1) {
                    res->lidar_status = 1;
                }
                if(cameraImageCount_ != 2){
                    res->stereo_camera_status = 1;
                }
                if (cameraImageCount_ != 1) {
                    res->single_camera_status = 1;
                }
                if(std::chrono::duration_cast<std::chrono::seconds>(now - lastCameraMsgRecievedTime).count() > 1) {
                    res->stereo_camera_status = 1;
                    res->single_camera_status = 1;
                }
            }
            catch (const std::exception &ex) {
                RCLCPP_ERROR(this->get_logger(), "statusCheckCallback failed: %s", ex.what());
            }

         }