15 #include "../../../third-party/json.hpp" 76 void copy(
const preset& other)
120 virtual void load(
const std::string&
value) = 0;
121 virtual std::string
save()
const = 0;
124 template<
class T,
class S>
132 void load(
const std::string& str)
override 134 float value =
static_cast<float>(::atof(str.c_str()));
136 strct->update =
true;
139 std::string
save()
const override 141 std::stringstream ss;
149 void load(
const std::string& str)
override 152 std::string
save()
const override 158 template<
class T,
class S>
172 strct->update =
true;
175 std::string
save()
const override 177 std::stringstream ss;
181 return pair.second == val;
192 template<
class T,
class S>
198 void load(
const std::string& str)
override 200 auto value = ::atof(str.c_str());
202 strct->update =
true;
205 std::string
save()
const override 207 std::stringstream ss;
208 ss << ((
strct->vals[0].*
field > 0.f) ? 0.f : 1.f);
213 template<
class T,
class S>
214 std::shared_ptr<json_field>
make_field(T& strct, S T::group_type::* field,
float scale = 1.0f,
bool is_duplicated_field =
false)
220 f->is_duplicated = is_duplicated_field;
224 template<
class T,
class S>
225 std::shared_ptr<json_field>
make_string_field(T& strct, S T::group_type::* field,
const std::map<std::string, float>& values,
bool is_duplicated_field =
false)
230 f->is_duplicated = is_duplicated_field;
236 return std::make_shared<json_ignored_field>();
239 template<
class T,
class S>
240 std::shared_ptr<json_field>
make_invert_field(T& strct, S T::group_type::* field,
bool is_duplicated_field =
false)
245 f->is_duplicated = is_duplicated_field;
249 typedef std::map<std::string, std::shared_ptr<json_field>>
parsers_map;
251 template <
class T,
typename S>
259 template <
class T,
typename S>
262 const std::map<std::string, float>& values)
268 template <
typename T>
272 preset_control = param.
vals[0];
275 template <
typename T>
280 camera_control = param.
vals[0];
281 camera_control.was_set =
true;
407 static const std::map<std::string, float> auto_control_values{ {
"False", 0.f }, {
"True", 1.f } };
410 static const std::map<std::string, float> laser_state_values{ {
"off", 0.f }, {
"on", 1.f }, {
"auto", 2.f } };
446 for (
auto&& f : fields)
448 if (f.second->is_duplicated)
451 auto str = f.second->save();
453 j[f.first.c_str()] = str;
456 auto str = j.dump(4);
457 return std::vector<uint8_t>(str.begin(), str.end());
463 json j = json::parse(content);
466 for (
auto it = j.begin(); it != j.end(); ++it)
468 auto kvp = fields.find(it.key());
469 if (kvp != fields.end())
473 if (it.value().type() != nlohmann::basic_json<>::value_t::string)
475 float val = it.value();
476 std::stringstream ss;
478 kvp->second->load(ss.str());
482 kvp->second->load(it.value());
484 kvp->second->was_set =
true;
std::string save() const override
Definition: json_loader.hpp:205
param_group< STColorControl > color_control
Definition: json_loader.hpp:36
int power_line_frequency
Definition: presets.h:95
uint32_t uDiameter
Definition: rs_advanced_mode_command.h:121
Definition: json_loader.hpp:159
param_group< sharpness_control > color_sharpness
Definition: json_loader.hpp:60
int auto_white_balance
Definition: presets.h:89
uint32_t minNorth
Definition: rs_advanced_mode_command.h:41
uint32_t sloK2PenaltyMod1
Definition: rs_advanced_mode_command.h:76
param_group< STRauSupportVectorControl > rsvc
Definition: json_loader.hpp:35
param_group< white_balance_control > color_white_balance
Definition: json_loader.hpp:61
float colorCorrection2
Definition: rs_advanced_mode_command.h:92
uint32_t rauDiffThresholdGreen
Definition: rs_advanced_mode_command.h:60
param_group< gain_control > depth_gain
Definition: json_loader.hpp:49
param_group< STColorCorrection > cc
Definition: json_loader.hpp:41
float exposure
Definition: presets.h:23
exposure_control color_exposure
Definition: presets.h:118
STColorControl color_control
Definition: presets.h:103
float brightness
Definition: presets.h:47
uint32_t scoreThreshA
Definition: rs_advanced_mode_command.h:19
uint32_t sloK1PenaltyMod1
Definition: rs_advanced_mode_command.h:75
laser_power_control laser_power
Definition: presets.h:113
void insert_control_to_map(parsers_map &map, bool was_set, const std::string &name, param_group< T > &control, S field)
Definition: json_loader.hpp:252
virtual void load(const std::string &value)=0
bool was_set
Definition: json_loader.hpp:116
float diffThresh
Definition: rs_advanced_mode_command.h:31
uint32_t scoreThreshB
Definition: rs_advanced_mode_command.h:20
bool check_ranges
Definition: json_loader.hpp:130
param_group< STDepthTableControl > depth_table
Definition: json_loader.hpp:42
float colorCorrection11
Definition: rs_advanced_mode_command.h:101
std::vector< uint8_t > generate_json(const preset &in_preset)
Definition: json_loader.hpp:440
uint32_t textureDifferenceThreshold
Definition: rs_advanced_mode_command.h:21
STSloColorThresholdsControl sctc
Definition: presets.h:105
void update_preset_camera_control(T &camera_control, const param_group< T > ¶m)
Definition: json_loader.hpp:276
uint32_t diffThresholdRed
Definition: rs_advanced_mode_command.h:66
auto_white_balance_control depth_auto_white_balance
Definition: presets.h:117
auto_exposure_control color_auto_exposure
Definition: presets.h:119
uint32_t plusIncrement
Definition: rs_advanced_mode_command.h:16
int32_t depthClampMax
Definition: rs_advanced_mode_command.h:114
uint32_t rauDiffThresholdRed
Definition: rs_advanced_mode_command.h:59
STDepthControlGroup depth_controls
Definition: presets.h:100
STCensusRadius census
Definition: presets.h:111
sql::statement::iterator end(sql::statement &stmt)
bool is_duplicated
Definition: json_loader.hpp:118
param_group< exposure_control > color_exposure
Definition: json_loader.hpp:51
uint32_t sloK2Penalty
Definition: rs_advanced_mode_command.h:74
virtual ~json_field()=default
STAEControl ae
Definition: presets.h:110
preset_param_group(const preset &other)
Definition: json_loader.hpp:65
Definition: json_loader.hpp:125
nlohmann::json json
Definition: json_loader.hpp:22
uint32_t ignoreSAD
Definition: rs_advanced_mode_command.h:86
void load(const std::string &str) override
Definition: json_loader.hpp:149
uint32_t rsmBypass
Definition: rs_advanced_mode_command.h:30
int auto_exposure
Definition: presets.h:29
float colorCorrection7
Definition: rs_advanced_mode_command.h:97
bool update
Definition: json_loader.hpp:29
std::shared_ptr< json_field > make_ignored_field()
Definition: json_loader.hpp:234
uint32_t sloK1PenaltyMod2
Definition: rs_advanced_mode_command.h:77
param_group< STSloPenaltyControl > spc
Definition: json_loader.hpp:39
void insert_string_control_to_map(parsers_map &map, bool was_set, const std::string &name, param_group< T > &control, S field, const std::map< std::string, float > &values)
Definition: json_loader.hpp:260
Definition: json_loader.hpp:25
uint32_t minWEsum
Definition: rs_advanced_mode_command.h:40
gain_control color_gain
Definition: presets.h:123
gain_control depth_gain
Definition: presets.h:116
param_group< power_line_frequency_control > color_power_line_frequency
Definition: json_loader.hpp:63
float saturation
Definition: presets.h:71
param_group< backlight_compensation_control > color_backlight_compensation
Definition: json_loader.hpp:53
uint32_t textureCountThreshold
Definition: rs_advanced_mode_command.h:22
STRsm rsm
Definition: presets.h:101
float colorCorrection12
Definition: rs_advanced_mode_command.h:102
Definition: json_loader.hpp:193
uint32_t vDiameter
Definition: rs_advanced_mode_command.h:122
void update_structs(const std::string &content, preset &in_preset)
Definition: json_loader.hpp:460
float contrast
Definition: presets.h:53
laser_state_control laser_state
Definition: presets.h:112
param_group< auto_exposure_control > color_auto_exposure
Definition: json_loader.hpp:52
float sharpness
Definition: presets.h:77
param_group< gamma_control > color_gamma
Definition: json_loader.hpp:57
sharpness_control color_sharpness
Definition: presets.h:127
uint32_t sloK2PenaltyMod2
Definition: rs_advanced_mode_command.h:78
brightness_control color_brightness
Definition: presets.h:121
std::map< std::string, float > _values
Definition: json_loader.hpp:167
float laser_power
Definition: presets.h:11
Definition: json_loader.hpp:32
std::shared_ptr< json_field > make_invert_field(T &strct, S T::group_type::*field, bool is_duplicated_field=false)
Definition: json_loader.hpp:240
auto_exposure_control depth_auto_exposure
Definition: presets.h:115
white_balance_control color_white_balance
Definition: presets.h:128
uint32_t disableRAUColor
Definition: rs_advanced_mode_command.h:51
param_group< auto_white_balance_control > depth_auto_white_balance
Definition: json_loader.hpp:50
sql::statement::iterator begin(sql::statement &stmt)
void load(const std::string &str) override
Definition: json_loader.hpp:132
STSloPenaltyControl spc
Definition: presets.h:106
param_group< gain_control > color_gain
Definition: json_loader.hpp:56
uint32_t minEast
Definition: rs_advanced_mode_command.h:39
std::map< std::string, std::shared_ptr< json_field > > parsers_map
Definition: json_loader.hpp:249
float lambdaAD
Definition: rs_advanced_mode_command.h:85
std::string save() const override
Definition: json_loader.hpp:139
uint32_t vShrink
Definition: rs_advanced_mode_command.h:45
std::shared_ptr< json_field > make_field(T &strct, S T::group_type::*field, float scale=1.0f, bool is_duplicated_field=false)
Definition: json_loader.hpp:214
std::string save() const override
Definition: json_loader.hpp:175
uint32_t rauDiffThresholdBlue
Definition: rs_advanced_mode_command.h:61
T * strct
Definition: json_loader.hpp:164
void load(const std::string &value) override
Definition: json_loader.hpp:169
STRauSupportVectorControl rsvc
Definition: presets.h:102
json_string_struct_field(std::map< std::string, float > values)
Definition: json_loader.hpp:161
param_group< STHdad > hdad
Definition: json_loader.hpp:40
preset_param_group & operator=(const preset &other)
Definition: json_loader.hpp:70
hue_control color_hue
Definition: presets.h:125
gamma_control color_gamma
Definition: presets.h:124
float gain
Definition: presets.h:35
int laser_state
Definition: presets.h:17
uint32_t minusDecrement
Definition: rs_advanced_mode_command.h:17
float gamma
Definition: presets.h:59
param_group< STAEControl > ae
Definition: json_loader.hpp:43
uint32_t sloK1Penalty
Definition: rs_advanced_mode_command.h:73
T vals[3]
Definition: json_loader.hpp:28
void load(const std::string &str) override
Definition: json_loader.hpp:198
S T::group_type::* field
Definition: json_loader.hpp:128
uint32_t disableSLORightColor
Definition: rs_advanced_mode_command.h:52
uint32_t lrAgreeThreshold
Definition: rs_advanced_mode_command.h:25
auto_white_balance_control color_auto_white_balance
Definition: presets.h:129
virtual std::string save() const =0
param_group< STDepthControlGroup > depth_controls
Definition: json_loader.hpp:33
float colorCorrection3
Definition: rs_advanced_mode_command.h:93
float white_balance
Definition: presets.h:83
uint32_t deepSeaMedianThreshold
Definition: rs_advanced_mode_command.h:18
param_group< brightness_control > color_brightness
Definition: json_loader.hpp:54
float colorCorrection1
Definition: rs_advanced_mode_command.h:91
param_group< STSloColorThresholdsControl > sctc
Definition: json_loader.hpp:38
parsers_map initialize_field_parsers(preset_param_group &p)
Definition: json_loader.hpp:285
param_group< contrast_control > color_contrast
Definition: json_loader.hpp:55
STDepthTableControl depth_table
Definition: presets.h:109
int32_t disparityShift
Definition: rs_advanced_mode_command.h:116
std::string save() const override
Definition: json_loader.hpp:152
uint32_t minNSsum
Definition: rs_advanced_mode_command.h:43
float colorCorrection6
Definition: rs_advanced_mode_command.h:96
void update_preset_control(T &preset_control, const param_group< T > ¶m)
Definition: json_loader.hpp:269
uint32_t minWest
Definition: rs_advanced_mode_command.h:38
contrast_control color_contrast
Definition: presets.h:122
uint32_t meanIntensitySetPoint
Definition: rs_advanced_mode_command.h:107
float colorCorrection5
Definition: rs_advanced_mode_command.h:95
uint32_t disableSADColor
Definition: rs_advanced_mode_command.h:50
STHdad hdad
Definition: presets.h:107
Definition: json_loader.hpp:147
int32_t depthClampMin
Definition: rs_advanced_mode_command.h:113
std::shared_ptr< json_field > make_string_field(T &strct, S T::group_type::*field, const std::map< std::string, float > &values, bool is_duplicated_field=false)
Definition: json_loader.hpp:225
float lambdaCensus
Definition: rs_advanced_mode_command.h:84
param_group< auto_white_balance_control > color_auto_white_balance
Definition: json_loader.hpp:62
uint32_t depthUnits
Definition: rs_advanced_mode_command.h:112
uint32_t diffThresholdBlue
Definition: rs_advanced_mode_command.h:68
exposure_control depth_exposure
Definition: presets.h:114
saturation_control color_saturation
Definition: presets.h:126
STColorCorrection cc
Definition: presets.h:108
uint32_t deepSeaNeighborThreshold
Definition: rs_advanced_mode_command.h:24
float colorCorrection4
Definition: rs_advanced_mode_command.h:94
uint32_t disparityMode
Definition: rs_advanced_mode_command.h:115
param_group< STRsm > rsm
Definition: json_loader.hpp:34
backlight_compensation_control color_backlight_compensation
Definition: presets.h:120
Definition: rs_advanced_mode_command.h:57
float colorCorrection10
Definition: rs_advanced_mode_command.h:100
param_group< hue_control > color_hue
Definition: json_loader.hpp:58
param_group< STCensusRadius > census
Definition: json_loader.hpp:44
float hue
Definition: presets.h:65
param_group< STRauColorThresholdsControl > rctc
Definition: json_loader.hpp:37
param_group< laser_state_control > laser_state
Definition: json_loader.hpp:45
param_group< laser_power_control > laser_power
Definition: json_loader.hpp:46
uint32_t removeThresh
Definition: rs_advanced_mode_command.h:33
param_group< auto_exposure_control > depth_auto_exposure
Definition: json_loader.hpp:48
float colorCorrection9
Definition: rs_advanced_mode_command.h:99
power_line_frequency_control color_power_line_frequency
Definition: presets.h:130
uint32_t diffThresholdGreen
Definition: rs_advanced_mode_command.h:67
T * strct
Definition: json_loader.hpp:127
float scale
Definition: json_loader.hpp:129
int backlight_compensation
Definition: presets.h:41
float sloRauDiffThresh
Definition: rs_advanced_mode_command.h:32
S T::group_type::* field
Definition: json_loader.hpp:165
uint32_t uShrink
Definition: rs_advanced_mode_command.h:44
STRauColorThresholdsControl rctc
Definition: presets.h:104
param_group< saturation_control > color_saturation
Definition: json_loader.hpp:59
uint32_t minSouth
Definition: rs_advanced_mode_command.h:42
float colorCorrection8
Definition: rs_advanced_mode_command.h:98
Definition: json_loader.hpp:112
uint32_t disableSLOLeftColor
Definition: rs_advanced_mode_command.h:53
param_group< exposure_control > depth_exposure
Definition: json_loader.hpp:47
uint32_t deepSeaSecondPeakThreshold
Definition: rs_advanced_mode_command.h:23
uint32_t disableSADNormalize
Definition: rs_advanced_mode_command.h:54