From 3af9b735ba224c4d0195fa04fc7ae95e12e17fde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sat, 9 Jul 2022 21:58:02 +0200 Subject: [PATCH] Fix detection of reflection/transmission measurement for touchstone files with more than two ports --- Software/PC_Application/Traces/trace.cpp | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/Software/PC_Application/Traces/trace.cpp b/Software/PC_Application/Traces/trace.cpp index 1152783..dbb38b7 100644 --- a/Software/PC_Application/Traces/trace.cpp +++ b/Software/PC_Application/Traces/trace.cpp @@ -158,22 +158,14 @@ void Trace::fillFromTouchstone(Touchstone &t, unsigned int parameter) d.y = t.point(i).S[parameter]; addData(d, DataType::Frequency); } - // check if parameter is square (e.i. S11/S22/S33/...) - parameter++; - bool isSquare = false; - for (unsigned int i = 1; i * i <= parameter; i++) { - - // If (i * i = n) - if ((parameter % i == 0) && (parameter / i == i)) { - isSquare = true; + // check if parameter is a reflection measurement (e.i. S11/S22/S33/...) + reflection = false; + for (unsigned int i = 0; i * i <= parameter; i++) { + if (parameter == i * t.ports() + i) { + reflection = true; break; } } - if(isSquare == 1) { - reflection = true; - } else { - reflection = false; - } createdFromFile = true; reference_impedance = t.getReferenceImpedance(); emit typeChanged(this);