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;
};