diff --git a/Software/PC_Application/Calibration/CalStandardLoadEditDialog.ui b/Software/PC_Application/Calibration/CalStandardLoadEditDialog.ui index b3fc7b9..6aebdf9 100644 --- a/Software/PC_Application/Calibration/CalStandardLoadEditDialog.ui +++ b/Software/PC_Application/Calibration/CalStandardLoadEditDialog.ui @@ -6,8 +6,8 @@ 0 0 - 349 - 355 + 344 + 386 @@ -99,23 +99,33 @@ + + + Offset loss [GΩ/s]: + + + + + + + Parallel C: - + - + Series L: - + @@ -238,7 +248,7 @@ - + diff --git a/Software/PC_Application/Calibration/CalStandardOpenEditDialog.ui b/Software/PC_Application/Calibration/CalStandardOpenEditDialog.ui index a1dd1f9..f3fdcfb 100644 --- a/Software/PC_Application/Calibration/CalStandardOpenEditDialog.ui +++ b/Software/PC_Application/Calibration/CalStandardOpenEditDialog.ui @@ -58,7 +58,7 @@ - 1 + 0 diff --git a/Software/PC_Application/Calibration/calibration.cpp b/Software/PC_Application/Calibration/calibration.cpp index 0bca1b2..00d23fe 100644 --- a/Software/PC_Application/Calibration/calibration.cpp +++ b/Software/PC_Application/Calibration/calibration.cpp @@ -1014,6 +1014,11 @@ QString Calibration::descriptiveCalName() return tmp; } +bool Calibration::hasUnsavedChanges() const +{ + return unsavedChanges; +} + Calkit &Calibration::getKit() { return kit; diff --git a/Software/PC_Application/Calibration/calibration.h b/Software/PC_Application/Calibration/calibration.h index f6d8c25..2d49efa 100644 --- a/Software/PC_Application/Calibration/calibration.h +++ b/Software/PC_Application/Calibration/calibration.h @@ -88,7 +88,9 @@ public: QString getCurrentCalibrationFile(); double getMinFreq(); double getMaxFreq(); + int getNumPoints(); + bool hasUnsavedChanges() const; public slots: // Call once all datapoints of the current span have been added diff --git a/Software/PC_Application/Calibration/calkit.cpp b/Software/PC_Application/Calibration/calkit.cpp index 07c8748..3c1ad91 100644 --- a/Software/PC_Application/Calibration/calkit.cpp +++ b/Software/PC_Application/Calibration/calkit.cpp @@ -293,7 +293,7 @@ Calkit Calkit::fromFile(QString filename) c.standards.push_back(short_f); } - auto load_m = new CalStandard::Load(SOLT.separate_male_female ? "Default male standard" : "Default standard", SOLT.load_m.Z0, SOLT.load_m.delay, SOLT.load_m.resistance, SOLT.load_m.Cparallel, SOLT.load_m.Lseries, SOLT.loadModelCFirst); + auto load_m = new CalStandard::Load(SOLT.separate_male_female ? "Default male standard" : "Default standard", SOLT.load_m.Z0, SOLT.load_m.delay, 0.0, SOLT.load_m.resistance, SOLT.load_m.Cparallel, SOLT.load_m.Lseries, SOLT.loadModelCFirst); if(SOLT.load_m.useMeasurements) { auto ts = Touchstone(1); ts.fromFile(SOLT.load_m.file.toStdString()); @@ -301,7 +301,7 @@ Calkit Calkit::fromFile(QString filename) } c.standards.push_back(load_m); if(SOLT.separate_male_female) { - auto load_f = new CalStandard::Load("Default female standard", SOLT.load_m.Z0, SOLT.load_f.delay, SOLT.load_f.resistance, SOLT.load_f.Cparallel, SOLT.load_f.Lseries, SOLT.loadModelCFirst); + auto load_f = new CalStandard::Load("Default female standard", SOLT.load_m.Z0, SOLT.load_f.delay, 0.0, SOLT.load_f.resistance, SOLT.load_f.Cparallel, SOLT.load_f.Lseries, SOLT.loadModelCFirst); if(SOLT.load_f.useMeasurements) { auto ts = Touchstone(1); ts.fromFile(SOLT.load_f.file.toStdString()); diff --git a/Software/PC_Application/Calibration/calstandard.cpp b/Software/PC_Application/Calibration/calstandard.cpp index 270ecbf..7f731b7 100644 --- a/Software/PC_Application/Calibration/calstandard.cpp +++ b/Software/PC_Application/Calibration/calstandard.cpp @@ -423,7 +423,7 @@ std::complex Load::toS11(double freq) imp_load += complex(0, freq * 2 * M_PI * Lseries); } complex load = (imp_load - complex(50.0)) / (imp_load + complex(50.0)); - return addTransmissionLine(load, Z0, delay*1e-12, 0, freq); + return addTransmissionLine(load, Z0, delay*1e-12, loss*1e9, freq); } } @@ -441,6 +441,7 @@ void Load::edit(std::function finishedCallback) ui->Z0->setPrecision(2); ui->Z0->setValue(Z0); ui->delay->setValue(delay); + ui->loss->setValue(loss); ui->parC->setUnit("F"); ui->parC->setPrefixes("pnum "); ui->parC->setPrecision(3); @@ -497,6 +498,7 @@ void Load::edit(std::function finishedCallback) resistance = ui->resistance->value(); Z0 = ui->Z0->value(); delay = ui->delay->value(); + loss = ui->loss->value(); Cparallel = ui->parC->value(); Lseries = ui->serL->value(); Cfirst = ui->C_first->isChecked(); @@ -513,6 +515,7 @@ nlohmann::json Load::toJSON() auto j = OnePort::toJSON(); j["Z0"] = Z0; j["delay"] = delay; + j["loss"] = loss; j["resistance"] = resistance; j["Cparallel"] = Cparallel; j["Lseries"] = Lseries; @@ -525,6 +528,7 @@ void Load::fromJSON(nlohmann::json j) OnePort::fromJSON(j); Z0 = j.value("Z0", 50.0); delay = j.value("delay", 0.0); + loss = j.value("loss", 0.0); resistance = j.value("resistance", 0.0); Cparallel = j.value("Cparallel", 0.0); Lseries = j.value("Lseries", 0.0); diff --git a/Software/PC_Application/Calibration/calstandard.h b/Software/PC_Application/Calibration/calstandard.h index c882cf8..daeed38 100644 --- a/Software/PC_Application/Calibration/calstandard.h +++ b/Software/PC_Application/Calibration/calstandard.h @@ -113,8 +113,8 @@ class Load : public OnePort { public: Load(); - Load(QString name, double Z0, double delay, double resistance, double Cparallel, double Lseries, bool Cfirst = true) - : OnePort(name), Z0(Z0), delay(delay), resistance(resistance), Cparallel(Cparallel), Lseries(Lseries), Cfirst(Cfirst){} + Load(QString name, double Z0, double delay, double loss, double resistance, double Cparallel, double Lseries, bool Cfirst = true) + : OnePort(name), Z0(Z0), delay(delay), loss(loss), resistance(resistance), Cparallel(Cparallel), Lseries(Lseries), Cfirst(Cfirst){} virtual std::complex toS11(double freq) override; virtual void edit(std::function finishedCallback = nullptr) override; @@ -122,7 +122,7 @@ public: virtual nlohmann::json toJSON() override; virtual void fromJSON(nlohmann::json j) override; private: - double Z0, delay, resistance, Cparallel, Lseries; + double Z0, delay, loss, resistance, Cparallel, Lseries; bool Cfirst; };