Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions include/librealsense2/h/rs_option.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ extern "C" {
RS2_OPTION_AMBIENT_LIGHT, /**< Change the depth ambient light see rs2_ambient_light for values */
RS2_OPTION_SENSOR_MODE, /**< The resolution mode: see rs2_sensor_mode for values */
RS2_OPTION_EMITTER_ALWAYS_ON, /**< Enable Laser On constantly (GS SKU Only) */
RS2_OPTION_THERMAL_COMPENSATION, /**< Depth Thermal Compensation for selected D400 SKUs */
RS2_OPTION_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */
} rs2_option;

Expand Down
7 changes: 7 additions & 0 deletions src/ds5/ds5-device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -691,6 +691,13 @@ namespace librealsense
"Set the power level of the LED, with 0 meaning LED off"));
}

if ((pid == RS405_PID || pid == RS455_PID) && _fw_version >= firmware_version("5.12.4.0"))
{
depth_sensor.register_option(RS2_OPTION_THERMAL_COMPENSATION,
std::make_shared<uvc_xu_option<uint8_t>>(raw_depth_sensor, depth_xu, DS5_THERMAL_COMPENSATION,
"Toggle Depth Sensor Thermal Compensation"));
}

if (_fw_version >= firmware_version("5.6.3.0"))
{
_is_locked = _hw_monitor->is_camera_locked(GVD, is_camera_locked_offset);
Expand Down
1 change: 1 addition & 0 deletions src/ds5/ds5-private.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ namespace librealsense
const uint8_t DS5_ENABLE_AUTO_WHITE_BALANCE = 0xA;
const uint8_t DS5_ENABLE_AUTO_EXPOSURE = 0xB;
const uint8_t DS5_LED_PWR = 0xE;
const uint8_t DS5_THERMAL_COMPENSATION = 0xF;

// Devices supported by the current version
static const std::set<std::uint16_t> rs400_sku_pid = {
Expand Down
1 change: 1 addition & 0 deletions src/types.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,7 @@ namespace librealsense
CASE(AMBIENT_LIGHT)
CASE(SENSOR_MODE)
CASE(EMITTER_ALWAYS_ON)
CASE(THERMAL_COMPENSATION)
default: assert(!is_valid(value)); return UNKNOWN_VALUE;
}
#undef CASE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@ public enum Option {
INVALIDATION_BYPASS(68),
AMBIENT_LIGHT(69),
SENSOR_MODE(70),
EMITTER_ALWAYS_ON(71);
EMITTER_ALWAYS_ON(71),
THERMAL_COMPENSATION(72);

private final int mValue;

Expand Down
5 changes: 4 additions & 1 deletion wrappers/csharp/Intel.RealSense/Types/Enums/Option.cs
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,9 @@ public enum Option
SensorMode = 70,

/// <summary>Enable Laser On constantly (GS SKU Only)</summary>
EmitterAlwaysOn = 71
EmitterAlwaysOn = 71,

/// <summary>Depth Thermal Compensation for selected D400 SKUs</summary>
ThermalCompensation = 72
}
}
3 changes: 2 additions & 1 deletion wrappers/matlab/option.m
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@
ambient_light_env_level (69)
sensor_mode (70)
emitter_always_on (71)
count (72)
thermal_compensation (72)
count (73)
end
end
3 changes: 3 additions & 0 deletions wrappers/nodejs/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4932,6 +4932,7 @@ const option = {
* @type {Integer}
*/
OPTION_EMITTER_ALWAYS_ON: RS2.RS2_OPTION_EMITTER_ALWAYS_ON,
OPTION_THERMAL_COMPENSATION: RS2.RS2_OPTION_THERMAL_COMPENSATION,
/**
* Number of enumeration values. Not a valid input: intended to be used in for-loops.
* @type {Integer}
Expand Down Expand Up @@ -5078,6 +5079,8 @@ const option = {
return this.option_freefall_detection_enabled;
case this.OPTION_EMITTER_ALWAYS_ON:
return this.option_emitter_always_on;
case this.OPTION_THERMAL_COMPENSATION:
return this.option_thermal_compensation;
default:
throw new TypeError(
'option.optionToString(option) expects a valid value as the 1st argument');
Expand Down
1 change: 1 addition & 0 deletions wrappers/nodejs/src/addon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4698,6 +4698,7 @@ void InitModule(v8::Local<v8::Object> exports) {
_FORCE_SET_ENUM(RS2_OPTION_AMBIENT_LIGHT);
_FORCE_SET_ENUM(RS2_OPTION_SENSOR_MODE);
_FORCE_SET_ENUM(RS2_OPTION_EMITTER_ALWAYS_ON);
_FORCE_SET_ENUM(RS2_OPTION_THERMAL_COMPENSATION);
_FORCE_SET_ENUM(RS2_OPTION_COUNT);

// rs2_camera_info
Expand Down
1 change: 1 addition & 0 deletions wrappers/python/pybackend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@ PYBIND11_MODULE(NAME, m) {
.value("ambient_light_environment_level", RS2_OPTION_AMBIENT_LIGHT)
.value("sensor_resolution_mode", RS2_OPTION_SENSOR_MODE)
.value("emitter_always_on", RS2_OPTION_EMITTER_ALWAYS_ON)
.value("thermal_compensation", RS2_OPTION_THERMAL_COMPENSATION)
.value("count", RS2_OPTION_COUNT);

py::enum_<platform::power_state> power_state(m, "power_state");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
#include "RealSenseTypes.generated.h"

namespace rs2 {
class config;
class device;
class pipeline;
class frameset;
class frame;
class align;
class pointcloud;
class points;
class config;
class device;
class pipeline;
class frameset;
class frame;
class align;
class pointcloud;
class points;
}

// typedef enum rs2_stream
Expand Down Expand Up @@ -125,80 +125,81 @@ enum class ERealSenseOptionType : uint8
AMBIENT_LIGHT , /**< Change the depth ambient light see rs2_ambient_light for values */
SENSOR_MODE , /**< The resolution mode: see rs2_sensor_mode for values */
EMITTER_ALWAYS_ON , /**< Enable Laser On constantly (GS SKU Only) */
THERMAL_COMPENSATION , /**< Depth Thermal Compensation for selected D400 SKUs */
};

UENUM(Blueprintable)
enum class ERealSensePipelineMode : uint8
{
CaptureOnly,
RecordFile,
PlaybackFile,
CaptureOnly,
RecordFile,
PlaybackFile,
};

UENUM(Blueprintable)
enum class ERealSenseDepthColormap : uint8
{
Jet,
Classic,
WhiteToBlack,
BlackToWhite,
Bio,
Cold,
Warm,
Quantized,
Pattern,
Jet,
Classic,
WhiteToBlack,
BlackToWhite,
Bio,
Cold,
Warm,
Quantized,
Pattern,
};

USTRUCT(BlueprintType)
struct FRealSenseStreamProfile
{
GENERATED_BODY()
GENERATED_BODY()

UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
ERealSenseStreamType StreamType = ERealSenseStreamType::STREAM_ANY;
UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
ERealSenseStreamType StreamType = ERealSenseStreamType::STREAM_ANY;

UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
ERealSenseFormatType Format = ERealSenseFormatType::FORMAT_ANY;
UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
ERealSenseFormatType Format = ERealSenseFormatType::FORMAT_ANY;

UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
int32 Width = 640;
UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
int32 Width = 640;

UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
int32 Height = 480;
UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
int32 Height = 480;

UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
int32 Rate = 30;
UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
int32 Rate = 30;
};

USTRUCT(BlueprintType)
struct FRealSenseStreamMode
{
GENERATED_BODY()
GENERATED_BODY()

UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
int32 Width = 640;
UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
int32 Width = 640;

UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
int32 Height = 480;
UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
int32 Height = 480;

UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
int32 Rate = 30;
UPROPERTY(Category="RealSense", BlueprintReadWrite, EditAnywhere)
int32 Rate = 30;
};

USTRUCT(BlueprintType)
struct FRealSenseOptionRange
{
GENERATED_BODY()
GENERATED_BODY()

UPROPERTY(Category="RealSense", BlueprintReadOnly, VisibleAnywhere)
float Min;
UPROPERTY(Category="RealSense", BlueprintReadOnly, VisibleAnywhere)
float Min;

UPROPERTY(Category="RealSense", BlueprintReadOnly, VisibleAnywhere)
float Max;
UPROPERTY(Category="RealSense", BlueprintReadOnly, VisibleAnywhere)
float Max;

UPROPERTY(Category="RealSense", BlueprintReadOnly, VisibleAnywhere)
float Step;
UPROPERTY(Category="RealSense", BlueprintReadOnly, VisibleAnywhere)
float Step;

UPROPERTY(Category="RealSense", BlueprintReadOnly, VisibleAnywhere)
float Default;
UPROPERTY(Category="RealSense", BlueprintReadOnly, VisibleAnywhere)
float Default;
};