mirror of
https://github.com/jankae/LibreVNA.git
synced 2026-04-04 22:17:31 +00:00
fix streaming server output for zero span sweeps
This commit is contained in:
parent
798ffc4867
commit
b8600be086
8 changed files with 64 additions and 42 deletions
|
|
@ -538,7 +538,7 @@ void SpectrumAnalyzer::NewDatapoint(DeviceDriver::SAMeasurement m)
|
|||
}
|
||||
}
|
||||
|
||||
window->addStreamingData(m_avg, AppWindow::SADataType::Raw);
|
||||
window->addStreamingData(m_avg, AppWindow::SADataType::Raw, settings.freqStart == settings.freqStop);
|
||||
|
||||
if(normalize.measuring) {
|
||||
if(average.currentSweep() == averages) {
|
||||
|
|
@ -569,7 +569,7 @@ void SpectrumAnalyzer::NewDatapoint(DeviceDriver::SAMeasurement m)
|
|||
m.second /= normalize.portCorrection[m.first][m_avg.pointNum];
|
||||
m.second *= corr;
|
||||
}
|
||||
window->addStreamingData(m_avg, AppWindow::SADataType::Normalized);
|
||||
window->addStreamingData(m_avg, AppWindow::SADataType::Normalized, settings.freqStart == settings.freqStop);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -981,7 +981,30 @@ void VNA::NewDatapoint(DeviceDriver::VNAMeasurement m)
|
|||
|
||||
m_avg = average.process(m_avg);
|
||||
|
||||
window->addStreamingData(m_avg, AppWindow::VNADataType::Raw);
|
||||
TraceMath::DataType type = TraceMath::DataType::Frequency;
|
||||
if(settings.zerospan) {
|
||||
type = TraceMath::DataType::TimeZeroSpan;
|
||||
|
||||
// keep track of first point time
|
||||
if(m_avg.pointNum == 0) {
|
||||
settings.firstPointTime = m_avg.us;
|
||||
m_avg.us = 0;
|
||||
} else {
|
||||
m_avg.us -= settings.firstPointTime;
|
||||
}
|
||||
} else {
|
||||
switch(settings.sweepType) {
|
||||
case SweepType::Last:
|
||||
case SweepType::Frequency:
|
||||
type = TraceMath::DataType::Frequency;
|
||||
break;
|
||||
case SweepType::Power:
|
||||
type = TraceMath::DataType::Power;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
window->addStreamingData(m_avg, AppWindow::VNADataType::Raw, settings.zerospan);
|
||||
|
||||
if(average.settled()) {
|
||||
setOperationPending(false);
|
||||
|
|
@ -1006,36 +1029,13 @@ void VNA::NewDatapoint(DeviceDriver::VNAMeasurement m)
|
|||
cal.correctMeasurement(m_avg);
|
||||
|
||||
if(cal.getCaltype().type != Calibration::Type::None) {
|
||||
window->addStreamingData(m_avg, AppWindow::VNADataType::Calibrated);
|
||||
}
|
||||
|
||||
TraceMath::DataType type = TraceMath::DataType::Frequency;
|
||||
if(settings.zerospan) {
|
||||
type = TraceMath::DataType::TimeZeroSpan;
|
||||
|
||||
// keep track of first point time
|
||||
if(m_avg.pointNum == 0) {
|
||||
settings.firstPointTime = m_avg.us;
|
||||
m_avg.us = 0;
|
||||
} else {
|
||||
m_avg.us -= settings.firstPointTime;
|
||||
}
|
||||
} else {
|
||||
switch(settings.sweepType) {
|
||||
case SweepType::Last:
|
||||
case SweepType::Frequency:
|
||||
type = TraceMath::DataType::Frequency;
|
||||
break;
|
||||
case SweepType::Power:
|
||||
type = TraceMath::DataType::Power;
|
||||
break;
|
||||
}
|
||||
window->addStreamingData(m_avg, AppWindow::VNADataType::Calibrated, settings.zerospan);
|
||||
}
|
||||
|
||||
traceModel.addVNAData(m_avg, type, false);
|
||||
if(deembedding_active) {
|
||||
deembedding.Deembed(m_avg);
|
||||
window->addStreamingData(m_avg, AppWindow::VNADataType::Deembedded);
|
||||
window->addStreamingData(m_avg, AppWindow::VNADataType::Deembedded, settings.zerospan);
|
||||
traceModel.addVNAData(m_avg, type, true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -866,7 +866,7 @@ SCPI* AppWindow::getSCPI()
|
|||
return &scpi;
|
||||
}
|
||||
|
||||
void AppWindow::addStreamingData(const DeviceDriver::VNAMeasurement &m, VNADataType type)
|
||||
void AppWindow::addStreamingData(const DeviceDriver::VNAMeasurement &m, VNADataType type, bool is_zerospan)
|
||||
{
|
||||
StreamingServer *server = nullptr;
|
||||
switch(type) {
|
||||
|
|
@ -876,11 +876,11 @@ void AppWindow::addStreamingData(const DeviceDriver::VNAMeasurement &m, VNADataT
|
|||
}
|
||||
|
||||
if(server) {
|
||||
server->addData(m);
|
||||
server->addData(m, is_zerospan);
|
||||
}
|
||||
}
|
||||
|
||||
void AppWindow::addStreamingData(const DeviceDriver::SAMeasurement &m, SADataType type)
|
||||
void AppWindow::addStreamingData(const DeviceDriver::SAMeasurement &m, SADataType type, bool is_zerospan)
|
||||
{
|
||||
StreamingServer *server = nullptr;
|
||||
switch(type) {
|
||||
|
|
@ -889,7 +889,7 @@ void AppWindow::addStreamingData(const DeviceDriver::SAMeasurement &m, SADataTyp
|
|||
}
|
||||
|
||||
if(server) {
|
||||
server->addData(m);
|
||||
server->addData(m, is_zerospan);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -59,14 +59,14 @@ public:
|
|||
Deembedded = 2,
|
||||
};
|
||||
|
||||
void addStreamingData(const DeviceDriver::VNAMeasurement &m, VNADataType type);
|
||||
void addStreamingData(const DeviceDriver::VNAMeasurement &m, VNADataType type, bool is_zerospan);
|
||||
|
||||
enum class SADataType {
|
||||
Raw = 0,
|
||||
Normalized = 1,
|
||||
};
|
||||
|
||||
void addStreamingData(const DeviceDriver::SAMeasurement &m, SADataType type);
|
||||
void addStreamingData(const DeviceDriver::SAMeasurement &m, SADataType type, bool is_zerospan);
|
||||
|
||||
public slots:
|
||||
void setModeStatus(QString msg);
|
||||
|
|
|
|||
|
|
@ -20,12 +20,16 @@ StreamingServer::StreamingServer(int port)
|
|||
});
|
||||
}
|
||||
|
||||
void StreamingServer::addData(const DeviceDriver::VNAMeasurement &m)
|
||||
void StreamingServer::addData(const DeviceDriver::VNAMeasurement &m, bool is_zerospan)
|
||||
{
|
||||
nlohmann::json j;
|
||||
j["pointNum"] = m.pointNum;
|
||||
j["frequency"] = m.frequency;
|
||||
j["dBm"] = m.dBm;
|
||||
if(is_zerospan) {
|
||||
j["time"] = m.us * 0.000001;
|
||||
} else {
|
||||
j["frequency"] = m.frequency;
|
||||
j["dBm"] = m.dBm;
|
||||
}
|
||||
j["Z0"] = m.Z0;
|
||||
nlohmann::json jp;
|
||||
for(auto const &p : m.measurements) {
|
||||
|
|
@ -41,11 +45,15 @@ void StreamingServer::addData(const DeviceDriver::VNAMeasurement &m)
|
|||
}
|
||||
}
|
||||
|
||||
void StreamingServer::addData(const DeviceDriver::SAMeasurement &m)
|
||||
void StreamingServer::addData(const DeviceDriver::SAMeasurement &m, bool is_zerospan)
|
||||
{
|
||||
nlohmann::json j;
|
||||
j["pointNum"] = m.pointNum;
|
||||
j["frequency"] = m.frequency;
|
||||
if(is_zerospan) {
|
||||
j["time"] = m.us * 0.000001;
|
||||
} else {
|
||||
j["frequency"] = m.frequency;
|
||||
}
|
||||
nlohmann::json jp;
|
||||
for(auto const &p : m.measurements) {
|
||||
jp[p.first.toStdString()] = p.second;
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ class StreamingServer : public QObject
|
|||
public:
|
||||
StreamingServer(int port);
|
||||
|
||||
void addData(const DeviceDriver::VNAMeasurement &m);
|
||||
void addData(const DeviceDriver::SAMeasurement &m);
|
||||
void addData(const DeviceDriver::VNAMeasurement &m, bool is_zerospan);
|
||||
void addData(const DeviceDriver::SAMeasurement &m, bool is_zerospan);
|
||||
|
||||
int getPort() {return port;}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue