From 05f0938a65c4f8c330791097680e1e094260bb60 Mon Sep 17 00:00:00 2001 From: Nikita Kostovsky Date: Fri, 6 Mar 2026 20:40:29 +0100 Subject: refactoring --- src/calibration.cpp | 73 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 32 deletions(-) (limited to 'src/calibration.cpp') diff --git a/src/calibration.cpp b/src/calibration.cpp index 6cc85a1..05aed58 100644 --- a/src/calibration.cpp +++ b/src/calibration.cpp @@ -207,6 +207,7 @@ QList filter( Pixels sum = *it; size_t count{1}; + qDebug() << "\t" << __func__ << "enc pos:" << it->counters.encoderPosition; ++it; while (it != rawProfiles.constEnd() @@ -214,6 +215,7 @@ QList filter( sum += *it; ++count; ++it; + qDebug() << "\t\t" << __func__ << "enc pos:" << it->counters.encoderPosition; } sum /= float(count); @@ -356,12 +358,13 @@ CalibrationTablePtr calibrateX( return result; } -void dumpCalibrationPixels( - std::vector&& calibrationPixels) +void dumpCalibrationPixels(const std::vector > &calibrationPixels, + const DumpFormat format) { - std::vector rawProfiles; + const auto &rawProfiles = calibrationPixels; + // std::vector rawProfiles; - std::swap(rawProfiles, calibrationPixels); + // std::swap(rawProfiles, calibrationPixels); const QString dumpSubdir{ QDateTime::currentDateTime().toString("yyyy.MM.dd_hh.mm.ss")}; @@ -375,47 +378,53 @@ void dumpCalibrationPixels( for (const auto& rawProfile : rawProfiles) { const auto filename = QLatin1String("raw_profile_meas_%1_enc_%2") - .arg(QString::number( - rawProfile.counters.measurementCounter)) - .arg(rawProfile.counters.encoderPosition); + .arg(QString::number(rawProfile->counters.measurementCounter)) + .arg(rawProfile->counters.encoderPosition); const auto filepath = dumpPath.path() + "/" + filename; - QFile f{filepath}; + // TODO: move out of `for` loop + // TODO: use switch, or remove enum and create a separate function + if (format == DumpFormat::Json) { + QFile f{filepath}; - if (!f.open(QFile::WriteOnly)) { - qWarning() << "cannot open dump dump file" << f.fileName(); - qWarning() << "error is:" << f.errorString(); + if (!f.open(QFile::WriteOnly)) { + qWarning() << "cannot open dump dump file" << f.fileName(); + qWarning() << "error is:" << f.errorString(); - return; - } + return; + } - QJsonObject jsonCounters{ - {"timestampUs", qint64(rawProfile.counters.timestampUs)}, - {"measurementCounter", - qint64(rawProfile.counters.measurementCounter)}, - {"encoderPosition", qint64(rawProfile.counters.encoderPosition)}, - }; + QJsonObject jsonCounters{ + {"timestampUs", qint64(rawProfile->counters.timestampUs)}, + {"measurementCounter", qint64(rawProfile->counters.measurementCounter)}, + {"encoderPosition", qint64(rawProfile->counters.encoderPosition)}, + }; - QJsonObject json; + QJsonObject json; - json["counters"] = jsonCounters; + json["counters"] = jsonCounters; - QJsonArray jsonPixels; + QJsonArray jsonPixels; - for (const auto& pixel : rawProfile.pixels) { - jsonPixels << pixel; - } + for (const auto &pixel : rawProfile->pixels) { + jsonPixels << pixel; + } - json["pixels"] = jsonPixels; + json["pixels"] = jsonPixels; - if (!f.write(QJsonDocument(json).toJson())) { - qWarning() << "cannot write file" << f.fileName(); - qWarning() << "error is" << f.errorString(); + if (!f.write(QJsonDocument(json).toJson())) { + qWarning() << "cannot write file" << f.fileName(); + qWarning() << "error is" << f.errorString(); - return; - } + return; + } - qDebug() << "file written: " << f.fileName(); + qDebug() << "file written: " << f.fileName(); + } else if (format == DumpFormat::Binary) { + if (!rawProfile->save(filepath)) { + return; + } + } } qDebug() << "dump finished"; -- cgit v1.3