LibMultiSense
LibMultiSense Documentation
CamControlMessage.hh
Go to the documentation of this file.
1 
40 #ifndef LibMultiSense_CamControlMessage
41 #define LibMultiSense_CamControlMessage
42 
43 #include <vector>
44 
45 #include "utility/Portability.hh"
47 #include "wire/Protocol.hh"
48 
49 namespace crl {
50 namespace multisense {
51 namespace details {
52 namespace wire {
53 
54 class CamControl {
55 public:
58 
59  //
60  // Parameters representing the current camera configuration
61 
63  float gain;
64 
65  uint32_t exposure;
66  uint8_t autoExposure;
67  uint32_t autoExposureMax;
70 
76 
77  //
78  // Additions in version 2
79 
80  float stereoPostFilterStrength; // [0.0, 1.0]
81 
82  //
83  // Additions in version 3
84 
85  bool hdrEnabled;
86 
87  //
88  // Additions in version 4
89 
90  bool storeSettingsInFlash = false; // boolean
91 
92  //
93  // Additions in version 5
94 
95  uint16_t autoExposureRoiX;
96  uint16_t autoExposureRoiY;
99 
100  //
101  // Additions in version 6
102 
103  uint32_t cameraProfile = 0;
104 
105  //
106  // Additions in version 7
107 
108  uint32_t exposureSource = 0; // Deprecated
109  std::vector<ExposureConfig> secondaryExposureConfigs; // Deprecated
110 
111  //
112  // Additions in version 8
113 
115  float gamma;
116 
117  //
118  // Additions in version 9
119 
120  bool sharpeningEnable = false; // Deprecated
121  float sharpeningPercentage = 0.0f; // Deprecated
122  uint8_t sharpeningLimit = 0; // Deprecated
123 
124  //
125  // Additions in version 10
126  float gainMax;
127 
128 
129  //
130  // Constructors
131 
134 
135  //
136  // Serialization routine
137 
138  template<class Archive>
139  void serialize(Archive& message,
140  const VersionType version)
141  {
142  message & framesPerSecond;
143  message & gain;
144 
145  message & exposure;
146  message & autoExposure;
147  message & autoExposureMax;
148  message & autoExposureDecay;
149  message & autoExposureThresh;
150 
151  message & whiteBalanceRed;
152  message & whiteBalanceBlue;
153  message & autoWhiteBalance;
154  message & autoWhiteBalanceDecay;
155  message & autoWhiteBalanceThresh;
156  if (version >= 2)
157  message & stereoPostFilterStrength;
158  else
160 
161  if (version >= 3)
162  message & hdrEnabled;
163  else
164  hdrEnabled = false;
165 
166  if (version >= 4)
167  message & storeSettingsInFlash;
168  else
169  storeSettingsInFlash = false;
170 
171  if (version >= 5)
172  {
173  message & autoExposureRoiX;
174  message & autoExposureRoiY;
175  message & autoExposureRoiWidth;
176  message & autoExposureRoiHeight;
177  }
178  else
179  {
180  autoExposureRoiX = 0;
181  autoExposureRoiY = 0;
184  }
185 
186  if (version >= 6)
187  {
188  message & cameraProfile;
189  }
190  else
191  {
192  cameraProfile = 0;
193  }
194 
195  if (version >= 7)
196  {
197  message & exposureSource;
198  message & secondaryExposureConfigs;
199  }
200  else
201  {
203  secondaryExposureConfigs = std::vector<ExposureConfig>();
204  }
205 
206  if (version >= 8)
207  {
208  message & autoExposureTargetIntensity;
209  message & gamma;
210  }
211  else
212  {
215  }
216 
217  if (version >= 9)
218  {
219  message & sharpeningEnable;
220  message & sharpeningPercentage;
221  message & sharpeningLimit;
222  }
223  else
224  {
225  sharpeningEnable = false;
226  sharpeningPercentage = 0.0f;
227  sharpeningLimit = 0;
228  }
229 
230  if (version >= 10)
231  {
232  message & gainMax;
233  }
234  else
235  {
237  }
238 
239  }
240 };
241 
242 }}}} // namespaces
243 
244 #endif
crl::multisense::details::wire::CamControl::autoExposureRoiX
uint16_t autoExposureRoiX
Definition: CamControlMessage.hh:95
ExposureConfigMessage.hh
crl::multisense::details::wire::ID_CMD_CAM_CONTROL
static CRL_CONSTEXPR IdType ID_CMD_CAM_CONTROL
Definition: Protocol.hh:160
crl::multisense::details::wire::CamControl::autoExposureRoiHeight
uint16_t autoExposureRoiHeight
Definition: CamControlMessage.hh:98
crl::multisense::details::wire::CamControl::secondaryExposureConfigs
std::vector< ExposureConfig > secondaryExposureConfigs
Definition: CamControlMessage.hh:109
crl::multisense::details::wire::CamControl::ID
static CRL_CONSTEXPR IdType ID
Definition: CamControlMessage.hh:56
crl::multisense::details::wire::CamControl::autoExposureDecay
uint32_t autoExposureDecay
Definition: CamControlMessage.hh:68
Portability.hh
crl::multisense::details::wire::CamControl::autoWhiteBalanceDecay
uint32_t autoWhiteBalanceDecay
Definition: CamControlMessage.hh:74
Protocol.hh
CRL_CONSTEXPR
#define CRL_CONSTEXPR
Definition: Portability.hh:49
crl::multisense::details::wire::CamControl::VERSION
static CRL_CONSTEXPR VersionType VERSION
Definition: CamControlMessage.hh:57
crl::multisense::details::wire::CamControl::autoExposureMax
uint32_t autoExposureMax
Definition: CamControlMessage.hh:67
crl::multisense::details::wire::CamControl::framesPerSecond
float framesPerSecond
Definition: CamControlMessage.hh:62
crl::multisense::details::wire::WIRE_IMAGER_GAIN_MAX
static CRL_CONSTEXPR float WIRE_IMAGER_GAIN_MAX
Definition: Protocol.hh:339
crl::multisense::details::wire::CamControl::autoExposureThresh
float autoExposureThresh
Definition: CamControlMessage.hh:69
crl
Definition: BufferStream.hh:51
crl::multisense::details::wire::CamControl::gain
float gain
Definition: CamControlMessage.hh:63
crl::multisense::details::wire::Default_Target_Intensity
static CRL_CONSTEXPR float Default_Target_Intensity
Definition: Protocol.hh:333
crl::multisense::details::wire::CamControl::sharpeningPercentage
float sharpeningPercentage
Definition: CamControlMessage.hh:121
crl::multisense::details::wire::Default_Gamma
static CRL_CONSTEXPR float Default_Gamma
Definition: Protocol.hh:334
crl::multisense::details::wire::CamControl::gainMax
float gainMax
Definition: CamControlMessage.hh:126
crl::multisense::details::wire::CamControl::whiteBalanceBlue
float whiteBalanceBlue
Definition: CamControlMessage.hh:72
crl::multisense::details::wire::VersionType
uint16_t VersionType
Definition: Protocol.hh:137
crl::multisense::details::wire::CamControl::cameraProfile
uint32_t cameraProfile
Definition: CamControlMessage.hh:103
crl::multisense::details::wire::CamControl
Definition: CamControlMessage.hh:54
crl::multisense::details::wire::CamControl::autoWhiteBalance
uint8_t autoWhiteBalance
Definition: CamControlMessage.hh:73
crl::multisense::details::wire::CamControl::storeSettingsInFlash
bool storeSettingsInFlash
Definition: CamControlMessage.hh:90
crl::multisense::details::wire::CamControl::whiteBalanceRed
float whiteBalanceRed
Definition: CamControlMessage.hh:71
crl::multisense::details::wire::CamControl::serialize
void serialize(Archive &message, const VersionType version)
Definition: CamControlMessage.hh:139
crl::multisense::details::wire::CamControl::sharpeningEnable
bool sharpeningEnable
Definition: CamControlMessage.hh:120
crl::multisense::details::utility::BufferStreamReader
Definition: BufferStream.hh:192
crl::multisense::details::wire::CamControl::autoExposure
uint8_t autoExposure
Definition: CamControlMessage.hh:66
multisense
Definition: MultiSenseChannel.hh:44
crl::multisense::details::wire::CamControl::hdrEnabled
bool hdrEnabled
Definition: CamControlMessage.hh:85
crl::multisense::details::wire::CamControl::CamControl
CamControl(utility::BufferStreamReader &r, VersionType v)
Definition: CamControlMessage.hh:132
crl::multisense::details::wire::CamControl::exposureSource
uint32_t exposureSource
Definition: CamControlMessage.hh:108
crl::multisense::details::wire::CamControl::autoExposureRoiY
uint16_t autoExposureRoiY
Definition: CamControlMessage.hh:96
crl::multisense::details::wire::CamControl::autoWhiteBalanceThresh
float autoWhiteBalanceThresh
Definition: CamControlMessage.hh:75
crl::multisense::details::wire::CamControl::autoExposureTargetIntensity
float autoExposureTargetIntensity
Definition: CamControlMessage.hh:114
crl::multisense::details::wire::CamControl::gamma
float gamma
Definition: CamControlMessage.hh:115
crl::multisense::details::wire::CamControl::autoExposureRoiWidth
uint16_t autoExposureRoiWidth
Definition: CamControlMessage.hh:97
crl::multisense::details::wire::CamControl::CamControl
CamControl()
Definition: CamControlMessage.hh:133
crl::multisense::details::wire::IdType
uint16_t IdType
Definition: Protocol.hh:136
crl::multisense::details::wire::CamControl::sharpeningLimit
uint8_t sharpeningLimit
Definition: CamControlMessage.hh:122
crl::multisense::details::wire::CamControl::exposure
uint32_t exposure
Definition: CamControlMessage.hh:65
crl::multisense::details::wire::Default_Exposure_Source
static CRL_CONSTEXPR SourceType Default_Exposure_Source
Definition: Protocol.hh:332
crl::multisense::details::wire::CamControl::stereoPostFilterStrength
float stereoPostFilterStrength
Definition: CamControlMessage.hh:80