Companion Vario Sources were not in line with the firmware
This commit is contained in:
@@ -858,6 +858,15 @@ class FrSkyScreenData {
|
|||||||
void clear() { memset(this, 0, sizeof(FrSkyScreenData)); }
|
void clear() { memset(this, 0, sizeof(FrSkyScreenData)); }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum TelemetryVarioSources {
|
||||||
|
TELEMETRY_VARIO_SOURCE_ALTI,
|
||||||
|
TELEMETRY_VARIO_SOURCE_ALTI_PLUS,
|
||||||
|
TELEMETRY_VARIO_SOURCE_VSPEED,
|
||||||
|
TELEMETRY_VARIO_SOURCE_A1,
|
||||||
|
TELEMETRY_VARIO_SOURCE_A2,
|
||||||
|
TELEMETRY_VARIO_SOURCE_DTE,
|
||||||
|
};
|
||||||
|
|
||||||
enum TelemetryVoltsSources {
|
enum TelemetryVoltsSources {
|
||||||
TELEMETRY_VOLTS_SOURCE_RXBATT,
|
TELEMETRY_VOLTS_SOURCE_RXBATT,
|
||||||
TELEMETRY_VOLTS_SOURCE_A1,
|
TELEMETRY_VOLTS_SOURCE_A1,
|
||||||
|
|||||||
@@ -2177,6 +2177,25 @@ class RSSIConversionTable: public ConversionTable
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TelemetryVarioSourceConversionTable: public ConversionTable
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
TelemetryVarioSourceConversionTable(BoardEnum board, unsigned int version)
|
||||||
|
{
|
||||||
|
int val = 0;
|
||||||
|
if (!IS_TARANIS(board)) {
|
||||||
|
addConversion(TELEMETRY_VARIO_SOURCE_ALTI, val++);
|
||||||
|
addConversion(TELEMETRY_VARIO_SOURCE_ALTI_PLUS, val++);
|
||||||
|
}
|
||||||
|
addConversion(TELEMETRY_VARIO_SOURCE_VSPEED, val++);
|
||||||
|
addConversion(TELEMETRY_VARIO_SOURCE_A1, val++);
|
||||||
|
addConversion(TELEMETRY_VARIO_SOURCE_A2, val++);
|
||||||
|
if (IS_TARANIS(board)) {
|
||||||
|
addConversion(TELEMETRY_VARIO_SOURCE_DTE, val++);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
class TelemetryVoltsSourceConversionTable: public ConversionTable
|
class TelemetryVoltsSourceConversionTable: public ConversionTable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -2213,21 +2232,11 @@ class TelemetryCurrentSourceConversionTable: public ConversionTable
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class VarioConversionTable: public ConversionTable
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
VarioConversionTable()
|
|
||||||
{
|
|
||||||
addConversion(2, 0); // Vario
|
|
||||||
addConversion(3, 1); // A1
|
|
||||||
addConversion(4, 2); // A2
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class FrskyField: public StructField {
|
class FrskyField: public StructField {
|
||||||
public:
|
public:
|
||||||
FrskyField(FrSkyData & frsky, BoardEnum board, unsigned int version):
|
FrskyField(FrSkyData & frsky, BoardEnum board, unsigned int version):
|
||||||
StructField("FrSky"),
|
StructField("FrSky"),
|
||||||
|
telemetryVarioSourceConversionTable(board, version),
|
||||||
telemetryVoltsSourceConversionTable(board, version),
|
telemetryVoltsSourceConversionTable(board, version),
|
||||||
telemetryCurrentSourceConversionTable(board, version)
|
telemetryCurrentSourceConversionTable(board, version)
|
||||||
{
|
{
|
||||||
@@ -2267,10 +2276,8 @@ class FrskyField: public StructField {
|
|||||||
for (int i=0; i<3; i++) {
|
for (int i=0; i<3; i++) {
|
||||||
Append(new FrskyScreenField(frsky.screens[i], board, version));
|
Append(new FrskyScreenField(frsky.screens[i], board, version));
|
||||||
}
|
}
|
||||||
if (IS_TARANIS(board))
|
|
||||||
Append(new ConversionField< UnsignedField<8> >(frsky.varioSource, &varioConversionTable, "Vario Source"));
|
Append(new ConversionField< UnsignedField<8> >(frsky.varioSource, &telemetryVarioSourceConversionTable, "Vario Source"));
|
||||||
else
|
|
||||||
Append(new UnsignedField<8>(frsky.varioSource));
|
|
||||||
Append(new SignedField<8>(frsky.varioCenterMax));
|
Append(new SignedField<8>(frsky.varioCenterMax));
|
||||||
Append(new SignedField<8>(frsky.varioCenterMin));
|
Append(new SignedField<8>(frsky.varioCenterMin));
|
||||||
Append(new SignedField<8>(frsky.varioMin));
|
Append(new SignedField<8>(frsky.varioMin));
|
||||||
@@ -2325,7 +2332,7 @@ class FrskyField: public StructField {
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
RSSIConversionTable rssiConversionTable[2];
|
RSSIConversionTable rssiConversionTable[2];
|
||||||
VarioConversionTable varioConversionTable;
|
TelemetryVarioSourceConversionTable telemetryVarioSourceConversionTable;
|
||||||
TelemetryVoltsSourceConversionTable telemetryVoltsSourceConversionTable;
|
TelemetryVoltsSourceConversionTable telemetryVoltsSourceConversionTable;
|
||||||
TelemetryCurrentSourceConversionTable telemetryCurrentSourceConversionTable;
|
TelemetryCurrentSourceConversionTable telemetryCurrentSourceConversionTable;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -621,7 +621,7 @@ int OpenTxFirmware::getCapability(const Capability capability)
|
|||||||
case OptrexDisplay:
|
case OptrexDisplay:
|
||||||
return (board==BOARD_SKY9X ? true : false);
|
return (board==BOARD_SKY9X ? true : false);
|
||||||
case HasVario:
|
case HasVario:
|
||||||
return (IS_TARANIS(board) ? 28 : 31);
|
return 1;
|
||||||
case HasVarioSink:
|
case HasVarioSink:
|
||||||
return ((board == BOARD_GRUVIN9X || IS_ARM(board)) ? true : false);
|
return ((board == BOARD_GRUVIN9X || IS_ARM(board)) ? true : false);
|
||||||
case HasVariants:
|
case HasVariants:
|
||||||
|
|||||||
@@ -589,24 +589,15 @@ void TelemetryPanel::setup()
|
|||||||
ui->varioLimitMin_DSB->setValue(model.frsky.varioMin-10);
|
ui->varioLimitMin_DSB->setValue(model.frsky.varioMin-10);
|
||||||
ui->varioLimitMax_DSB->setValue(model.frsky.varioMax+10);
|
ui->varioLimitMax_DSB->setValue(model.frsky.varioMax+10);
|
||||||
ui->varioLimitCenterMax_DSB->setValue((model.frsky.varioCenterMax/10.0)+0.5);
|
ui->varioLimitCenterMax_DSB->setValue((model.frsky.varioCenterMax/10.0)+0.5);
|
||||||
ui->varioSourceCB->setCurrentIndex(model.frsky.varioSource);
|
|
||||||
if (model.frsky.varioCenterMin==-16) {
|
if (model.frsky.varioCenterMin==-16) {
|
||||||
ui->varioLimitMinOff_ChkB->setChecked(true);
|
ui->varioLimitMinOff_ChkB->setChecked(true);
|
||||||
ui->varioLimitCenterMin_DSB->setValue(-2.0);
|
ui->varioLimitCenterMin_DSB->setValue(-2.0);
|
||||||
ui->varioLimitCenterMin_DSB->setDisabled(true);
|
ui->varioLimitCenterMin_DSB->setDisabled(true);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
ui->varioLimitMinOff_ChkB->setChecked(false);
|
ui->varioLimitMinOff_ChkB->setChecked(false);
|
||||||
ui->varioLimitCenterMin_DSB->setValue((model.frsky.varioCenterMin/10.0)-0.5);
|
ui->varioLimitCenterMin_DSB->setValue((model.frsky.varioCenterMin/10.0)-0.5);
|
||||||
}
|
}
|
||||||
int mask=1;
|
|
||||||
for (int i=0; i< ui->varioSourceCB->count(); i++) {
|
|
||||||
if (!(varioCap&mask)) {
|
|
||||||
QModelIndex index = ui->varioSourceCB->model()->index(i, 0);
|
|
||||||
QVariant v(0);
|
|
||||||
ui->varioSourceCB->model()->setData(index, v, Qt::UserRole - 1);
|
|
||||||
}
|
|
||||||
mask <<=1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(firmware->getCapability(HasAltitudeSel)||firmware->getCapability(HasVario))) {
|
if (!(firmware->getCapability(HasAltitudeSel)||firmware->getCapability(HasVario))) {
|
||||||
@@ -668,10 +659,27 @@ void TelemetryPanel::setup()
|
|||||||
|
|
||||||
populateVoltsSource();
|
populateVoltsSource();
|
||||||
populateCurrentSource();
|
populateCurrentSource();
|
||||||
|
populateVarioSource();
|
||||||
|
|
||||||
lock = false;
|
lock = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TelemetryPanel::populateVarioSource()
|
||||||
|
{
|
||||||
|
QUnsignedAutoComboBox * cb = ui->varioSourceCB;
|
||||||
|
cb->setField(&model.frsky.varioSource, this);
|
||||||
|
if (!IS_TARANIS(firmware->getBoard())) {
|
||||||
|
cb->addItem(tr("Alti"), TELEMETRY_VARIO_SOURCE_ALTI);
|
||||||
|
cb->addItem(tr("Alti+"), TELEMETRY_VARIO_SOURCE_ALTI_PLUS);
|
||||||
|
}
|
||||||
|
cb->addItem(tr("VSpeed"), TELEMETRY_VARIO_SOURCE_VSPEED);
|
||||||
|
cb->addItem(tr("A1"), TELEMETRY_VARIO_SOURCE_A1);
|
||||||
|
cb->addItem(tr("A2"), TELEMETRY_VARIO_SOURCE_A2);
|
||||||
|
if (IS_TARANIS(firmware->getBoard())) {
|
||||||
|
cb->addItem(tr("dTE"), TELEMETRY_VARIO_SOURCE_DTE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void TelemetryPanel::populateVoltsSource()
|
void TelemetryPanel::populateVoltsSource()
|
||||||
{
|
{
|
||||||
QUnsignedAutoComboBox * cb = ui->frskyVoltCB;
|
QUnsignedAutoComboBox * cb = ui->frskyVoltCB;
|
||||||
@@ -762,12 +770,6 @@ void TelemetryPanel::on_AltitudeToolbar_ChkB_toggled(bool checked)
|
|||||||
emit modified();
|
emit modified();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TelemetryPanel::on_varioSourceCB_currentIndexChanged(int index)
|
|
||||||
{
|
|
||||||
model.frsky.varioSource = index;
|
|
||||||
emit modified();
|
|
||||||
}
|
|
||||||
|
|
||||||
void TelemetryPanel::on_varioLimitMin_DSB_editingFinished()
|
void TelemetryPanel::on_varioLimitMin_DSB_editingFinished()
|
||||||
{
|
{
|
||||||
model.frsky.varioMin = round(ui->varioLimitMin_DSB->value()+10);
|
model.frsky.varioMin = round(ui->varioLimitMin_DSB->value()+10);
|
||||||
|
|||||||
@@ -95,7 +95,6 @@ class TelemetryPanel : public ModelPanel
|
|||||||
void on_rxbattAlarm1DSB_editingFinished();
|
void on_rxbattAlarm1DSB_editingFinished();
|
||||||
void on_rxbattAlarm2DSB_editingFinished();
|
void on_rxbattAlarm2DSB_editingFinished();
|
||||||
void on_AltitudeGPS_ChkB_toggled(bool checked);
|
void on_AltitudeGPS_ChkB_toggled(bool checked);
|
||||||
void on_varioSourceCB_currentIndexChanged(int index);
|
|
||||||
void on_varioLimitMin_DSB_editingFinished();
|
void on_varioLimitMin_DSB_editingFinished();
|
||||||
void on_varioLimitMax_DSB_editingFinished();
|
void on_varioLimitMax_DSB_editingFinished();
|
||||||
void on_varioLimitCenterMin_DSB_editingFinished();
|
void on_varioLimitCenterMin_DSB_editingFinished();
|
||||||
@@ -113,6 +112,7 @@ class TelemetryPanel : public ModelPanel
|
|||||||
void telBarUpdate();
|
void telBarUpdate();
|
||||||
void populateVoltsSource();
|
void populateVoltsSource();
|
||||||
void populateCurrentSource();
|
void populateCurrentSource();
|
||||||
|
void populateVarioSource();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TELEMETRY_H
|
#endif // TELEMETRY_H
|
||||||
|
|||||||
@@ -774,38 +774,13 @@
|
|||||||
<number>9</number>
|
<number>9</number>
|
||||||
</property>
|
</property>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QComboBox" name="varioSourceCB">
|
<widget class="QUnsignedAutoComboBox" name="varioSourceCB">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Alti</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Alti+</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Vario</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>A1</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>A2</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
|
|||||||
@@ -1113,7 +1113,7 @@ enum VarioSource {
|
|||||||
VARIO_SOURCE_ALTI,
|
VARIO_SOURCE_ALTI,
|
||||||
VARIO_SOURCE_ALTI_PLUS,
|
VARIO_SOURCE_ALTI_PLUS,
|
||||||
#endif
|
#endif
|
||||||
VARIO_SOURCE_VARIO,
|
VARIO_SOURCE_VSPEED,
|
||||||
VARIO_SOURCE_A1,
|
VARIO_SOURCE_A1,
|
||||||
VARIO_SOURCE_A2,
|
VARIO_SOURCE_A2,
|
||||||
#if defined(FRSKY_SPORT)
|
#if defined(FRSKY_SPORT)
|
||||||
|
|||||||
Reference in New Issue
Block a user