Prevent activating calibration without defined calibration standard
This commit is contained in:
parent
532702f7fb
commit
c5cbc8af20
@ -1469,6 +1469,9 @@ bool Calibration::canCompute(Calibration::CalType type, double *startFreq, doubl
|
|||||||
if(!meas) {
|
if(!meas) {
|
||||||
// missing measurement
|
// missing measurement
|
||||||
return false;
|
return false;
|
||||||
|
} else if (!meas->readyForCalculation()){
|
||||||
|
// measurement not ready (either not calkit standard definded or no measurements
|
||||||
|
return false;
|
||||||
} else {
|
} else {
|
||||||
foundMeasurements.push_back(meas);
|
foundMeasurements.push_back(meas);
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,9 @@ bool CalibrationMeasurement::Base::setStandard(CalStandard::Virtual *standard)
|
|||||||
if(supportedStandardTypes().count(standard->getType())) {
|
if(supportedStandardTypes().count(standard->getType())) {
|
||||||
// can use this standard
|
// can use this standard
|
||||||
this->standard = standard;
|
this->standard = standard;
|
||||||
|
connect(standard, &CalStandard::Virtual::deleted, this, [=](){
|
||||||
|
setStandard(nullptr);
|
||||||
|
});
|
||||||
emit standardChanged(standard);
|
emit standardChanged(standard);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@ -53,6 +56,9 @@ bool CalibrationMeasurement::Base::setStandard(CalStandard::Virtual *standard)
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// nullptr passed, remove currently used standard
|
// nullptr passed, remove currently used standard
|
||||||
|
if(this->standard) {
|
||||||
|
disconnect(this->standard, &CalStandard::Virtual::deleted, this, nullptr);
|
||||||
|
}
|
||||||
this->standard = nullptr;
|
this->standard = nullptr;
|
||||||
emit standardChanged(nullptr);
|
emit standardChanged(nullptr);
|
||||||
return true;
|
return true;
|
||||||
@ -117,6 +123,10 @@ QWidget *CalibrationMeasurement::Base::createStandardWidget()
|
|||||||
cbStandard->setCurrentText(s->getDescription());
|
cbStandard->setCurrentText(s->getDescription());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(standard == 0 && cbStandard->count() > 0) {
|
||||||
|
// no standard was selected but no there is one available
|
||||||
|
setStandard((CalStandard::Virtual*) cbStandard->itemData(0, Qt::UserRole).value<void*>());
|
||||||
|
}
|
||||||
|
|
||||||
connect(cbStandard, qOverload<int>(&QComboBox::currentIndexChanged), [=](){
|
connect(cbStandard, qOverload<int>(&QComboBox::currentIndexChanged), [=](){
|
||||||
auto s = (CalStandard::Virtual*) cbStandard->itemData(cbStandard->currentIndex(), Qt::UserRole).value<void*>();
|
auto s = (CalStandard::Virtual*) cbStandard->itemData(cbStandard->currentIndex(), Qt::UserRole).value<void*>();
|
||||||
|
@ -38,6 +38,7 @@ public:
|
|||||||
virtual double minFreq() = 0;
|
virtual double minFreq() = 0;
|
||||||
virtual double maxFreq() = 0;
|
virtual double maxFreq() = 0;
|
||||||
virtual unsigned int numPoints() = 0;
|
virtual unsigned int numPoints() = 0;
|
||||||
|
virtual bool readyForCalculation() {return false;}
|
||||||
|
|
||||||
static std::vector<Type> availableTypes();
|
static std::vector<Type> availableTypes();
|
||||||
static QString TypeToString(Type type);
|
static QString TypeToString(Type type);
|
||||||
@ -79,9 +80,10 @@ public:
|
|||||||
virtual double minFreq() override;
|
virtual double minFreq() override;
|
||||||
virtual double maxFreq() override;
|
virtual double maxFreq() override;
|
||||||
virtual unsigned int numPoints() override {return points.size();}
|
virtual unsigned int numPoints() override {return points.size();}
|
||||||
|
virtual bool readyForCalculation() override {return standard && points.size() > 0;}
|
||||||
|
|
||||||
virtual void clearPoints();
|
virtual void clearPoints() override;
|
||||||
virtual void addPoint(const VirtualDevice::VNAMeasurement &m);
|
virtual void addPoint(const VirtualDevice::VNAMeasurement &m) override;
|
||||||
|
|
||||||
virtual QWidget* createSettingsWidget() override;
|
virtual QWidget* createSettingsWidget() override;
|
||||||
|
|
||||||
@ -179,9 +181,10 @@ public:
|
|||||||
virtual double minFreq() override;
|
virtual double minFreq() override;
|
||||||
virtual double maxFreq() override;
|
virtual double maxFreq() override;
|
||||||
virtual unsigned int numPoints() override {return points.size();}
|
virtual unsigned int numPoints() override {return points.size();}
|
||||||
|
virtual bool readyForCalculation() override {return standard && points.size() > 0;}
|
||||||
|
|
||||||
virtual void clearPoints();
|
virtual void clearPoints() override;
|
||||||
virtual void addPoint(const VirtualDevice::VNAMeasurement &m);
|
virtual void addPoint(const VirtualDevice::VNAMeasurement &m) override;
|
||||||
|
|
||||||
virtual QWidget* createSettingsWidget() override;
|
virtual QWidget* createSettingsWidget() override;
|
||||||
|
|
||||||
@ -236,9 +239,10 @@ public:
|
|||||||
virtual double minFreq() override;
|
virtual double minFreq() override;
|
||||||
virtual double maxFreq() override;
|
virtual double maxFreq() override;
|
||||||
virtual unsigned int numPoints() override;
|
virtual unsigned int numPoints() override;
|
||||||
|
virtual bool readyForCalculation() override {return points.size() > 0;}
|
||||||
|
|
||||||
virtual void clearPoints();
|
virtual void clearPoints() override;
|
||||||
virtual void addPoint(const VirtualDevice::VNAMeasurement &m);
|
virtual void addPoint(const VirtualDevice::VNAMeasurement &m) override;
|
||||||
|
|
||||||
virtual QWidget* createStandardWidget() override;
|
virtual QWidget* createStandardWidget() override;
|
||||||
virtual QWidget* createSettingsWidget() override;
|
virtual QWidget* createSettingsWidget() override;
|
||||||
|
@ -11,11 +11,12 @@
|
|||||||
namespace CalStandard
|
namespace CalStandard
|
||||||
{
|
{
|
||||||
|
|
||||||
class Virtual : public Savable
|
class Virtual : public QObject, public Savable
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
Virtual(QString name = "");
|
Virtual(QString name = "");
|
||||||
virtual ~Virtual(){};
|
virtual ~Virtual(){emit deleted();}
|
||||||
|
|
||||||
enum class Type {
|
enum class Type {
|
||||||
Open,
|
Open,
|
||||||
@ -48,6 +49,9 @@ public:
|
|||||||
QString getName() const;
|
QString getName() const;
|
||||||
void setName(const QString &value);
|
void setName(const QString &value);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void deleted();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QString name;
|
QString name;
|
||||||
double minFreq;
|
double minFreq;
|
||||||
|
Loading…
Reference in New Issue
Block a user