summaryrefslogtreecommitdiff
path: root/src/calibration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/calibration.cpp')
-rw-r--r--src/calibration.cpp73
1 files changed, 41 insertions, 32 deletions
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<Pixels> 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<Pixels> 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<Pixels>&& calibrationPixels)
+void dumpCalibrationPixels(const std::vector<std::shared_ptr<Pixels> > &calibrationPixels,
+ const DumpFormat format)
{
- std::vector<Pixels> rawProfiles;
+ const auto &rawProfiles = calibrationPixels;
+ // std::vector<Pixels> 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";