1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-14 20:10:08 +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);
}
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()
{
clear();

View file

@ -817,7 +817,7 @@ class FrSkyData {
FrSkyChannelData channels[2];
unsigned int usrProto;
unsigned int imperial;
unsigned int blades;
int blades;
unsigned int voltsSource;
bool altitudeDisplayed;
unsigned int currentSource;
@ -833,7 +833,7 @@ class FrSkyData {
unsigned int storedMah;
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 {

View file

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

View file

@ -843,7 +843,7 @@ t_Open9xFrSkyData_v204::operator FrSkyData ()
c9x.channels[1] = channels[1];
c9x.usrProto = usrProto;
c9x.imperial = imperial;
c9x.blades = blades;
c9x.blades = blades+2;
c9x.screens[0].type = 1;
for (int i=0; i<4; i++)
c9x.screens[0].body.bars[i] = bars[i];
@ -857,7 +857,7 @@ t_Open9xFrSkyData_v205::operator FrSkyData ()
c9x.channels[1] = channels[1];
c9x.usrProto = usrProto;
c9x.imperial = imperial;
c9x.blades = blades;
c9x.blades = blades+2;
c9x.screens[0].type = 1;
for (int i=0; i<4; i++)
c9x.screens[0].body.bars[i] = bars[i];
@ -873,7 +873,7 @@ t_Open9xFrSkyData_v208::operator FrSkyData ()
c9x.channels[1] = channels[1];
c9x.usrProto = usrProto;
c9x.voltsSource = voltsSource;
c9x.blades = blades;
c9x.blades = blades+2;
c9x.currentSource=currentSource;
c9x.screens[0].type = 1;
for (int i=0; i<4; i++)
@ -890,7 +890,7 @@ t_Open9xFrSkyData_v210::operator FrSkyData ()
c9x.channels[1] = channels[1];
c9x.usrProto = usrProto;
c9x.voltsSource = voltsSource;
c9x.blades = blades;
c9x.blades = blades+2;
c9x.currentSource=currentSource;
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<1>(_active));
}
if (version >= 213) {
else if (version >= 213) {
internalField.Append(new SwitchField<8>(fn.swtch, board, version));
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")));
@ -2148,7 +2148,7 @@ class FrskyField: public StructField {
else {
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<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<2>(frsky.channels[i].multiplier, 0, 3, "Multiplier"));
}
Append(new UnsignedField<2>(frsky.usrProto));
Append(new UnsignedField<2>(frsky.blades));
Append(new UnsignedField<2>(frsky.usrProto, "USR Proto"));
Append(new ConversionField< UnsignedField<2> >((unsigned int &)frsky.blades, -2));
Append(new UnsignedField<1>(frsky.screens[0].type));
Append(new UnsignedField<1>(frsky.screens[1].type));
Append(new UnsignedField<2>(frsky.voltsSource));
Append(new SignedField<4>(frsky.varioMin));
Append(new UnsignedField<2>(frsky.voltsSource, "Volts Source"));
Append(new SignedField<4>(frsky.varioMin, "Vario Min"));
Append(new SignedField<4>(frsky.varioMax));
for (int i=0; i<2; i++) {
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)
{
switch(units) {

View file

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

View file

@ -46,7 +46,7 @@ MixesPanel::~MixesPanel()
QString MixesPanel::getChannelLabel(int curDest)
{
QString str;
unsigned int outputs = GetEepromInterface()->getCapability(Outputs);
int outputs = GetEepromInterface()->getCapability(Outputs);
if (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));
}
if (IS_ARM(GetEepromInterface()->getBoard())) {
ui->bladesCount->setMinimum(1);
}
setup();
}
@ -634,7 +638,7 @@ void TelemetryPanel::setup()
ui->frskyProtoCB->setCurrentIndex(model.frsky.usrProto);
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->frskyVoltCB->setCurrentIndex(model.frsky.voltsSource);
@ -648,13 +652,13 @@ void TelemetryPanel::onAnalogModified()
void TelemetryPanel::on_frskyUnitsCB_currentIndexChanged(int index)
{
model.frsky.imperial=index;
model.frsky.imperial = index;
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();
}

View file

@ -89,7 +89,7 @@ class TelemetryPanel : public ModelPanel
void onAnalogModified();
void on_frskyProtoCB_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_frskyVoltCB_currentIndexChanged(int index);
void on_AltitudeToolbar_ChkB_toggled(bool checked);

View file

@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>713</width>
<width>757</width>
<height>457</height>
</rect>
</property>
@ -382,12 +382,12 @@
</property>
<item>
<layout class="QGridLayout" name="gridLayout_34" columnstretch="0,1,1,1">
<property name="rightMargin">
<number>0</number>
</property>
<property name="horizontalSpacing">
<number>9</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item row="3" column="0">
<widget class="QLabel" name="label_4">
<property name="sizePolicy">
@ -539,31 +539,6 @@
</item>
</widget>
</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">
<widget class="QLabel" name="label_113">
<property name="sizePolicy">
@ -609,6 +584,28 @@
</property>
</widget>
</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>
</item>
</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=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("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>");
#if 0
if (GetEepromInterface()->getCapability(TelemetryBars) || (GetEepromInterface()->getCapability(TelemetryCSFields))) {

View file

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

View file

@ -14,7 +14,6 @@
* - Pat Mackenzie
* - Philip Moss
* - Rob Thomson
* - Romolo Manfredini <romolo.manfredini@gmail.com>
* - Thomas Husterer
*
* opentx is based on code named
@ -5591,7 +5590,7 @@ void menuModelTelemetry(uint8_t event)
case ITEM_TELEMETRY_USR_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 (attr) CHECK_INCDEC_MODELVAR(event, g_model.frsky.blades, MIN_BLADES, MAX_BLADES);
#else