Add option to capture raw receiver values

This commit is contained in:
Jan Käberich 2022-11-16 12:28:46 +01:00
parent a29c323556
commit aeaf9340d3
5 changed files with 46 additions and 2 deletions

View File

@ -246,6 +246,15 @@ QStringList VirtualDevice::availableVNAMeasurements()
ret.push_back("S"+QString::number(i)+QString::number(j)); ret.push_back("S"+QString::number(i)+QString::number(j));
} }
} }
auto &pref = Preferences::getInstance();
if(pref.Debug.makeRawReceiverValuesAvailable) {
for(unsigned int i=1;i<=info.ports;i++) {
for(unsigned int j=0;j<info.ports;j++) {
ret.push_back("RawPort"+QString::number(i)+"Stage"+QString::number(j));
ret.push_back("RawPort"+QString::number(i)+"Stage"+QString::number(j)+"Ref");
}
}
}
return ret; return ret;
} }
@ -554,6 +563,7 @@ VirtualDevice *VirtualDevice::getConnected()
void VirtualDevice::singleDatapointReceived(Device *dev, Protocol::VNADatapoint<32> *res) void VirtualDevice::singleDatapointReceived(Device *dev, Protocol::VNADatapoint<32> *res)
{ {
Q_UNUSED(dev) Q_UNUSED(dev)
auto &pref = Preferences::getInstance();
VNAMeasurement m; VNAMeasurement m;
m.pointNum = res->pointNum; m.pointNum = res->pointNum;
m.Z0 = 50.0; m.Z0 = 50.0;
@ -567,13 +577,19 @@ void VirtualDevice::singleDatapointReceived(Device *dev, Protocol::VNADatapoint<
// map.first is the port (starts at zero) // map.first is the port (starts at zero)
// map.second is the stage at which this port had the stimulus (starts at zero) // map.second is the stage at which this port had the stimulus (starts at zero)
complex<double> ref = res->getValue(map.second, map.first, true); complex<double> ref = res->getValue(map.second, map.first, true);
for(int i=0;i<2;i++) { for(int i=0;i<info.ports;i++) {
complex<double> input = res->getValue(map.second, i, false); complex<double> input = res->getValue(map.second, i, false);
if(!std::isnan(ref.real()) && !std::isnan(input.real())) { if(!std::isnan(ref.real()) && !std::isnan(input.real())) {
// got both required measurements // got both required measurements
QString name = "S"+QString::number(i+1)+QString::number(map.first+1); QString name = "S"+QString::number(i+1)+QString::number(map.first+1);
m.measurements[name] = input / ref; m.measurements[name] = input / ref;
} }
if(pref.Debug.makeRawReceiverValuesAvailable) {
QString name = "RawPort"+QString::number(i+1)+"Stage"+QString::number(map.first);
m.measurements[name] = input;
name = "RawPort"+QString::number(i+1)+"Stage"+QString::number(map.first)+"Ref";
m.measurements[name] = res->getValue(map.second, i, true);
}
} }
} }
delete res; delete res;

View File

@ -651,7 +651,15 @@ bool Trace::isSAParameter(QString param)
bool Trace::isVNAParameter(QString param) bool Trace::isVNAParameter(QString param)
{ {
return param.length() == 3 && param[0] == 'S' && param[1].isDigit() && param[2].isDigit(); if(param.length() == 3 && param[0] == 'S' && param[1].isDigit() && param[2].isDigit()) {
// normal S parameter
return true;
}
if(param.startsWith("RawPort")) {
// raw receiver value
return true;
}
return false;
} }
double Trace::velocityFactor() double Trace::velocityFactor()

View File

@ -389,6 +389,7 @@ void PreferencesDialog::setInitialGUIState()
ui->DebugMaxUSBlogSize->setValue(p->Debug.USBlogSizeLimit); ui->DebugMaxUSBlogSize->setValue(p->Debug.USBlogSizeLimit);
ui->DebugSaveTraceData->setChecked(p->Debug.saveTraceData); ui->DebugSaveTraceData->setChecked(p->Debug.saveTraceData);
ui->DebugCaptureRawReceiverValues->setChecked(p->Debug.makeRawReceiverValuesAvailable);
for(auto cd : p->compoundDevices) { for(auto cd : p->compoundDevices) {
ui->compoundList->addItem(cd->getDesription()); ui->compoundList->addItem(cd->getDesription());
@ -493,6 +494,7 @@ void PreferencesDialog::updateFromGUI()
p->Debug.USBlogSizeLimit = ui->DebugMaxUSBlogSize->value(); p->Debug.USBlogSizeLimit = ui->DebugMaxUSBlogSize->value();
p->Debug.saveTraceData = ui->DebugSaveTraceData->isChecked(); p->Debug.saveTraceData = ui->DebugSaveTraceData->isChecked();
p->Debug.makeRawReceiverValuesAvailable = ui->DebugCaptureRawReceiverValues->isChecked();
p->nonTrivialWriting(); p->nonTrivialWriting();
} }

View File

@ -163,6 +163,7 @@ public:
struct { struct {
double USBlogSizeLimit; double USBlogSizeLimit;
bool saveTraceData; bool saveTraceData;
bool makeRawReceiverValuesAvailable;
} Debug; } Debug;
bool TCPoverride; // in case of manual port specification via command line bool TCPoverride; // in case of manual port specification via command line
@ -270,6 +271,7 @@ private:
{&SCPIServer.port, "SCPIServer.port", 19542}, {&SCPIServer.port, "SCPIServer.port", 19542},
{&Debug.USBlogSizeLimit, "Debug.USBlogSizeLimit", 10000000.0}, {&Debug.USBlogSizeLimit, "Debug.USBlogSizeLimit", 10000000.0},
{&Debug.saveTraceData, "Debug.saveTraceData", false}, {&Debug.saveTraceData, "Debug.saveTraceData", false},
{&Debug.makeRawReceiverValuesAvailable, "Debug.makeRawReceiverValuesAvailable", false},
{&compoundDeviceJSON, "compoundDeviceJSON", "[]"}, {&compoundDeviceJSON, "compoundDeviceJSON", "[]"},
}}; }};
}; };

View File

@ -1977,6 +1977,22 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<widget class="QGroupBox" name="groupBox_25">
<property name="title">
<string>Acquisition</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_32">
<item>
<widget class="QCheckBox" name="DebugCaptureRawReceiverValues">
<property name="text">
<string>Capture raw receiver values</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item> <item>
<spacer name="verticalSpacer_9"> <spacer name="verticalSpacer_9">
<property name="orientation"> <property name="orientation">