summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/camera/icamera.h1
-rw-r--r--src/camera/innomakerov9281.cpp18
-rw-r--r--src/camera/innomakerov9281.h2
-rw-r--r--src/camera/ov9281.h5
-rw-r--r--src/constants.h1
5 files changed, 25 insertions, 2 deletions
diff --git a/src/camera/icamera.h b/src/camera/icamera.h
index 588b23e..3fccc4b 100644
--- a/src/camera/icamera.h
+++ b/src/camera/icamera.h
@@ -34,6 +34,7 @@ class ICamera
public:
virtual bool setExposureTimeUs(int value) = 0;
virtual bool setGain(int value) = 0;
+ virtual bool setLaserLevel(int value) = 0;
public:
libcamera::Signal<std::shared_ptr<Pixels>> newPixels;
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,
diff --git a/src/camera/innomakerov9281.h b/src/camera/innomakerov9281.h
index 8c3a14e..ccfe1ac 100644
--- a/src/camera/innomakerov9281.h
+++ b/src/camera/innomakerov9281.h
@@ -31,6 +31,8 @@ public:
bool setExposureTimeUs(int value) override;
bool setGain(int value) override;
+ bool setLaserLevel(int value) override;
+
bool getImage(Image &image);
public:
diff --git a/src/camera/ov9281.h b/src/camera/ov9281.h
index 6014483..e4b7417 100644
--- a/src/camera/ov9281.h
+++ b/src/camera/ov9281.h
@@ -47,6 +47,11 @@ public:
assert(false);
return false;
};
+ bool setLaserLevel(int value) override
+ {
+ assert(false);
+ return false;
+ };
// signals
public:
diff --git a/src/constants.h b/src/constants.h
index b7fd7bc..4f37fe5 100644
--- a/src/constants.h
+++ b/src/constants.h
@@ -22,5 +22,6 @@ constexpr uint16_t discretesInRage{16384};
// http json keys
const QString exposureTimeKey = "exposureTime";
const QString laserLevelKey = "laserLevel";
+const QString gainKey = "gain";
const QString dumpsRoot{QStringLiteral("/home/user/dumps")};