diff options
Diffstat (limited to 'src/protocols')
| -rw-r--r-- | src/protocols/httpserver.cpp | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/protocols/httpserver.cpp b/src/protocols/httpserver.cpp index 3d5a0d5..dc3b59a 100644 --- a/src/protocols/httpserver.cpp +++ b/src/protocols/httpserver.cpp @@ -185,15 +185,21 @@ QHttpServerResponse HttpServer::POST_params(const QHttpServerRequest &request) return QJsonDocument{QJsonObject{{QStringLiteral("error"), message}}} .toJson(); }; - const auto invalidValue = - [jsonError](const auto fieldName) -> const QString { + const auto invalidValue = [jsonError](const auto fieldName) -> const QString { + qDebug() << "invalid value:" << fieldName; return jsonError(fieldName + QStringLiteral(" has invalid value")); }; + const auto failedToSet = [jsonError](const auto fieldName) -> const QString { + qDebug() << "failed to set" << fieldName; + return jsonError(QStringLiteral("failed to set") + fieldName); + }; + const auto autoExposure = json["autoExposure"]; const auto exposureTime = json["exposureTime"]; const auto autoGain = json["autoGain"]; const auto gain = json["gain"]; + const auto triggerExposureDelayUs = json["triggerExposureDelayUs"]; if (!autoExposure.isNull()) { if (autoExposure.isBool()) { @@ -232,6 +238,23 @@ QHttpServerResponse HttpServer::POST_params(const QHttpServerRequest &request) } } + if (!triggerExposureDelayUs.isNull()) { + if (triggerExposureDelayUs.isDouble()) { + const auto ok = m_camera->set_triggerExposureDelay( + std::chrono::microseconds{triggerExposureDelayUs.toInt()}); + + if (!ok) { + { + invalidValue("triggerExposureDelayUs"), + QHttpServerResponse::StatusCode::BadRequest; + } + } + } else { + return {invalidValue("triggerExposureDelayUs"), + QHttpServerResponse::StatusCode::BadRequest}; + } + } + return QHttpServerResponse::StatusCode::Ok; } |
