scpi/app: unify result name

When returning scpi values, there are common options
that are shared between different commands. This
change introduce a way to define those values in a
single place.

Signed-off-by: Kiara Navarro <sophiekovalevsky@fedoraproject.org>
This commit is contained in:
Kiara Navarro 2022-07-01 18:51:04 -05:00
parent 506502ce02
commit d392229c4d
No known key found for this signature in database
GPG Key ID: CBA9F2172CE33FBA
6 changed files with 165 additions and 142 deletions

View File

@ -70,10 +70,10 @@ void Generator::setupSCPI()
add(new SCPICommand("FREQuency", [=](QStringList params) -> QString { add(new SCPICommand("FREQuency", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
central->setFrequency(newval); central->setFrequency(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(central->getDeviceStatus().frequency); return QString::number(central->getDeviceStatus().frequency);
@ -82,10 +82,10 @@ void Generator::setupSCPI()
double newval; double newval;
if(!SCPI::paramToDouble(params, 0, newval)) { if(!SCPI::paramToDouble(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
central->setLevel(newval); central->setLevel(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(central->getDeviceStatus().cdbm_level / 100.0); return QString::number(central->getDeviceStatus().cdbm_level / 100.0);
@ -93,10 +93,10 @@ void Generator::setupSCPI()
add(new SCPICommand("PORT", [=](QStringList params) -> QString { add(new SCPICommand("PORT", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval) || newval > 2) { if(!SCPI::paramToULongLong(params, 0, newval) || newval > 2) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
central->setPort(newval); central->setPort(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(central->getDeviceStatus().activePort); return QString::number(central->getDeviceStatus().activePort);

View File

@ -837,10 +837,10 @@ void SpectrumAnalyzer::SetupSCPI()
scpi_freq->add(new SCPICommand("SPAN", [=](QStringList params) -> QString { scpi_freq->add(new SCPICommand("SPAN", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetSpan(newval); SetSpan(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.f_stop - settings.f_start, 'f', 0); return QString::number(settings.f_stop - settings.f_start, 'f', 0);
@ -848,10 +848,10 @@ void SpectrumAnalyzer::SetupSCPI()
scpi_freq->add(new SCPICommand("START", [=](QStringList params) -> QString { scpi_freq->add(new SCPICommand("START", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetStartFreq(newval); SetStartFreq(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.f_start, 'f', 0); return QString::number(settings.f_start, 'f', 0);
@ -859,10 +859,10 @@ void SpectrumAnalyzer::SetupSCPI()
scpi_freq->add(new SCPICommand("CENTer", [=](QStringList params) -> QString { scpi_freq->add(new SCPICommand("CENTer", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetCenterFreq(newval); SetCenterFreq(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number((settings.f_start + settings.f_stop)/2, 'f', 0); return QString::number((settings.f_start + settings.f_stop)/2, 'f', 0);
@ -870,10 +870,10 @@ void SpectrumAnalyzer::SetupSCPI()
scpi_freq->add(new SCPICommand("STOP", [=](QStringList params) -> QString { scpi_freq->add(new SCPICommand("STOP", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetStopFreq(newval); SetStopFreq(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.f_stop, 'f', 0); return QString::number(settings.f_stop, 'f', 0);
@ -881,29 +881,29 @@ void SpectrumAnalyzer::SetupSCPI()
scpi_freq->add(new SCPICommand("FULL", [=](QStringList params) -> QString { scpi_freq->add(new SCPICommand("FULL", [=](QStringList params) -> QString {
Q_UNUSED(params) Q_UNUSED(params)
SetFullSpan(); SetFullSpan();
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, nullptr)); }, nullptr));
scpi_freq->add(new SCPICommand("ZERO", [=](QStringList params) -> QString { scpi_freq->add(new SCPICommand("ZERO", [=](QStringList params) -> QString {
Q_UNUSED(params) Q_UNUSED(params)
SetZeroSpan(); SetZeroSpan();
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, nullptr)); }, nullptr));
auto scpi_acq = new SCPINode("ACQuisition"); auto scpi_acq = new SCPINode("ACQuisition");
SCPINode::add(scpi_acq); SCPINode::add(scpi_acq);
scpi_acq->add(new SCPICommand("RBW", [=](QStringList params) -> QString { scpi_acq->add(new SCPICommand("RBW", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetRBW(newval); SetRBW(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.RBW); return QString::number(settings.RBW);
})); }));
scpi_acq->add(new SCPICommand("WINDow", [=](QStringList params) -> QString { scpi_acq->add(new SCPICommand("WINDow", [=](QStringList params) -> QString {
if (params.size() != 1) { if (params.size() != 1) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
if (params[0] == "NONE") { if (params[0] == "NONE") {
SetWindow(Window::None); SetWindow(Window::None);
@ -916,19 +916,19 @@ void SpectrumAnalyzer::SetupSCPI()
} else { } else {
return "INVALID WINDOW"; return "INVALID WINDOW";
} }
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
switch((Window) settings.WindowType) { switch((Window) settings.WindowType) {
case Window::None: return "NONE"; case Window::None: return "NONE";
case Window::Kaiser: return "KAISER"; case Window::Kaiser: return "KAISER";
case Window::Hann: return "HANN"; case Window::Hann: return "HANN";
case Window::FlatTop: return "FLATTOP"; case Window::FlatTop: return "FLATTOP";
default: return "ERROR"; default: return SCPI::getResultName(SCPI::Result::Error);
} }
})); }));
scpi_acq->add(new SCPICommand("DETector", [=](QStringList params) -> QString { scpi_acq->add(new SCPICommand("DETector", [=](QStringList params) -> QString {
if (params.size() != 1) { if (params.size() != 1) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
if (params[0] == "+PEAK") { if (params[0] == "+PEAK") {
SetDetector(Detector::PPeak); SetDetector(Detector::PPeak);
@ -943,7 +943,7 @@ void SpectrumAnalyzer::SetupSCPI()
} else { } else {
return "INVALID MDOE"; return "INVALID MDOE";
} }
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
switch((Detector) settings.Detector) { switch((Detector) settings.Detector) {
case Detector::PPeak: return "+PEAK"; case Detector::PPeak: return "+PEAK";
@ -951,16 +951,16 @@ void SpectrumAnalyzer::SetupSCPI()
case Detector::Normal: return "NORMAL"; case Detector::Normal: return "NORMAL";
case Detector::Sample: return "SAMPLE"; case Detector::Sample: return "SAMPLE";
case Detector::Average: return "AVERAGE"; case Detector::Average: return "AVERAGE";
default: return "ERROR"; default: return SCPI::getResultName(SCPI::Result::Error);
} }
})); }));
scpi_acq->add(new SCPICommand("AVG", [=](QStringList params) -> QString { scpi_acq->add(new SCPICommand("AVG", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetAveraging(newval); SetAveraging(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(averages); return QString::number(averages);
@ -976,59 +976,59 @@ void SpectrumAnalyzer::SetupSCPI()
})); }));
scpi_acq->add(new SCPICommand("SIGid", [=](QStringList params) -> QString { scpi_acq->add(new SCPICommand("SIGid", [=](QStringList params) -> QString {
if (params.size() != 1) { if (params.size() != 1) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
if(params[0] == "1" || params[0] == "TRUE") { if(params[0] == "1" || params[0] == "TRUE") {
SetSignalID(true); SetSignalID(true);
} else if(params[0] == "0" || params[0] == "FALSE") { } else if(params[0] == "0" || params[0] == "FALSE") {
SetSignalID(false); SetSignalID(false);
} else { } else {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return settings.SignalID ? "TRUE" : "FALSE"; return settings.SignalID ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False);
})); }));
scpi_acq->add(new SCPICommand("SINGLE", [=](QStringList params) -> QString { scpi_acq->add(new SCPICommand("SINGLE", [=](QStringList params) -> QString {
bool single; bool single;
if(!SCPI::paramToBool(params, 0, single)) { if(!SCPI::paramToBool(params, 0, single)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetSingleSweep(single); SetSingleSweep(single);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return singleSweep ? "TRUE" : "FALSE"; return singleSweep ? SCPI::getResultName(SCPI::Result::True): SCPI::getResultName(SCPI::Result::False);
})); }));
auto scpi_tg = new SCPINode("TRACKing"); auto scpi_tg = new SCPINode("TRACKing");
SCPINode::add(scpi_tg); SCPINode::add(scpi_tg);
scpi_tg->add(new SCPICommand("ENable", [=](QStringList params) -> QString { scpi_tg->add(new SCPICommand("ENable", [=](QStringList params) -> QString {
if (params.size() != 1) { if (params.size() != 1) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
if(params[0] == "1" || params[0] == "TRUE") { if(params[0] == "1" || params[0] == "TRUE") {
SetTGEnabled(true); SetTGEnabled(true);
} else if(params[0] == "0" || params[0] == "FALSE") { } else if(params[0] == "0" || params[0] == "FALSE") {
SetTGEnabled(false); SetTGEnabled(false);
} else { } else {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return settings.trackingGenerator ? "TRUE" : "FALSE"; return settings.trackingGenerator ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False);
})); }));
scpi_tg->add(new SCPICommand("Port", [=](QStringList params) -> QString { scpi_tg->add(new SCPICommand("Port", [=](QStringList params) -> QString {
if (params.size() != 1) { if (params.size() != 1) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
if(params[0] == "1") { if(params[0] == "1") {
SetTGPort(0); SetTGPort(0);
} else if(params[0] == "2") { } else if(params[0] == "2") {
SetTGPort(1); SetTGPort(1);
} else { } else {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return settings.trackingGeneratorPort ? "2" : "1"; return settings.trackingGeneratorPort ? "2" : "1";
})); }));
@ -1036,10 +1036,10 @@ void SpectrumAnalyzer::SetupSCPI()
double newval; double newval;
if(!SCPI::paramToDouble(params, 0, newval)) { if(!SCPI::paramToDouble(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetTGLevel(newval); SetTGLevel(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.trackingPower / 100.0); return QString::number(settings.trackingPower / 100.0);
@ -1047,10 +1047,10 @@ void SpectrumAnalyzer::SetupSCPI()
scpi_tg->add(new SCPICommand("OFFset", [=](QStringList params) -> QString { scpi_tg->add(new SCPICommand("OFFset", [=](QStringList params) -> QString {
long newval; long newval;
if(!SCPI::paramToLong(params, 0, newval)) { if(!SCPI::paramToLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetTGOffset(newval); SetTGOffset(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.trackingGeneratorOffset); return QString::number(settings.trackingGeneratorOffset);
@ -1059,18 +1059,18 @@ void SpectrumAnalyzer::SetupSCPI()
scpi_tg->add(scpi_norm); scpi_tg->add(scpi_norm);
scpi_norm->add(new SCPICommand("ENable", [=](QStringList params) -> QString { scpi_norm->add(new SCPICommand("ENable", [=](QStringList params) -> QString {
if (params.size() != 1) { if (params.size() != 1) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
if(params[0] == "1" || params[0] == "TRUE") { if(params[0] == "1" || params[0] == "TRUE") {
EnableNormalization(true); EnableNormalization(true);
} else if(params[0] == "0" || params[0] == "FALSE") { } else if(params[0] == "0" || params[0] == "FALSE") {
EnableNormalization(false); EnableNormalization(false);
} else { } else {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return normalize.active ? "TRUE" : "FALSE"; return normalize.active ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False);
})); }));
scpi_norm->add(new SCPICommand("MEASure", [=](QStringList params) -> QString { scpi_norm->add(new SCPICommand("MEASure", [=](QStringList params) -> QString {
Q_UNUSED(params) Q_UNUSED(params)
@ -1080,10 +1080,10 @@ void SpectrumAnalyzer::SetupSCPI()
scpi_norm->add(new SCPICommand("LVL", [=](QStringList params) -> QString { scpi_norm->add(new SCPICommand("LVL", [=](QStringList params) -> QString {
double newval; double newval;
if(!SCPI::paramToDouble(params, 0, newval)) { if(!SCPI::paramToDouble(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetNormalizationLevel(newval); SetNormalizationLevel(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(normalize.Level->value()); return QString::number(normalize.Level->value());

View File

@ -1290,11 +1290,11 @@ void VNA::SetupSCPI()
return ""; return "";
} else if(params[0] == "POWER") { } else if(params[0] == "POWER") {
SetSweepType(SweepType::Power); SetSweepType(SweepType::Power);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
} }
// either no parameter or invalid // either no parameter or invalid
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return settings.sweepType == SweepType::Frequency ? "FREQUENCY" : "POWER"; return settings.sweepType == SweepType::Frequency ? "FREQUENCY" : "POWER";
})); }));
@ -1303,10 +1303,10 @@ void VNA::SetupSCPI()
scpi_freq->add(new SCPICommand("SPAN", [=](QStringList params) -> QString { scpi_freq->add(new SCPICommand("SPAN", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetSpan(newval); SetSpan(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.Freq.stop - settings.Freq.start, 'f', 0); return QString::number(settings.Freq.stop - settings.Freq.start, 'f', 0);
@ -1314,10 +1314,10 @@ void VNA::SetupSCPI()
scpi_freq->add(new SCPICommand("START", [=](QStringList params) -> QString { scpi_freq->add(new SCPICommand("START", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetStartFreq(newval); SetStartFreq(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.Freq.start, 'f', 0); return QString::number(settings.Freq.start, 'f', 0);
@ -1325,10 +1325,10 @@ void VNA::SetupSCPI()
scpi_freq->add(new SCPICommand("CENTer", [=](QStringList params) -> QString { scpi_freq->add(new SCPICommand("CENTer", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetCenterFreq(newval); SetCenterFreq(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number((settings.Freq.start + settings.Freq.stop)/2, 'f', 0); return QString::number((settings.Freq.start + settings.Freq.stop)/2, 'f', 0);
@ -1336,10 +1336,10 @@ void VNA::SetupSCPI()
scpi_freq->add(new SCPICommand("STOP", [=](QStringList params) -> QString { scpi_freq->add(new SCPICommand("STOP", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetStopFreq(newval); SetStopFreq(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.Freq.stop, 'f', 0); return QString::number(settings.Freq.stop, 'f', 0);
@ -1347,22 +1347,22 @@ void VNA::SetupSCPI()
scpi_freq->add(new SCPICommand("FULL", [=](QStringList params) -> QString { scpi_freq->add(new SCPICommand("FULL", [=](QStringList params) -> QString {
Q_UNUSED(params) Q_UNUSED(params)
SetFullSpan(); SetFullSpan();
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, nullptr)); }, nullptr));
scpi_freq->add(new SCPICommand("ZERO", [=](QStringList params) -> QString { scpi_freq->add(new SCPICommand("ZERO", [=](QStringList params) -> QString {
Q_UNUSED(params) Q_UNUSED(params)
SetZeroSpan(); SetZeroSpan();
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, nullptr)); }, nullptr));
auto scpi_power = new SCPINode("POWer"); auto scpi_power = new SCPINode("POWer");
SCPINode::add(scpi_power); SCPINode::add(scpi_power);
scpi_power->add(new SCPICommand("START", [=](QStringList params) -> QString { scpi_power->add(new SCPICommand("START", [=](QStringList params) -> QString {
double newval; double newval;
if(!SCPI::paramToDouble(params, 0, newval)) { if(!SCPI::paramToDouble(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetStartPower(newval); SetStartPower(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.Power.start); return QString::number(settings.Power.start);
@ -1370,10 +1370,10 @@ void VNA::SetupSCPI()
scpi_power->add(new SCPICommand("STOP", [=](QStringList params) -> QString { scpi_power->add(new SCPICommand("STOP", [=](QStringList params) -> QString {
double newval; double newval;
if(!SCPI::paramToDouble(params, 0, newval)) { if(!SCPI::paramToDouble(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetStopPower(newval); SetStopPower(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.Power.stop); return QString::number(settings.Power.stop);
@ -1383,10 +1383,10 @@ void VNA::SetupSCPI()
scpi_acq->add(new SCPICommand("IFBW", [=](QStringList params) -> QString { scpi_acq->add(new SCPICommand("IFBW", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetIFBandwidth(newval); SetIFBandwidth(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.bandwidth); return QString::number(settings.bandwidth);
@ -1394,10 +1394,10 @@ void VNA::SetupSCPI()
scpi_acq->add(new SCPICommand("POINTS", [=](QStringList params) -> QString { scpi_acq->add(new SCPICommand("POINTS", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetPoints(newval); SetPoints(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.npoints); return QString::number(settings.npoints);
@ -1405,10 +1405,10 @@ void VNA::SetupSCPI()
scpi_acq->add(new SCPICommand("AVG", [=](QStringList params) -> QString { scpi_acq->add(new SCPICommand("AVG", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetAveraging(newval); SetAveraging(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(averages); return QString::number(averages);
@ -1417,7 +1417,7 @@ void VNA::SetupSCPI()
return QString::number(average.getLevel()); return QString::number(average.getLevel());
})); }));
scpi_acq->add(new SCPICommand("FINished", nullptr, [=](QStringList) -> QString { scpi_acq->add(new SCPICommand("FINished", nullptr, [=](QStringList) -> QString {
return average.getLevel() == averages ? "TRUE" : "FALSE"; return average.getLevel() == averages ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False);
})); }));
scpi_acq->add(new SCPICommand("LIMit", nullptr, [=](QStringList) -> QString { scpi_acq->add(new SCPICommand("LIMit", nullptr, [=](QStringList) -> QString {
return central->allLimitsPassing() ? "PASS" : "FAIL"; return central->allLimitsPassing() ? "PASS" : "FAIL";
@ -1425,23 +1425,23 @@ void VNA::SetupSCPI()
scpi_acq->add(new SCPICommand("SINGLE", [=](QStringList params) -> QString { scpi_acq->add(new SCPICommand("SINGLE", [=](QStringList params) -> QString {
bool single; bool single;
if(!SCPI::paramToBool(params, 0, single)) { if(!SCPI::paramToBool(params, 0, single)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetSingleSweep(single); SetSingleSweep(single);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return singleSweep ? "TRUE" : "FALSE"; return singleSweep ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False);
})); }));
auto scpi_stim = new SCPINode("STIMulus"); auto scpi_stim = new SCPINode("STIMulus");
SCPINode::add(scpi_stim); SCPINode::add(scpi_stim);
scpi_stim->add(new SCPICommand("LVL", [=](QStringList params) -> QString { scpi_stim->add(new SCPICommand("LVL", [=](QStringList params) -> QString {
double newval; double newval;
if(!SCPI::paramToDouble(params, 0, newval)) { if(!SCPI::paramToDouble(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetSourceLevel(newval); SetSourceLevel(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.Freq.excitation_power); return QString::number(settings.Freq.excitation_power);
@ -1449,10 +1449,10 @@ void VNA::SetupSCPI()
scpi_stim->add(new SCPICommand("FREQuency", [=](QStringList params) -> QString { scpi_stim->add(new SCPICommand("FREQuency", [=](QStringList params) -> QString {
unsigned long long newval; unsigned long long newval;
if(!SCPI::paramToULongLong(params, 0, newval)) { if(!SCPI::paramToULongLong(params, 0, newval)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
SetPowerSweepFrequency(newval); SetPowerSweepFrequency(newval);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
return QString::number(settings.Power.frequency, 'f', 0); return QString::number(settings.Power.frequency, 'f', 0);
@ -1462,12 +1462,12 @@ void VNA::SetupSCPI()
SCPINode::add(scpi_cal); SCPINode::add(scpi_cal);
scpi_cal->add(new SCPICommand("TYPE", [=](QStringList params) -> QString { scpi_cal->add(new SCPICommand("TYPE", [=](QStringList params) -> QString {
if(params.size() != 1) { if(params.size() != 1) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
auto type = Calibration::TypeFromString(params[0].replace('_', ' ')); auto type = Calibration::TypeFromString(params[0].replace('_', ' '));
if(type == Calibration::Type::Last) { if(type == Calibration::Type::Last) {
// failed to parse string // failed to parse string
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else if(type == Calibration::Type::None) { } else if(type == Calibration::Type::None) {
DisableCalibration(); DisableCalibration();
} else { } else {
@ -1475,11 +1475,11 @@ void VNA::SetupSCPI()
if(cal.calculationPossible(type)) { if(cal.calculationPossible(type)) {
ApplyCalibration(type); ApplyCalibration(type);
} else { } else {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
} }
} }
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
auto ret = Calibration::TypeToString(cal.getType()); auto ret = Calibration::TypeToString(cal.getType());
ret.replace(' ', '_'); ret.replace(' ', '_');
@ -1488,43 +1488,43 @@ void VNA::SetupSCPI()
scpi_cal->add(new SCPICommand("MEASure", [=](QStringList params) -> QString { scpi_cal->add(new SCPICommand("MEASure", [=](QStringList params) -> QString {
if(params.size() != 1 || CalibrationMeasurementActive() || !window->getDevice() || Mode::getActiveMode() != this) { if(params.size() != 1 || CalibrationMeasurementActive() || !window->getDevice() || Mode::getActiveMode() != this) {
// no measurement specified, still busy or invalid mode // no measurement specified, still busy or invalid mode
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
auto meas = Calibration::MeasurementFromString(params[0].replace('_', ' ')); auto meas = Calibration::MeasurementFromString(params[0].replace('_', ' '));
if(meas == Calibration::Measurement::Last) { if(meas == Calibration::Measurement::Last) {
// failed to parse string // failed to parse string
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
std::set<Calibration::Measurement> m; std::set<Calibration::Measurement> m;
m.insert(meas); m.insert(meas);
StartCalibrationMeasurements(m); StartCalibrationMeasurements(m);
} }
} }
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, nullptr)); }, nullptr));
scpi_cal->add(new SCPICommand("BUSy", nullptr, [=](QStringList) -> QString { scpi_cal->add(new SCPICommand("BUSy", nullptr, [=](QStringList) -> QString {
return CalibrationMeasurementActive() ? "TRUE" : "FALSE"; return CalibrationMeasurementActive() ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False);
})); }));
scpi_cal->add(new SCPICommand("SAVE", [=](QStringList params) -> QString { scpi_cal->add(new SCPICommand("SAVE", [=](QStringList params) -> QString {
if(params.size() != 1 || !calValid) { if(params.size() != 1 || !calValid) {
// no filename given or no calibration active // no filename given or no calibration active
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
if(!cal.saveToFile(params[0])) { if(!cal.saveToFile(params[0])) {
// some error when writing the calibration file // some error when writing the calibration file
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
calEdited = false; calEdited = false;
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, nullptr)); }, nullptr));
scpi_cal->add(new SCPICommand("LOAD", nullptr, [=](QStringList params) -> QString { scpi_cal->add(new SCPICommand("LOAD", nullptr, [=](QStringList params) -> QString {
if(params.size() != 1) { if(params.size() != 1) {
// no filename given or no calibration active // no filename given or no calibration active
return "FALSE"; return SCPI::getResultName(SCPI::Result::False);
} }
if(!cal.openFromFile(params[0])) { if(!cal.openFromFile(params[0])) {
// some error when loading the calibration file // some error when loading the calibration file
return "FALSE"; return SCPI::getResultName(SCPI::Result::False);
} }
if(cal.getType() == Calibration::Type::None) { if(cal.getType() == Calibration::Type::None) {
DisableCalibration(); DisableCalibration();
@ -1532,7 +1532,7 @@ void VNA::SetupSCPI()
ApplyCalibration(cal.getType()); ApplyCalibration(cal.getType());
} }
calEdited = false; calEdited = false;
return "TRUE"; return SCPI::getResultName(SCPI::Result::True);
})); }));
} }

View File

@ -475,7 +475,7 @@ void AppWindow::SetupSCPI()
scpi_dev->add(new SCPICommand("DISConnect", [=](QStringList params) -> QString { scpi_dev->add(new SCPICommand("DISConnect", [=](QStringList params) -> QString {
Q_UNUSED(params) Q_UNUSED(params)
DisconnectDevice(); DisconnectDevice();
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, nullptr)); }, nullptr));
scpi_dev->add(new SCPICommand("CONNect", [=](QStringList params) -> QString { scpi_dev->add(new SCPICommand("CONNect", [=](QStringList params) -> QString {
QString serial; QString serial;
@ -485,7 +485,7 @@ void AppWindow::SetupSCPI()
if(!ConnectToDevice(serial)) { if(!ConnectToDevice(serial)) {
return "Device not found"; return "Device not found";
} else { } else {
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
if(device) { if(device) {
@ -507,7 +507,7 @@ void AppWindow::SetupSCPI()
scpi_dev->add(scpi_ref); scpi_dev->add(scpi_ref);
scpi_ref->add(new SCPICommand("OUT", [=](QStringList params) -> QString { scpi_ref->add(new SCPICommand("OUT", [=](QStringList params) -> QString {
if(params.size() != 1) { if(params.size() != 1) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else if(params[0] == "0" || params[0] == "OFF") { } else if(params[0] == "0" || params[0] == "OFF") {
int index = toolbars.reference.outFreq->findData((int)Reference::OutFreq::Off); int index = toolbars.reference.outFreq->findData((int)Reference::OutFreq::Off);
toolbars.reference.outFreq->setCurrentIndex(index); toolbars.reference.outFreq->setCurrentIndex(index);
@ -518,21 +518,21 @@ void AppWindow::SetupSCPI()
int index = toolbars.reference.outFreq->findData((int)Reference::OutFreq::MHZ100); int index = toolbars.reference.outFreq->findData((int)Reference::OutFreq::MHZ100);
toolbars.reference.outFreq->setCurrentIndex(index); toolbars.reference.outFreq->setCurrentIndex(index);
} else { } else {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
Reference::OutFreq f = static_cast<Reference::OutFreq>(toolbars.reference.outFreq->currentData().toInt()); Reference::OutFreq f = static_cast<Reference::OutFreq>(toolbars.reference.outFreq->currentData().toInt());
switch(f) { switch(f) {
case Reference::OutFreq::Off: return "OFF"; case Reference::OutFreq::Off: return "OFF";
case Reference::OutFreq::MHZ10: return "10"; case Reference::OutFreq::MHZ10: return "10";
case Reference::OutFreq::MHZ100: return "100"; case Reference::OutFreq::MHZ100: return "100";
default: return "ERROR"; default: return SCPI::getResultName(SCPI::Result::Error);
} }
})); }));
scpi_ref->add(new SCPICommand("IN", [=](QStringList params) -> QString { scpi_ref->add(new SCPICommand("IN", [=](QStringList params) -> QString {
if(params.size() != 1) { if(params.size() != 1) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else if(params[0] == "INT") { } else if(params[0] == "INT") {
int index = toolbars.reference.type->findData((int)Reference::TypeIn::Internal); int index = toolbars.reference.type->findData((int)Reference::TypeIn::Internal);
toolbars.reference.type->setCurrentIndex(index); toolbars.reference.type->setCurrentIndex(index);
@ -543,19 +543,19 @@ void AppWindow::SetupSCPI()
int index = toolbars.reference.type->findData((int)Reference::TypeIn::Auto); int index = toolbars.reference.type->findData((int)Reference::TypeIn::Auto);
toolbars.reference.type->setCurrentIndex(index); toolbars.reference.type->setCurrentIndex(index);
} else { } else {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
switch(Device::StatusV1(getDevice()).extRefInUse) { switch(Device::StatusV1(getDevice()).extRefInUse) {
case 0: return "INT"; case 0: return "INT";
case 1: return "EXT"; case 1: return "EXT";
default: return "ERROR"; default: return SCPI::getResultName(SCPI::Result::Error);
} }
})); }));
scpi_dev->add(new SCPICommand("MODE", [=](QStringList params) -> QString { scpi_dev->add(new SCPICommand("MODE", [=](QStringList params) -> QString {
if (params.size() != 1) { if (params.size() != 1) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
Mode *mode = nullptr; Mode *mode = nullptr;
if (params[0] == "VNA") { if (params[0] == "VNA") {
@ -569,9 +569,9 @@ void AppWindow::SetupSCPI()
} }
if(mode) { if(mode) {
mode->activate(); mode->activate();
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} else { } else {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
auto active = Mode::getActiveMode(); auto active = Mode::getActiveMode();
@ -582,7 +582,7 @@ void AppWindow::SetupSCPI()
case Mode::Type::SA: return "SA"; case Mode::Type::SA: return "SA";
} }
} }
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
})); }));
auto scpi_status = new SCPINode("STAtus"); auto scpi_status = new SCPINode("STAtus");
scpi_dev->add(scpi_status); scpi_dev->add(scpi_status);
@ -643,29 +643,29 @@ void AppWindow::SetupSCPI()
auto scpi_manual = new SCPINode("MANual"); auto scpi_manual = new SCPINode("MANual");
scpi_manual->add(new SCPICommand("STArt",[=](QStringList) -> QString { scpi_manual->add(new SCPICommand("STArt",[=](QStringList) -> QString {
StartManualControl(); StartManualControl();
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, nullptr)); }, nullptr));
scpi_manual->add(new SCPICommand("STOp",[=](QStringList) -> QString { scpi_manual->add(new SCPICommand("STOp",[=](QStringList) -> QString {
manual->close(); manual->close();
delete manual; delete manual;
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, nullptr)); }, nullptr));
auto addBooleanManualSetting = [=](QString cmd, void(ManualControlDialog::*set)(bool), bool(ManualControlDialog::*get)(void)) { auto addBooleanManualSetting = [=](QString cmd, void(ManualControlDialog::*set)(bool), bool(ManualControlDialog::*get)(void)) {
scpi_manual->add(new SCPICommand(cmd, [=](QStringList params) -> QString { scpi_manual->add(new SCPICommand(cmd, [=](QStringList params) -> QString {
bool enable; bool enable;
if(!manual || !SCPI::paramToBool(params, 0, enable)) { if(!manual || !SCPI::paramToBool(params, 0, enable)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
auto set_fn = std::bind(set, manual, std::placeholders::_1); auto set_fn = std::bind(set, manual, std::placeholders::_1);
set_fn(enable); set_fn(enable);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
if(!manual) { if(!manual) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
auto get_fn = std::bind(get, manual); auto get_fn = std::bind(get, manual);
return get_fn() ? "TRUE" : "FALSE"; return get_fn() ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False);
})); }));
}; };
@ -673,14 +673,14 @@ void AppWindow::SetupSCPI()
scpi_manual->add(new SCPICommand(cmd, [=](QStringList params) -> QString { scpi_manual->add(new SCPICommand(cmd, [=](QStringList params) -> QString {
double value; double value;
if(!manual || !SCPI::paramToDouble(params, 0, value)) { if(!manual || !SCPI::paramToDouble(params, 0, value)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
auto set_fn = std::bind(set, manual, std::placeholders::_1); auto set_fn = std::bind(set, manual, std::placeholders::_1);
set_fn(value); set_fn(value);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
if(!manual) { if(!manual) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
auto get_fn = std::bind(get, manual); auto get_fn = std::bind(get, manual);
return QString::number(get_fn()); return QString::number(get_fn());
@ -690,14 +690,14 @@ void AppWindow::SetupSCPI()
scpi_manual->add(new SCPICommand(cmd, [=](QStringList params) -> QString { scpi_manual->add(new SCPICommand(cmd, [=](QStringList params) -> QString {
double value; double value;
if(!manual || !SCPI::paramToDouble(params, 0, value)) { if(!manual || !SCPI::paramToDouble(params, 0, value)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
auto set_fn = std::bind(set, manual, std::placeholders::_1); auto set_fn = std::bind(set, manual, std::placeholders::_1);
set_fn(value); set_fn(value);
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
if(!manual) { if(!manual) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
auto get_fn = std::bind(get, manual); auto get_fn = std::bind(get, manual);
return QString::number(get_fn()); return QString::number(get_fn());
@ -707,17 +707,17 @@ void AppWindow::SetupSCPI()
scpi_manual->add(new SCPICommand(cmd, [=](QStringList params) -> QString { scpi_manual->add(new SCPICommand(cmd, [=](QStringList params) -> QString {
double value; double value;
if(!manual || !SCPI::paramToDouble(params, 0, value)) { if(!manual || !SCPI::paramToDouble(params, 0, value)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
auto set_fn = std::bind(set, manual, std::placeholders::_1); auto set_fn = std::bind(set, manual, std::placeholders::_1);
if(set_fn(value)) { if(set_fn(value)) {
return ""; return SCPI::getResultName(SCPI::Result::Empty);
} else { } else {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
if(!manual) { if(!manual) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
auto get_fn = std::bind(get, manual); auto get_fn = std::bind(get, manual);
return QString::number(get_fn()); return QString::number(get_fn());
@ -726,7 +726,7 @@ void AppWindow::SetupSCPI()
auto addIntegerManualQuery = [=](QString cmd, int(ManualControlDialog::*get)(void)) { auto addIntegerManualQuery = [=](QString cmd, int(ManualControlDialog::*get)(void)) {
scpi_manual->add(new SCPICommand(cmd, nullptr, [=](QStringList) -> QString { scpi_manual->add(new SCPICommand(cmd, nullptr, [=](QStringList) -> QString {
if(!manual) { if(!manual) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
auto get_fn = std::bind(get, manual); auto get_fn = std::bind(get, manual);
return QString::number(get_fn()); return QString::number(get_fn());
@ -735,7 +735,7 @@ void AppWindow::SetupSCPI()
auto addDoubleManualQuery = [=](QString cmd, double(ManualControlDialog::*get)(void)) { auto addDoubleManualQuery = [=](QString cmd, double(ManualControlDialog::*get)(void)) {
scpi_manual->add(new SCPICommand(cmd, nullptr, [=](QStringList) -> QString { scpi_manual->add(new SCPICommand(cmd, nullptr, [=](QStringList) -> QString {
if(!manual) { if(!manual) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
auto get_fn = std::bind(get, manual); auto get_fn = std::bind(get, manual);
return QString::number(get_fn()); return QString::number(get_fn());
@ -744,16 +744,16 @@ void AppWindow::SetupSCPI()
auto addBooleanManualQuery = [=](QString cmd, bool(ManualControlDialog::*get)(void)) { auto addBooleanManualQuery = [=](QString cmd, bool(ManualControlDialog::*get)(void)) {
scpi_manual->add(new SCPICommand(cmd, nullptr, [=](QStringList) -> QString { scpi_manual->add(new SCPICommand(cmd, nullptr, [=](QStringList) -> QString {
if(!manual) { if(!manual) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
auto get_fn = std::bind(get, manual); auto get_fn = std::bind(get, manual);
return get_fn() ? "TRUE" : "FALSE"; return get_fn() ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False);
})); }));
}; };
auto addComplexManualQuery = [=](QString cmd, std::complex<double>(ManualControlDialog::*get)(void)) { auto addComplexManualQuery = [=](QString cmd, std::complex<double>(ManualControlDialog::*get)(void)) {
scpi_manual->add(new SCPICommand(cmd, nullptr, [=](QStringList) -> QString { scpi_manual->add(new SCPICommand(cmd, nullptr, [=](QStringList) -> QString {
if(!manual) { if(!manual) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
auto get_fn = std::bind(get, manual); auto get_fn = std::bind(get, manual);
auto res = get_fn(); auto res = get_fn();
@ -769,7 +769,7 @@ void AppWindow::SetupSCPI()
scpi_manual->add(new SCPICommand("HSRC_LPF", [=](QStringList params) -> QString { scpi_manual->add(new SCPICommand("HSRC_LPF", [=](QStringList params) -> QString {
long value; long value;
if(!manual || !SCPI::paramToLong(params, 0, value)) { if(!manual || !SCPI::paramToLong(params, 0, value)) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
switch(value) { switch(value) {
case 947: case 947:
@ -785,12 +785,12 @@ void AppWindow::SetupSCPI()
manual->setHighSourceLPF(ManualControlDialog::LPF::None); manual->setHighSourceLPF(ManualControlDialog::LPF::None);
break; break;
default: default:
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
if(!manual) { if(!manual) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
auto lpf = manual->getHighSourceLPF(); auto lpf = manual->getHighSourceLPF();
switch(lpf) { switch(lpf) {
@ -798,7 +798,7 @@ void AppWindow::SetupSCPI()
case ManualControlDialog::LPF::M1880: return "1880"; case ManualControlDialog::LPF::M1880: return "1880";
case ManualControlDialog::LPF::M3500: return "3500"; case ManualControlDialog::LPF::M3500: return "3500";
case ManualControlDialog::LPF::None: return "0"; case ManualControlDialog::LPF::None: return "0";
default: return "ERROR"; default: return SCPI::getResultName(SCPI::Result::Error);
} }
})); }));
addBooleanManualSetting("LSRC_EN", &ManualControlDialog::setLowSourceEnable, &ManualControlDialog::getLowSourceEnable); addBooleanManualSetting("LSRC_EN", &ManualControlDialog::setLowSourceEnable, &ManualControlDialog::getLowSourceEnable);
@ -822,7 +822,7 @@ void AppWindow::SetupSCPI()
addIntegerManualSetting("SAMPLES", &ManualControlDialog::setNumSamples, &ManualControlDialog::getNumSamples); addIntegerManualSetting("SAMPLES", &ManualControlDialog::setNumSamples, &ManualControlDialog::getNumSamples);
scpi_manual->add(new SCPICommand("WINdow", [=](QStringList params) -> QString { scpi_manual->add(new SCPICommand("WINdow", [=](QStringList params) -> QString {
if(!manual || params.size() < 1) { if(!manual || params.size() < 1) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
if (params[0] == "NONE") { if (params[0] == "NONE") {
manual->setWindow(ManualControlDialog::Window::None); manual->setWindow(ManualControlDialog::Window::None);
@ -835,17 +835,17 @@ void AppWindow::SetupSCPI()
} else { } else {
return "INVALID WINDOW"; return "INVALID WINDOW";
} }
return ""; return SCPI::getResultName(SCPI::Result::Empty);
}, [=](QStringList) -> QString { }, [=](QStringList) -> QString {
if(!manual) { if(!manual) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
switch((ManualControlDialog::Window) manual->getWindow()) { switch((ManualControlDialog::Window) manual->getWindow()) {
case ManualControlDialog::Window::None: return "NONE"; case ManualControlDialog::Window::None: return "NONE";
case ManualControlDialog::Window::Kaiser: return "KAISER"; case ManualControlDialog::Window::Kaiser: return "KAISER";
case ManualControlDialog::Window::Hann: return "HANN"; case ManualControlDialog::Window::Hann: return "HANN";
case ManualControlDialog::Window::FlatTop: return "FLATTOP"; case ManualControlDialog::Window::FlatTop: return "FLATTOP";
default: return "ERROR"; default: return SCPI::getResultName(SCPI::Result::Error);
} }
})); }));
addIntegerManualQuery("PORT1_MIN", &ManualControlDialog::getPort1MinADC); addIntegerManualQuery("PORT1_MIN", &ManualControlDialog::getPort1MinADC);

View File

@ -79,6 +79,20 @@ bool SCPI::paramToBool(QStringList params, int index, bool &dest)
return okay; return okay;
} }
QString SCPI::getResultName(SCPI::Result r)
{
switch (r) {
case Result::Empty:
return "";
case Result::Error:
return "ERROR";
case Result::False:
return "FALSE";
case Result::True:
return "TRUE";
}
}
void SCPI::input(QString line) void SCPI::input(QString line)
{ {
auto cmds = line.split(";"); auto cmds = line.split(";");
@ -191,7 +205,7 @@ QString SCPINode::parse(QString cmd, SCPINode* &lastNode)
} }
} }
// unable to find subnode // unable to find subnode
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
// no more levels, search for command // no more levels, search for command
auto params = cmd.split(" "); auto params = cmd.split(" ");
@ -214,14 +228,14 @@ QString SCPINode::parse(QString cmd, SCPINode* &lastNode)
} }
} }
// couldn't find command // couldn't find command
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} }
} }
QString SCPICommand::execute(QStringList params) QString SCPICommand::execute(QStringList params)
{ {
if(fn_cmd == nullptr) { if(fn_cmd == nullptr) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
return fn_cmd(params); return fn_cmd(params);
} }
@ -230,7 +244,7 @@ QString SCPICommand::execute(QStringList params)
QString SCPICommand::query(QStringList params) QString SCPICommand::query(QStringList params)
{ {
if(fn_query == nullptr) { if(fn_query == nullptr) {
return "ERROR"; return SCPI::getResultName(SCPI::Result::Error);
} else { } else {
return fn_query(params); return fn_query(params);
} }

View File

@ -59,6 +59,15 @@ public:
static bool paramToLong(QStringList params, int index, long &dest); static bool paramToLong(QStringList params, int index, long &dest);
static bool paramToBool(QStringList params, int index, bool &dest); static bool paramToBool(QStringList params, int index, bool &dest);
enum class Result {
Empty,
Error,
False,
True
};
static QString getResultName(SCPI::Result r);
public slots: public slots:
void input(QString line); void input(QString line);
signals: signals: