feat(cpn): update telemetry simulation to include FrSky Hub (#5475)

This commit is contained in:
Nigel Williams
2024-08-26 09:44:35 +10:00
committed by GitHub
parent e0a3097620
commit 982660e8c8
8 changed files with 1876 additions and 16 deletions
+23 -12
View File
@@ -26,6 +26,7 @@
#include "telem_data.h"
#include "radio/src/telemetry/frsky_defs.h"
#include "telemetryproviderfrsky.h"
#include "telemetryproviderfrskyhub.h"
#include "telemetryprovidercrossfire.h"
#include <QRegularExpression>
@@ -159,6 +160,28 @@ TelemetryProvider * TelemetrySimulator::newTelemetryProviderFromDropdownChoice(i
case 0:
return NULL;
case 1:
{
TelemetryProviderCrossfire * newProvider = new TelemetryProviderCrossfire(parent);
parent->setWidget(newProvider);
if (isExternal) {
connect(newProvider, &TelemetryProviderCrossfire::telemetryDataChanged, this, &TelemetrySimulator::onExternalTelemetryProviderDataChanged);
} else {
connect(newProvider, &TelemetryProviderCrossfire::telemetryDataChanged, this, &TelemetrySimulator::onInternalTelemetryProviderDataChanged);
}
return newProvider;
}
case 2:
{
TelemetryProviderFrSkyHub * newProvider = new TelemetryProviderFrSkyHub(parent);
parent->setWidget(newProvider);
if (isExternal) {
connect(newProvider, &TelemetryProviderFrSkyHub::telemetryDataChanged, this, &TelemetrySimulator::onExternalTelemetryProviderDataChanged);
} else {
connect(newProvider, &TelemetryProviderFrSkyHub::telemetryDataChanged, this, &TelemetrySimulator::onInternalTelemetryProviderDataChanged);
}
return newProvider;
}
case 3:
{
TelemetryProviderFrSky * newProvider = new TelemetryProviderFrSky(parent);
parent->setWidget(newProvider);
@@ -169,18 +192,6 @@ TelemetryProvider * TelemetrySimulator::newTelemetryProviderFromDropdownChoice(i
}
// FrSky provider needs to set up sensor instances from the model's telemetry configuration
newProvider->loadUiFromSimulator(simulator);
return newProvider;
}
case 2:
{
TelemetryProviderCrossfire * newProvider = new TelemetryProviderCrossfire(parent);
parent->setWidget(newProvider);
if (isExternal) {
connect(newProvider, &TelemetryProviderCrossfire::telemetryDataChanged, this, &TelemetrySimulator::onExternalTelemetryProviderDataChanged);
} else {
connect(newProvider, &TelemetryProviderCrossfire::telemetryDataChanged, this, &TelemetrySimulator::onInternalTelemetryProviderDataChanged);
}
return newProvider;
}
default: