parameters.h
Go to the documentation of this file.
1 #pragma once
2 
4 
6 
7 #include <map>
8 #include <string>
9 #include <tuple>
10 #include <utility>
11 #include <vector>
12 
13 #include "nxLib.h"
14 
18 enum class ParameterType
19 {
20  Bool,
21  Number, // Used for integers and floats.
22  String
23 };
24 
26 {
28 
29  // The path to the corresponding NxLib node, relative to the camera's parameter node.
30  std::vector<std::string> path;
31 
35  NxLibItem node(NxLibItem const& cameraNode)
36  {
37  auto node = cameraNode[itmParameters];
38  for (auto const& pathElement : path)
39  {
40  node = node[pathElement];
41  }
42 
43  return node;
44  }
45 };
46 
53 std::map<std::string, ParameterMapping> const parameterInformation{
54  // NOLINT
55  // Capture parameters.
56  { ensenso::msg::Parameter::AUTO_EXPOSURE, { ParameterType::Bool, { itmCapture, itmAutoExposure } } },
57  { ensenso::msg::Parameter::AUTO_GAIN, { ParameterType::Bool, { itmCapture, itmAutoGain } } },
58  { ensenso::msg::Parameter::BINNING, { ParameterType::Number, { itmCapture, itmBinning } } },
59  { ensenso::msg::Parameter::EXPOSURE, { ParameterType::Number, { itmCapture, itmExposure } } },
60  { ensenso::msg::Parameter::FRONT_LIGHT, { ParameterType::Bool, { itmCapture, itmFrontLight } } },
61  { ensenso::msg::Parameter::GAIN, { ParameterType::Number, { itmCapture, itmGain } } },
62  { ensenso::msg::Parameter::GAIN_BOOST, { ParameterType::Bool, { itmCapture, itmGainBoost } } },
63  { ensenso::msg::Parameter::HARDWARE_GAMMA, { ParameterType::Bool, { itmCapture, itmHardwareGamma } } },
64  { ensenso::msg::Parameter::MAX_GAIN, { ParameterType::Number, { itmCapture, itmMaxGain } } },
65  { ensenso::msg::Parameter::PIXEL_CLOCK, { ParameterType::Number, { itmCapture, itmPixelClock } } },
66  { ensenso::msg::Parameter::PROJECTOR, { ParameterType::Bool, { itmCapture, itmProjector } } },
67  { ensenso::msg::Parameter::TARGET_BRIGHTNESS, { ParameterType::Number, { itmCapture, itmTargetBrightness } } },
68  { ensenso::msg::Parameter::TRIGGER_DELAY, { ParameterType::Number, { itmCapture, itmTriggerDelay } } },
69  { ensenso::msg::Parameter::TRIGGER_MODE, { ParameterType::String, { itmCapture, itmTriggerMode } } },
70 
71  // Matching parameters.
72  { ensenso::msg::Parameter::MATCHING_METHOD,
73  { ParameterType::String, { itmDisparityMap, itmStereoMatching, itmMethod } } },
74  { ensenso::msg::Parameter::MINIMUM_DISPARITY,
75  { ParameterType::Number, { itmDisparityMap, itmStereoMatching, itmMinimumDisparity } } },
76  { ensenso::msg::Parameter::NUMBER_OF_DISPARITIES,
77  { ParameterType::Number, { itmDisparityMap, itmStereoMatching, itmNumberOfDisparities } } },
78  { ensenso::msg::Parameter::MEASUREMENT_VOLUME_NEAR,
79  { ParameterType::Number, { itmDisparityMap, itmMeasurementVolume, itmNear, itmLeftBottom, "\2" } } },
80  { ensenso::msg::Parameter::MEASUREMENT_VOLUME_FAR,
81  { ParameterType::Number, { itmDisparityMap, itmMeasurementVolume, itmFar, itmLeftBottom, "\2" } } },
82  { ensenso::msg::Parameter::UNIQUENESS_RATIO,
83  { ParameterType::Number, { itmDisparityMap, itmPostProcessing, itmUniquenessRatio } } },
84  { ensenso::msg::Parameter::SCALING, { ParameterType::Number, { itmDisparityMap, itmScaling } } },
85  { ensenso::msg::Parameter::PADDING, { ParameterType::Bool, { itmDisparityMap, itmStereoMatching, itmPadding } } },
86 };
87 
88 inline bool parameterExists(std::string const& key)
89 {
90  return parameterInformation.count(key) > 0;
91 }
bool parameterExists(std::string const &key)
Definition: parameters.h:88
ParameterType
Definition: parameters.h:18
std::map< std::string, ParameterMapping > const parameterInformation
Definition: parameters.h:53
NxLibItem node(NxLibItem const &cameraNode)
Definition: parameters.h:35
std::vector< std::string > path
Definition: parameters.h:30
ParameterType type
Definition: parameters.h:27


ensenso_camera
Author(s): Ensenso
autogenerated on Sat Jun 3 2023 02:17:04