Check device serial when loading calibration
This commit is contained in:
parent
fe340ac620
commit
0cc5968b12
@ -1248,6 +1248,24 @@ QString Calibration::descriptiveCalName()
|
|||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString Calibration::getValidDevice() const
|
||||||
|
{
|
||||||
|
return validDevice;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Calibration::validForDevice(QString serial) const
|
||||||
|
{
|
||||||
|
if(validDevice.isEmpty()) {
|
||||||
|
// no device indicated, always assume that the calibration is valid
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if(validDevice == serial) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool Calibration::hasUnsavedChanges() const
|
bool Calibration::hasUnsavedChanges() const
|
||||||
{
|
{
|
||||||
return unsavedChanges;
|
return unsavedChanges;
|
||||||
@ -1279,9 +1297,7 @@ nlohmann::json Calibration::toJSON()
|
|||||||
}
|
}
|
||||||
j["ports"] = jports;
|
j["ports"] = jports;
|
||||||
j["version"] = qlibrevnaApp->applicationVersion().toStdString();
|
j["version"] = qlibrevnaApp->applicationVersion().toStdString();
|
||||||
if(VirtualDevice::getConnected()) {
|
j["device"] = validDevice.toStdString();
|
||||||
j["device"] = VirtualDevice::getConnected()->serial().toStdString();
|
|
||||||
}
|
|
||||||
return j;
|
return j;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1326,6 +1342,7 @@ void Calibration::fromJSON(nlohmann::json j)
|
|||||||
if(ct.type != Type::None) {
|
if(ct.type != Type::None) {
|
||||||
compute(ct);
|
compute(ct);
|
||||||
}
|
}
|
||||||
|
validDevice = QString::fromStdString(j.value("device", ""));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2: {
|
case 2: {
|
||||||
@ -1716,6 +1733,9 @@ void Calibration::addMeasurements(std::set<CalibrationMeasurement::Base *> m, co
|
|||||||
meas->addPoint(data);
|
meas->addPoint(data);
|
||||||
}
|
}
|
||||||
unsavedChanges = true;
|
unsavedChanges = true;
|
||||||
|
if(VirtualDevice::getConnected()) {
|
||||||
|
validDevice = VirtualDevice::getConnected()->serial();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Calibration::clearMeasurements(std::set<CalibrationMeasurement::Base *> m)
|
void Calibration::clearMeasurements(std::set<CalibrationMeasurement::Base *> m)
|
||||||
|
@ -93,6 +93,9 @@ public:
|
|||||||
int getNumPoints();
|
int getNumPoints();
|
||||||
bool hasUnsavedChanges() const;
|
bool hasUnsavedChanges() const;
|
||||||
|
|
||||||
|
QString getValidDevice() const;
|
||||||
|
bool validForDevice(QString serial) const;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
// Call once all datapoints of the current span have been added
|
// Call once all datapoints of the current span have been added
|
||||||
void measurementsComplete();
|
void measurementsComplete();
|
||||||
@ -154,6 +157,8 @@ private:
|
|||||||
QString descriptiveCalName();
|
QString descriptiveCalName();
|
||||||
QString currentCalFile;
|
QString currentCalFile;
|
||||||
|
|
||||||
|
QString validDevice;
|
||||||
|
|
||||||
bool unsavedChanges;
|
bool unsavedChanges;
|
||||||
|
|
||||||
std::recursive_mutex access;
|
std::recursive_mutex access;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -97,6 +97,10 @@ VNA::VNA(AppWindow *window, QString name)
|
|||||||
|
|
||||||
connect(calLoad, &QAction::triggered, [=](){
|
connect(calLoad, &QAction::triggered, [=](){
|
||||||
LoadCalibration();
|
LoadCalibration();
|
||||||
|
if(window->getDevice() && !cal.validForDevice(window->getDevice()->serial())) {
|
||||||
|
InformationBox::ShowMessage("Invalid calibration", "The selected calibration was created for a different device. You can still load it but the resulting "
|
||||||
|
"data likely isn't useful.");
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(saveCal, &QAction::triggered, [=](){
|
connect(saveCal, &QAction::triggered, [=](){
|
||||||
@ -215,6 +219,7 @@ VNA::VNA(AppWindow *window, QString name)
|
|||||||
if(!filename.isEmpty()) {
|
if(!filename.isEmpty()) {
|
||||||
settings.setValue(key, filename);
|
settings.setValue(key, filename);
|
||||||
removeDefaultCal->setEnabled(true);
|
removeDefaultCal->setEnabled(true);
|
||||||
|
LoadCalibration(filename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -697,6 +702,10 @@ void VNA::initializeDevice()
|
|||||||
// Configure initial state of device
|
// Configure initial state of device
|
||||||
SettingsChanged();
|
SettingsChanged();
|
||||||
emit deviceInitialized();
|
emit deviceInitialized();
|
||||||
|
if(window->getDevice() && !cal.validForDevice(window->getDevice()->serial())) {
|
||||||
|
InformationBox::ShowMessage("Invalid calibration", "The current calibration was created for a different device. You can still use it but the resulting "
|
||||||
|
"data likely isn't useful.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void VNA::deviceDisconnected()
|
void VNA::deviceDisconnected()
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,34 +0,0 @@
|
|||||||
{
|
|
||||||
"Description": "TRL test calibration kit",
|
|
||||||
"Manufacturer": "Hugen",
|
|
||||||
"Serialnumber": "-",
|
|
||||||
"standards": [
|
|
||||||
{
|
|
||||||
"params": {
|
|
||||||
"id": 5166523964218309461,
|
|
||||||
"isShort": true,
|
|
||||||
"name": "TRL"
|
|
||||||
},
|
|
||||||
"type": "Reflect"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"params": {
|
|
||||||
"Z0": 50.0,
|
|
||||||
"delay": 0.0,
|
|
||||||
"id": 4725361202400330854,
|
|
||||||
"loss": 0.0,
|
|
||||||
"name": "TRL"
|
|
||||||
},
|
|
||||||
"type": "Through"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"params": {
|
|
||||||
"delay": 1e-09,
|
|
||||||
"id": 10060287735088848795,
|
|
||||||
"name": "TRL"
|
|
||||||
},
|
|
||||||
"type": "Line"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"version": "1.4.0-b20e5598b"
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,34 +0,0 @@
|
|||||||
{
|
|
||||||
"Description": "TRL test calibration kit",
|
|
||||||
"Manufacturer": "Hugen",
|
|
||||||
"Serialnumber": "-",
|
|
||||||
"standards": [
|
|
||||||
{
|
|
||||||
"params": {
|
|
||||||
"id": 5166523964218309461,
|
|
||||||
"isShort": true,
|
|
||||||
"name": "TRL"
|
|
||||||
},
|
|
||||||
"type": "Reflect"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"params": {
|
|
||||||
"Z0": 50.0,
|
|
||||||
"delay": 0.0,
|
|
||||||
"id": 4725361202400330854,
|
|
||||||
"loss": 0.0,
|
|
||||||
"name": "TRL"
|
|
||||||
},
|
|
||||||
"type": "Through"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"params": {
|
|
||||||
"delay": 1e-09,
|
|
||||||
"id": 10060287735088848795,
|
|
||||||
"name": "TRL"
|
|
||||||
},
|
|
||||||
"type": "Line"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"version": "1.4.0-b20e5598b"
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user