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