Merge pull request #6625 from opentx/raphaelcoeffic/cpn-6592

Companion Fixes (#6592)
This commit is contained in:
Bertrand Songis
2019-08-14 18:15:55 +02:00
committed by GitHub
5 changed files with 218 additions and 170 deletions
+1 -1
View File
@@ -320,7 +320,7 @@ const int Boards::getCapability(Board::Type board, Board::Capability capability)
else if (IS_TARANIS_XLITES(board))
return 6;
else if (IS_TARANIS_XLITE(board))
return 4;
return 6;
else if (board == Board::BOARD_TARANIS_X9DP_2019)
return 9;
else if (IS_HORUS_OR_TARANIS(board))
+1
View File
@@ -185,6 +185,7 @@ class ModelData {
MavlinkData mavlink;
unsigned int telemetryProtocol;
FrSkyData frsky;
unsigned int rssiSource;
RSSIAlarmData rssiAlarms;
char bitmap[10+1];
+40 -12
View File
@@ -42,7 +42,18 @@ inline int MAX_SWITCHES(Board::Type board, int version)
return Boards::getCapability(board, Board::Switches);
}
#define MAX_SWITCH_SLOTS(board, version) (IS_TARANIS_X9E(board) ? 32 : (version >= 219 ? 16 : 8)) // bitsize of swconfig_t / 2 (see radio/src/datastructs.h)
// bitsize of swconfig_t / 2 (see radio/src/datastructs.h)
inline int MAX_SWITCH_SLOTS(Board::Type board, int version)
{
if (IS_TARANIS_X9E(board))
return 32;
if (version >= 219 && IS_TARANIS_X9D(board))
return 16;
return 8;
}
#define MAX_SWITCHES_POSITION(board, version) (Boards::getCapability(board, Board::SwitchPositions))
#define MAX_ROTARY_ENCODERS(board) (IS_SKY9X(board) ? 1 : 0)
#define MAX_FLIGHT_MODES(board, version) 9
@@ -1717,9 +1728,9 @@ class TelemetryCurrentSourceConversionTable: public ConversionTable
}
};
class FrskyField: public StructField {
class Frsky218Field: public StructField {
public:
FrskyField(DataField * parent, FrSkyData & frsky, RSSIAlarmData & rssiAlarms, Board::Type board, unsigned int version, unsigned int variant):
Frsky218Field(DataField * parent, FrSkyData & frsky, RSSIAlarmData & rssiAlarms, Board::Type board, unsigned int version, unsigned int variant):
StructField(parent, "FrSky"),
telemetryVarioSourceConversionTable(board, version),
screenTypesConversionTable(board, version),
@@ -1766,6 +1777,20 @@ class FrskyField: public StructField {
TelemetryCurrentSourceConversionTable telemetryCurrentSourceConversionTable;
};
class VarioField: public StructField {
public:
VarioField(DataField * parent, FrSkyData & frsky, Board::Type board, unsigned int version, unsigned int variant):
StructField(parent, "Vario")
{
Append(new UnsignedField<7>(this, frsky.varioSource, "Vario Source"));
Append(new BoolField<1>(this, frsky.varioCenterSilent));
Append(new SignedField<8>(this, frsky.varioCenterMax));
Append(new SignedField<8>(this, frsky.varioCenterMin));
Append(new SignedField<8>(this, frsky.varioMin));
Append(new SignedField<8>(this, frsky.varioMax));
}
};
/*
* TODO
*/
@@ -2018,20 +2043,23 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, Board::Type board, unsig
}
}
// TODO rename to VARIO
internalField.Append(new FrskyField(this, modelData.frsky, modelData.rssiAlarms, board, version, variant));
if (version >= 219) {
// TODO RSSI SOURCE
internalField.Append(new SpareBitsField<8>(this));
if (version <= 218) {
internalField.Append(new Frsky218Field(this, modelData.frsky, modelData.rssiAlarms, board, version, variant));
}
else {
internalField.Append(new VarioField(this, modelData.frsky, board, version, variant));
internalField.Append(new UnsignedField<8>(this, modelData.rssiSource));
if (IS_TARANIS_X9(board)) {
// TODO TOPBAR
internalField.Append(new SpareBitsField<16>(this));
}
// TODO RSSI ALARMS
internalField.Append(new SpareBitsField<16>(this));
internalField.Append(new BoolField<1>(this, modelData.rssiAlarms.disabled));
internalField.Append(new SpareBitsField<1>(this));
internalField.Append(new ConversionField<SignedField<6> >(this, modelData.rssiAlarms.warning, -45));
internalField.Append(new SpareBitsField<2>(this));
internalField.Append(new ConversionField<SignedField<6> >(this, modelData.rssiAlarms.critical, -42));
}
if (IS_STM32(board) && version <= 218) {
@@ -2325,7 +2353,7 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, Board::Type
}
internalField.Append(new UnsignedField<8>(this, generalData.inactivityTimer));
internalField.Append(new SpareBitsField<3>(this));
internalField.Append(new SpareBitsField<3>(this)); // telemetryBaudrate
if (IS_HORUS(board))
internalField.Append(new SpareBitsField<3>(this));
else if (IS_TARANIS(board))
+11 -2
View File
@@ -830,7 +830,7 @@ TelemetryPanel::TelemetryPanel(QWidget *parent, ModelData & model, GeneralSettin
}
if (IS_ARM(firmware->getBoard())) {
ui->varioSource->setField(model.frsky.varioSource, this);
ui->varioSource->setField(model.frsky.varioSource, this);
ui->varioCenterSilent->setField(model.frsky.varioCenterSilent, this);
ui->A1GB->hide();
ui->A2GB->hide();
@@ -844,7 +844,7 @@ TelemetryPanel::TelemetryPanel(QWidget *parent, ModelData & model, GeneralSettin
}
else {
ui->sensorsGB->hide();
ui->altimetryGB->hide();
ui->altimetryGB->hide();
analogs[0] = new TelemetryAnalog(this, model.frsky.channels[0], model, generalSettings, firmware);
ui->A1Layout->addWidget(analogs[0]);
connect(analogs[0], SIGNAL(modified()), this, SLOT(onAnalogModified()));
@@ -893,6 +893,7 @@ void TelemetryPanel::update()
ui->telemetryProtocol->setCurrentIndex(0);
}
populateTelemetrySourcesComboBox(ui->rssiSourceCB, model, false);
populateTelemetrySourcesComboBox(ui->voltsSource, model, false);
populateTelemetrySourcesComboBox(ui->altitudeSource, model, false);
populateTelemetrySourcesComboBox(ui->varioSource, model, false);
@@ -934,10 +935,18 @@ void TelemetryPanel::setup()
ui->rssiAlarmWarningSB->setValue(model->rssiAlarms.warning);
ui->rssiAlarmCriticalSB->setValue(model->rssiAlarms.critical);
if (!IS_ARM(firmware->getBoard())) {
ui->rssiSourceLabel->hide();
ui->rssiSourceCB->hide();
ui->rssiAlarmWarningCB->setCurrentIndex(model->rssiAlarms.level[0]);
ui->rssiAlarmCriticalCB->setCurrentIndex(model->rssiAlarms.level[1]);
}
else {
ui->rssiSourceLabel->show();
ui->rssiSourceLabel->setText(tr("Source"));
ui->rssiSourceCB->setField(model->rssiSource, this);
ui->rssiSourceCB->show();
populateTelemetrySourcesComboBox(ui->rssiSourceCB, model, false);
ui->rssiAlarmWarningCB->hide();
ui->rssiAlarmCriticalCB->hide();
ui->rssiAlarmWarningLabel->setText(tr("Low Alarm"));
+165 -155
View File
@@ -74,7 +74,167 @@
<property name="bottomMargin">
<number>4</number>
</property>
<item row="2" column="1">
<item row="1" column="0">
<widget class="QLabel" name="rssiLabel">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>RSSI</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="rssiAlarmWarningLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Alarm 1</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QSpinBox" name="rssiAlarmWarningSB">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="suffix">
<string/>
</property>
<property name="minimum">
<number>20</number>
</property>
<property name="maximum">
<number>80</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>50</number>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QComboBox" name="rssiAlarmCriticalCB">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>----</string>
</property>
</item>
<item>
<property name="text">
<string>Yellow</string>
</property>
</item>
<item>
<property name="text">
<string>Orange</string>
</property>
</item>
<item>
<property name="text">
<string>Red</string>
</property>
</item>
</widget>
</item>
<item row="8" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="2">
<widget class="QSpinBox" name="rssiAlarmCriticalSB">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="suffix">
<string/>
</property>
<property name="minimum">
<number>20</number>
</property>
<property name="maximum">
<number>80</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>50</number>
</property>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="AutoCheckBox" name="disableTelemetryAlarms">
<property name="text">
<string>Disable telemetry audio warnings</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="rssiAlarmCriticalLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Alarm 2</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="rssiAlarmWarningCB">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
@@ -105,164 +265,14 @@
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="rssiAlarmWarningLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<widget class="QLabel" name="rssiSourceLabel">
<property name="text">
<string>Alarm 1</string>
<string>Source</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="rssiAlarmCriticalCB">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>----</string>
</property>
</item>
<item>
<property name="text">
<string>Yellow</string>
</property>
</item>
<item>
<property name="text">
<string>Orange</string>
</property>
</item>
<item>
<property name="text">
<string>Red</string>
</property>
</item>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="rssiAlarmCriticalLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Alarm 2</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QSpinBox" name="rssiAlarmCriticalSB">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="suffix">
<string/>
</property>
<property name="minimum">
<number>20</number>
</property>
<property name="maximum">
<number>80</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>50</number>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QSpinBox" name="rssiAlarmWarningSB">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="suffix">
<string/>
</property>
<property name="minimum">
<number>20</number>
</property>
<property name="maximum">
<number>80</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>50</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="rssiLabel">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>RSSI</string>
</property>
</widget>
</item>
<item row="7" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="0" colspan="2">
<widget class="AutoCheckBox" name="disableTelemetryAlarms">
<property name="text">
<string>Disable telemetry audio warnings</string>
</property>
</widget>
<item row="2" column="1" colspan="2">
<widget class="AutoComboBox" name="rssiSourceCB"/>
</item>
</layout>
</widget>