CameraControl.cpp
Go to the documentation of this file.
2 
3 namespace dai {
4 
5 std::shared_ptr<RawBuffer> CameraControl::serialize() const {
6  return raw;
7 }
8 
9 CameraControl::CameraControl() : Buffer(std::make_shared<RawCameraControl>()), cfg(*dynamic_cast<RawCameraControl*>(raw.get())) {}
10 CameraControl::CameraControl(std::shared_ptr<RawCameraControl> ptr) : Buffer(std::move(ptr)), cfg(*dynamic_cast<RawCameraControl*>(raw.get())) {}
11 
12 // helpers
13 // Functions to set properties
15  // Enable capture
17  return *this;
18 }
19 
22  return *this;
23 }
26  return *this;
27 }
28 CameraControl& CameraControl::setExternalTrigger(int numFramesBurst, int numFramesDiscard) {
30  cfg.lowPowerNumFramesBurst = numFramesBurst;
31  cfg.lowPowerNumFramesDiscard = numFramesDiscard;
32  return *this;
33 }
34 
37  cfg.frameSyncMode = mode;
38  return *this;
39 }
40 
43  cfg.strobeConfig.enable = true;
44  cfg.strobeConfig.activeLevel = activeLevel;
46  return *this;
47 }
48 
49 CameraControl& CameraControl::setStrobeExternal(int gpioNumber, int activeLevel) {
51  cfg.strobeConfig.enable = true;
52  cfg.strobeConfig.activeLevel = activeLevel;
53  cfg.strobeConfig.gpioNumber = gpioNumber;
54  return *this;
55 }
56 
59  cfg.strobeConfig.enable = false;
60  return *this;
61 }
62 
63 // Focus
66  cfg.autoFocusMode = mode;
67  return *this;
68 }
71  return *this;
72 }
73 CameraControl& CameraControl::setAutoFocusLensRange(int infinityPosition, int macroPosition) {
75  cfg.lensPosAutoInfinity = infinityPosition;
76  cfg.lensPosAutoMacro = macroPosition;
77  return *this;
78 }
79 CameraControl& CameraControl::setAutoFocusRegion(uint16_t startX, uint16_t startY, uint16_t width, uint16_t height) {
81  cfg.afRegion.x = startX;
82  cfg.afRegion.y = startY;
83  cfg.afRegion.width = width;
84  cfg.afRegion.height = height;
85  cfg.afRegion.priority = 1; // TODO
86  return *this;
87 }
90  cfg.lensPosition = lensPosition;
91  return *this;
92 }
93 
96  cfg.lensPositionRaw = lensPositionRaw;
97  return *this;
98 }
99 
100 // Exposure
103  return *this;
104 }
107  cfg.aeLockMode = lock;
108  return *this;
109 }
110 CameraControl& CameraControl::setAutoExposureRegion(uint16_t startX, uint16_t startY, uint16_t width, uint16_t height) {
112  cfg.aeRegion.x = startX;
113  cfg.aeRegion.y = startY;
114  cfg.aeRegion.width = width;
115  cfg.aeRegion.height = height;
116  cfg.aeRegion.priority = 1; // TODO
117  return *this;
118 }
121  cfg.expCompensation = compensation;
122  return *this;
123 }
126  cfg.aeMaxExposureTimeUs = maxExposureTimeUs;
127  return *this;
128 }
129 CameraControl& CameraControl::setAutoExposureLimit(std::chrono::microseconds maxExposureTime) {
130  return setAutoExposureLimit(maxExposureTime.count());
131 }
134  cfg.antiBandingMode = mode;
135  return *this;
136 }
137 CameraControl& CameraControl::setManualExposure(uint32_t exposureTimeUs, uint32_t sensitivityIso) {
139  cfg.expManual.exposureTimeUs = exposureTimeUs;
140  cfg.expManual.sensitivityIso = sensitivityIso;
141  cfg.expManual.frameDurationUs = 0; // TODO
142  return *this;
143 }
144 
145 CameraControl& CameraControl::setManualExposure(std::chrono::microseconds exposureTime, uint32_t sensitivityIso) {
146  return setManualExposure(exposureTime.count(), sensitivityIso);
147 }
148 
149 // White Balance
152  cfg.awbMode = mode;
153  return *this;
154 }
157  cfg.awbLockMode = lock;
158  return *this;
159 }
162  cfg.wbColorTemp = colorTemperatureK;
163  return *this;
164 }
165 
166 // Other image controls
169  cfg.brightness = value;
170  return *this;
171 }
174  cfg.contrast = value;
175  return *this;
176 }
179  cfg.saturation = value;
180  return *this;
181 }
184  cfg.sharpness = value;
185  return *this;
186 }
189  cfg.lumaDenoise = value;
190  return *this;
191 }
194  cfg.chromaDenoise = value;
195  return *this;
196 }
199  cfg.sceneMode = mode;
200  return *this;
201 }
204  cfg.effectMode = mode;
205  return *this;
206 }
209  cfg.controlMode = mode;
210  return *this;
211 }
214  cfg.captureIntent = mode;
215  return *this;
216 }
217 
218 CameraControl& CameraControl::setMisc(std::string control, std::string value) {
219  cfg.miscControls.push_back(std::make_pair(control, value));
220  return *this;
221 }
222 CameraControl& CameraControl::setMisc(std::string control, int value) {
223  return setMisc(control, std::to_string(value));
224 }
225 CameraControl& CameraControl::setMisc(std::string control, float value) {
226  return setMisc(control, std::to_string(value));
227 }
229  cfg.miscControls.clear();
230 }
231 std::vector<std::pair<std::string, std::string>> CameraControl::getMiscControls() {
232  return cfg.miscControls;
233 }
234 
237 }
238 
239 std::chrono::microseconds CameraControl::getExposureTime() const {
240  return std::chrono::microseconds(cfg.expManual.exposureTimeUs);
241 }
242 
245 }
246 
248  return cfg.lensPosition;
249 }
250 
252  return cfg.lensPositionRaw;
253 }
254 
256  return cfg;
257 }
258 
260  cfg = config;
261  return *this;
262 }
263 
264 } // namespace dai
dai::RawCameraControl::StrobeConfig::enable
uint8_t enable
Enable strobe output.
Definition: RawCameraControl.hpp:392
dai::CameraControl::setSceneMode
CameraControl & setSceneMode(SceneMode mode)
Definition: CameraControl.cpp:197
dai::RawCameraControl::saturation
int8_t saturation
Definition: RawCameraControl.hpp:433
dai::RawCameraControl::getCommand
bool getCommand(Command cmd)
Definition: RawCameraControl.hpp:453
dai::CameraControl::setStrobeExternal
CameraControl & setStrobeExternal(int gpioNumber, int activeLevel=1)
Definition: CameraControl.cpp:49
dai::RawCameraControl::captureIntent
CaptureIntent captureIntent
Definition: RawCameraControl.hpp:421
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::RawCameraControl::miscControls
std::vector< std::pair< std::string, std::string > > miscControls
Definition: RawCameraControl.hpp:440
dai::RawCameraControl::Command::STILL_CAPTURE
@ STILL_CAPTURE
dai::RawCameraControl::Command::STROBE_CONFIG
@ STROBE_CONFIG
dai::RawCameraControl::lensPosAutoMacro
uint8_t lensPosAutoMacro
Definition: RawCameraControl.hpp:414
dai::RawCameraControl::lowPowerNumFramesDiscard
uint8_t lowPowerNumFramesDiscard
Definition: RawCameraControl.hpp:439
DAI_SPAN_NAMESPACE_NAME::get
constexpr auto get(span< E, S > s) -> decltype(s[N])
Definition: span.hpp:491
dai::CameraControl::getCaptureStill
bool getCaptureStill() const
Definition: CameraControl.cpp:235
dai::CameraControl::get
dai::RawCameraControl get() const
Definition: CameraControl.cpp:255
dai::RawCameraControl::Command::AF_TRIGGER
@ AF_TRIGGER
dai::RawCameraControl::Command::MOVE_LENS
@ MOVE_LENS
dai::RawCameraControl::Command::EXPOSURE_COMPENSATION
@ EXPOSURE_COMPENSATION
dai::RawCameraControl::Command::LUMA_DENOISE
@ LUMA_DENOISE
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::RawCameraControl::Command::AWB_MODE
@ AWB_MODE
dai::CameraControl::setManualExposure
CameraControl & setManualExposure(uint32_t exposureTimeUs, uint32_t sensitivityIso)
Definition: CameraControl.cpp:137
dai::RawCameraControl::ManualExposureParams::exposureTimeUs
uint32_t exposureTimeUs
Definition: RawCameraControl.hpp:360
dai::RawCameraControl::antiBandingMode
AntiBandingMode antiBandingMode
Definition: RawCameraControl.hpp:420
dai::RawCameraControl::StrobeConfig::activeLevel
uint8_t activeLevel
1 for normal polarity (high-active), 0 otherwise
Definition: RawCameraControl.hpp:394
dai::RawCameraControl::AutoWhiteBalanceMode
AutoWhiteBalanceMode
Definition: RawCameraControl.hpp:133
dai::RawCameraControl::controlMode
ControlMode controlMode
Definition: RawCameraControl.hpp:422
dai::CameraControl::setChromaDenoise
CameraControl & setChromaDenoise(int value)
Definition: CameraControl.cpp:192
dai::RawCameraControl::Command::WB_COLOR_TEMP
@ WB_COLOR_TEMP
dai::CameraControl
Definition: CameraControl.hpp:33
dai::RawCameraControl::CaptureIntent
CaptureIntent
Definition: RawCameraControl.hpp:269
dai::RawCameraControl::Command::AWB_LOCK
@ AWB_LOCK
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::RawCameraControl::afRegion
RegionParams afRegion
Definition: RawCameraControl.hpp:417
dai::RawCameraControl::lensPositionRaw
float lensPositionRaw
Definition: RawCameraControl.hpp:413
dai::RawCameraControl::Command::CONTROL_MODE
@ CONTROL_MODE
dai::CameraControl::getMiscControls
std::vector< std::pair< std::string, std::string > > getMiscControls()
Definition: CameraControl.cpp:231
dai::RawCameraControl::aeRegion
RegionParams aeRegion
Definition: RawCameraControl.hpp:417
dai::CameraControl::setAutoExposureLimit
CameraControl & setAutoExposureLimit(uint32_t maxExposureTimeUs)
Definition: CameraControl.cpp:124
dai::CameraControl::setAutoExposureCompensation
CameraControl & setAutoExposureCompensation(int compensation)
Definition: CameraControl.cpp:119
dai::RawCameraControl::RegionParams::width
uint16_t width
Definition: RawCameraControl.hpp:371
dai::RawCameraControl::Command::AE_REGION
@ AE_REGION
dai::RawCameraControl::contrast
int8_t contrast
Definition: RawCameraControl.hpp:432
dai::CameraControl::serialize
std::shared_ptr< RawBuffer > serialize() const override
Definition: CameraControl.cpp:5
dai::RawCameraControl::Command::SHARPNESS
@ SHARPNESS
dai::RawCameraControl::ManualExposureParams::frameDurationUs
uint32_t frameDurationUs
Definition: RawCameraControl.hpp:362
dai::CameraControl::setBrightness
CameraControl & setBrightness(int value)
Definition: CameraControl.cpp:167
dai::CameraControl::setSaturation
CameraControl & setSaturation(int value)
Definition: CameraControl.cpp:177
dai::RawCameraControl::Command::SATURATION
@ SATURATION
dai::RawCameraControl::Command::EXTERNAL_TRIGGER
@ EXTERNAL_TRIGGER
dai::RawCameraControl::StrobeConfig::gpioNumber
int8_t gpioNumber
GPIO number to drive, or -1 if sensor driven.
Definition: RawCameraControl.hpp:396
dai::CameraControl::setStartStreaming
CameraControl & setStartStreaming()
Definition: CameraControl.cpp:20
dai::RawCameraControl::Command::AE_LOCK
@ AE_LOCK
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::RawCameraControl::lensPosAutoInfinity
uint8_t lensPosAutoInfinity
Definition: RawCameraControl.hpp:414
dai::RawCameraControl::Command::FRAME_SYNC
@ FRAME_SYNC
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::RawCameraControl::RegionParams::y
uint16_t y
Definition: RawCameraControl.hpp:370
dai::RawCameraControl::strobeConfig
StrobeConfig strobeConfig
Definition: RawCameraControl.hpp:425
dai::RawCameraControl::Command::AF_REGION
@ AF_REGION
dai::RawCameraControl::Command::BRIGHTNESS
@ BRIGHTNESS
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::aeMaxExposureTimeUs
uint32_t aeMaxExposureTimeUs
Definition: RawCameraControl.hpp:427
dai::RawCameraControl::FrameSyncMode
FrameSyncMode
Definition: RawCameraControl.hpp:352
nanorpc::core::exception::to_string
std::string to_string(std::exception const &e)
Definition: exception.h:46
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::lowPowerNumFramesBurst
uint8_t lowPowerNumFramesBurst
Definition: RawCameraControl.hpp:438
dai::RawCameraControl::Command::AF_LENS_RANGE
@ AF_LENS_RANGE
dai::RawCameraControl::SceneMode
SceneMode
Definition: RawCameraControl.hpp:178
dai::RawCameraControl::Command::ANTIBANDING_MODE
@ ANTIBANDING_MODE
dai::CameraControl::getExposureTime
std::chrono::microseconds getExposureTime() const
Definition: CameraControl.cpp:239
dai::RawCameraControl::aeLockMode
bool aeLockMode
Definition: RawCameraControl.hpp:428
CameraControl.hpp
dai::RawCameraControl::Command::AF_MODE
@ AF_MODE
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::expCompensation
int8_t expCompensation
Definition: RawCameraControl.hpp:430
dai::RawCameraControl::Command::AE_MANUAL
@ AE_MANUAL
dai::RawCameraControl::EffectMode
EffectMode
Definition: RawCameraControl.hpp:313
dai::RawCameraControl::Command::CHROMA_DENOISE
@ CHROMA_DENOISE
dai::RawCameraControl::Command::CAPTURE_INTENT
@ CAPTURE_INTENT
dai::CameraControl::set
CameraControl & set(dai::RawCameraControl config)
Definition: CameraControl.cpp:259
dai::RawCameraControl::lumaDenoise
uint8_t lumaDenoise
Definition: RawCameraControl.hpp:435
dai::RawCameraControl::Command::MOVE_LENS_RAW
@ MOVE_LENS_RAW
std
Definition: Node.hpp:366
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::RawCameraControl::Command::AE_AUTO
@ AE_AUTO
dai::RawCameraControl::wbColorTemp
uint16_t wbColorTemp
Definition: RawCameraControl.hpp:437
dai::RawCameraControl::awbMode
AutoWhiteBalanceMode awbMode
Definition: RawCameraControl.hpp:418
dai::RawCameraControl::setCommand
void setCommand(Command cmd, bool value=true)
Definition: RawCameraControl.hpp:442
dai::RawCameraControl::effectMode
EffectMode effectMode
Definition: RawCameraControl.hpp:423
dai::RawCameraControl::Command::STOP_STREAM
@ STOP_STREAM
dai::RawCameraControl::RegionParams::x
uint16_t x
Definition: RawCameraControl.hpp:369
dai::CameraControl::setManualFocusRaw
CameraControl & setManualFocusRaw(float lensPositionRaw)
Definition: CameraControl.cpp:94
dai::RawCameraControl::brightness
int8_t brightness
Definition: RawCameraControl.hpp:431
dai::RawCameraControl::RegionParams::priority
uint32_t priority
Definition: RawCameraControl.hpp:374
dai::RawCameraControl::Command::START_STREAM
@ START_STREAM
dai::CameraControl::setAutoExposureEnable
CameraControl & setAutoExposureEnable()
Definition: CameraControl.cpp:101
dai::RawCameraControl::AntiBandingMode
AntiBandingMode
Definition: RawCameraControl.hpp:249
dai::RawCameraControl::expManual
ManualExposureParams expManual
Definition: RawCameraControl.hpp:416
dai::CameraControl::setEffectMode
CameraControl & setEffectMode(EffectMode mode)
Definition: CameraControl.cpp:202
dai::RawCameraControl::chromaDenoise
uint8_t chromaDenoise
Definition: RawCameraControl.hpp:436
dai::RawCameraControl::ManualExposureParams::sensitivityIso
uint32_t sensitivityIso
Definition: RawCameraControl.hpp:361
dai::RawCameraControl::sharpness
uint8_t sharpness
Definition: RawCameraControl.hpp:434
dai::ADatatype::raw
std::shared_ptr< RawBuffer > raw
Definition: ADatatype.hpp:15
dai::RawCameraControl::Command::SCENE_MODE
@ SCENE_MODE
dai::RawCameraControl::Command::EFFECT_MODE
@ EFFECT_MODE
dai::RawCameraControl::autoFocusMode
AutoFocusMode autoFocusMode
Definition: RawCameraControl.hpp:403
dai::RawCameraControl::sceneMode
SceneMode sceneMode
Definition: RawCameraControl.hpp:419
dai::CameraControl::cfg
RawCameraControl & cfg
Definition: CameraControl.hpp:35
dai::RawCameraControl::frameSyncMode
FrameSyncMode frameSyncMode
Definition: RawCameraControl.hpp:424
dai::RawCameraControl::awbLockMode
bool awbLockMode
Definition: RawCameraControl.hpp:429
dai::CameraControl::setCaptureStill
CameraControl & setCaptureStill(bool capture)
Definition: CameraControl.cpp:14
dai::CameraControl::setStrobeSensor
CameraControl & setStrobeSensor(int activeLevel=1)
Definition: CameraControl.cpp:41
dai
Definition: CameraExposureOffset.hpp:6
dai::CameraControl::clearMiscControls
void clearMiscControls()
Definition: CameraControl.cpp:228
dai::RawCameraControl::Command::AE_TARGET_FPS_RANGE
@ AE_TARGET_FPS_RANGE
dai::RawCameraControl::RegionParams::height
uint16_t height
Definition: RawCameraControl.hpp:372
dai::RawCameraControl::Command::CONTRAST
@ CONTRAST
dai::RawCameraControl::ControlMode
ControlMode
Definition: RawCameraControl.hpp:298
dai::RawCameraControl::lensPosition
uint8_t lensPosition
Definition: RawCameraControl.hpp:412
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