CameraControl.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <chrono>
4 #include <unordered_map>
5 #include <vector>
6 
9 
10 namespace dai {
11 
33 class CameraControl : public Buffer {
34  std::shared_ptr<RawBuffer> serialize() const override;
36 
37  public:
46 
48  CameraControl();
49  explicit CameraControl(std::shared_ptr<RawCameraControl> ptr);
50  virtual ~CameraControl() = default;
51 
55  CameraControl& setCaptureStill(bool capture);
56 
61 
66 
74  CameraControl& setExternalTrigger(int numFramesBurst, int numFramesDiscard);
75 
81 
86  CameraControl& setStrobeSensor(int activeLevel = 1);
87 
93  CameraControl& setStrobeExternal(int gpioNumber, int activeLevel = 1);
94 
95  // TODO API to set strobe line directly high/low (not following the exposure window)
96  // TODO API to set strobe timings, as offsets in relation to exposure window, or fixed duration
97 
102 
103  // Focus
108 
113 
118  CameraControl& setAutoFocusLensRange(int infinityPosition, int macroPosition);
119 
128  CameraControl& setAutoFocusRegion(uint16_t startX, uint16_t startY, uint16_t width, uint16_t height);
129 
134  CameraControl& setManualFocus(uint8_t lensPosition);
135 
142  CameraControl& setManualFocusRaw(float lensPositionRaw);
143 
144  // Exposure
149 
155 
164  CameraControl& setAutoExposureRegion(uint16_t startX, uint16_t startY, uint16_t width, uint16_t height);
165 
170  CameraControl& setAutoExposureCompensation(int compensation);
171 
178  CameraControl& setAutoExposureLimit(uint32_t maxExposureTimeUs);
179 
186  CameraControl& setAutoExposureLimit(std::chrono::microseconds maxExposureTime);
187 
200 
206  CameraControl& setManualExposure(uint32_t exposureTimeUs, uint32_t sensitivityIso);
207 
213  CameraControl& setManualExposure(std::chrono::microseconds exposureTime, uint32_t sensitivityIso);
214 
215  // White Balance
221 
227 
232  CameraControl& setManualWhiteBalance(int colorTemperatureK);
233 
234  // Other image controls
239  CameraControl& setBrightness(int value);
240 
245  CameraControl& setContrast(int value);
246 
251  CameraControl& setSaturation(int value);
252 
257  CameraControl& setSharpness(int value);
258 
263  CameraControl& setLumaDenoise(int value);
264 
269  CameraControl& setChromaDenoise(int value);
270 
276 
282 
288 
294 
301  CameraControl& setMisc(std::string control, std::string value);
302 
309  CameraControl& setMisc(std::string control, int value);
310 
317  CameraControl& setMisc(std::string control, float value);
318 
322  void clearMiscControls();
323 
328  std::vector<std::pair<std::string, std::string>> getMiscControls();
329 
330  // Functions to retrieve properties
335  bool getCaptureStill() const;
336 
340  std::chrono::microseconds getExposureTime() const;
341 
345  int getSensitivity() const;
346 
350  int getLensPosition() const;
351 
355  float getLensPositionRaw() const;
356 
362 
367  dai::RawCameraControl get() const;
368 };
369 
370 } // namespace dai
dai::CameraControl::setSceneMode
CameraControl & setSceneMode(SceneMode mode)
Definition: CameraControl.cpp:197
dai::CameraControl::setStrobeExternal
CameraControl & setStrobeExternal(int gpioNumber, int activeLevel=1)
Definition: CameraControl.cpp:49
dai::RawCameraControl
RawCameraControl structure.
Definition: RawCameraControl.hpp:12
dai::CameraControl::setAutoWhiteBalanceMode
CameraControl & setAutoWhiteBalanceMode(AutoWhiteBalanceMode mode)
Definition: CameraControl.cpp:150
dai::CameraControl::setAutoExposureLock
CameraControl & setAutoExposureLock(bool lock)
Definition: CameraControl.cpp:105
dai::CameraControl::getCaptureStill
bool getCaptureStill() const
Definition: CameraControl.cpp:235
dai::CameraControl::get
dai::RawCameraControl get() const
Definition: CameraControl.cpp:255
dai::CameraControl::setAutoExposureRegion
CameraControl & setAutoExposureRegion(uint16_t startX, uint16_t startY, uint16_t width, uint16_t height)
Definition: CameraControl.cpp:110
dai::CameraControl::setFrameSyncMode
CameraControl & setFrameSyncMode(FrameSyncMode mode)
Definition: CameraControl.cpp:35
dai::CameraControl::setManualExposure
CameraControl & setManualExposure(uint32_t exposureTimeUs, uint32_t sensitivityIso)
Definition: CameraControl.cpp:137
dai::RawCameraControl::AutoWhiteBalanceMode
AutoWhiteBalanceMode
Definition: RawCameraControl.hpp:133
dai::CameraControl::setChromaDenoise
CameraControl & setChromaDenoise(int value)
Definition: CameraControl.cpp:192
dai::CameraControl
Definition: CameraControl.hpp:33
dai::RawCameraControl::CaptureIntent
CaptureIntent
Definition: RawCameraControl.hpp:269
dai::CameraControl::setAutoFocusTrigger
CameraControl & setAutoFocusTrigger()
Definition: CameraControl.cpp:69
dai::CameraControl::setCaptureIntent
CameraControl & setCaptureIntent(CaptureIntent mode)
Definition: CameraControl.cpp:212
dai::CameraControl::getLensPosition
int getLensPosition() const
Definition: CameraControl.cpp:247
dai::CameraControl::setStrobeDisable
CameraControl & setStrobeDisable()
Definition: CameraControl.cpp:57
dai::CameraControl::setManualFocus
CameraControl & setManualFocus(uint8_t lensPosition)
Definition: CameraControl.cpp:88
dai::CameraControl::setStopStreaming
CameraControl & setStopStreaming()
Definition: CameraControl.cpp:24
dai::RawCameraControl::AutoFocusMode
AutoFocusMode
Definition: RawCameraControl.hpp:103
dai::CameraControl::setContrast
CameraControl & setContrast(int value)
Definition: CameraControl.cpp:172
dai::CameraControl::getMiscControls
std::vector< std::pair< std::string, std::string > > getMiscControls()
Definition: CameraControl.cpp:231
dai::CameraControl::setAutoExposureLimit
CameraControl & setAutoExposureLimit(uint32_t maxExposureTimeUs)
Definition: CameraControl.cpp:124
dai::CameraControl::setAutoExposureCompensation
CameraControl & setAutoExposureCompensation(int compensation)
Definition: CameraControl.cpp:119
dai::CameraControl::serialize
std::shared_ptr< RawBuffer > serialize() const override
Definition: CameraControl.cpp:5
dai::CameraControl::setBrightness
CameraControl & setBrightness(int value)
Definition: CameraControl.cpp:167
dai::CameraControl::setSaturation
CameraControl & setSaturation(int value)
Definition: CameraControl.cpp:177
dai::CameraControl::~CameraControl
virtual ~CameraControl()=default
dai::CameraControl::setStartStreaming
CameraControl & setStartStreaming()
Definition: CameraControl.cpp:20
dai::CameraControl::setMisc
CameraControl & setMisc(std::string control, std::string value)
Definition: CameraControl.cpp:218
dai::CameraControl::CameraControl
CameraControl()
Construct CameraControl message.
Definition: CameraControl.cpp:9
dai::CameraControl::setManualWhiteBalance
CameraControl & setManualWhiteBalance(int colorTemperatureK)
Definition: CameraControl.cpp:160
dai::CameraControl::setExternalTrigger
CameraControl & setExternalTrigger(int numFramesBurst, int numFramesDiscard)
Definition: CameraControl.cpp:28
dai::CameraControl::setAutoWhiteBalanceLock
CameraControl & setAutoWhiteBalanceLock(bool lock)
Definition: CameraControl.cpp:155
dai::CameraControl::getSensitivity
int getSensitivity() const
Definition: CameraControl.cpp:243
dai::CameraControl::setAutoFocusLensRange
CameraControl & setAutoFocusLensRange(int infinityPosition, int macroPosition)
Definition: CameraControl.cpp:73
dai::RawCameraControl::FrameSyncMode
FrameSyncMode
Definition: RawCameraControl.hpp:352
dai::CameraControl::setSharpness
CameraControl & setSharpness(int value)
Definition: CameraControl.cpp:182
dai::CameraControl::setAutoFocusRegion
CameraControl & setAutoFocusRegion(uint16_t startX, uint16_t startY, uint16_t width, uint16_t height)
Definition: CameraControl.cpp:79
dai::RawCameraControl::SceneMode
SceneMode
Definition: RawCameraControl.hpp:178
dai::CameraControl::getExposureTime
std::chrono::microseconds getExposureTime() const
Definition: CameraControl.cpp:239
dai::Buffer
Base message - buffer of binary data.
Definition: Buffer.hpp:13
dai::CameraControl::setControlMode
CameraControl & setControlMode(ControlMode mode)
Definition: CameraControl.cpp:207
dai::RawCameraControl::EffectMode
EffectMode
Definition: RawCameraControl.hpp:313
dai::CameraControl::set
CameraControl & set(dai::RawCameraControl config)
Definition: CameraControl.cpp:259
dai::CameraControl::setLumaDenoise
CameraControl & setLumaDenoise(int value)
Definition: CameraControl.cpp:187
dai::CameraControl::getLensPositionRaw
float getLensPositionRaw() const
Definition: CameraControl.cpp:251
dai::CameraControl::setAntiBandingMode
CameraControl & setAntiBandingMode(AntiBandingMode mode)
Definition: CameraControl.cpp:132
dai::CameraControl::setManualFocusRaw
CameraControl & setManualFocusRaw(float lensPositionRaw)
Definition: CameraControl.cpp:94
dai::CameraControl::setAutoExposureEnable
CameraControl & setAutoExposureEnable()
Definition: CameraControl.cpp:101
dai::RawCameraControl::AntiBandingMode
AntiBandingMode
Definition: RawCameraControl.hpp:249
dai::CameraControl::setEffectMode
CameraControl & setEffectMode(EffectMode mode)
Definition: CameraControl.cpp:202
RawCameraControl.hpp
dai::CameraControl::cfg
RawCameraControl & cfg
Definition: CameraControl.hpp:35
dai::CameraControl::setCaptureStill
CameraControl & setCaptureStill(bool capture)
Definition: CameraControl.cpp:14
dai::CameraControl::setStrobeSensor
CameraControl & setStrobeSensor(int activeLevel=1)
Definition: CameraControl.cpp:41
Buffer.hpp
dai
Definition: CameraExposureOffset.hpp:6
dai::CameraControl::clearMiscControls
void clearMiscControls()
Definition: CameraControl.cpp:228
dai::RawCameraControl::ControlMode
ControlMode
Definition: RawCameraControl.hpp:298
dai::CameraControl::setAutoFocusMode
CameraControl & setAutoFocusMode(AutoFocusMode mode)
Definition: CameraControl.cpp:64


depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:18