LibMultiSense
LibMultiSense Documentation
CamConfigMessage.hh
Go to the documentation of this file.
1 
40 #ifndef LibMultiSense_CamConfigMessage
41 #define LibMultiSense_CamConfigMessage
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 CamConfig {
55 public:
58 
59  //
60  // Parameters representing the current camera configuration
61 
62  uint16_t width;
63  uint16_t height;
65  float gain;
66 
67  uint32_t exposure;
68  uint8_t autoExposure;
69  uint32_t autoExposureMax;
72 
78 
79  float fx, fy;
80  float cx, cy;
81  float tx, ty, tz;
82  float roll, pitch, yaw;
83 
84  //
85  // Version 2 additions
86 
87  int32_t disparities;
88 
89  //
90  // Version 3 additions
91 
93 
94  //
95  // Version 4 additions
96 
97  bool hdrEnabled;
98 
99  //
100  // Version 5 additions
101 
106 
107  //
108  // Version 6 additions
109 
110  uint32_t cameraProfile;
111 
112  //
113  // Version 7 additions
114 
115  uint32_t exposureSource;
116  std::vector<ExposureConfig> secondaryExposureConfigs;
117 
118  //
119  // Version 8 additions
120 
122  float gamma;
123 
124  //
125  // Version 9 additions
126 
130 
131  //
132  // Version 10 additions
133  float gainMax;
134 
135  //
136  // Constructors
137 
140  width(0),
141  height(0),
142  framesPerSecond(0.0),
143  gain(0.0),
144  exposure(0),
145  autoExposure(0),
146  autoExposureMax(0),
148  autoExposureThresh(0.0),
149  whiteBalanceRed(0.0),
150  whiteBalanceBlue(0.0),
151  autoWhiteBalance(0),
154  fx(0.0),
155  fy(0.0),
156  cx(0.0),
157  cy(0.0),
158  tx(0.0),
159  ty(0.0),
160  tz(0.0),
161  roll(0.0),
162  pitch(0.0),
163  yaw(0.0),
164  disparities(0),
166  hdrEnabled(false),
167  autoExposureRoiX(0),
168  autoExposureRoiY(0),
171  cameraProfile(0),
176  sharpeningEnable(false),
177  sharpeningPercentage(0.0f),
178  sharpeningLimit(0),
180  {};
181 
182  //
183  // Serialization routine
184 
185  template<class Archive>
186  void serialize(Archive& message,
187  const VersionType version)
188  {
189  message & width;
190  message & height;
191 
192  message & framesPerSecond;
193  message & gain;
194 
195  message & exposure;
196  message & autoExposure;
197  message & autoExposureMax;
198  message & autoExposureDecay;
199  message & autoExposureThresh;
200 
201  message & whiteBalanceRed;
202  message & whiteBalanceBlue;
203  message & autoWhiteBalance;
204  message & autoWhiteBalanceDecay;
205  message & autoWhiteBalanceThresh;
206 
207  message & fx;
208  message & fy;
209  message & cx;
210  message & cy;
211 
212  message & tx;
213  message & ty;
214  message & tz;
215 
216  message & roll;
217  message & pitch;
218  message & yaw;
219 
220  if (version >= 2)
221  message & disparities;
222  else
223  disparities = -1;
224 
225  if (version >= 3)
226  message & stereoPostFilterStrength;
227  else
229 
230  if (version >= 4)
231  message & hdrEnabled;
232  else
233  hdrEnabled = false;
234 
235  if (version >= 5)
236  {
237  message & autoExposureRoiX;
238  message & autoExposureRoiY;
239  message & autoExposureRoiWidth;
240  message & autoExposureRoiHeight;
241  }
242  else
243  {
244  autoExposureRoiX = 0;
245  autoExposureRoiY = 0;
248  }
249 
250  if (version >= 6)
251  {
252  message & cameraProfile;
253  }
254  else
255  {
256  cameraProfile = 0;
257  }
258 
259  if (version >= 7)
260  {
261  message & exposureSource;
262  message & secondaryExposureConfigs;
263  }
264  else
265  {
267  secondaryExposureConfigs = std::vector<ExposureConfig>();
268  }
269 
270  if (version >= 8)
271  {
272  message & autoExposureTargetIntensity;
273  message & gamma;
274  }
275  else
276  {
279  }
280 
281  if (version >= 9)
282  {
283  message & sharpeningEnable;
284  message & sharpeningPercentage;
285  message & sharpeningLimit;
286  }
287  else
288  {
289  sharpeningEnable = false;
290  sharpeningPercentage = 0.0f;
291  sharpeningLimit = 0;
292  }
293 
294  if (version >= 10)
295  {
296  message & gainMax;
297  }
298  else
299  {
301  }
302 
303  }
304 };
305 
306 }}}} // namespaces
307 
308 #endif
crl::multisense::details::wire::CamConfig::yaw
float yaw
Definition: CamConfigMessage.hh:82
crl::multisense::details::wire::CamConfig::height
uint16_t height
Definition: CamConfigMessage.hh:63
crl::multisense::details::wire::CamConfig::sharpeningPercentage
float sharpeningPercentage
Definition: CamConfigMessage.hh:128
crl::multisense::details::wire::CamConfig::secondaryExposureConfigs
std::vector< ExposureConfig > secondaryExposureConfigs
Definition: CamConfigMessage.hh:116
crl::multisense::details::wire::CamConfig::whiteBalanceBlue
float whiteBalanceBlue
Definition: CamConfigMessage.hh:74
crl::multisense::details::wire::CamConfig::ID
static CRL_CONSTEXPR IdType ID
Definition: CamConfigMessage.hh:56
crl::multisense::details::wire::CamConfig::exposure
uint32_t exposure
Definition: CamConfigMessage.hh:67
crl::multisense::details::wire::CamConfig::autoExposureThresh
float autoExposureThresh
Definition: CamConfigMessage.hh:71
crl::multisense::details::wire::CamConfig::whiteBalanceRed
float whiteBalanceRed
Definition: CamConfigMessage.hh:73
crl::multisense::details::wire::CamConfig::width
uint16_t width
Definition: CamConfigMessage.hh:62
crl::multisense::details::wire::CamConfig::gainMax
float gainMax
Definition: CamConfigMessage.hh:133
crl::multisense::details::wire::CamConfig::VERSION
static CRL_CONSTEXPR VersionType VERSION
Definition: CamConfigMessage.hh:57
ExposureConfigMessage.hh
crl::multisense::details::wire::CamConfig::ty
float ty
Definition: CamConfigMessage.hh:81
crl::multisense::details::wire::CamConfig::pitch
float pitch
Definition: CamConfigMessage.hh:82
Portability.hh
Protocol.hh
crl::multisense::details::wire::CamConfig::autoExposureMax
uint32_t autoExposureMax
Definition: CamConfigMessage.hh:69
CRL_CONSTEXPR
#define CRL_CONSTEXPR
Definition: Portability.hh:49
crl::multisense::details::wire::CamConfig::roll
float roll
Definition: CamConfigMessage.hh:82
crl::multisense::details::wire::CamConfig::autoWhiteBalanceDecay
uint32_t autoWhiteBalanceDecay
Definition: CamConfigMessage.hh:76
crl::multisense::details::wire::CamConfig::autoExposureRoiY
uint16_t autoExposureRoiY
Definition: CamConfigMessage.hh:103
crl::multisense::details::wire::CamConfig::autoExposureTargetIntensity
float autoExposureTargetIntensity
Definition: CamConfigMessage.hh:121
crl::multisense::details::wire::CamConfig::hdrEnabled
bool hdrEnabled
Definition: CamConfigMessage.hh:97
crl::multisense::details::wire::CamConfig::tx
float tx
Definition: CamConfigMessage.hh:81
crl::multisense::details::wire::CamConfig::autoWhiteBalance
uint8_t autoWhiteBalance
Definition: CamConfigMessage.hh:75
crl::multisense::details::wire::CamConfig::autoExposure
uint8_t autoExposure
Definition: CamConfigMessage.hh:68
crl::multisense::details::wire::WIRE_IMAGER_GAIN_MAX
static CRL_CONSTEXPR float WIRE_IMAGER_GAIN_MAX
Definition: Protocol.hh:339
crl::multisense::details::wire::ID_DATA_CAM_CONFIG
static CRL_CONSTEXPR IdType ID_DATA_CAM_CONFIG
Definition: Protocol.hh:207
crl::multisense::details::wire::CamConfig::CamConfig
CamConfig()
Definition: CamConfigMessage.hh:139
crl
Definition: BufferStream.hh:51
crl::multisense::details::wire::CamConfig::CamConfig
CamConfig(utility::BufferStreamReader &r, VersionType v)
Definition: CamConfigMessage.hh:138
crl::multisense::details::wire::Default_Target_Intensity
static CRL_CONSTEXPR float Default_Target_Intensity
Definition: Protocol.hh:333
crl::multisense::details::wire::Default_Gamma
static CRL_CONSTEXPR float Default_Gamma
Definition: Protocol.hh:334
crl::multisense::details::wire::VersionType
uint16_t VersionType
Definition: Protocol.hh:137
crl::multisense::details::wire::CamConfig::exposureSource
uint32_t exposureSource
Definition: CamConfigMessage.hh:115
crl::multisense::details::wire::CamConfig::tz
float tz
Definition: CamConfigMessage.hh:81
crl::multisense::details::wire::CamConfig::autoExposureRoiWidth
uint16_t autoExposureRoiWidth
Definition: CamConfigMessage.hh:104
crl::multisense::details::wire::CamConfig::autoWhiteBalanceThresh
float autoWhiteBalanceThresh
Definition: CamConfigMessage.hh:77
crl::multisense::details::wire::CamConfig::autoExposureRoiX
uint16_t autoExposureRoiX
Definition: CamConfigMessage.hh:102
crl::multisense::details::utility::BufferStreamReader
Definition: BufferStream.hh:192
crl::multisense::details::wire::CamConfig::cx
float cx
Definition: CamConfigMessage.hh:80
multisense
Definition: MultiSenseChannel.hh:44
crl::multisense::details::wire::CamConfig::cy
float cy
Definition: CamConfigMessage.hh:80
crl::multisense::details::wire::CamConfig::stereoPostFilterStrength
float stereoPostFilterStrength
Definition: CamConfigMessage.hh:92
crl::multisense::details::wire::CamConfig::serialize
void serialize(Archive &message, const VersionType version)
Definition: CamConfigMessage.hh:186
crl::multisense::details::wire::CamConfig
Definition: CamConfigMessage.hh:54
crl::multisense::details::wire::CamConfig::fx
float fx
Definition: CamConfigMessage.hh:79
crl::multisense::details::wire::CamConfig::disparities
int32_t disparities
Definition: CamConfigMessage.hh:87
crl::multisense::details::wire::CamConfig::gain
float gain
Definition: CamConfigMessage.hh:65
crl::multisense::details::wire::CamConfig::fy
float fy
Definition: CamConfigMessage.hh:79
crl::multisense::details::wire::CamConfig::sharpeningLimit
uint8_t sharpeningLimit
Definition: CamConfigMessage.hh:129
crl::multisense::details::wire::CamConfig::framesPerSecond
float framesPerSecond
Definition: CamConfigMessage.hh:64
crl::multisense::details::wire::IdType
uint16_t IdType
Definition: Protocol.hh:136
crl::multisense::details::wire::CamConfig::cameraProfile
uint32_t cameraProfile
Definition: CamConfigMessage.hh:110
crl::multisense::details::wire::CamConfig::autoExposureDecay
uint32_t autoExposureDecay
Definition: CamConfigMessage.hh:70
crl::multisense::details::wire::CamConfig::sharpeningEnable
bool sharpeningEnable
Definition: CamConfigMessage.hh:127
crl::multisense::details::wire::Default_Exposure_Source
static CRL_CONSTEXPR SourceType Default_Exposure_Source
Definition: Protocol.hh:332
crl::multisense::details::wire::CamConfig::gamma
float gamma
Definition: CamConfigMessage.hh:122
crl::multisense::details::wire::CamConfig::autoExposureRoiHeight
uint16_t autoExposureRoiHeight
Definition: CamConfigMessage.hh:105