CamConfigMessage.h
Go to the documentation of this file.
1 
40 #ifndef LibMultiSense_CamConfigMessage
41 #define LibMultiSense_CamConfigMessage
42 
44 
45 namespace crl {
46 namespace multisense {
47 namespace details {
48 namespace wire {
49 
50 class CamConfig {
51 public:
54 
55  //
56  // Parameters representing the current camera configuration
57 
58  uint16_t width;
59  uint16_t height;
61  float gain;
62 
63  uint32_t exposure;
64  uint8_t autoExposure;
65  uint32_t autoExposureMax;
68 
74 
75  float fx, fy;
76  float cx, cy;
77  float tx, ty, tz;
78  float roll, pitch, yaw;
79 
80  //
81  // Version 2 additions
82 
83  int32_t disparities;
84 
85  //
86  // Version 3 additions
87 
89 
90  //
91  // Version 4 additions
92 
93  bool hdrEnabled;
94 
95  //
96  // Version 5 additions
97 
98  uint16_t autoExposureRoiX;
99  uint16_t autoExposureRoiY;
102 
103  //
104  // Version 6 additions
105 
106  uint32_t cameraProfile;
107 
108  //
109  // Constructors
110 
113  width(0),
114  height(0),
115  framesPerSecond(0.0),
116  gain(0.0),
117  exposure(0),
118  autoExposure(0),
119  autoExposureMax(0),
120  autoExposureDecay(0),
121  autoExposureThresh(0.0),
122  whiteBalanceRed(0.0),
123  whiteBalanceBlue(0.0),
124  autoWhiteBalance(0),
125  autoWhiteBalanceDecay(0),
126  autoWhiteBalanceThresh(0.0),
127  fx(0.0),
128  fy(0.0),
129  cx(0.0),
130  cy(0.0),
131  tx(0.0),
132  ty(0.0),
133  tz(0.0),
134  roll(0.0),
135  pitch(0.0),
136  yaw(0.0),
137  disparities(0),
138  stereoPostFilterStrength(0.0),
139  hdrEnabled(false),
140  autoExposureRoiX(0),
141  autoExposureRoiY(0),
142  autoExposureRoiWidth(crl::multisense::Roi_Full_Image),
143  autoExposureRoiHeight(crl::multisense::Roi_Full_Image),
144  cameraProfile(0)
145  {};
146 
147  //
148  // Serialization routine
149 
150  template<class Archive>
151  void serialize(Archive& message,
152  const VersionType version)
153  {
154  message & width;
155  message & height;
156 
157  message & framesPerSecond;
158  message & gain;
159 
160  message & exposure;
161  message & autoExposure;
162  message & autoExposureMax;
163  message & autoExposureDecay;
164  message & autoExposureThresh;
165 
166  message & whiteBalanceRed;
167  message & whiteBalanceBlue;
168  message & autoWhiteBalance;
169  message & autoWhiteBalanceDecay;
170  message & autoWhiteBalanceThresh;
171 
172  message & fx;
173  message & fy;
174  message & cx;
175  message & cy;
176 
177  message & tx;
178  message & ty;
179  message & tz;
180 
181  message & roll;
182  message & pitch;
183  message & yaw;
184 
185  if (version >= 2)
186  message & disparities;
187  else
188  disparities = -1;
189 
190  if (version >= 3)
191  message & stereoPostFilterStrength;
192  else
193  stereoPostFilterStrength = 0.5f;
194 
195  if (version >= 4)
196  message & hdrEnabled;
197  else
198  hdrEnabled = false;
199 
200  if (version >= 5)
201  {
202  message & autoExposureRoiX;
203  message & autoExposureRoiY;
204  message & autoExposureRoiWidth;
205  message & autoExposureRoiHeight;
206  }
207  else
208  {
209  autoExposureRoiX = 0;
210  autoExposureRoiY = 0;
211  autoExposureRoiWidth = crl::multisense::Roi_Full_Image;
212  autoExposureRoiHeight = crl::multisense::Roi_Full_Image;
213  }
214 
215  if (version >= 6)
216  {
217  message & cameraProfile;
218  }
219  else
220  {
221  cameraProfile = 0;
222  }
223  }
224 };
225 
226 }}}} // namespaces
227 
228 #endif
CamConfig(utility::BufferStreamReader &r, VersionType v)
static CRL_CONSTEXPR VersionType VERSION
static CRL_CONSTEXPR IdType ID_DATA_CAM_CONFIG
Definition: Protocol.h:195
Definition: channel.cc:56
void serialize(Archive &message, const VersionType version)
static CRL_CONSTEXPR int Roi_Full_Image
#define CRL_CONSTEXPR
Definition: Portability.hh:51


multisense_lib
Author(s):
autogenerated on Sun Mar 14 2021 02:34:50