mirror of
https://github.com/jankae/LibreVNA.git
synced 2025-12-06 07:12:10 +01:00
hide device specific actions based on the hardware version
Some checks are pending
Build / PC_Application_Ubuntu (push) Waiting to run
Build / PC_Application_RPi5 (push) Waiting to run
Build / PC_Application_Windows (push) Waiting to run
Build / PC_Application_OSX (push) Waiting to run
Build / PC_Application_OSX_13 (push) Waiting to run
Build / Embedded_Firmware (push) Waiting to run
HIL_Tests / Get_Repository (push) Waiting to run
HIL_Tests / PC_Application_RPi5 (push) Blocked by required conditions
HIL_Tests / Embedded_Firmware (push) Blocked by required conditions
HIL_Tests / HIL (push) Blocked by required conditions
Unit_Tests / Tests (push) Waiting to run
Some checks are pending
Build / PC_Application_Ubuntu (push) Waiting to run
Build / PC_Application_RPi5 (push) Waiting to run
Build / PC_Application_Windows (push) Waiting to run
Build / PC_Application_OSX (push) Waiting to run
Build / PC_Application_OSX_13 (push) Waiting to run
Build / Embedded_Firmware (push) Waiting to run
HIL_Tests / Get_Repository (push) Waiting to run
HIL_Tests / PC_Application_RPi5 (push) Blocked by required conditions
HIL_Tests / Embedded_Firmware (push) Blocked by required conditions
HIL_Tests / HIL (push) Blocked by required conditions
Unit_Tests / Tests (push) Waiting to run
This commit is contained in:
parent
f51c6a0bce
commit
ed699cfd6a
|
|
@ -206,9 +206,9 @@ LibreVNADriver::LibreVNADriver()
|
||||||
});
|
});
|
||||||
specificActions.push_back(freqcal);
|
specificActions.push_back(freqcal);
|
||||||
|
|
||||||
sep = new QAction();
|
auto sep2 = new QAction();
|
||||||
sep->setSeparator(true);
|
sep2->setSeparator(true);
|
||||||
specificActions.push_back(sep);
|
specificActions.push_back(sep2);
|
||||||
|
|
||||||
auto log = new QAction("View Packet Log");
|
auto log = new QAction("View Packet Log");
|
||||||
connect(log, &QAction::triggered, this, [=](){
|
connect(log, &QAction::triggered, this, [=](){
|
||||||
|
|
@ -217,6 +217,14 @@ LibreVNADriver::LibreVNADriver()
|
||||||
});
|
});
|
||||||
specificActions.push_back(log);
|
specificActions.push_back(log);
|
||||||
|
|
||||||
|
// set available actions for each hardware version
|
||||||
|
availableActions[0x01] = {manual, config, update, sep, srccal, recvcal, freqcal, sep2, log};
|
||||||
|
availableActions[0xD0] = {manual, update, sep, srccal, recvcal, freqcal, sep2, log};
|
||||||
|
availableActions[0xE0] = {manual, update, sep, srccal, recvcal, freqcal, sep2, log};
|
||||||
|
availableActions[0xFD] = {manual, update, sep, srccal, recvcal, freqcal, sep2, log};
|
||||||
|
availableActions[0xFE] = {manual, config, update, sep, srccal, recvcal, freqcal, sep2, log};
|
||||||
|
availableActions[0xFF] = {manual, config, update, sep, srccal, recvcal, freqcal, sep2, log};
|
||||||
|
|
||||||
// Create driver specific commands
|
// Create driver specific commands
|
||||||
specificSCPIcommands.push_back(new SCPICommand("DEVice:INFo:TEMPeratures", nullptr, [=](QStringList) -> QString {
|
specificSCPIcommands.push_back(new SCPICommand("DEVice:INFo:TEMPeratures", nullptr, [=](QStringList) -> QString {
|
||||||
if(!connected) {
|
if(!connected) {
|
||||||
|
|
@ -713,6 +721,8 @@ void LibreVNADriver::handleReceivedPacket(const Protocol::PacketInfo &packet)
|
||||||
info.Limits.SA.maxdBm = (double) packet.info.limits_cdbm_max / 100;
|
info.Limits.SA.maxdBm = (double) packet.info.limits_cdbm_max / 100;
|
||||||
|
|
||||||
limits_maxAmplitudePoints = packet.info.limits_maxAmplitudePoints;
|
limits_maxAmplitudePoints = packet.info.limits_maxAmplitudePoints;
|
||||||
|
|
||||||
|
updateActionVisibility(hardwareVersion);
|
||||||
emit InfoUpdated();
|
emit InfoUpdated();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -784,6 +794,27 @@ QString LibreVNADriver::hardwareVersionToString(uint8_t version)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LibreVNADriver::updateActionVisibility(uint8_t hardwareVersion)
|
||||||
|
{
|
||||||
|
// only show actions for the correct hardware version
|
||||||
|
if(availableActions.contains(hardwareVersion)) {
|
||||||
|
// hide all actions
|
||||||
|
for(auto a : specificActions) {
|
||||||
|
a->setVisible(false);
|
||||||
|
}
|
||||||
|
// show the relevant actions
|
||||||
|
for(auto a : availableActions[hardwareVersion]) {
|
||||||
|
a->setVisible(true);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// the hardware version is unknown. This should not happen but just in case
|
||||||
|
// we set all actions to visible
|
||||||
|
for(auto a : specificActions) {
|
||||||
|
a->setVisible(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
unsigned int LibreVNADriver::getProtocolVersion() const
|
unsigned int LibreVNADriver::getProtocolVersion() const
|
||||||
{
|
{
|
||||||
return protocolVersion;
|
return protocolVersion;
|
||||||
|
|
|
||||||
|
|
@ -197,6 +197,7 @@ protected slots:
|
||||||
void handleReceivedPacket(const Protocol::PacketInfo& packet);
|
void handleReceivedPacket(const Protocol::PacketInfo& packet);
|
||||||
protected:
|
protected:
|
||||||
QString hardwareVersionToString(uint8_t version);
|
QString hardwareVersionToString(uint8_t version);
|
||||||
|
void updateActionVisibility(uint8_t hardwareVersion);
|
||||||
|
|
||||||
bool connected;
|
bool connected;
|
||||||
unsigned int protocolVersion;
|
unsigned int protocolVersion;
|
||||||
|
|
@ -228,6 +229,9 @@ protected:
|
||||||
bool VNASuppressInvalidPeaks;
|
bool VNASuppressInvalidPeaks;
|
||||||
bool VNAAdjustPowerLevel;
|
bool VNAAdjustPowerLevel;
|
||||||
|
|
||||||
|
// available actions per hardware version
|
||||||
|
QMap<uint8_t, QList<QAction*>> availableActions;
|
||||||
|
|
||||||
QDialog *manualControlDialog;
|
QDialog *manualControlDialog;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
@echo off
|
@echo off
|
||||||
SetLocal EnableDelayedExpansion
|
SetLocal EnableDelayedExpansion
|
||||||
(set PATH=C:\Qt\6.2.4\mingw_64\bin;!PATH!)
|
(set PATH=C:\Qt\6.8.0\mingw_64\bin;!PATH!)
|
||||||
if defined QT_PLUGIN_PATH (
|
if defined QT_PLUGIN_PATH (
|
||||||
set QT_PLUGIN_PATH=C:\Qt\6.2.4\mingw_64\plugins;!QT_PLUGIN_PATH!
|
set QT_PLUGIN_PATH=C:\Qt\6.8.0\mingw_64\plugins;!QT_PLUGIN_PATH!
|
||||||
) else (
|
) else (
|
||||||
set QT_PLUGIN_PATH=C:\Qt\6.2.4\mingw_64\plugins
|
set QT_PLUGIN_PATH=C:\Qt\6.8.0\mingw_64\plugins
|
||||||
)
|
)
|
||||||
%*
|
%*
|
||||||
EndLocal
|
EndLocal
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,7 @@ uint16_t Protocol::EncodePacket(const PacketInfo &packet, uint8_t *dest, uint16_
|
||||||
case PacketType::ReceiverCalPoint: payload_size = sizeof(packet.amplitudePoint); break;
|
case PacketType::ReceiverCalPoint: payload_size = sizeof(packet.amplitudePoint); break;
|
||||||
case PacketType::FrequencyCorrection: payload_size = sizeof(packet.frequencyCorrection); break;
|
case PacketType::FrequencyCorrection: payload_size = sizeof(packet.frequencyCorrection); break;
|
||||||
case PacketType::DeviceConfiguration: payload_size = sizeof(packet.deviceConfig); break;
|
case PacketType::DeviceConfiguration: payload_size = sizeof(packet.deviceConfig); break;
|
||||||
|
case PacketType::PerformAction: payload_size = sizeof(packet.performAction); break;
|
||||||
case PacketType::Ack:
|
case PacketType::Ack:
|
||||||
case PacketType::PerformFirmwareUpdate:
|
case PacketType::PerformFirmwareUpdate:
|
||||||
case PacketType::ClearFlash:
|
case PacketType::ClearFlash:
|
||||||
|
|
|
||||||
|
|
@ -544,6 +544,11 @@ using DeviceConfig = struct _deviceconfig {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
using PerformAction = struct _performaction {
|
||||||
|
uint16_t action;
|
||||||
|
uint8_t additional_information[128];
|
||||||
|
};
|
||||||
|
|
||||||
enum class PacketType : uint8_t {
|
enum class PacketType : uint8_t {
|
||||||
None = 0,
|
None = 0,
|
||||||
//Datapoint = 1, // Deprecated, replaced by VNADatapoint
|
//Datapoint = 1, // Deprecated, replaced by VNADatapoint
|
||||||
|
|
@ -577,7 +582,8 @@ enum class PacketType : uint8_t {
|
||||||
ClearTrigger = 29,
|
ClearTrigger = 29,
|
||||||
StopStatusUpdates = 30,
|
StopStatusUpdates = 30,
|
||||||
StartStatusUpdates = 31,
|
StartStatusUpdates = 31,
|
||||||
InitiateSweep = 32
|
InitiateSweep = 32,
|
||||||
|
PerformAction = 33,
|
||||||
};
|
};
|
||||||
|
|
||||||
using PacketInfo = struct _packetinfo {
|
using PacketInfo = struct _packetinfo {
|
||||||
|
|
@ -597,6 +603,7 @@ using PacketInfo = struct _packetinfo {
|
||||||
AmplitudeCorrectionPoint amplitudePoint;
|
AmplitudeCorrectionPoint amplitudePoint;
|
||||||
FrequencyCorrection frequencyCorrection;
|
FrequencyCorrection frequencyCorrection;
|
||||||
DeviceConfig deviceConfig;
|
DeviceConfig deviceConfig;
|
||||||
|
PerformAction performAction;
|
||||||
/*
|
/*
|
||||||
* When encoding: Pointer may go invalid after call to EncodePacket
|
* When encoding: Pointer may go invalid after call to EncodePacket
|
||||||
* When decoding: VNADatapoint is created on heap by DecodeBuffer, freeing is up to the caller
|
* When decoding: VNADatapoint is created on heap by DecodeBuffer, freeing is up to the caller
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue