LibreVNA/Software/PC_Application/VNA/Deembedding/deembedding.h

59 lines
1.4 KiB
C
Raw Normal View History

#ifndef DEEMBEDDING_H
#define DEEMBEDDING_H
#include "deembeddingoption.h"
#include "savable.h"
2021-02-11 23:59:59 +08:00
#include "Traces/tracemodel.h"
2021-10-21 19:00:34 +08:00
#include <vector>
#include <map>
2021-10-21 19:00:34 +08:00
#include <QObject>
2021-02-11 23:59:59 +08:00
#include <QDialog>
#include <QComboBox>
class Ui_DeembeddingMeasurementDialog;
class Deembedding : public QObject, public Savable
{
Q_OBJECT
public:
2021-02-11 23:59:59 +08:00
Deembedding(TraceModel &tm);
2022-08-05 02:12:15 +08:00
~Deembedding(){}
2022-08-05 02:12:15 +08:00
void Deembed(VirtualDevice::VNAMeasurement &d);
void Deembed(std::map<QString, Trace*> traceSet);
void removeOption(unsigned int index);
void addOption(DeembeddingOption* option);
void swapOptions(unsigned int index);
std::set<int> getAffectedPorts();
2022-08-05 02:12:15 +08:00
std::vector<DeembeddingOption*>& getOptions() {return options;}
nlohmann::json toJSON() override;
void fromJSON(nlohmann::json j) override;
public slots:
void configure();
2021-02-11 23:59:59 +08:00
signals:
void triggerMeasurement(bool S11 = true, bool S12 = true, bool S21 = true, bool S22 = true);
void optionAdded();
void allOptionsCleared();
private:
2021-02-11 23:59:59 +08:00
void measurementCompleted();
void startMeasurementDialog(DeembeddingOption *option);
std::vector<DeembeddingOption*> options;
2021-02-11 23:59:59 +08:00
DeembeddingOption *measuringOption;
TraceModel &tm;
bool measuring;
2022-08-05 02:12:15 +08:00
std::vector<VirtualDevice::VNAMeasurement> measurements;
2021-02-11 23:59:59 +08:00
QDialog *measurementDialog;
Ui_DeembeddingMeasurementDialog *measurementUI;
unsigned long sweepPoints;
};
#endif // DEEMBEDDING_H