Fix onTemperatureUpdate error

This commit is contained in:
xiexun
2025-09-05 17:11:07 +08:00
parent 5b47280625
commit 90d54a2e6f
4 changed files with 72 additions and 29 deletions
@@ -475,6 +475,8 @@ class OBCameraNode {
private:
std::atomic_bool write_customer_data_success_{false};
std::atomic_bool user_calibration_ready_{false};
// New state flags to make clean() and rebootDevice() idempotent and thread-safe
std::atomic_bool cleaning_{false};
rclcpp::Node* node_ = nullptr;
std::shared_ptr<ob::Device> device_ = nullptr;
std::shared_ptr<Parameters> parameters_ = nullptr;
@@ -16,6 +16,7 @@
#pragma once
#include <atomic>
#include <thread>
#include <chrono>
#include <rclcpp/rclcpp.hpp>
#include <semaphore.h>
@@ -108,6 +109,7 @@ class OBCameraNodeDriver : public rclcpp::Node {
std::mutex reset_device_mutex_;
std::condition_variable reset_device_cond_;
std::atomic_bool reset_device_flag_{false};
std::chrono::steady_clock::time_point last_reset_device_completion_time_;
pthread_mutex_t* orb_device_lock_ = nullptr;
pthread_mutexattr_t orb_device_lock_attr_;
uint8_t* orb_device_lock_shm_addr_ = nullptr;