Companion Vario Sources were not in line with the firmware

This commit is contained in:
bsongis
2014-05-31 08:16:13 +02:00
parent 2c3866b6ef
commit 4acef445a3
7 changed files with 55 additions and 62 deletions
+9
View File
@@ -858,6 +858,15 @@ class 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 {
TELEMETRY_VOLTS_SOURCE_RXBATT,
TELEMETRY_VOLTS_SOURCE_A1,
+23 -16
View File
@@ -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
{
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 {
public:
FrskyField(FrSkyData & frsky, BoardEnum board, unsigned int version):
StructField("FrSky"),
telemetryVarioSourceConversionTable(board, version),
telemetryVoltsSourceConversionTable(board, version),
telemetryCurrentSourceConversionTable(board, version)
{
@@ -2267,10 +2276,8 @@ class FrskyField: public StructField {
for (int i=0; i<3; i++) {
Append(new FrskyScreenField(frsky.screens[i], board, version));
}
if (IS_TARANIS(board))
Append(new ConversionField< UnsignedField<8> >(frsky.varioSource, &varioConversionTable, "Vario Source"));
else
Append(new UnsignedField<8>(frsky.varioSource));
Append(new ConversionField< UnsignedField<8> >(frsky.varioSource, &telemetryVarioSourceConversionTable, "Vario Source"));
Append(new SignedField<8>(frsky.varioCenterMax));
Append(new SignedField<8>(frsky.varioCenterMin));
Append(new SignedField<8>(frsky.varioMin));
@@ -2325,7 +2332,7 @@ class FrskyField: public StructField {
protected:
RSSIConversionTable rssiConversionTable[2];
VarioConversionTable varioConversionTable;
TelemetryVarioSourceConversionTable telemetryVarioSourceConversionTable;
TelemetryVoltsSourceConversionTable telemetryVoltsSourceConversionTable;
TelemetryCurrentSourceConversionTable telemetryCurrentSourceConversionTable;
};
@@ -621,7 +621,7 @@ int OpenTxFirmware::getCapability(const Capability capability)
case OptrexDisplay:
return (board==BOARD_SKY9X ? true : false);
case HasVario:
return (IS_TARANIS(board) ? 28 : 31);
return 1;
case HasVarioSink:
return ((board == BOARD_GRUVIN9X || IS_ARM(board)) ? true : false);
case HasVariants:
+19 -17
View File
@@ -589,24 +589,15 @@ void TelemetryPanel::setup()
ui->varioLimitMin_DSB->setValue(model.frsky.varioMin-10);
ui->varioLimitMax_DSB->setValue(model.frsky.varioMax+10);
ui->varioLimitCenterMax_DSB->setValue((model.frsky.varioCenterMax/10.0)+0.5);
ui->varioSourceCB->setCurrentIndex(model.frsky.varioSource);
if (model.frsky.varioCenterMin==-16) {
ui->varioLimitMinOff_ChkB->setChecked(true);
ui->varioLimitCenterMin_DSB->setValue(-2.0);
ui->varioLimitCenterMin_DSB->setDisabled(true);
} else {
}
else {
ui->varioLimitMinOff_ChkB->setChecked(false);
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))) {
@@ -668,10 +659,27 @@ void TelemetryPanel::setup()
populateVoltsSource();
populateCurrentSource();
populateVarioSource();
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()
{
QUnsignedAutoComboBox * cb = ui->frskyVoltCB;
@@ -762,12 +770,6 @@ void TelemetryPanel::on_AltitudeToolbar_ChkB_toggled(bool checked)
emit modified();
}
void TelemetryPanel::on_varioSourceCB_currentIndexChanged(int index)
{
model.frsky.varioSource = index;
emit modified();
}
void TelemetryPanel::on_varioLimitMin_DSB_editingFinished()
{
model.frsky.varioMin = round(ui->varioLimitMin_DSB->value()+10);
+1 -1
View File
@@ -95,7 +95,6 @@ class TelemetryPanel : public ModelPanel
void on_rxbattAlarm1DSB_editingFinished();
void on_rxbattAlarm2DSB_editingFinished();
void on_AltitudeGPS_ChkB_toggled(bool checked);
void on_varioSourceCB_currentIndexChanged(int index);
void on_varioLimitMin_DSB_editingFinished();
void on_varioLimitMax_DSB_editingFinished();
void on_varioLimitCenterMin_DSB_editingFinished();
@@ -113,6 +112,7 @@ class TelemetryPanel : public ModelPanel
void telBarUpdate();
void populateVoltsSource();
void populateCurrentSource();
void populateVarioSource();
};
#endif // TELEMETRY_H
+1 -26
View File
@@ -774,38 +774,13 @@
<number>9</number>
</property>
<item row="1" column="1">
<widget class="QComboBox" name="varioSourceCB">
<widget class="QUnsignedAutoComboBox" name="varioSourceCB">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</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>
</item>
<item row="2" column="1">
+1 -1
View File
@@ -1113,7 +1113,7 @@ enum VarioSource {
VARIO_SOURCE_ALTI,
VARIO_SOURCE_ALTI_PLUS,
#endif
VARIO_SOURCE_VARIO,
VARIO_SOURCE_VSPEED,
VARIO_SOURCE_A1,
VARIO_SOURCE_A2,
#if defined(FRSKY_SPORT)