1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-15 12:25:12 +03:00

ARM boards now allow 1 blade in Companion. Shift in Stock-9X EEPROM.

This commit is contained in:
bsongis 2014-03-31 09:58:28 +02:00
parent 1875785cf8
commit 7d5b876e27
14 changed files with 62 additions and 66 deletions

View file

@ -915,6 +915,15 @@ RawSource GeneralSettings::getDefaultSource(unsigned int channel)
return RawSource(SOURCE_TYPE_STICK, stick_index); return RawSource(SOURCE_TYPE_STICK, stick_index);
} }
void FrSkyData::clear()
{
memset(this, 0, sizeof(FrSkyData));
rssiAlarms[0].clear(2, 45);
rssiAlarms[1].clear(3, 42);
varioSource = 2/*VARIO*/;
blades = 2;
}
ModelData::ModelData() ModelData::ModelData()
{ {
clear(); clear();

View file

@ -817,7 +817,7 @@ class FrSkyData {
FrSkyChannelData channels[2]; FrSkyChannelData channels[2];
unsigned int usrProto; unsigned int usrProto;
unsigned int imperial; unsigned int imperial;
unsigned int blades; int blades;
unsigned int voltsSource; unsigned int voltsSource;
bool altitudeDisplayed; bool altitudeDisplayed;
unsigned int currentSource; unsigned int currentSource;
@ -833,7 +833,7 @@ class FrSkyData {
unsigned int storedMah; unsigned int storedMah;
int fasOffset; int fasOffset;
void clear() { memset(this, 0, sizeof(FrSkyData)); rssiAlarms[0].clear(2, 45); rssiAlarms[1].clear(3, 42); varioSource = 2/*VARIO*/; } void clear();
}; };
class MavlinkData { class MavlinkData {

View file

@ -681,7 +681,7 @@ t_Open9xArmFrSkyData_v210::operator FrSkyData ()
c9x.channels[1] = channels[1]; c9x.channels[1] = channels[1];
c9x.usrProto = usrProto; c9x.usrProto = usrProto;
c9x.voltsSource = voltsSource; c9x.voltsSource = voltsSource;
c9x.blades = blades; c9x.blades = blades+2;
c9x.currentSource=currentSource; c9x.currentSource=currentSource;
c9x.screens[0].type = 1; c9x.screens[0].type = 1;
for (int i=0; i<4; i++) { for (int i=0; i<4; i++) {
@ -709,7 +709,7 @@ t_Open9xArmFrSkyData_v211::operator FrSkyData ()
c9x.channels[1] = channels[1]; c9x.channels[1] = channels[1];
c9x.usrProto = usrProto; c9x.usrProto = usrProto;
c9x.voltsSource = voltsSource; c9x.voltsSource = voltsSource;
c9x.blades = blades; c9x.blades = blades+2;
c9x.currentSource=currentSource; c9x.currentSource=currentSource;
c9x.screens[0].type = 1; c9x.screens[0].type = 1;
for (int i=0; i<4; i++) { for (int i=0; i<4; i++) {

View file

@ -843,7 +843,7 @@ t_Open9xFrSkyData_v204::operator FrSkyData ()
c9x.channels[1] = channels[1]; c9x.channels[1] = channels[1];
c9x.usrProto = usrProto; c9x.usrProto = usrProto;
c9x.imperial = imperial; c9x.imperial = imperial;
c9x.blades = blades; c9x.blades = blades+2;
c9x.screens[0].type = 1; c9x.screens[0].type = 1;
for (int i=0; i<4; i++) for (int i=0; i<4; i++)
c9x.screens[0].body.bars[i] = bars[i]; c9x.screens[0].body.bars[i] = bars[i];
@ -857,7 +857,7 @@ t_Open9xFrSkyData_v205::operator FrSkyData ()
c9x.channels[1] = channels[1]; c9x.channels[1] = channels[1];
c9x.usrProto = usrProto; c9x.usrProto = usrProto;
c9x.imperial = imperial; c9x.imperial = imperial;
c9x.blades = blades; c9x.blades = blades+2;
c9x.screens[0].type = 1; c9x.screens[0].type = 1;
for (int i=0; i<4; i++) for (int i=0; i<4; i++)
c9x.screens[0].body.bars[i] = bars[i]; c9x.screens[0].body.bars[i] = bars[i];
@ -873,7 +873,7 @@ t_Open9xFrSkyData_v208::operator FrSkyData ()
c9x.channels[1] = channels[1]; c9x.channels[1] = channels[1];
c9x.usrProto = usrProto; c9x.usrProto = usrProto;
c9x.voltsSource = voltsSource; c9x.voltsSource = voltsSource;
c9x.blades = blades; c9x.blades = blades+2;
c9x.currentSource=currentSource; c9x.currentSource=currentSource;
c9x.screens[0].type = 1; c9x.screens[0].type = 1;
for (int i=0; i<4; i++) for (int i=0; i<4; i++)
@ -890,7 +890,7 @@ t_Open9xFrSkyData_v210::operator FrSkyData ()
c9x.channels[1] = channels[1]; c9x.channels[1] = channels[1];
c9x.usrProto = usrProto; c9x.usrProto = usrProto;
c9x.voltsSource = voltsSource; c9x.voltsSource = voltsSource;
c9x.blades = blades; c9x.blades = blades+2;
c9x.currentSource=currentSource; c9x.currentSource=currentSource;
int lines_screen_index = 0; int lines_screen_index = 0;

View file

@ -1887,7 +1887,7 @@ class AvrCustomFunctionField: public TransformedField {
internalField.Append(new UnsignedField<5>(_union_param)); internalField.Append(new UnsignedField<5>(_union_param));
internalField.Append(new UnsignedField<1>(_active)); internalField.Append(new UnsignedField<1>(_active));
} }
if (version >= 213) { else if (version >= 213) {
internalField.Append(new SwitchField<8>(fn.swtch, board, version)); internalField.Append(new SwitchField<8>(fn.swtch, board, version));
internalField.Append(new UnsignedField<3>(_union_param)); internalField.Append(new UnsignedField<3>(_union_param));
internalField.Append(new ConversionField< UnsignedField<5> >((unsigned int &)fn.func, &functionsConversionTable, "Function", ::QObject::tr("OpenTX on this board doesn't accept this function"))); internalField.Append(new ConversionField< UnsignedField<5> >((unsigned int &)fn.func, &functionsConversionTable, "Function", ::QObject::tr("OpenTX on this board doesn't accept this function")));
@ -2148,7 +2148,7 @@ class FrskyField: public StructField {
else { else {
Append(new UnsignedField<8>(frsky.voltsSource)); Append(new UnsignedField<8>(frsky.voltsSource));
} }
Append(new UnsignedField<8>(frsky.blades)); Append(new ConversionField< SignedField<8> >(frsky.blades, -2));
Append(new UnsignedField<8>(frsky.currentSource)); Append(new UnsignedField<8>(frsky.currentSource));
Append(new UnsignedField<1>(frsky.screens[0].type)); Append(new UnsignedField<1>(frsky.screens[0].type));
@ -2190,12 +2190,12 @@ class FrskyField: public StructField {
Append(new UnsignedField<1>(frsky.channels[i].alarms[j].greater)); Append(new UnsignedField<1>(frsky.channels[i].alarms[j].greater));
Append(new UnsignedField<2>(frsky.channels[i].multiplier, 0, 3, "Multiplier")); Append(new UnsignedField<2>(frsky.channels[i].multiplier, 0, 3, "Multiplier"));
} }
Append(new UnsignedField<2>(frsky.usrProto)); Append(new UnsignedField<2>(frsky.usrProto, "USR Proto"));
Append(new UnsignedField<2>(frsky.blades)); Append(new ConversionField< UnsignedField<2> >((unsigned int &)frsky.blades, -2));
Append(new UnsignedField<1>(frsky.screens[0].type)); Append(new UnsignedField<1>(frsky.screens[0].type));
Append(new UnsignedField<1>(frsky.screens[1].type)); Append(new UnsignedField<1>(frsky.screens[1].type));
Append(new UnsignedField<2>(frsky.voltsSource)); Append(new UnsignedField<2>(frsky.voltsSource, "Volts Source"));
Append(new SignedField<4>(frsky.varioMin)); Append(new SignedField<4>(frsky.varioMin, "Vario Min"));
Append(new SignedField<4>(frsky.varioMax)); Append(new SignedField<4>(frsky.varioMax));
for (int i=0; i<2; i++) { for (int i=0; i<2; i++) {
Append(new ConversionField< UnsignedField<2> >(frsky.rssiAlarms[i].level, &rssiConversionTable[i], "RSSI level")); Append(new ConversionField< UnsignedField<2> >(frsky.rssiAlarms[i].level, &rssiConversionTable[i], "RSSI level"));

View file

@ -750,19 +750,6 @@ QString getFrSkyAlarmType(int alarm)
} }
} }
QString getFrSkyBlades(int blades)
{
switch (blades) {
case 1:
return "3";
case 2:
return "4";
default:
return "2";
}
}
QString getFrSkyUnits(int units) QString getFrSkyUnits(int units)
{ {
switch(units) { switch(units) {

View file

@ -120,7 +120,6 @@ QString getCenterBeep(ModelData * g_model);
/* FrSky helpers */ /* FrSky helpers */
QString getFrSkyAlarmType(int alarm); QString getFrSkyAlarmType(int alarm);
QString getFrSkyBlades(int blades);
QString getFrSkyUnits(int units); QString getFrSkyUnits(int units);
QString getFrSkyProtocol(int protocol); QString getFrSkyProtocol(int protocol);
QString getFrSkyMeasure(int units); QString getFrSkyMeasure(int units);

View file

@ -46,7 +46,7 @@ MixesPanel::~MixesPanel()
QString MixesPanel::getChannelLabel(int curDest) QString MixesPanel::getChannelLabel(int curDest)
{ {
QString str; QString str;
unsigned int outputs = GetEepromInterface()->getCapability(Outputs); int outputs = GetEepromInterface()->getCapability(Outputs);
if (curDest > outputs) { if (curDest > outputs) {
str = QObject::tr("X%1 ").arg(curDest-outputs); str = QObject::tr("X%1 ").arg(curDest-outputs);
} }

View file

@ -488,6 +488,10 @@ TelemetryPanel::TelemetryPanel(QWidget *parent, ModelData & model):
ui->customScreens->addTab(tab, tr("Telemetry screen %1").arg(i+1)); ui->customScreens->addTab(tab, tr("Telemetry screen %1").arg(i+1));
} }
if (IS_ARM(GetEepromInterface()->getBoard())) {
ui->bladesCount->setMinimum(1);
}
setup(); setup();
} }
@ -634,7 +638,7 @@ void TelemetryPanel::setup()
ui->frskyProtoCB->setCurrentIndex(model.frsky.usrProto); ui->frskyProtoCB->setCurrentIndex(model.frsky.usrProto);
ui->frskyUnitsCB->setCurrentIndex(model.frsky.imperial); ui->frskyUnitsCB->setCurrentIndex(model.frsky.imperial);
ui->frskyBladesCB->setCurrentIndex(model.frsky.blades); ui->bladesCount->setValue(model.frsky.blades);
ui->frskyCurrentCB->setCurrentIndex(model.frsky.currentSource); ui->frskyCurrentCB->setCurrentIndex(model.frsky.currentSource);
ui->frskyVoltCB->setCurrentIndex(model.frsky.voltsSource); ui->frskyVoltCB->setCurrentIndex(model.frsky.voltsSource);
@ -648,13 +652,13 @@ void TelemetryPanel::onAnalogModified()
void TelemetryPanel::on_frskyUnitsCB_currentIndexChanged(int index) void TelemetryPanel::on_frskyUnitsCB_currentIndexChanged(int index)
{ {
model.frsky.imperial=index; model.frsky.imperial = index;
emit modified(); emit modified();
} }
void TelemetryPanel::on_frskyBladesCB_currentIndexChanged(int index) void TelemetryPanel::on_bladesCount_editingFinished()
{ {
model.frsky.blades=index; model.frsky.blades = ui->bladesCount->value();
emit modified(); emit modified();
} }

View file

@ -89,7 +89,7 @@ class TelemetryPanel : public ModelPanel
void onAnalogModified(); void onAnalogModified();
void on_frskyProtoCB_currentIndexChanged(int index); void on_frskyProtoCB_currentIndexChanged(int index);
void on_frskyUnitsCB_currentIndexChanged(int index); void on_frskyUnitsCB_currentIndexChanged(int index);
void on_frskyBladesCB_currentIndexChanged(int index); void on_bladesCount_editingFinished();
void on_frskyCurrentCB_currentIndexChanged(int index); void on_frskyCurrentCB_currentIndexChanged(int index);
void on_frskyVoltCB_currentIndexChanged(int index); void on_frskyVoltCB_currentIndexChanged(int index);
void on_AltitudeToolbar_ChkB_toggled(bool checked); void on_AltitudeToolbar_ChkB_toggled(bool checked);

View file

@ -6,7 +6,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>713</width> <width>757</width>
<height>457</height> <height>457</height>
</rect> </rect>
</property> </property>
@ -382,12 +382,12 @@
</property> </property>
<item> <item>
<layout class="QGridLayout" name="gridLayout_34" columnstretch="0,1,1,1"> <layout class="QGridLayout" name="gridLayout_34" columnstretch="0,1,1,1">
<property name="rightMargin">
<number>0</number>
</property>
<property name="horizontalSpacing"> <property name="horizontalSpacing">
<number>9</number> <number>9</number>
</property> </property>
<property name="rightMargin">
<number>0</number>
</property>
<item row="3" column="0"> <item row="3" column="0">
<widget class="QLabel" name="label_4"> <widget class="QLabel" name="label_4">
<property name="sizePolicy"> <property name="sizePolicy">
@ -539,31 +539,6 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="2" column="3">
<widget class="QComboBox" name="frskyBladesCB">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>2</string>
</property>
</item>
<item>
<property name="text">
<string>3</string>
</property>
</item>
<item>
<property name="text">
<string>4</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QLabel" name="label_113"> <widget class="QLabel" name="label_113">
<property name="sizePolicy"> <property name="sizePolicy">
@ -609,6 +584,28 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="3">
<widget class="QDoubleSpinBox" name="bladesCount">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="decimals">
<number>0</number>
</property>
<property name="minimum">
<double>2.000000000000000</double>
</property>
<property name="maximum">
<double>5.000000000000000</double>
</property>
<property name="value">
<double>2.000000000000000</double>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>

View file

@ -753,7 +753,7 @@ void printDialog::printFrSky()
str.append("<tr><td colspan=10 align=\"Left\" height=\"4px\"></td></tr>"); str.append("<tr><td colspan=10 align=\"Left\" height=\"4px\"></td></tr>");
str.append("<tr><td colspan=2 align=\"Left\"><b>"+tr("Frsky serial protocol")+"</b></td><td colspan=8 align=\"left\">"+getFrSkyProtocol(fd->usrProto)+"</td></tr>"); str.append("<tr><td colspan=2 align=\"Left\"><b>"+tr("Frsky serial protocol")+"</b></td><td colspan=8 align=\"left\">"+getFrSkyProtocol(fd->usrProto)+"</td></tr>");
str.append("<tr><td colspan=2 align=\"Left\"><b>"+tr("System of units")+"</b></td><td colspan=8 align=\"left\">"+getFrSkyMeasure(fd->imperial)+"</td></tr>"); str.append("<tr><td colspan=2 align=\"Left\"><b>"+tr("System of units")+"</b></td><td colspan=8 align=\"left\">"+getFrSkyMeasure(fd->imperial)+"</td></tr>");
str.append("<tr><td colspan=2 align=\"Left\"><b>"+tr("Propeller blades")+"</b></td><td colspan=8 align=\"left\">"+getFrSkyBlades(fd->blades)+"</td></tr>"); str.append("<tr><td colspan=2 align=\"Left\"><b>"+tr("Blades")+"</b></td><td colspan=8 align=\"left\">"+fd->blades+"</td></tr>");
str.append("<tr><td colspan=10 align=\"Left\" height=\"4px\"></td></tr></table>"); str.append("<tr><td colspan=10 align=\"Left\" height=\"4px\"></td></tr></table>");
#if 0 #if 0
if (GetEepromInterface()->getCapability(TelemetryBars) || (GetEepromInterface()->getCapability(TelemetryCSFields))) { if (GetEepromInterface()->getCapability(TelemetryBars) || (GetEepromInterface()->getCapability(TelemetryCSFields))) {

View file

@ -16,3 +16,4 @@
/SOUNDS /SOUNDS
/LOGS /LOGS
/allsrc.cpp /allsrc.cpp
/BMP

View file

@ -14,7 +14,6 @@
* - Pat Mackenzie * - Pat Mackenzie
* - Philip Moss * - Philip Moss
* - Rob Thomson * - Rob Thomson
* - Romolo Manfredini <romolo.manfredini@gmail.com>
* - Thomas Husterer * - Thomas Husterer
* *
* opentx is based on code named * opentx is based on code named
@ -5591,7 +5590,7 @@ void menuModelTelemetry(uint8_t event)
case ITEM_TELEMETRY_USR_BLADES: case ITEM_TELEMETRY_USR_BLADES:
lcd_putsLeft(y, STR_BLADES); lcd_putsLeft(y, STR_BLADES);
lcd_outdezAtt(TELEM_COL2+FWNUM, y, 1+g_model.frsky.blades, attr); lcd_outdezAtt(TELEM_COL2+FWNUM, y, 2+g_model.frsky.blades, attr);
#if defined(CPUARM) #if defined(CPUARM)
if (attr) CHECK_INCDEC_MODELVAR(event, g_model.frsky.blades, MIN_BLADES, MAX_BLADES); if (attr) CHECK_INCDEC_MODELVAR(event, g_model.frsky.blades, MIN_BLADES, MAX_BLADES);
#else #else