diff --git a/Software/PC_Application/Traces/Math/tracemath.cpp b/Software/PC_Application/Traces/Math/tracemath.cpp index 44a6192..2055c75 100644 --- a/Software/PC_Application/Traces/Math/tracemath.cpp +++ b/Software/PC_Application/Traces/Math/tracemath.cpp @@ -127,6 +127,31 @@ unsigned int TraceMath::numSamples() return data.size(); } +QString TraceMath::dataTypeToString(TraceMath::DataType type) +{ + switch(type) { + case DataType::Frequency: + return "Frequency"; + case DataType::Power: + return "Power"; + case DataType::Time: + return "Time"; + default: + return "Invalid"; + } +} + +TraceMath::DataType TraceMath::dataTypeFromString(QString s) +{ + for(unsigned int i=0;i<(int) DataType::Invalid;i++) { + if(s.compare(dataTypeToString((DataType) i), Qt::CaseInsensitive) == 0) { + return (DataType) i; + } + } + // not found + return DataType::Invalid; +} + void TraceMath::removeInput() { if(input) { diff --git a/Software/PC_Application/Traces/Math/tracemath.h b/Software/PC_Application/Traces/Math/tracemath.h index 874126d..8e38bf0 100644 --- a/Software/PC_Application/Traces/Math/tracemath.h +++ b/Software/PC_Application/Traces/Math/tracemath.h @@ -94,6 +94,9 @@ public: Data getInterpolatedSample(double x); unsigned int numSamples(); + static QString dataTypeToString(DataType type); + static DataType dataTypeFromString(QString s); + // indicate whether this function produces time or frequency domain data virtual DataType outputType(DataType inputType) = 0; virtual QString description() = 0; diff --git a/Software/PC_Application/Traces/trace.cpp b/Software/PC_Application/Traces/trace.cpp index 6907165..049ba03 100644 --- a/Software/PC_Application/Traces/trace.cpp +++ b/Software/PC_Application/Traces/trace.cpp @@ -119,7 +119,7 @@ void Trace::fillFromTouchstone(Touchstone &t, unsigned int parameter) } clear(); domain = DataType::Frequency; - fileParemeter = parameter; + fileParameter = parameter; filename = t.getFilename(); for(unsigned int i=0;i(real[i], imag[i]); - addData(d, DataType::Frequency); + addData(d, domain); } reflection = false; createdFromFile = true; @@ -246,8 +246,6 @@ void Trace::fillFromDatapoints(Trace &S11, Trace &S12, Trace &S21, Trace &S22, c void Trace::fromLivedata(Trace::LivedataType type, LiveParameter param) { - // TODO set domain depending on incoming data - domain = DataType::Frequency; createdFromFile = false; _liveType = type; _liveParam = param; @@ -328,7 +326,7 @@ nlohmann::json Trace::toJSON() } else if(isFromFile()) { j["type"] = "File"; j["filename"] = filename.toStdString(); - j["parameter"] = fileParemeter; + j["parameter"] = fileParameter; } j["velocityFactor"] = vFactor; j["reflection"] = reflection; @@ -366,15 +364,15 @@ void Trace::fromJSON(nlohmann::json j) paused = j.value("paused", false); } else if(type == "Touchstone" || type == "File") { auto filename = QString::fromStdString(j.value("filename", "")); - fileParemeter = j.value("parameter", 0); + fileParameter = j.value("parameter", 0); try { if(filename.endsWith(".csv")) { auto csv = CSV::fromFile(filename); - fillFromCSV(csv, fileParemeter); + fillFromCSV(csv, fileParameter); } else { // has to be a touchstone file Touchstone t = Touchstone::fromFile(filename.toStdString()); - fillFromTouchstone(t, fileParemeter); + fillFromTouchstone(t, fileParameter); } } catch (const exception &e) { std::string what = e.what(); @@ -932,7 +930,7 @@ QString Trace::getFilename() const unsigned int Trace::getFileParameter() const { - return fileParemeter; + return fileParameter; } double Trace::getNoise(double frequency) diff --git a/Software/PC_Application/Traces/trace.h b/Software/PC_Application/Traces/trace.h index fecc664..d6bc401 100644 --- a/Software/PC_Application/Traces/trace.h +++ b/Software/PC_Application/Traces/trace.h @@ -174,7 +174,7 @@ private: bool calibration; DataType domain; QString filename; - unsigned int fileParemeter; + unsigned int fileParameter; std::set markers; struct { union { diff --git a/Software/PC_Application/Traces/tracecsvexport.cpp b/Software/PC_Application/Traces/tracecsvexport.cpp index 996d740..72e3ccd 100644 --- a/Software/PC_Application/Traces/tracecsvexport.cpp +++ b/Software/PC_Application/Traces/tracecsvexport.cpp @@ -42,7 +42,7 @@ void TraceCSVExport::on_buttonBox_accepted() CSV csv; // create the first column (X data) vector X; - QString Xname = traces[0]->outputType() == Trace::DataType::Frequency ? "Frequency" : "Time"; + QString Xname = Trace::dataTypeToString(traces[0]->outputType()); auto samples = traces[0]->numSamples(); for(unsigned int i=0;isample(i).x);