diff options
| author | Nikita Kostovsky <luntik2012@gmail.com> | 2025-01-26 19:14:47 +0100 |
|---|---|---|
| committer | Nikita Kostovsky <luntik2012@gmail.com> | 2025-01-26 19:14:47 +0100 |
| commit | 0e5549aee87b98310eaba7dd3bba9828d2331eab (patch) | |
| tree | 3a1e0363f51a7c3df2a83e08a85c8e0043f1ffc0 /main.cpp | |
| parent | 90503471c49ef6ab795a61a2dc7df1e35761fa7e (diff) | |
add gain control, laser level (strobe span) control
Diffstat (limited to 'main.cpp')
| -rw-r--r-- | main.cpp | 66 |
1 files changed, 43 insertions, 23 deletions
@@ -143,7 +143,7 @@ int main(int argc, char* argv[]) InnoMakerOV9281 innoMakerCam; qDebug() << "init:" << innoMakerCam.init(); qDebug() << "set exposure:" << innoMakerCam.setExposureTimeUs(3000); - qDebug() << "set gain:" << innoMakerCam.setGain(3000); + qDebug() << "set gain:" << innoMakerCam.setGain(0); innoMakerCam.startStream(); QThread::sleep(3); @@ -552,7 +552,7 @@ int main(int argc, char* argv[]) qHttpServer.route( "/v1/sensor/params", [&](const QHttpServerRequest& request) -> QHttpServerResponse { - std::cout << "http: params" << std::endl; + // std::cout << "http: params" << std::endl; switch (request.method()) { case QHttpServerRequest::Method::Get: { @@ -587,7 +587,7 @@ int main(int argc, char* argv[]) } case QHttpServerRequest::Method::Post: { - qDebug() << "request body:" << request.body(); + // qDebug() << "request body:" << request.body(); auto json = QJsonDocument::fromJson(request.body()).object(); @@ -599,7 +599,7 @@ int main(int argc, char* argv[]) return QHttpServerResponse::StatusCode:: RequestRangeNotSatisfiable; - qDebug() << "set new exposure time:" << value; + // qDebug() << "set new exposure time:" << value; // requested_params.exposureTime = value; if (!camera->setExposureTimeUs(value)) @@ -607,37 +607,57 @@ int main(int argc, char* argv[]) RequestRangeNotSatisfiable; } + if (json.contains(gainKey)) + { + const int32_t value{json[gainKey].toInt()}; + + if (value == 0) + return QHttpServerResponse::StatusCode:: + RequestRangeNotSatisfiable; + + // qDebug() << "set gain:" << value; + + // requested_params.exposureTime = value; + if (!camera->setGain(value)) + return QHttpServerResponse::StatusCode:: + RequestRangeNotSatisfiable; + } + if (json.contains(laserLevelKey)) { const int32_t value{json[laserLevelKey].toInt()}; - if (value == 0) - { - return QHttpServerResponse::StatusCode::NotFound; - } + // if (value == 0) + // { + // return QHttpServerResponse::StatusCode::NotFound; + // } + + // qDebug() << "set new laserLevel:" << value; + if (!camera->setLaserLevel(value)) + return QHttpServerResponse::StatusCode:: + RequestRangeNotSatisfiable; - qDebug() << "set new laserLevel:" << value; requested_params.laserLevel = value; - const QString laserLevelFile{ - "/sys/class/pwm/pwmchip2/pwm1/duty_cycle"}; - QFile f{laserLevelFile}; + // const QString laserLevelFile{ + // "/sys/class/pwm/pwmchip2/pwm1/duty_cycle"}; + // QFile f{laserLevelFile}; - if (!f.open(QFile::ReadWrite)) - { - qDebug() << "cannot open laser level file:" - << f.errorString(); - qDebug() << "file path is" << f.fileName(); - return QHttpServerResponse::StatusCode::InternalServerError; - } + // if (!f.open(QFile::ReadWrite)) + // { + // qDebug() << "cannot open laser level file:" + // << f.errorString(); + // qDebug() << "file path is" << f.fileName(); + // return QHttpServerResponse::StatusCode::InternalServerError; + // } - QTextStream s{&f}; + // QTextStream s{&f}; - s << value; + // s << value; - s >> requested_params.laserLevel; + // s >> requested_params.laserLevel; - qDebug() << "done with laser level"; + // qDebug() << "done with laser level"; } return QHttpServerResponse(request.body()); |
