diff --git a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/deviceconfigurationdialogvff.cpp b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/deviceconfigurationdialogvff.cpp
index 3fd6bd1..86abb04 100644
--- a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/deviceconfigurationdialogvff.cpp
+++ b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/deviceconfigurationdialogvff.cpp
@@ -40,6 +40,11 @@ DeviceConfigurationDialogVFF::DeviceConfigurationDialogVFF(LibreVNADriver &dev,
}
});
+ connect(ui->autogain, &QCheckBox::toggled, this, [=](){
+ ui->portgain->setEnabled(!ui->autogain->isChecked());
+ ui->refgain->setEnabled(!ui->autogain->isChecked());
+ });
+
dev.sendWithoutPayload(Protocol::PacketType::RequestDeviceConfiguration);
connect(ui->buttonBox, &QDialogButtonBox::accepted, this, [=](){
@@ -66,6 +71,10 @@ void DeviceConfigurationDialogVFF::updateGUI(const Protocol::DeviceConfig &c)
ui->mask->setText(mask.toString());
gateway = QHostAddress(qFromBigEndian(c.VFF.gw));
ui->gateway->setText(gateway.toString());
+
+ ui->autogain->setChecked(c.VFF.autogain);
+ ui->portgain->setCurrentIndex(c.VFF.portGain);
+ ui->refgain->setCurrentIndex(c.VFF.refGain);
}
void DeviceConfigurationDialogVFF::updateDevice()
@@ -76,5 +85,9 @@ void DeviceConfigurationDialogVFF::updateDevice()
p.deviceConfig.VFF.ip = qToBigEndian(ip.toIPv4Address());
p.deviceConfig.VFF.mask = qToBigEndian(mask.toIPv4Address());
p.deviceConfig.VFF.gw = qToBigEndian(gateway.toIPv4Address());
+
+ p.deviceConfig.VFF.autogain = ui->autogain->isChecked() ? 1 : 0;
+ p.deviceConfig.VFF.portGain = ui->portgain->currentIndex();
+ p.deviceConfig.VFF.refGain = ui->refgain->currentIndex();
dev.SendPacket(p);
}
diff --git a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/deviceconfigurationdialogvff.ui b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/deviceconfigurationdialogvff.ui
index 54e3956..f2bc51f 100644
--- a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/deviceconfigurationdialogvff.ui
+++ b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/deviceconfigurationdialogvff.ui
@@ -6,8 +6,8 @@
0
0
- 389
- 224
+ 318
+ 344
@@ -17,7 +17,7 @@
-
- Address configuration
+ Address configuration (permanently stored in device)
-
@@ -69,6 +69,148 @@
+ -
+
+
+ PGA configuration (reset after reboot)
+
+
+
-
+
+
+ Autogain
+
+
+
+ -
+
+
-
+
+
+ Port gain:
+
+
+
+ -
+
+
-
+
+ 1V/V
+
+
+ -
+
+ 10V/V
+
+
+ -
+
+ 20V/V
+
+
+ -
+
+ 30V/V
+
+
+ -
+
+ 40V/V
+
+
+ -
+
+ 60V/V
+
+
+ -
+
+ 80V/V
+
+
+ -
+
+ 120V/V
+
+
+ -
+
+ 157V/V
+
+
+ -
+
+ 0.25V/V
+
+
+
+
+ -
+
+
+ Reference gain:
+
+
+
+ -
+
+
-
+
+ 1V/V
+
+
+ -
+
+ 10V/V
+
+
+ -
+
+ 20V/V
+
+
+ -
+
+ 30V/V
+
+
+ -
+
+ 40V/V
+
+
+ -
+
+ 60V/V
+
+
+ -
+
+ 80V/V
+
+
+ -
+
+ 120V/V
+
+
+ -
+
+ 157V/V
+
+
+ -
+
+ 0.25V/V
+
+
+
+
+
+
+
+
+
-
diff --git a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/devicepacketlogview.cpp b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/devicepacketlogview.cpp
index 349f9de..54555eb 100644
--- a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/devicepacketlogview.cpp
+++ b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/devicepacketlogview.cpp
@@ -327,6 +327,9 @@ void DevicePacketLogView::addEntry(const DevicePacketLog::LogEntry &e)
addString(VFF, "IP", QHostAddress(qFromBigEndian(sFF.ip)).toString());
addString(VFF, "Mask", QHostAddress(qFromBigEndian(sFF.mask)).toString());
addString(VFF, "Gateway", QHostAddress(qFromBigEndian(sFF.gw)).toString());
+ addBool(VFF, "PGA autogain", sFF.autogain);
+ addInteger(VFF, "Port gain", sFF.portGain);
+ addInteger(VFF, "Reference gain", sFF.refGain);
}
break;
default:
diff --git a/Software/VNA_embedded/Application/Communication/Protocol.hpp b/Software/VNA_embedded/Application/Communication/Protocol.hpp
index e5e4cf4..fbcfdcd 100644
--- a/Software/VNA_embedded/Application/Communication/Protocol.hpp
+++ b/Software/VNA_embedded/Application/Communication/Protocol.hpp
@@ -384,10 +384,13 @@ using DeviceConfig = struct _deviceconfig {
uint16_t DFTphaseInc;
} V1;
struct {
- uint32_t ip;
- uint32_t mask;
- uint32_t gw;
- uint8_t dhcp :1;
+ uint32_t ip;
+ uint32_t mask;
+ uint32_t gw;
+ uint16_t dhcp :1;
+ uint16_t autogain :1;
+ uint16_t portGain :4;
+ uint16_t refGain :4;
} VFF;
};
};