From bb66883de21097c6ba4e85d48857705d3846e061 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sun, 7 Apr 2024 12:54:42 +0200 Subject: [PATCH 01/16] Add RST command, parse command tree from root for each line --- .../PC_Application/LibreVNA-GUI/appwindow.cpp | 29 ++++++++++++++----- .../PC_Application/LibreVNA-GUI/appwindow.h | 1 + Software/PC_Application/LibreVNA-GUI/scpi.cpp | 20 +++++++------ Software/PC_Application/LibreVNA-GUI/scpi.h | 3 -- 4 files changed, 33 insertions(+), 20 deletions(-) diff --git a/Software/PC_Application/LibreVNA-GUI/appwindow.cpp b/Software/PC_Application/LibreVNA-GUI/appwindow.cpp index 487fcf7..79301a6 100644 --- a/Software/PC_Application/LibreVNA-GUI/appwindow.cpp +++ b/Software/PC_Application/LibreVNA-GUI/appwindow.cpp @@ -143,11 +143,6 @@ AppWindow::AppWindow(QWidget *parent) central = new QStackedWidget; setCentralWidget(central); - auto vnaIndex = modeHandler->createMode("Vector Network Analyzer", Mode::Type::VNA); - modeHandler->createMode("Signal Generator", Mode::Type::SG); - modeHandler->createMode("Spectrum Analyzer", Mode::Type::SA); - modeHandler->setCurrentIndex(vnaIndex); - auto setModeStatusbar = [=](const QString &msg) { lModeInfo.setText(msg); }; @@ -170,10 +165,9 @@ AppWindow::AppWindow(QWidget *parent) SetupSCPI(); + SetInitialState(); + auto& pref = Preferences::getInstance(); - if(pref.Startup.UseSetupFile) { - LoadSetup(pref.Startup.SetupFile); - } // List available devices UpdateDeviceList(); if(pref.Startup.ConnectToFirstDevice && deviceList.size() > 0) { @@ -315,6 +309,21 @@ void AppWindow::closeEvent(QCloseEvent *event) QMainWindow::closeEvent(event); } +void AppWindow::SetInitialState() +{ + modeHandler->closeModes(); + + auto& pref = Preferences::getInstance(); + if(pref.Startup.UseSetupFile) { + LoadSetup(pref.Startup.SetupFile); + } else { + auto vnaIndex = modeHandler->createMode("Vector Network Analyzer", Mode::Type::VNA); + modeHandler->createMode("Signal Generator", Mode::Type::SG); + modeHandler->createMode("Spectrum Analyzer", Mode::Type::SA); + modeHandler->setCurrentIndex(vnaIndex); + } +} + bool AppWindow::ConnectToDevice(QString serial, DeviceDriver *driver) { if(serial.isEmpty()) { @@ -477,6 +486,10 @@ void AppWindow::SetupSCPI() scpi.add(new SCPICommand("*IDN", nullptr, [=](QStringList){ return "LibreVNA,LibreVNA-GUI,dummy_serial,"+appVersion; })); + scpi.add(new SCPICommand("*RST", [=](QStringList){ + SetInitialState(); + return SCPI::getResultName(SCPI::Result::Empty); + }, nullptr)); scpi.add(new SCPICommand("*OPC", nullptr, [=](QStringList){ return "1"; })); diff --git a/Software/PC_Application/LibreVNA-GUI/appwindow.h b/Software/PC_Application/LibreVNA-GUI/appwindow.h index e47376e..175dd1b 100644 --- a/Software/PC_Application/LibreVNA-GUI/appwindow.h +++ b/Software/PC_Application/LibreVNA-GUI/appwindow.h @@ -58,6 +58,7 @@ public slots: protected: void closeEvent(QCloseEvent *event) override; private slots: + void SetInitialState(); bool ConnectToDevice(QString serial = QString(), DeviceDriver *driver = nullptr); void DisconnectDevice(); int UpdateDeviceList(); diff --git a/Software/PC_Application/LibreVNA-GUI/scpi.cpp b/Software/PC_Application/LibreVNA-GUI/scpi.cpp index 4684033..6b5a89b 100644 --- a/Software/PC_Application/LibreVNA-GUI/scpi.cpp +++ b/Software/PC_Application/LibreVNA-GUI/scpi.cpp @@ -5,7 +5,6 @@ SCPI::SCPI() : SCPINode("") { - lastNode = this; add(new SCPICommand("*LST", nullptr, [=](QStringList){ QString list; createCommandList("", list); @@ -97,16 +96,19 @@ QString SCPI::getResultName(SCPI::Result r) void SCPI::input(QString line) { auto cmds = line.split(";"); + SCPINode *lastNode = this; for(auto cmd : cmds) { - if(cmd[0] == ':' || cmd[0] == '*') { - // reset to root node - lastNode = this; + if(cmd.size() > 0) { + if(cmd[0] == ':' || cmd[0] == '*') { + // reset to root node + lastNode = this; + } + if(cmd[0] == ':') { + cmd.remove(0, 1); + } + auto response = lastNode->parse(cmd, lastNode); + emit output(response); } - if(cmd[0] == ':') { - cmd.remove(0, 1); - } - auto response = lastNode->parse(cmd, lastNode); - emit output(response); } } diff --git a/Software/PC_Application/LibreVNA-GUI/scpi.h b/Software/PC_Application/LibreVNA-GUI/scpi.h index f56f92e..10634cf 100644 --- a/Software/PC_Application/LibreVNA-GUI/scpi.h +++ b/Software/PC_Application/LibreVNA-GUI/scpi.h @@ -81,9 +81,6 @@ public slots: void input(QString line); signals: void output(QString line); - -private: - SCPINode *lastNode; }; #endif // SCPI_H From 5d3ce139b44462ba801982e5044a59dcd3a35907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sun, 7 Apr 2024 14:11:04 +0200 Subject: [PATCH 02/16] implementation of OPC/WAI --- .../SpectrumAnalyzer/spectrumanalyzer.cpp | 7 + .../PC_Application/LibreVNA-GUI/VNA/vna.cpp | 11 +- .../PC_Application/LibreVNA-GUI/appwindow.cpp | 3 - .../PC_Application/LibreVNA-GUI/averaging.cpp | 5 + .../PC_Application/LibreVNA-GUI/averaging.h | 2 + Software/PC_Application/LibreVNA-GUI/scpi.cpp | 133 ++++++++++++++++-- Software/PC_Application/LibreVNA-GUI/scpi.h | 37 ++++- 7 files changed, 179 insertions(+), 19 deletions(-) diff --git a/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp b/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp index 8c0e7ae..957ac6c 100644 --- a/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp +++ b/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp @@ -333,6 +333,7 @@ SpectrumAnalyzer::SpectrumAnalyzer(AppWindow *window, QString name) void SpectrumAnalyzer::deactivate() { + setOperationPending(false); StoreSweepSettings(); Mode::deactivate(); } @@ -503,6 +504,9 @@ void SpectrumAnalyzer::NewDatapoint(DeviceDriver::SAMeasurement m) } auto m_avg = average.process(m); + if(average.settled()) { + setOperationPending(false); + } if(settings.freqStart == settings.freqStop) { // keep track of first point time @@ -560,6 +564,7 @@ void SpectrumAnalyzer::NewDatapoint(DeviceDriver::SAMeasurement m) void SpectrumAnalyzer::SettingsChanged() { + setOperationPending(true); configurationTimer.start(100); ResetLiveTraces(); } @@ -703,6 +708,7 @@ void SpectrumAnalyzer::SetAveraging(unsigned int averages) average.setAverages(averages); emit averagingChanged(averages); UpdateAverageCount(); + setOperationPending(!average.settled()); } void SpectrumAnalyzer::SetTGEnabled(bool enabled) @@ -887,6 +893,7 @@ void SpectrumAnalyzer::ConfigureDevice() void SpectrumAnalyzer::ResetLiveTraces() { + setOperationPending(true); average.reset(DeviceDriver::SApoints()); traceModel.clearLiveData(); UpdateAverageCount(); diff --git a/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp b/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp index e46eca0..13006f4 100644 --- a/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp +++ b/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp @@ -692,6 +692,7 @@ QString VNA::getCalToolTip() void VNA::deactivate() { + setOperationPending(false); StoreSweepSettings(); Mode::deactivate(); } @@ -901,6 +902,9 @@ void VNA::NewDatapoint(DeviceDriver::VNAMeasurement m) } m_avg = average.process(m_avg); + if(average.settled()) { + setOperationPending(false); + } if(calMeasuring) { if(average.currentSweep() == averages) { @@ -979,6 +983,7 @@ void VNA::UpdateAverageCount() void VNA::SettingsChanged(bool resetTraces, int delay) { + setOperationPending(true); configurationTimer.start(delay); changingSettings = true; configurationTimerResetTraces = resetTraces; @@ -1218,6 +1223,7 @@ void VNA::SetAveraging(unsigned int averages) average.setAverages(averages); emit averagingChanged(averages); UpdateAverageCount(); + setOperationPending(!average.settled()); } void VNA::ExcitationRequired() @@ -1317,7 +1323,6 @@ void VNA::SetupSCPI() if(params.size() >= 1) { if(params[0] == "FREQUENCY") { SetSweepType(SweepType::Frequency); - ResetLiveTraces(); return SCPI::getResultName(SCPI::Result::Empty); } else if(params[0] == "POWER") { SetSweepType(SweepType::Power); @@ -1378,7 +1383,6 @@ void VNA::SetupSCPI() scpi_freq->add(new SCPICommand("FULL", [=](QStringList params) -> QString { Q_UNUSED(params) SetFullSpan(); - ResetLiveTraces(); return SCPI::getResultName(SCPI::Result::Empty); }, nullptr)); scpi_freq->add(new SCPICommand("ZERO", [=](QStringList params) -> QString { @@ -1449,7 +1453,7 @@ void VNA::SetupSCPI() return QString::number(average.getLevel()); })); scpi_acq->add(new SCPICommand("FINished", nullptr, [=](QStringList) -> QString { - return average.getLevel() == averages ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False); + return average.settled() ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False); })); scpi_acq->add(new SCPICommand("LIMit", nullptr, [=](QStringList) -> QString { return tiles->allLimitsPassing() ? "PASS" : "FAIL"; @@ -1855,6 +1859,7 @@ void VNA::ResetLiveTraces() traceModel.clearLiveData(); UpdateAverageCount(); UpdateCalWidget(); + setOperationPending(true); } bool VNA::LoadCalibration(QString filename) diff --git a/Software/PC_Application/LibreVNA-GUI/appwindow.cpp b/Software/PC_Application/LibreVNA-GUI/appwindow.cpp index 79301a6..327147c 100644 --- a/Software/PC_Application/LibreVNA-GUI/appwindow.cpp +++ b/Software/PC_Application/LibreVNA-GUI/appwindow.cpp @@ -490,9 +490,6 @@ void AppWindow::SetupSCPI() SetInitialState(); return SCPI::getResultName(SCPI::Result::Empty); }, nullptr)); - scpi.add(new SCPICommand("*OPC", nullptr, [=](QStringList){ - return "1"; - })); auto scpi_dev = new SCPINode("DEVice"); scpi.add(scpi_dev); scpi_dev->add(new SCPICommand("DISConnect", [=](QStringList params) -> QString { diff --git a/Software/PC_Application/LibreVNA-GUI/averaging.cpp b/Software/PC_Application/LibreVNA-GUI/averaging.cpp index 341f72c..79cae68 100644 --- a/Software/PC_Application/LibreVNA-GUI/averaging.cpp +++ b/Software/PC_Application/LibreVNA-GUI/averaging.cpp @@ -84,6 +84,11 @@ unsigned int Averaging::currentSweep() } } +bool Averaging::settled() +{ + return getLevel() == averages; +} + Averaging::Mode Averaging::getMode() const { return mode; diff --git a/Software/PC_Application/LibreVNA-GUI/averaging.h b/Software/PC_Application/LibreVNA-GUI/averaging.h index ab2ad4c..e77d4cf 100644 --- a/Software/PC_Application/LibreVNA-GUI/averaging.h +++ b/Software/PC_Application/LibreVNA-GUI/averaging.h @@ -26,6 +26,8 @@ public: // Returns the number of the currently active sweep. Value is incremented whenever the the first point of the sweep is added // Returned values are in range 0 (when no data has been added yet) to averages unsigned int currentSweep(); + // Returns true if all required averages have been taken + bool settled(); Mode getMode() const; void setMode(const Mode &value); diff --git a/Software/PC_Application/LibreVNA-GUI/scpi.cpp b/Software/PC_Application/LibreVNA-GUI/scpi.cpp index 6b5a89b..15a7e89 100644 --- a/Software/PC_Application/LibreVNA-GUI/scpi.cpp +++ b/Software/PC_Application/LibreVNA-GUI/scpi.cpp @@ -5,6 +5,40 @@ SCPI::SCPI() : SCPINode("") { + WAIexecuting = false; + OPCQueryScheduled = false; + OCAS = false; + ESR = 0x00; + + add(new SCPICommand("*OPC", [=](QStringList){ + // OPC command + if(isOperationPending()) { + OCAS = true; + } + return SCPI::getResultName(SCPI::Result::Empty); + }, [=](QStringList) -> QString { + // OPC query + if(isOperationPending()) { + // operation pending + OPCQueryScheduled = true; + OCAS = true; + return SCPI::getResultName(SCPI::Result::Empty); + } else { + // no operation, can return immediately + OCAS = false; + setFlag(Flag::OPC); + return "1"; + } + })); + + add(new SCPICommand("*WAI", [=](QStringList){ + // WAI command + if(isOperationPending()) { + WAIexecuting = true; + } + return SCPI::getResultName(SCPI::Result::Empty); + }, nullptr)); + add(new SCPICommand("*LST", nullptr, [=](QStringList){ QString list; createCommandList("", list); @@ -95,23 +129,68 @@ QString SCPI::getResultName(SCPI::Result r) void SCPI::input(QString line) { - auto cmds = line.split(";"); - SCPINode *lastNode = this; - for(auto cmd : cmds) { - if(cmd.size() > 0) { - if(cmd[0] == ':' || cmd[0] == '*') { - // reset to root node - lastNode = this; + cmdQueue.append(line); + process(); +} + +void SCPI::process() +{ + while(!WAIexecuting && !cmdQueue.isEmpty()) { + auto cmd = cmdQueue.front(); + cmdQueue.pop_front(); + auto cmds = cmd.split(";"); + SCPINode *lastNode = this; + for(auto cmd : cmds) { + if(cmd.size() > 0) { + if(cmd[0] == ':' || cmd[0] == '*') { + // reset to root node + lastNode = this; + } + if(cmd[0] == ':') { + cmd.remove(0, 1); + } + auto response = lastNode->parse(cmd, lastNode); + emit output(response); } - if(cmd[0] == ':') { - cmd.remove(0, 1); - } - auto response = lastNode->parse(cmd, lastNode); - emit output(response); } } } +void SCPI::someOperationCompleted() +{ + if(!isOperationPending()) { + // all operations are complete + if(OCAS) { + OCAS = false; + setFlag(Flag::OPC); + if(OPCQueryScheduled) { + output("1"); + OPCQueryScheduled = false; + } + } + if(WAIexecuting) { + WAIexecuting = false; + // process any queued commands + process(); + } + } +} + +void SCPI::setFlag(Flag flag) +{ + ESR |= ((int) flag); +} + +void SCPI::clearFlag(Flag flag) +{ + ESR &= ~((int) flag); +} + +bool SCPI::getFlag(Flag flag) +{ + return ESR & (int) flag; +} + SCPINode::~SCPINode() { if(parent) { @@ -235,6 +314,36 @@ bool SCPINode::changeName(QString newname) return true; } +void SCPINode::setOperationPending(bool pending) +{ + if(operationPending != pending) { + operationPending = pending; + if(!operationPending) { + // operation completed, needs to perform check if all operations are complete + auto root = this; + while(root->parent) { + root = root->parent; + } + auto scpi = static_cast(root); + scpi->someOperationCompleted(); + } + } +} + +bool SCPINode::isOperationPending() +{ + if(operationPending) { + return true; + } + for(auto node : subnodes) { + if(node->isOperationPending()) { + return true; + } + } + // no node has any pending operations + return false; +} + bool SCPINode::nameCollision(QString name) { for(auto n : subnodes) { diff --git a/Software/PC_Application/LibreVNA-GUI/scpi.h b/Software/PC_Application/LibreVNA-GUI/scpi.h index 10634cf..5c5bb62 100644 --- a/Software/PC_Application/LibreVNA-GUI/scpi.h +++ b/Software/PC_Application/LibreVNA-GUI/scpi.h @@ -31,7 +31,7 @@ class SCPINode { friend class SCPI; public: SCPINode(QString name) : - name(name), parent(nullptr){} + name(name), parent(nullptr), operationPending(false){} virtual ~SCPINode(); bool add(SCPINode *node); @@ -44,6 +44,11 @@ public: bool changeName(QString newname); +protected: + void setOperationPending(bool pending); + + bool isOperationPending(); + private: QString parse(QString cmd, SCPINode* &lastNode); bool nameCollision(QString name); @@ -52,6 +57,7 @@ private: std::vector subnodes; std::vector commands; SCPINode *parent; + bool operationPending; }; class SCPI : public QObject, public SCPINode @@ -77,10 +83,39 @@ public: static QString getResultName(SCPI::Result r); + // call whenever a subnode completes an operation + void someOperationCompleted(); + public slots: void input(QString line); + void process(); signals: void output(QString line); + +private: + + enum class Flag { + OPC = 0x01, // Operation complete + RQC = 0x02, // device wants to become the controller (of the bus) + QYE = 0x04, // query error + DDE = 0x08, // device-dependent error + EXE = 0x10, // execution error + CME = 0x20, // command error + URQ = 0x40, // user request + PON = 0x80, // power on + }; + + void setFlag(Flag flag); + void clearFlag(Flag flag); + bool getFlag(Flag flag); + + unsigned int ESR; + + bool OCAS; + bool OPCQueryScheduled; + bool WAIexecuting; + + QList cmdQueue; }; #endif // SCPI_H From de3f3c092af8cc9d78294ffb6fa3a38cd7bdeec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sun, 7 Apr 2024 14:22:57 +0200 Subject: [PATCH 03/16] omit response to commands --- Software/PC_Application/LibreVNA-GUI/scpi.cpp | 34 ++++++++++++++++--- Software/PC_Application/LibreVNA-GUI/scpi.h | 3 ++ 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/Software/PC_Application/LibreVNA-GUI/scpi.cpp b/Software/PC_Application/LibreVNA-GUI/scpi.cpp index 15a7e89..3357f03 100644 --- a/Software/PC_Application/LibreVNA-GUI/scpi.cpp +++ b/Software/PC_Application/LibreVNA-GUI/scpi.cpp @@ -120,6 +120,12 @@ QString SCPI::getResultName(SCPI::Result r) case Result::Error: default: return "ERROR"; + case Result::CmdError: + return "CMD_ERROR"; + case Result::QueryError: + return "QUERY_ERROR"; + case Result::ExecError: + return "EXEC_ERROR"; case Result::False: return "FALSE"; case Result::True: @@ -150,7 +156,17 @@ void SCPI::process() cmd.remove(0, 1); } auto response = lastNode->parse(cmd, lastNode); - emit output(response); + if(response == getResultName(Result::Error)) { + setFlag(Flag::CME); + } else if(response == getResultName(Result::QueryError)) { + setFlag(Flag::QYE); + } else if(response == getResultName(Result::ExecError)) { + setFlag(Flag::EXE); + } else if(response == getResultName(Result::Empty)) { + // do nothing + } else { + emit output(response); + } } } } @@ -425,17 +441,25 @@ QString SCPINode::parse(QString cmd, SCPINode* &lastNode) QString SCPICommand::execute(QStringList params) { if(fn_cmd == nullptr) { - return SCPI::getResultName(SCPI::Result::Error); + return SCPI::getResultName(SCPI::Result::CmdError); } else { - return fn_cmd(params); + auto ret = fn_cmd(params); + if(ret == SCPI::getResultName(SCPI::Result::Error)) { + ret = SCPI::getResultName(SCPI::Result::CmdError); + } + return ret; } } QString SCPICommand::query(QStringList params) { if(fn_query == nullptr) { - return SCPI::getResultName(SCPI::Result::Error); + return SCPI::getResultName(SCPI::Result::QueryError); } else { - return fn_query(params); + auto ret = fn_query(params); + if(ret == SCPI::getResultName(SCPI::Result::Error)) { + ret = SCPI::getResultName(SCPI::Result::QueryError); + } + return ret; } } diff --git a/Software/PC_Application/LibreVNA-GUI/scpi.h b/Software/PC_Application/LibreVNA-GUI/scpi.h index 5c5bb62..bf74951 100644 --- a/Software/PC_Application/LibreVNA-GUI/scpi.h +++ b/Software/PC_Application/LibreVNA-GUI/scpi.h @@ -77,6 +77,9 @@ public: enum class Result { Empty, Error, + CmdError, + QueryError, + ExecError, False, True }; From bd781764fb8eff2928138d79f8f20960fec04b0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sun, 7 Apr 2024 14:39:27 +0200 Subject: [PATCH 04/16] CLS/ESE/ESR commands --- Software/PC_Application/LibreVNA-GUI/scpi.cpp | 37 +++++++++++++++++-- Software/PC_Application/LibreVNA-GUI/scpi.h | 3 +- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/Software/PC_Application/LibreVNA-GUI/scpi.cpp b/Software/PC_Application/LibreVNA-GUI/scpi.cpp index 3357f03..b731df8 100644 --- a/Software/PC_Application/LibreVNA-GUI/scpi.cpp +++ b/Software/PC_Application/LibreVNA-GUI/scpi.cpp @@ -8,12 +8,41 @@ SCPI::SCPI() : WAIexecuting = false; OPCQueryScheduled = false; OCAS = false; - ESR = 0x00; + SESR = 0x00; + ESE = 0xFF; + + add(new SCPICommand("*CLS", [=](QStringList) { + SESR = 0x00; + OCAS = false; + OPCQueryScheduled = false; + return SCPI::getResultName(SCPI::Result::Empty); + }, nullptr)); + + add(new SCPICommand("*ESE", [=](QStringList params){ + unsigned long long newval; + if(!SCPI::paramToULongLong(params, 0, newval) || newval >= 256) { + return SCPI::getResultName(SCPI::Result::Error); + } else { + ESE = newval; + return SCPI::getResultName(SCPI::Result::Empty); + } + }, [=](QStringList){ + return QString::number(ESE); + })); + + add(new SCPICommand("*ESR", nullptr, [=](QStringList){ + auto ret = QString::number(SESR); + SESR = 0x00; + return ret; + })); add(new SCPICommand("*OPC", [=](QStringList){ // OPC command if(isOperationPending()) { OCAS = true; + } else { + // operation already complete + setFlag(Flag::OPC); } return SCPI::getResultName(SCPI::Result::Empty); }, [=](QStringList) -> QString { @@ -194,17 +223,17 @@ void SCPI::someOperationCompleted() void SCPI::setFlag(Flag flag) { - ESR |= ((int) flag); + SESR |= ((int) flag); } void SCPI::clearFlag(Flag flag) { - ESR &= ~((int) flag); + SESR &= ~((int) flag); } bool SCPI::getFlag(Flag flag) { - return ESR & (int) flag; + return SESR & (int) flag; } SCPINode::~SCPINode() diff --git a/Software/PC_Application/LibreVNA-GUI/scpi.h b/Software/PC_Application/LibreVNA-GUI/scpi.h index bf74951..182b8b6 100644 --- a/Software/PC_Application/LibreVNA-GUI/scpi.h +++ b/Software/PC_Application/LibreVNA-GUI/scpi.h @@ -112,7 +112,8 @@ private: void clearFlag(Flag flag); bool getFlag(Flag flag); - unsigned int ESR; + unsigned int SESR; + unsigned int ESE; bool OCAS; bool OPCQueryScheduled; From 626d4110e27cec064392d50aa7bddd0e9aea0512 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Wed, 10 Apr 2024 20:00:15 +0200 Subject: [PATCH 05/16] continue handling commands when multiple lines arrive at once --- Software/PC_Application/LibreVNA-GUI/tcpserver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Software/PC_Application/LibreVNA-GUI/tcpserver.cpp b/Software/PC_Application/LibreVNA-GUI/tcpserver.cpp index a65f830..2937def 100644 --- a/Software/PC_Application/LibreVNA-GUI/tcpserver.cpp +++ b/Software/PC_Application/LibreVNA-GUI/tcpserver.cpp @@ -12,7 +12,7 @@ TCPServer::TCPServer(int port) delete socket; socket = server.nextPendingConnection(); connect(socket, &QTcpSocket::readyRead, [=](){ - if(socket->canReadLine()) { + while(socket->canReadLine()) { auto available = socket->bytesAvailable(); char data[available+1]; socket->readLine(data, sizeof(data)); From 73ba0f969247eeaaafbe7eca2d0da0b45078bb08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Fri, 12 Apr 2024 12:23:00 +0200 Subject: [PATCH 06/16] do not set operation pending if no device connected --- .../LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp | 8 ++++++-- Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp b/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp index 957ac6c..6b673e1 100644 --- a/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp +++ b/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp @@ -564,7 +564,9 @@ void SpectrumAnalyzer::NewDatapoint(DeviceDriver::SAMeasurement m) void SpectrumAnalyzer::SettingsChanged() { - setOperationPending(true); + if(window->getDevice()) { + setOperationPending(true); + } configurationTimer.start(100); ResetLiveTraces(); } @@ -893,7 +895,9 @@ void SpectrumAnalyzer::ConfigureDevice() void SpectrumAnalyzer::ResetLiveTraces() { - setOperationPending(true); + if(window->getDevice()) { + setOperationPending(true); + } average.reset(DeviceDriver::SApoints()); traceModel.clearLiveData(); UpdateAverageCount(); diff --git a/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp b/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp index 13006f4..6142979 100644 --- a/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp +++ b/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp @@ -983,7 +983,9 @@ void VNA::UpdateAverageCount() void VNA::SettingsChanged(bool resetTraces, int delay) { - setOperationPending(true); + if(window->getDevice()) { + setOperationPending(true); + } configurationTimer.start(delay); changingSettings = true; configurationTimerResetTraces = resetTraces; @@ -1859,7 +1861,9 @@ void VNA::ResetLiveTraces() traceModel.clearLiveData(); UpdateAverageCount(); UpdateCalWidget(); - setOperationPending(true); + if(window->getDevice()) { + setOperationPending(true); + } } bool VNA::LoadCalibration(QString filename) From 5e75802bf47549c469c6418ef75e2275f53ac0ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Fri, 12 Apr 2024 12:23:54 +0200 Subject: [PATCH 07/16] do not set OPC bit for *OPC?, allow exponential notation in integer parameters --- Software/PC_Application/LibreVNA-GUI/scpi.cpp | 36 ++++++++++++++----- Software/PC_Application/LibreVNA-GUI/scpi.h | 1 + 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/Software/PC_Application/LibreVNA-GUI/scpi.cpp b/Software/PC_Application/LibreVNA-GUI/scpi.cpp index b731df8..b7ad43b 100644 --- a/Software/PC_Application/LibreVNA-GUI/scpi.cpp +++ b/Software/PC_Application/LibreVNA-GUI/scpi.cpp @@ -6,6 +6,7 @@ SCPI::SCPI() : SCPINode("") { WAIexecuting = false; + OPCsetBitScheduled = false; OPCQueryScheduled = false; OCAS = false; SESR = 0x00; @@ -39,6 +40,7 @@ SCPI::SCPI() : add(new SCPICommand("*OPC", [=](QStringList){ // OPC command if(isOperationPending()) { + OPCsetBitScheduled = true; OCAS = true; } else { // operation already complete @@ -55,7 +57,6 @@ SCPI::SCPI() : } else { // no operation, can return immediately OCAS = false; - setFlag(Flag::OPC); return "1"; } })); @@ -110,8 +111,14 @@ bool SCPI::paramToULongLong(QStringList params, int index, unsigned long long &d if(index >= params.size()) { return false; } - bool okay; - dest = params[index].toULongLong(&okay); + double res; + bool okay = paramToDouble(params, index, res); + if(res > std::numeric_limits::max() || res < std::numeric_limits::min()) { + okay = false; + } + if(okay) { + dest = res; + } return okay; } @@ -120,8 +127,14 @@ bool SCPI::paramToLong(QStringList params, int index, long &dest) if(index >= params.size()) { return false; } - bool okay; - dest = params[index].toLong(&okay); + double res; + bool okay = paramToDouble(params, index, res); + if(res > std::numeric_limits::max() || res < std::numeric_limits::min()) { + okay = false; + } + if(okay) { + dest = res; + } return okay; } @@ -131,10 +144,10 @@ bool SCPI::paramToBool(QStringList params, int index, bool &dest) return false; } bool okay = false; - if(params[index] == "TRUE") { + if(params[index] == "TRUE" || params[index] == "ON" || params[index] == "1") { dest = true; okay = true; - } else if(params[index] == "FALSE") { + } else if(params[index] == "FALSE" || params[index] == "OFF" || params[index] == "0") { dest = false; okay = true; } @@ -188,7 +201,9 @@ void SCPI::process() if(response == getResultName(Result::Error)) { setFlag(Flag::CME); } else if(response == getResultName(Result::QueryError)) { - setFlag(Flag::QYE); + setFlag(Flag::CME); + } else if(response == getResultName(Result::CmdError)) { + setFlag(Flag::CME); } else if(response == getResultName(Result::ExecError)) { setFlag(Flag::EXE); } else if(response == getResultName(Result::Empty)) { @@ -207,7 +222,10 @@ void SCPI::someOperationCompleted() // all operations are complete if(OCAS) { OCAS = false; - setFlag(Flag::OPC); + if(OPCsetBitScheduled) { + setFlag(Flag::OPC); + OPCsetBitScheduled = false; + } if(OPCQueryScheduled) { output("1"); OPCQueryScheduled = false; diff --git a/Software/PC_Application/LibreVNA-GUI/scpi.h b/Software/PC_Application/LibreVNA-GUI/scpi.h index 182b8b6..85fa7df 100644 --- a/Software/PC_Application/LibreVNA-GUI/scpi.h +++ b/Software/PC_Application/LibreVNA-GUI/scpi.h @@ -116,6 +116,7 @@ private: unsigned int ESE; bool OCAS; + bool OPCsetBitScheduled; bool OPCQueryScheduled; bool WAIexecuting; From 645821a9bda1b35280517c3251fa1dead90bdcf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Fri, 12 Apr 2024 13:15:23 +0200 Subject: [PATCH 08/16] Update SCPI documentation --- Documentation/UserManual/ProgrammingGuide.pdf | Bin 269253 -> 272507 bytes Documentation/UserManual/ProgrammingGuide.tex | 50 +++++++++++++----- 2 files changed, 37 insertions(+), 13 deletions(-) diff --git a/Documentation/UserManual/ProgrammingGuide.pdf b/Documentation/UserManual/ProgrammingGuide.pdf index 97b6444cb7408abf9e89334d8008729dbbef4344..247a9ce961f3a7b015d3966d7c08c3642158c422 100644 GIT binary patch delta 128548 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 z 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≥*y%If2lmD*h^?x?tkfc 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 +\subsubsection{*RST} +\event{Resets the GUI (and any connected device) to the default state}{*RST}{None} +\subsubsection{*CLS} +\event{Clears the event status register}{*CLI}{None} +\subsubsection{*ESE} +\event{Configures the event status enable register}{*ESE}{} +\query{Returns the event status enable register}{*ESE?}{None}{} +\subsubsection{*ESR} +\query{Returns the event status register}{*ESR?}{None}{} +The bits are used according to IEEE 488: +\begin{longtable}{p{.1\textwidth} | p{.1\textwidth} | p{.4\textwidth} } +\textbf{Bitvalue} & \textbf{Name} & \textbf{Meaning}\\ +\hline +1 & OPC & Operation complete\\ +2 & RQC & Request control (not used)\\ +4 & QYE & Query error (not used)\\ +8 & DDE & Device dependent error (not used)\\ +16 & EXE & Execution error (not used)\\ +32 & CME & Command error\\ +64 & URQ & User request (not used)\\ +128 & PON & Power on (not used)\\ +\end{longtable} \subsubsection{*OPC} -\query{Returns a 1 after every previous command has been handled}{*OPC?}{None}{1} +\event{Sets the OPC bit in the event status register after all operations are complete}{*OPC}{None} +\query{Returns a 1 after every active operation has completed}{*OPC?}{None}{1} +\subsubsection{*WAI} +\event{Blocks further command parsing until all active operations are complete}{*WAI}{None} \subsubsection{*LST} \query{Lists all available commands}{*LST?}{None}{List of commands, separated by newline} \subsection{Device Commands} From 3be48bddeb86e43f9f90fd8a4a89daa6b60807fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Tue, 16 Apr 2024 18:55:49 +0200 Subject: [PATCH 09/16] add sweep stop/run commands --- .../LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp | 8 ++++++++ Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp b/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp index 6b673e1..d0d21f2 100644 --- a/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp +++ b/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp @@ -963,6 +963,14 @@ void SpectrumAnalyzer::SetupSCPI() }, nullptr)); auto scpi_acq = new SCPINode("ACQuisition"); SCPINode::add(scpi_acq); + scpi_acq->add(new SCPICommand("RUN", [=](QStringList) -> QString { + Run(); + return SCPI::getResultName(SCPI::Result::Empty); + }, nullptr)); + scpi_acq->add(new SCPICommand("STOP", [=](QStringList) -> QString { + Stop(); + return SCPI::getResultName(SCPI::Result::Empty); + }, nullptr)); scpi_acq->add(new SCPICommand("RBW", [=](QStringList params) -> QString { unsigned long long newval; if(!SCPI::paramToULongLong(params, 0, newval)) { diff --git a/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp b/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp index 6142979..45c9ffe 100644 --- a/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp +++ b/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp @@ -1418,6 +1418,14 @@ void VNA::SetupSCPI() })); auto scpi_acq = new SCPINode("ACQuisition"); SCPINode::add(scpi_acq); + scpi_acq->add(new SCPICommand("RUN", [=](QStringList) -> QString { + Run(); + return SCPI::getResultName(SCPI::Result::Empty); + }, nullptr)); + scpi_acq->add(new SCPICommand("STOP", [=](QStringList) -> QString { + Stop(); + return SCPI::getResultName(SCPI::Result::Empty); + }, nullptr)); scpi_acq->add(new SCPICommand("IFBW", [=](QStringList params) -> QString { unsigned long long newval; if(!SCPI::paramToULongLong(params, 0, newval)) { From 95e59769fdcaedbb97a9df2ea304e15066418241 Mon Sep 17 00:00:00 2001 From: Scott Guthridge Date: Thu, 18 Apr 2024 00:48:44 -0700 Subject: [PATCH 10/16] Update integration tests for SCPI improvements libraVNA.cmd() no longer expects blank line responses. By default, it checks status after each command to match the previous behavior. Check can be disabled by optional cmd() parameter for handling expected failure cases. Commands such as *WAI may take longer than anything previously. Make it possible to override the default time-out in cmd() and query(). Change poll loops in TestCalibration and TestVNASweep to *WAI calls. --- .../UserManual/SCPI_Examples/libreVNA.py | 60 +++++++++++++------ Software/Integrationtests/tests/TestBase.py | 2 +- .../Integrationtests/tests/TestCalibration.py | 51 +++++++++------- .../Integrationtests/tests/TestVNASweep.py | 8 +-- 4 files changed, 77 insertions(+), 44 deletions(-) diff --git a/Documentation/UserManual/SCPI_Examples/libreVNA.py b/Documentation/UserManual/SCPI_Examples/libreVNA.py index 9c9bee7..dcac991 100755 --- a/Documentation/UserManual/SCPI_Examples/libreVNA.py +++ b/Documentation/UserManual/SCPI_Examples/libreVNA.py @@ -1,13 +1,14 @@ +import re import socket from asyncio import IncompleteReadError # only import the exception class import time class SocketStreamReader: - def __init__(self, sock: socket.socket): + def __init__(self, sock: socket.socket, default_timeout=1): self._sock = sock self._sock.setblocking(0) self._recv_buffer = bytearray() - self.timeout = 1.0 + self.default_timeout = default_timeout def read(self, num_bytes: int = -1) -> bytes: raise NotImplementedError @@ -22,12 +23,14 @@ class SocketStreamReader: pos += n return bytes(buf) - def readline(self) -> bytes: - return self.readuntil(b"\n") + def readline(self, timeout=None) -> bytes: + return self.readuntil(b"\n", timeout=timeout) - def readuntil(self, separator: bytes = b"\n") -> bytes: + def readuntil(self, separator: bytes = b"\n", timeout=None) -> bytes: if len(separator) != 1: raise ValueError("Only separators of length 1 are supported.") + if timeout is None: + timeout = self.default_timeout chunk = bytearray(4096) start = 0 @@ -35,12 +38,12 @@ class SocketStreamReader: bytes_read = self._recv_into(memoryview(buf)) assert bytes_read == len(buf) - timeout = time.time() + self.timeout + time_limit = time.time() + timeout while True: idx = buf.find(separator, start) if idx != -1: break - elif time.time() > timeout: + elif time.time() > time_limit: raise Exception("Timed out waiting for response from GUI") start = len(self._recv_buffer) @@ -66,31 +69,54 @@ class SocketStreamReader: return bytes_read class libreVNA: - def __init__(self, host='localhost', port=19542): + def __init__(self, host='localhost', port=19542, + default_check_cmds=True, default_timeout=1): self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: self.sock.connect((host, port)) except: raise Exception("Unable to connect to LibreVNA-GUI. Make sure it is running and the TCP server is enabled.") - self.reader = SocketStreamReader(self.sock) + self.reader = SocketStreamReader(self.sock, + default_timeout=default_timeout) + self.default_check_cmds = default_check_cmds def __del__(self): self.sock.close() - def __read_response(self): - return self.reader.readline().decode().rstrip() + def __read_response(self, timeout=None): + return self.reader.readline(timeout=timeout).decode().rstrip() - def cmd(self, cmd): + def cmd(self, cmd, check=None, timeout=None): self.sock.sendall(cmd.encode()) self.sock.send(b"\n") - resp = self.__read_response() - if len(resp) > 0: - raise Exception("Expected empty response but got "+resp) + if check or (check is None and self.default_check_cmds): + status = self.get_status(timeout=timeout) + if self.get_status() & 0x20: + raise Exception("Command Error") + if self.get_status() & 0x10: + raise Exception("Execution Error") + if self.get_status() & 0x08: + raise Exception("Device Error") + if self.get_status() & 0x04: + raise Exception("Query Error") + return status + else: + return None - def query(self, query): + def query(self, query, timeout=None): self.sock.sendall(query.encode()) self.sock.send(b"\n") - return self.__read_response() + return self.__read_response(timeout=timeout) + + def get_status(self, timeout=None): + resp = self.query("*ESR?", timeout=timeout) + if not re.match(r'^\d+$', resp): + raise Exception("Expected numeric response from *ESR? but got " + f"'{resp}'") + status = int(resp) + if status < 0 or status > 255: + raise Exception(f"*ESR? returned invalid value {status}.") + return status @staticmethod def parse_VNA_trace_data(data): diff --git a/Software/Integrationtests/tests/TestBase.py b/Software/Integrationtests/tests/TestBase.py index 21edf90..983bd53 100644 --- a/Software/Integrationtests/tests/TestBase.py +++ b/Software/Integrationtests/tests/TestBase.py @@ -25,7 +25,7 @@ class TestBase(unittest.TestCase): self.vna = libreVNA('localhost', 19544) try: - self.vna.cmd(":DEV:CONN") + self.vna.cmd("*CLS;:DEV:CONN") except Exception as e: self.tearDown() raise e diff --git a/Software/Integrationtests/tests/TestCalibration.py b/Software/Integrationtests/tests/TestCalibration.py index 234613f..5fb7a14 100644 --- a/Software/Integrationtests/tests/TestCalibration.py +++ b/Software/Integrationtests/tests/TestCalibration.py @@ -7,11 +7,9 @@ class TestCalibration(TestBase): def cal_measure(self, number, timeout = 3): self.vna.cmd(":VNA:CAL:MEAS "+str(number)) # wait for the measurement to finish - stoptime = time.time() + timeout - while self.vna.query(":VNA:CAL:BUSY?") == "TRUE": - if time.time() > stoptime: - raise AssertionError("Calibration measurement timed out") - time.sleep(0.1) + assert self.vna.query(":VNA:CAL:BUSY?") == "TRUE" + self.vna.cmd("*WAI") + assert self.vna.query(":VNA:CAL:BUSY?") == "FALSE" def test_dummy_calibration(self): # This test just iterates through the calibration steps. As no actual standards @@ -29,7 +27,8 @@ class TestCalibration(TestBase): self.vna.cmd(":VNA:CAL:RESET") # No measurements yet, activating should fail - self.assertEqual(self.vna.query(":VNA:CAL:ACT SOLT_1"), "ERROR") + self.vna.cmd(":VNA:CAL:ACT SOLT_1", check=False) + self.assertTrue(self.vna.get_status() & 0x3C) # Load calibration kit self.assertEqual(self.vna.query(":VNA:CAL:KIT:LOAD? DUMMY.CALKIT"), "TRUE") @@ -47,11 +46,14 @@ class TestCalibration(TestBase): self.cal_measure(2) # SOLT_1 should now be available - self.assertEqual(self.vna.query(":VNA:CAL:ACT SOLT_1"), "") + self.vna.cmd(":VNA:CAL:ACT SOLT_1", check=False) + self.assertFalse(self.vna.get_status() & 0x3C) # SOLT_2 and SOLT_12 should still be unavailable - self.assertEqual(self.vna.query(":VNA:CAL:ACT SOLT_2"), "ERROR") - self.assertEqual(self.vna.query(":VNA:CAL:ACT SOLT_12"), "ERROR") + self.vna.cmd(":VNA:CAL:ACT SOLT_2", check=False) + self.assertTrue(self.vna.get_status() & 0x3C) + self.vna.cmd(":VNA:CAL:ACT SOLT_12", check=False) + self.assertTrue(self.vna.get_status() & 0x3C) # Take measurements for SOLT_2 self.vna.cmd(":VNA:CAL:ADD OPEN") @@ -66,11 +68,14 @@ class TestCalibration(TestBase): self.cal_measure(5) # SOLT_1 and SOLT_2 should now be available - self.assertEqual(self.vna.query(":VNA:CAL:ACT SOLT_1"), "") - self.assertEqual(self.vna.query(":VNA:CAL:ACT SOLT_2"), "") - + self.vna.cmd(":VNA:CAL:ACT SOLT_1", check=False) + self.assertFalse(self.vna.get_status() & 0x3C) + self.vna.cmd(":VNA:CAL:ACT SOLT_2", check=False) + self.assertFalse(self.vna.get_status() & 0x3C) + # SOLT_12 should still be unavailable - self.assertEqual(self.vna.query(":VNA:CAL:ACT SOLT_12"), "ERROR") + self.vna.cmd(":VNA:CAL:ACT SOLT_12", check=False) + self.assertTrue(self.vna.get_status() & 0x3C) # Take the final through measurement for SOLT_12 self.vna.cmd(":VNA:CAL:ADD THROUGH") @@ -79,9 +84,12 @@ class TestCalibration(TestBase): self.cal_measure(6) # SOLT_1, SOLT_2 and SOLT_12 should now be available - self.assertEqual(self.vna.query(":VNA:CAL:ACT SOLT_1"), "") - self.assertEqual(self.vna.query(":VNA:CAL:ACT SOLT_2"), "") - self.assertEqual(self.vna.query(":VNA:CAL:ACT SOLT_12"), "") + self.vna.cmd(":VNA:CAL:ACT SOLT_1", check=False) + self.assertFalse(self.vna.get_status() & 0x3C) + self.vna.cmd(":VNA:CAL:ACT SOLT_2", check=False) + self.assertFalse(self.vna.get_status() & 0x3C) + self.vna.cmd(":VNA:CAL:ACT SOLT_12", check=False) + self.assertFalse(self.vna.get_status() & 0x3C) def assertTrace_dB(self, trace, dB_nominal, dB_deviation): for S in trace: @@ -135,7 +143,8 @@ class TestCalibration(TestBase): self.cal_measure(6, 15) # activate calibration - self.assertEqual(self.vna.query(":VNA:CAL:ACT SOLT_12"), "") + self.vna.cmd(":VNA:CAL:ACT SOLT_12", check=False) + self.assertFalse(self.vna.get_status() & 0x3C) # switch in 6dB attenuator cal.setPort(cal.Standard.THROUGH, 1, 2) @@ -143,8 +152,9 @@ class TestCalibration(TestBase): # Start measurement and grab data self.vna.cmd(":VNA:ACQ:SINGLE TRUE") - while self.vna.query(":VNA:ACQ:FIN?") == "FALSE": - time.sleep(0.1) + self.assertEqual(self.vna.query(":VNA:ACQ:FIN?") == "FALSE") + self.vna.cmd("*WAI") + self.assertEqual(self.vna.query(":VNA:ACQ:FIN?") == "TRUE") cal.reset() @@ -162,5 +172,4 @@ class TestCalibration(TestBase): # Reflection should be below -10dB (much lower for most frequencies) self.assertTrace_dB(S11, -100, 90) self.assertTrace_dB(S22, -100, 90) - - \ No newline at end of file + diff --git a/Software/Integrationtests/tests/TestVNASweep.py b/Software/Integrationtests/tests/TestVNASweep.py index bae3143..3e0a87d 100644 --- a/Software/Integrationtests/tests/TestVNASweep.py +++ b/Software/Integrationtests/tests/TestVNASweep.py @@ -4,11 +4,9 @@ import time class TestVNASweep(TestBase): def waitSweepTimeout(self, timeout = 1): self.assertEqual(self.vna.query(":VNA:ACQ:FIN?"), "FALSE") - stoptime = time.time() + timeout - while self.vna.query(":VNA:ACQ:FIN?") == "FALSE": - if time.time() > stoptime: - raise AssertionError("Sweep timed out") - + self.vna.cmd("*WAI", timeout=timeout) + self.assertEqual(self.vna.query(":VNA:ACQ:FIN?"), "TRUE") + def test_sweep_frequency(self): self.vna.cmd(":DEV:MODE VNA") self.vna.cmd(":VNA:SWEEP FREQUENCY") From 106832624a597086d4824f9db9ee18978c9fd747 Mon Sep 17 00:00:00 2001 From: Scott Guthridge Date: Fri, 19 Apr 2024 23:25:23 -0700 Subject: [PATCH 11/16] Shorten class libraVNA check_cmds, timeout arguments default_check_cmds -> check_cmds default_timeout -> timeout --- Documentation/UserManual/SCPI_Examples/libreVNA.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/UserManual/SCPI_Examples/libreVNA.py b/Documentation/UserManual/SCPI_Examples/libreVNA.py index dcac991..c4213e1 100755 --- a/Documentation/UserManual/SCPI_Examples/libreVNA.py +++ b/Documentation/UserManual/SCPI_Examples/libreVNA.py @@ -70,15 +70,15 @@ class SocketStreamReader: class libreVNA: def __init__(self, host='localhost', port=19542, - default_check_cmds=True, default_timeout=1): + check_cmds=True, timeout=1): self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: self.sock.connect((host, port)) except: raise Exception("Unable to connect to LibreVNA-GUI. Make sure it is running and the TCP server is enabled.") self.reader = SocketStreamReader(self.sock, - default_timeout=default_timeout) - self.default_check_cmds = default_check_cmds + default_timeout=timeout) + self.default_check_cmds = check_cmds def __del__(self): self.sock.close() From 41033fdecdb818009210eca41ec733b0b4878430 Mon Sep 17 00:00:00 2001 From: Scott Guthridge Date: Fri, 19 Apr 2024 19:38:51 -0700 Subject: [PATCH 12/16] Add tests for SCPI status registers --- Software/Integrationtests/Integrationtest.py | 1 + .../tests/TestStatusRegisters.py | 56 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 Software/Integrationtests/tests/TestStatusRegisters.py diff --git a/Software/Integrationtests/Integrationtest.py b/Software/Integrationtests/Integrationtest.py index b7c0af2..237d437 100644 --- a/Software/Integrationtests/Integrationtest.py +++ b/Software/Integrationtests/Integrationtest.py @@ -2,6 +2,7 @@ import unittest testmodules = [ 'tests.TestConnect', + 'tests.TestStatusRegisters', 'tests.TestMode', 'tests.TestVNASweep', 'tests.TestCalibration', diff --git a/Software/Integrationtests/tests/TestStatusRegisters.py b/Software/Integrationtests/tests/TestStatusRegisters.py new file mode 100644 index 0000000..c4e3ae4 --- /dev/null +++ b/Software/Integrationtests/tests/TestStatusRegisters.py @@ -0,0 +1,56 @@ +import re +from tests.TestBase import TestBase + + +class TestStatusRegisters(TestBase): + def query_stb(self): + resp = self.vna.query("*STB?") + self.assertTrue(re.match(r"^\d+$", resp)) + value = int(resp) + self.assertTrue(value >= 0 and value <= 255) + return value + + def test_invalid_command(self): + status = self.vna.get_status() + self.assertEqual(status, 0) + self.vna.default_check_cmds = False + self.vna.cmd("INVALID:COMMAND") + status = self.vna.get_status() + self.assertEqual(status & 0x3C, 0x20) + status = self.vna.get_status() + self.assertEqual(status, 0) + + def test_invalid_query(self): + status = self.vna.get_status() + self.assertEqual(status, 0) + self.vna.default_check_cmds = False + self.vna.cmd("INVALID:QUERY?") # send as cmd to avoid timeout + status = self.vna.get_status() + self.assertTrue(status & 0x20) # expect CME + status = self.vna.get_status() + self.assertEqual(status, 0) + + def test_stb(self): + self.vna.default_check_cmds = False + self.vna.cmd("*SRE 0") + status = self.vna.get_status() + if status & 0x20: + self.skipTest("Skipping test: *SRE, *SRE?, *STB? not implemented") + self.vna.cmd("*RST") + self.vna.cmd("VNA:ACQ:SINGLE TRUE") + self.vna.cmd("*WAI") + status = self.vna.get_status() + self.assertEqual(status, 0) + self.vna.cmd("OPC") # should set OPC + self.vna.cmd(f"*ESE {0x21:d}") # mask is CME|OPC + self.assertEqual(self.query_stb() & 0x60, 0x20) # expect !MSS, ESB + self.assertEqual(self.query_stb() & 0x60, 0x20) # shouldn't clear + self.vna.cmd(f"*SRE {0x20:d}") # unmask ESB + self.assertEqual(self.query_stb() & 0x60, 0x60) # expect MSS, ESB + self.vna.cmd(f"*ESE {0x20:d}") # mask is CME only + self.assertEqual(self.query_stb() & 0x60, 0) # expect !MSS, !ESB + self.vna.cmd("INVALID:COMMAND") # should set CME + self.assertEqual(self.query_stb() & 0x60, 0x60) # expect MSS, ESB + status = self.get_status() + self.assertEqual(status, 0x21) # expect CMD|OPC, clears + self.assertEqual(self.query_stb() & 0x60, 0) # expect !MSS, !ESB From 15024eb91e2ec38b34e96615e6c74e0eb89a5dc0 Mon Sep 17 00:00:00 2001 From: Scott Guthridge Date: Fri, 19 Apr 2024 23:21:11 -0700 Subject: [PATCH 13/16] Add tests for SCPI synchronization: *WAI, *OPC? and *OPC --- Software/Integrationtests/Integrationtest.py | 1 + Software/Integrationtests/tests/TestSync.py | 52 ++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 Software/Integrationtests/tests/TestSync.py diff --git a/Software/Integrationtests/Integrationtest.py b/Software/Integrationtests/Integrationtest.py index 237d437..4213936 100644 --- a/Software/Integrationtests/Integrationtest.py +++ b/Software/Integrationtests/Integrationtest.py @@ -4,6 +4,7 @@ testmodules = [ 'tests.TestConnect', 'tests.TestStatusRegisters', 'tests.TestMode', + 'tests.TestSync', 'tests.TestVNASweep', 'tests.TestCalibration', 'tests.TestGenerator', diff --git a/Software/Integrationtests/tests/TestSync.py b/Software/Integrationtests/tests/TestSync.py new file mode 100644 index 0000000..6bd9aa6 --- /dev/null +++ b/Software/Integrationtests/tests/TestSync.py @@ -0,0 +1,52 @@ +from tests.TestBase import TestBase +import time + + +class TestSync(TestBase): + def test_wai(self): + self.vna.cmd("*RST") + self.vna.cmd("VNA:ACQ:SINGLE TRUE") + self.assertEqual(self.vna.query(":VNA:ACQ:FIN?"), "FALSE") + self.vna.cmd("*WAI", timeout=3) + self.assertEqual(self.vna.query(":VNA:ACQ:FIN?"), "TRUE") + + def test_opc_query(self): + self.vna.cmd("*RST") + self.vna.cmd("VNA:ACQ:SINGLE TRUE") + self.assertEqual(self.vna.query(":VNA:ACQ:FIN?"), "FALSE") + resp = self.vna.query("*OPC?", timeout=3) + self.assertEqual(resp, "1") + self.assertEqual(self.vna.query(":VNA:ACQ:FIN?"), "TRUE") + + def test_opc_poll(self): + self.vna.cmd("*RST") + self.vna.cmd("VNA:ACQ:SINGLE TRUE") + self.vna.cmd("*OPC") + self.assertEqual(self.vna.query(":VNA:ACQ:FIN?"), "FALSE") + time_limit = time.time() + 2 + while True: + status = self.vna.get_status() + if status & 0x01: + break + if time.time() >= time_limit: + raise Exception("Timeout waiting for OPC") + time.sleep(0.05) + self.assertEqual(self.vna.query(":VNA:ACQ:FIN?"), "TRUE") + self.assertEqual(self.vna.get_status(), 0) + + def test_idle_waits(self): + ''' + Test that *WAI and *OPC? don't hang when device is idle. Test + that *OPC query sets the OPC status bit immediately. + ''' + self.vna.cmd("*RST") + self.vna.cmd("VNA:ACQ:SINGLE TRUE") + self.vna.cmd("*WAI", timeout=3) + self.assertEqual(self.vna.get_status(), 0) + self.assertEqual(self.vna.query(":VNA:ACQ:FIN?"), "TRUE") + self.vna.cmd("*WAI") + resp = self.vna.query("*OPC?") + self.assertEqual(resp, "1") + self.assertEqual(self.vna.get_status(), 0) + self.assertEqual(self.vna.cmd("*OPC"), 0x01) # should return OPC + self.assertEqual(self.vna.get_status(), 0) From c1d1bc7aeddf30e4eeee7b0db8569b341102ea1c Mon Sep 17 00:00:00 2001 From: Scott Guthridge Date: Fri, 19 Apr 2024 18:45:39 -0700 Subject: [PATCH 14/16] Add integration tests for *RST --- Software/Integrationtests/Integrationtest.py | 1 + Software/Integrationtests/tests/TestRST.py | 246 +++++++++++++++++++ 2 files changed, 247 insertions(+) create mode 100644 Software/Integrationtests/tests/TestRST.py diff --git a/Software/Integrationtests/Integrationtest.py b/Software/Integrationtests/Integrationtest.py index 4213936..77d2b9e 100644 --- a/Software/Integrationtests/Integrationtest.py +++ b/Software/Integrationtests/Integrationtest.py @@ -9,6 +9,7 @@ testmodules = [ 'tests.TestCalibration', 'tests.TestGenerator', 'tests.TestSASweep', + 'tests.TestRST', ] suite = unittest.TestSuite() diff --git a/Software/Integrationtests/tests/TestRST.py b/Software/Integrationtests/tests/TestRST.py new file mode 100644 index 0000000..9ed9c4c --- /dev/null +++ b/Software/Integrationtests/tests/TestRST.py @@ -0,0 +1,246 @@ +import re +from tests.TestBase import TestBase + +float_re = re.compile(r'^[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]\d+)?$') +int_re = re.compile(r'^\d+$') +lowerq_re = re.compile('[a-z?]') + +queries = [ + # Limits used to validate other parameters + ("float", "DEVice:INFo:LIMits:MINFrequency?"), + ("float", "DEVice:INFo:LIMits:MAXFrequency?"), + ("float", "DEVice:INFo:LIMits:MINIFBW?"), + ("float", "DEVice:INFo:LIMits:MAXIFBW?"), + ("int", "DEVice:INFo:LIMits:MAXPoints?"), + ("float", "DEVice:INFo:LIMits:MINPOWer?"), + ("float", "DEVice:INFo:LIMits:MAXPOWer?"), + ("float", "DEVice:INFo:LIMits:MINRBW?"), + ("float", "DEVice:INFo:LIMits:MAXRBW?"), + + # Settable parameters without query arguments + ("str", "DEVice:MODE?"), + ("str", "DEVice:REFerence:IN?"), + ("str", "DEVice:REFerence:OUT?"), + ("float", "GENerator:FREQuency?"), + ("float", "GENerator:LVL?"), + ("int", "GENerator:PORT?"), + ("int", "SA:ACQuisition:AVG?"), + ("str", "SA:ACQuisition:DETector?"), + ("float", "SA:ACQuisition:RBW?"), + ("bool", "SA:ACQuisition:RUN?"), + ("bool", "SA:ACQuisition:SINGLE?"), + ("str", "SA:ACQuisition:WINDow?"), + ("float", "SA:FREQuency:CENTer?"), + ("float", "SA:FREQuency:SPAN?"), + ("float", "SA:FREQuency:START?"), + ("float", "SA:FREQuency:STOP?"), + ("bool", "SA:TRACKing:ENable?"), + ("float", "SA:TRACKing:LVL?"), + ("bool", "SA:TRACKing:NORMalize:ENable?"), + ("float", "SA:TRACKing:NORMalize:LVL?"), + ("float", "SA:TRACKing:OFFset?"), + ("int", "SA:TRACKing:Port?"), + ("int", "VNA:ACQuisition:AVG?"), + ("float", "VNA:ACQuisition:IFBW?"), + ("int", "VNA:ACQuisition:POINTS?"), + ("bool", "VNA:ACQuisition:RUN?"), + ("bool", "VNA:ACQuisition:SINGLE?"), + ("str", "VNA:CALibration:ACTivate?"), + ("int", "VNA:DEEMBedding:NUMber?"), + ("float", "VNA:FREQuency:CENTer?"), + ("float", "VNA:FREQuency:SPAN?"), + ("float", "VNA:FREQuency:START?"), + ("float", "VNA:FREQuency:STOP?"), + ("float", "VNA:POWer:START?"), + ("float", "VNA:POWer:STOP?"), + ("float", "VNA:STIMulus:FREQuency?"), + ("float", "VNA:STIMulus:LVL?"), + ("str", "VNA:SWEEP?"), +] + + +class TestRST(TestBase): + def query_settings(self) -> dict: + result = dict() + for qtype, query in queries: + resp = self.vna.query(query) + if qtype == "float": + self.assertTrue(float_re.match(resp), + f"Expected float from {query}; got: '{resp}'") + value = float(resp) + elif qtype == "int": + self.assertTrue(int_re.match(resp), + f"Expected int from {query}; got: '{resp}'") + value = int(resp) + elif qtype == "bool": + self.assertTrue(resp == "TRUE" or resp == "FALSE", + f"Expected bool from {query}; got: '{resp}'") + value = True if resp == "TRUE" else False + elif qtype == "str": + value = resp + else: + assert False, "invalid type in table" + + query = re.sub(lowerq_re, r'', query) + result[query] = value + + return result + + def validate_settings(self, settings): + # Copy limits into local vars + f_min = settings["DEV:INF:LIM:MINF"] + f_max = settings["DEV:INF:LIM:MAXF"] + ifbw_min = settings["DEV:INF:LIM:MINIFBW"] + ifbw_max = settings["DEV:INF:LIM:MAXIFBW"] + points_max = settings["DEV:INF:LIM:MAXP"] + pwr_min = settings["DEV:INF:LIM:MINPOW"] + pwr_max = settings["DEV:INF:LIM:MAXPOW"] + rbw_min = settings["DEV:INF:LIM:MINRBW"] + rbw_max = settings["DEV:INF:LIM:MAXRBW"] + + # Validate select settings + self.assertEqual(settings["DEV:MODE"], "VNA") + self.assertEqual(settings["DEV:REF:IN"], "INT") + self.assertEqual(settings["DEV:REF:OUT"], "OFF") # can't source pwr + + f = settings["GEN:FREQ"] + self.assertGreaterEqual(f, f_min) + self.assertLessEqual(f, f_max) + + pwr = settings["GEN:LVL"] + self.assertGreaterEqual(pwr, pwr_min) + self.assertLessEqual(pwr, pwr_max) + + self.assertEqual(settings["SA:ACQ:AVG"], 1) + + rbw = settings["SA:ACQ:RBW"] + self.assertGreaterEqual(rbw, rbw_min) + self.assertLessEqual(rbw, rbw_max) + + f_center = settings["SA:FREQ:CENT"] + f_span = settings["SA:FREQ:SPAN"] + f_start = settings["SA:FREQ:START"] + f_stop = settings["SA:FREQ:STOP"] + self.assertGreaterEqual(f_start, f_min) + self.assertLessEqual(f_start, f_stop) + self.assertLessEqual(f_stop, f_max) + f_granularity = (f_max - f_min) / points_max + self.assertTrue(abs(f_stop - f_start - f_span) < f_granularity) + self.assertTrue(abs((f_start + f_stop) / 2 - f_center) < f_granularity) + + self.assertFalse(settings["SA:TRACK:EN"]) + pwr = settings["SA:TRACK:LVL"] + self.assertGreaterEqual(pwr, pwr_min) + self.assertLessEqual(pwr, pwr_max) + + pwr = settings["SA:TRACK:NORM:LVL"] + self.assertGreaterEqual(pwr, pwr_min) + self.assertLessEqual(pwr, pwr_max) + + self.assertGreaterEqual(settings["SA:TRACK:P"], 1) + + ifbw = settings["VNA:ACQ:IFBW"] + self.assertGreaterEqual(ifbw, ifbw_min) + self.assertLessEqual(ifbw, ifbw_max) + + points = settings["VNA:ACQ:POINTS"] + self.assertGreaterEqual(points, 1) + self.assertLessEqual(points, points_max) + + # TODO-check: In standard SCPI, the instrument does not source + # power from its ports after *RST. Automation program enables + # the output only after completing its setup. + #self.assertFalse(settings["VNA:ACQ:RUN"]) # can't source pwr + self.assertEqual(settings["VNA:DEEMB:NUM"], 0) + + f_center = settings["VNA:FREQ:CENT"] + f_span = settings["VNA:FREQ:SPAN"] + f_start = settings["VNA:FREQ:START"] + f_stop = settings["VNA:FREQ:STOP"] + self.assertGreaterEqual(f_start, f_min) + self.assertLessEqual(f_start, f_stop) + self.assertLessEqual(f_stop, f_max) + self.assertTrue(abs(f_stop - f_start - f_span) < f_granularity) + self.assertTrue(abs((f_start + f_stop) / 2 - f_center) < f_granularity) + + pwr_start = settings["VNA:POW:START"] + pwr_stop = settings["VNA:POW:STOP"] + self.assertGreaterEqual(pwr_start, pwr_min) + self.assertLess(pwr_start, pwr_stop) + self.assertLessEqual(pwr_stop, pwr_max) + + f = settings["VNA:STIM:FREQ"] + self.assertGreaterEqual(f, f_min) + self.assertLessEqual(f, f_max) + + pwr = settings["VNA:STIM:LVL"] + self.assertGreaterEqual(pwr, pwr_min) + self.assertLessEqual(pwr, pwr_max) + + self.assertEqual(settings["VNA:SWEEP"], "FREQUENCY") + + def test_rst_basic(self): + self.vna.cmd("*RST") + settings = self.query_settings() + self.validate_settings(settings) + + def test_rst_hard(self): + self.vna.cmd("*RST") + settings1 = self.query_settings() + self.validate_settings(settings1) + + # Get limits. + f_min = settings1["DEV:INF:LIM:MINF"] + f_max = settings1["DEV:INF:LIM:MAXF"] + f_1_3 = (2 * f_min + f_max) / 3 + f_1_2 = (f_min + f_max) / 2 + f_2_3 = (f_min + 2 * f_max) / 3 + ifbw_min = settings1["DEV:INF:LIM:MINIFBW"] + ifbw_max = settings1["DEV:INF:LIM:MAXIFBW"] + ifbw_1_2 = (ifbw_min + ifbw_max) / 2 + points_max = settings1["DEV:INF:LIM:MAXP"] + pwr_min = settings1["DEV:INF:LIM:MINPOW"] + pwr_max = settings1["DEV:INF:LIM:MAXPOW"] + pwr_1_3 = (2 * pwr_min + pwr_max) / 3 + pwr_2_3 = (pwr_min + 2 * pwr_max) / 3 + pwr_1_2 = (pwr_min + pwr_max) / 2 + rbw_min = settings1["DEV:INF:LIM:MINRBW"] + rbw_max = settings1["DEV:INF:LIM:MAXRBW"] + rbw_1_2 = (rbw_max + rbw_max) / 2 + + # Change parameters. + self.vna.cmd("DEV:MODE SA") + self.vna.cmd("DEV:REF:IN AUTO") + self.vna.cmd("DEV:REF:OUT 10") + self.vna.cmd(f"GEN:FREQ {f_1_2}") + self.vna.cmd(f"GEN:LVL {pwr_1_2}") + self.vna.cmd("GEN:PORT 2") + self.vna.cmd("SA:ACQ:AVG 3") + self.vna.cmd("SA:ACQ:DET -PEAK") + self.vna.cmd(f"SA:ACQ:RBW {rbw_1_2}") + self.vna.cmd("SA:ACQ:SINGLE TRUE") + self.vna.cmd("SA:ACQ:WIND HANN") + self.vna.cmd(f"SA:FREQ:START {f_1_3} STOP {f_2_3}") + self.vna.cmd("SA:TRACK:EN TRUE") + self.vna.cmd(f"SA:TRACK:LVL {pwr_1_2}") + self.vna.cmd("SA:TRACK:NORM:EN TRUE") + self.vna.cmd("SA:TRACK:NORM:LVL {pwr_1_3}") + self.vna.cmd("SA:TRACK:OFF 1.0e+6;PORT 2") + self.vna.cmd("VNA:ACQ:AVG 10") + self.vna.cmd(f"VNA:ACQ:IFBW {ifbw_1_2}") + self.vna.cmd(f"VNA:ACQ:POINTS 100") + self.vna.cmd("VNA:ACQ:SINGLE TRUE") + self.vna.cmd(f"VNA:FREQ:START {f_1_2};STOP {f_max}") + self.vna.cmd(f"VNA:POW:START {pwr_1_3};STOP {pwr_2_3}") + self.vna.cmd(f"VNA:STIM:FREQ {f_1_3}") + self.vna.cmd(f"VNA:STIM:LVL {pwr_min}") + self.vna.cmd("VNA:SWEEP POWER") + + # Reset and verify all settings revert. + self.vna.cmd("*RST") + settings2 = self.query_settings() + for key, value in settings1.items(): + # TODO-check: *RST does not reset this parameter. + if key == "DEV:REF:OUT": + continue + self.assertEqual(value, settings2[key]) From 2963e8b3d5b6466c576d2c1e51d2691e62dbfea4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sat, 20 Apr 2024 15:56:57 +0200 Subject: [PATCH 15/16] Reset refernence on *RST, fix VNA:ACQ:RUN? query --- .../Device/LibreVNA/librevnadriver.cpp | 6 ++++++ .../SpectrumAnalyzer/spectrumanalyzer.cpp | 4 +++- Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp | 14 +++----------- Software/PC_Application/LibreVNA-GUI/appwindow.cpp | 8 ++++++++ Software/PC_Application/LibreVNA-GUI/appwindow.h | 1 + 5 files changed, 21 insertions(+), 12 deletions(-) diff --git a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/librevnadriver.cpp b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/librevnadriver.cpp index 9545c21..33a10f2 100644 --- a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/librevnadriver.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/librevnadriver.cpp @@ -546,6 +546,9 @@ bool LibreVNADriver::setExtRef(QString option_in, QString option_out) case Reference::TypeIn::None: p.reference.UseExternalRef = 0; p.reference.AutomaticSwitch = 0; + if(hardwareVersion == 0x01) { + lastStatus.V1.extRefInUse = 0; + } break; case Reference::TypeIn::Auto: p.reference.UseExternalRef = 0; @@ -554,6 +557,9 @@ bool LibreVNADriver::setExtRef(QString option_in, QString option_out) case Reference::TypeIn::External: p.reference.UseExternalRef = 1; p.reference.AutomaticSwitch = 0; + if(hardwareVersion == 0x01) { + lastStatus.V1.extRefInUse = 1; + } break; } switch(refOut) { diff --git a/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp b/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp index d0d21f2..feb0f63 100644 --- a/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp +++ b/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/spectrumanalyzer.cpp @@ -966,7 +966,9 @@ void SpectrumAnalyzer::SetupSCPI() scpi_acq->add(new SCPICommand("RUN", [=](QStringList) -> QString { Run(); return SCPI::getResultName(SCPI::Result::Empty); - }, nullptr)); + }, [=](QStringList) -> QString { + return running ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False); + })); scpi_acq->add(new SCPICommand("STOP", [=](QStringList) -> QString { Stop(); return SCPI::getResultName(SCPI::Result::Empty); diff --git a/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp b/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp index 45c9ffe..88c033a 100644 --- a/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp +++ b/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp @@ -1421,7 +1421,9 @@ void VNA::SetupSCPI() scpi_acq->add(new SCPICommand("RUN", [=](QStringList) -> QString { Run(); return SCPI::getResultName(SCPI::Result::Empty); - }, nullptr)); + }, [=](QStringList) -> QString { + return running ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False); + })); scpi_acq->add(new SCPICommand("STOP", [=](QStringList) -> QString { Stop(); return SCPI::getResultName(SCPI::Result::Empty); @@ -1479,16 +1481,6 @@ void VNA::SetupSCPI() }, [=](QStringList) -> QString { return singleSweep ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False); })); - scpi_acq->add(new SCPICommand("RUN", [=](QStringList) -> QString { - Run(); - return SCPI::getResultName(SCPI::Result::Empty); - }, [=](QStringList) -> QString { - return running ? SCPI::getResultName(SCPI::Result::True) : SCPI::getResultName(SCPI::Result::False); - })); - scpi_acq->add(new SCPICommand("STOP", [=](QStringList) -> QString { - Stop(); - return SCPI::getResultName(SCPI::Result::Empty); - }, nullptr)); auto scpi_stim = new SCPINode("STIMulus"); SCPINode::add(scpi_stim); scpi_stim->add(new SCPICommand("LVL", [=](QStringList params) -> QString { diff --git a/Software/PC_Application/LibreVNA-GUI/appwindow.cpp b/Software/PC_Application/LibreVNA-GUI/appwindow.cpp index 327147c..dffc501 100644 --- a/Software/PC_Application/LibreVNA-GUI/appwindow.cpp +++ b/Software/PC_Application/LibreVNA-GUI/appwindow.cpp @@ -322,6 +322,8 @@ void AppWindow::SetInitialState() modeHandler->createMode("Spectrum Analyzer", Mode::Type::SA); modeHandler->setCurrentIndex(vnaIndex); } + + ResetReference(); } bool AppWindow::ConnectToDevice(QString serial, DeviceDriver *driver) @@ -1043,6 +1045,12 @@ int AppWindow::UpdateDeviceList() return available; } +void AppWindow::ResetReference() +{ + toolbars.reference.type->setCurrentIndex(0); + toolbars.reference.outFreq->setCurrentIndex(0); +} + //void AppWindow::StartManualControl() //{ // if(!vdevice || vdevice->isCompoundDevice()) { diff --git a/Software/PC_Application/LibreVNA-GUI/appwindow.h b/Software/PC_Application/LibreVNA-GUI/appwindow.h index 175dd1b..911390e 100644 --- a/Software/PC_Application/LibreVNA-GUI/appwindow.h +++ b/Software/PC_Application/LibreVNA-GUI/appwindow.h @@ -63,6 +63,7 @@ private slots: void DisconnectDevice(); int UpdateDeviceList(); // void StartManualControl(); + void ResetReference(); void UpdateReferenceToolbar(); void UpdateReference(); void DeviceStatusUpdated(); From a202a105078075f7aa9e32aa0ff1999c468cb270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sat, 20 Apr 2024 15:57:16 +0200 Subject: [PATCH 16/16] Fix failing tests --- Software/Integrationtests/libreCAL.py | 17 ++++++++++++----- Software/Integrationtests/tests/TestBase.py | 2 ++ .../Integrationtests/tests/TestCalibration.py | 6 +++--- Software/Integrationtests/tests/TestRST.py | 4 +--- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/Software/Integrationtests/libreCAL.py b/Software/Integrationtests/libreCAL.py index 03a8927..33cf78a 100644 --- a/Software/Integrationtests/libreCAL.py +++ b/Software/Integrationtests/libreCAL.py @@ -6,12 +6,13 @@ class libreCAL: def __init__(self, serialnum = ''): self.ser = None for p in serial.tools.list_ports.comports(): - if p.vid == 0x0483 and p.pid == 0x4122: + if (p.vid == 0x0483 and p.pid == 0x4122) or (p.vid == 0x1209 and p.pid == 0x4122): self.ser = serial.Serial(p.device, timeout = 1) - idn = self.SCPICommand("*IDN?").split("_") + idn = self.SCPICommand("*IDN?").split(",") if idn[0] != "LibreCAL": + self.ser = None continue - self.serial = idn[1] + self.serial = idn[2] if len(serialnum) > 0: # serial number specified, compare if self.serial != serialnum: @@ -70,7 +71,13 @@ class libreCAL: def getHeaterPower(self): return float(self.SCPICommand(":HEAT:POW?")) - + + def getDateTimeUTC(self): + return self.SCPICommand(":DATE_TIME?") + + def setDateTimeUTC(self, date_time_utc): + return self.SCPICommand(":DATE_TIME "+ date_time_utc) + def SCPICommand(self, cmd: str) -> str: self.ser.write((cmd+"\r\n").encode()) resp = self.ser.readline().decode("ascii") @@ -78,4 +85,4 @@ class libreCAL: raise Exception("Timeout occurred in communication with LibreCAL") if resp.strip() == "ERROR": raise Exception("LibreCAL returned 'ERROR' for command '"+cmd+"'") - return resp.strip() \ No newline at end of file + return resp.strip() diff --git a/Software/Integrationtests/tests/TestBase.py b/Software/Integrationtests/tests/TestBase.py index 983bd53..3f5dfeb 100644 --- a/Software/Integrationtests/tests/TestBase.py +++ b/Software/Integrationtests/tests/TestBase.py @@ -32,6 +32,8 @@ class TestBase(unittest.TestCase): if self.vna.query(":DEV:CONN?") == "Not connected": self.tearDown() raise AssertionError("Not connected") + # Tests occasionally fail without this timeout - give GUI a little bit more time to properly start + time.sleep(1) def tearDown(self): self.gui.send_signal(SIGINT) diff --git a/Software/Integrationtests/tests/TestCalibration.py b/Software/Integrationtests/tests/TestCalibration.py index 5fb7a14..65f82d4 100644 --- a/Software/Integrationtests/tests/TestCalibration.py +++ b/Software/Integrationtests/tests/TestCalibration.py @@ -8,7 +8,7 @@ class TestCalibration(TestBase): self.vna.cmd(":VNA:CAL:MEAS "+str(number)) # wait for the measurement to finish assert self.vna.query(":VNA:CAL:BUSY?") == "TRUE" - self.vna.cmd("*WAI") + self.vna.cmd("*WAI", timeout=timeout) assert self.vna.query(":VNA:CAL:BUSY?") == "FALSE" def test_dummy_calibration(self): @@ -152,9 +152,9 @@ class TestCalibration(TestBase): # Start measurement and grab data self.vna.cmd(":VNA:ACQ:SINGLE TRUE") - self.assertEqual(self.vna.query(":VNA:ACQ:FIN?") == "FALSE") + self.assertEqual(self.vna.query(":VNA:ACQ:FIN?"), "FALSE") self.vna.cmd("*WAI") - self.assertEqual(self.vna.query(":VNA:ACQ:FIN?") == "TRUE") + self.assertEqual(self.vna.query(":VNA:ACQ:FIN?"), "TRUE") cal.reset() diff --git a/Software/Integrationtests/tests/TestRST.py b/Software/Integrationtests/tests/TestRST.py index 9ed9c4c..c86021c 100644 --- a/Software/Integrationtests/tests/TestRST.py +++ b/Software/Integrationtests/tests/TestRST.py @@ -1,5 +1,6 @@ import re from tests.TestBase import TestBase +import time float_re = re.compile(r'^[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]\d+)?$') int_re = re.compile(r'^\d+$') @@ -240,7 +241,4 @@ class TestRST(TestBase): self.vna.cmd("*RST") settings2 = self.query_settings() for key, value in settings1.items(): - # TODO-check: *RST does not reset this parameter. - if key == "DEV:REF:OUT": - continue self.assertEqual(value, settings2[key])