diff --git a/Software/PC_Application/Traces/tracexyplot.cpp b/Software/PC_Application/Traces/tracexyplot.cpp index 279d61f..fbd58b6 100644 --- a/Software/PC_Application/Traces/tracexyplot.cpp +++ b/Software/PC_Application/Traces/tracexyplot.cpp @@ -17,7 +17,8 @@ const set TraceXYPlot::YAxisTypes = {TraceXYPlot::YAxisT TraceXYPlot::YAxisType::Magnitude, TraceXYPlot::YAxisType::Phase, TraceXYPlot::YAxisType::VSWR, - TraceXYPlot::YAxisType::Impulse, + TraceXYPlot::YAxisType::ImpulseReal, + TraceXYPlot::YAxisType::ImpulseMag, TraceXYPlot::YAxisType::Step, TraceXYPlot::YAxisType::Impedance}; @@ -185,7 +186,8 @@ void TraceXYPlot::fromJSON(nlohmann::json j) bool TraceXYPlot::isTDRtype(TraceXYPlot::YAxisType type) { switch(type) { - case YAxisType::Impulse: + case YAxisType::ImpulseReal: + case YAxisType::ImpulseMag: case YAxisType::Step: case YAxisType::Impedance: return true; @@ -357,17 +359,8 @@ void TraceXYPlot::draw(QPainter &p) if(YAxis[i].type == YAxisType::Disabled) { continue; } - QString labelY; + QString labelY = AxisTypeToName(YAxis[i].type); p.setPen(QPen(pref.General.graphColors.axis, 1)); - switch(YAxis[i].type) { - case YAxisType::Magnitude: labelY = "Magnitude"; break; - case YAxisType::Phase: labelY = "Phase"; break; - case YAxisType::VSWR: labelY = "VSWR"; break; - case YAxisType::Impulse: labelY = "Impulse Response"; break; - case YAxisType::Step: labelY = "Step Response"; break; - case YAxisType::Impedance: labelY = "Impedance"; break; - default: break; - } auto xStart = i == 0 ? 0 : w.width() - AxisLabelSize * 1.5; p.save(); p.translate(xStart, w.height()-xAxisSpace); @@ -663,11 +656,14 @@ void TraceXYPlot::updateAxisTicks() QString TraceXYPlot::AxisTypeToName(TraceXYPlot::YAxisType type) { switch(type) { - case YAxisType::Disabled: return "Disabled"; break; case YAxisType::Magnitude: return "Magnitude"; break; case YAxisType::Phase: return "Phase"; break; case YAxisType::VSWR: return "VSWR"; break; - default: return "Unknown"; break; + case YAxisType::ImpulseReal: return "Impulse Response (Real)"; break; + case YAxisType::ImpulseMag: return "Impulse Response (Magnitude)"; break; + case YAxisType::Step: return "Step Response"; break; + case YAxisType::Impedance: return "Impedance"; break; + default: return "Unknown"; } } @@ -765,9 +761,12 @@ QPointF TraceXYPlot::traceToCoordinate(Trace *t, unsigned int sample, TraceXYPlo ret.setY((1+abs(data.y)) / (1-abs(data.y))); } break; - case YAxisType::Impulse: + case YAxisType::ImpulseReal: ret.setY(real(data.y)); break; + case YAxisType::ImpulseMag: + ret.setY(abs(data.y)); + break; case YAxisType::Step: ret.setY(t->sample(sample, Trace::SampleType::TimeStep).y.real()); break; @@ -908,7 +907,8 @@ QString TraceXYPlot::AxisUnit(TraceXYPlot::YAxisType type) case TraceXYPlot::YAxisType::Magnitude: return "db"; break; case TraceXYPlot::YAxisType::Phase: return "°"; break; case TraceXYPlot::YAxisType::VSWR: return ""; break; - case TraceXYPlot::YAxisType::Impulse: return ""; break; + case TraceXYPlot::YAxisType::ImpulseReal: return ""; break; + case TraceXYPlot::YAxisType::ImpulseMag: return ""; break; case TraceXYPlot::YAxisType::Step: return ""; break; case TraceXYPlot::YAxisType::Impedance: return "Ohm"; break; default: return ""; break; diff --git a/Software/PC_Application/Traces/tracexyplot.h b/Software/PC_Application/Traces/tracexyplot.h index 91287e5..fe2bb62 100644 --- a/Software/PC_Application/Traces/tracexyplot.h +++ b/Software/PC_Application/Traces/tracexyplot.h @@ -18,9 +18,10 @@ public: Phase = 2, VSWR = 3, // TDR options - Impulse = 4, - Step = 5, - Impedance = 6, + ImpulseReal = 4, + ImpulseMag = 5, + Step = 6, + Impedance = 7, Last, }; static const std::set YAxisTypes; diff --git a/Software/PC_Application/Traces/xyplotaxisdialog.cpp b/Software/PC_Application/Traces/xyplotaxisdialog.cpp index 8bfddcd..9565174 100644 --- a/Software/PC_Application/Traces/xyplotaxisdialog.cpp +++ b/Software/PC_Application/Traces/xyplotaxisdialog.cpp @@ -178,7 +178,8 @@ std::set XYplotAxisDialog::supportedYAxis(TraceXYPlot::X break; case TraceXYPlot::XAxisType::Time: case TraceXYPlot::XAxisType::Distance: - ret.insert(TraceXYPlot::YAxisType::Impulse); + ret.insert(TraceXYPlot::YAxisType::ImpulseReal); + ret.insert(TraceXYPlot::YAxisType::ImpulseMag); ret.insert(TraceXYPlot::YAxisType::Step); ret.insert(TraceXYPlot::YAxisType::Impedance); break; diff --git a/Software/PC_Application/Traces/xyplotaxisdialog.ui b/Software/PC_Application/Traces/xyplotaxisdialog.ui index 8141a23..3ec01cd 100644 --- a/Software/PC_Application/Traces/xyplotaxisdialog.ui +++ b/Software/PC_Application/Traces/xyplotaxisdialog.ui @@ -72,7 +72,12 @@ - Impulse Response + Impulse Response (real) + + + + + Impulse Response (mag) @@ -237,7 +242,12 @@ - Impulse Response + Impulse Response (real) + + + + + Impulse Response (mag)