From 0e5549aee87b98310eaba7dd3bba9828d2331eab Mon Sep 17 00:00:00 2001 From: Nikita Kostovsky Date: Sun, 26 Jan 2025 19:14:47 +0100 Subject: add gain control, laser level (strobe span) control --- src/camera/innomakerov9281.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/camera/innomakerov9281.cpp') diff --git a/src/camera/innomakerov9281.cpp b/src/camera/innomakerov9281.cpp index 73ceacb..56550ed 100644 --- a/src/camera/innomakerov9281.cpp +++ b/src/camera/innomakerov9281.cpp @@ -146,15 +146,29 @@ bool InnoMakerOV9281::setExposureTimeUs(int valueUs) // valueNs = (valueNs / exposureStep) * exposureStep; // std::clamp(valueNs, exposureStep, exposureStep * maxExposureStepMultiplier); - + // setGain(rand() % 254); + // setGain(3); + // setLaserLevel(rand() % 0x7fffffff); + // setLaserLevel(rand() % 100); + // int exp = rand() % 10; + // return setCamParam(V4L2_CID_EXPOSURE, exp * exp * exp * exp * exp * exp); return setCamParam(V4L2_CID_EXPOSURE, valueUs); } bool InnoMakerOV9281::setGain(int value) { + std::cout << __func__ << ": " << value << std::endl << std::flush; + return setCamParam(V4L2_CID_GAIN, value); } +bool InnoMakerOV9281::setLaserLevel(int value) +{ + std::cout << __func__ << ": " << value << std::endl << std::flush; + + return setCamParam(V4L2_CID_FLASH_TIMEOUT, value); +} + bool InnoMakerOV9281::setCamParam(unsigned int v4l2controlId, int value) { v4l2_control ctl{v4l2controlId, value}; @@ -344,7 +358,7 @@ bool InnoMakerOV9281::getImage(Image &image) if (elapsedTime > 1000.) { - // fprintf(stderr, "fps: %d, sec: %d\n", counter, curr.tv_sec); + fprintf(stderr, "fps: %d, sec: %d\n", counter, curr.tv_sec); fprintf(stderr, "sum: %d,\tcorr: %d,\tval: %d\n", sum_elapsed_ns / 1000 / counter, -- cgit v1.2.3-70-g09d2