Go to the documentation of this file.00001
00002
00003
00004 #pragma once
00005 #ifndef LIBREALSENSE_F200_H
00006 #define LIBREALSENSE_F200_H
00007
00008 #include <atomic>
00009 #include <thread>
00010 #include <condition_variable>
00011
00012 #include "ivcam-device.h"
00013
00014
00015 #define F200_PRODUCT_ID 0x0a66
00016
00017 namespace rsimpl
00018 {
00019 class f200_camera final : public iv_camera
00020 {
00021 f200::cam_temperature_data base_temperature_data;
00022 f200::thermal_loop_params thermal_loop_params;
00023
00024 float last_temperature_delta;
00025
00026 std::thread temperatureThread;
00027 std::atomic<bool> runTemperatureThread;
00028 std::mutex temperatureMutex;
00029 std::condition_variable temperatureCv;
00030
00031 void temperature_control_loop();
00032
00033 public:
00034 f200_camera(std::shared_ptr<uvc::device> device, const static_device_info & info, const ivcam::camera_calib_params & calib, const f200::cam_temperature_data & temp, const f200::thermal_loop_params & params);
00035 ~f200_camera();
00036
00037 void set_options(const rs_option options[], size_t count, const double values[]) override;
00038 void get_options(const rs_option options[], size_t count, double values[]) override;
00039
00040 virtual void start_fw_logger(char fw_log_op_code, int grab_rate_in_ms, std::timed_mutex& mutex) override;
00041 virtual void stop_fw_logger() override;
00042 };
00043
00044 std::shared_ptr<rs_device> make_f200_device(std::shared_ptr<uvc::device> device);
00045 }
00046
00047 #endif