mirror of
https://github.com/opentx/opentx.git
synced 2025-07-25 17:25:13 +03:00
Merge branch 'next' of https://github.com/opentx/opentx into TaranisPlus
Conflicts: companion/src/firmwares/opentx/opentxinterface.cpp radio/src/haptic.cpp radio/src/targets/gruvin9x/board_gruvin9x.h radio/src/targets/mega2560/board_mega2560.h radio/src/targets/sky9x/board_sky9x.h radio/src/targets/stock/board_stock.h radio/src/targets/taranis/board_taranis.h radio/src/targets/taranis/haptic_driver.cpp
This commit is contained in:
commit
0ffd0c8e0b
45 changed files with 3682 additions and 2569 deletions
|
@ -374,4 +374,12 @@ Wolfgang Rauser
|
|||
Samuel Cook
|
||||
BoltRC - www.boltrc.com
|
||||
Friedrich Ipolt
|
||||
|
||||
Barrington Cole
|
||||
Charles Lakins
|
||||
Thos. O'Meara Photography
|
||||
Adam Chevalier
|
||||
Mike Mulligan
|
||||
Gordon Stahl
|
||||
Serge Michaux
|
||||
Robert Young
|
||||
Wilco Hijink
|
||||
|
|
|
@ -81,6 +81,7 @@ int main(int argc, char *argv[])
|
|||
app.setApplicationName("OpenTX Companion");
|
||||
app.setOrganizationName("OpenTX");
|
||||
app.setOrganizationDomain("open-tx.org");
|
||||
app.setAttribute(Qt::AA_DontShowIconsInMenus, false);
|
||||
|
||||
#ifdef __APPLE__
|
||||
app.setStyle(new MyProxyStyle);
|
||||
|
|
|
@ -71,6 +71,7 @@
|
|||
<file>images/wizard/models.png</file>
|
||||
<file>images/wizard/multirotor.png</file>
|
||||
<file>images/wizard/rudder.png</file>
|
||||
<file>images/wizard/options.png</file>
|
||||
<file>images/wizard/simpletail.png</file>
|
||||
<file>images/wizard/tail.png</file>
|
||||
<file>images/wizard/tails.png</file>
|
||||
|
|
|
@ -87,26 +87,42 @@ const uint8_t modn12x3[4][4]= {
|
|||
#define STK_P2 6
|
||||
#define STK_P3 7
|
||||
|
||||
#define DSW_THR 1 //DSW_SA ^
|
||||
#define DSW_RUD 2 //DSW_SA -
|
||||
#define DSW_ELE 3 //DSW_SA _
|
||||
#define DSW_ID0 4 //DSW_SB ^
|
||||
#define DSW_ID1 5 //DSW_SB -
|
||||
#define DSW_ID2 6 //DSW_SB _
|
||||
#define DSW_AIL 7 //DSW_SC ^
|
||||
#define DSW_GEA 8 //DSW_SC -
|
||||
#define DSW_TRN 9 //DSW_SC _
|
||||
#define DSW_SD0 10
|
||||
#define DSW_SD1 11
|
||||
#define DSW_SD2 12
|
||||
#define DSW_SE0 13
|
||||
#define DSW_SE1 14
|
||||
#define DSW_SE2 15
|
||||
#define DSW_SF0 16
|
||||
#define DSW_SF1 17
|
||||
#define DSW_SG0 18
|
||||
#define DSW_SG1 19
|
||||
#define DSW_SG2 20
|
||||
enum Switches {
|
||||
SWITCH_NONE,
|
||||
|
||||
SWITCH_THR = SWITCH_NONE+1,
|
||||
SWITCH_RUD,
|
||||
SWITCH_ELE,
|
||||
SWITCH_ID0,
|
||||
SWITCH_ID1,
|
||||
SWITCH_ID2,
|
||||
SWITCH_AIL,
|
||||
SWITCH_GEA,
|
||||
SWITCH_TRN,
|
||||
|
||||
SWITCH_SA0 = SWITCH_NONE+1,
|
||||
SWITCH_SA1,
|
||||
SWITCH_SA2,
|
||||
SWITCH_SB0,
|
||||
SWITCH_SB1,
|
||||
SWITCH_SB2,
|
||||
SWITCH_SC0,
|
||||
SWITCH_SC1,
|
||||
SWITCH_SC2,
|
||||
SWITCH_SD0,
|
||||
SWITCH_SD1,
|
||||
SWITCH_SD2,
|
||||
SWITCH_SE0,
|
||||
SWITCH_SE1,
|
||||
SWITCH_SE2,
|
||||
SWITCH_SF0,
|
||||
SWITCH_SF1,
|
||||
SWITCH_SG0,
|
||||
SWITCH_SG1,
|
||||
SWITCH_SG2,
|
||||
SWITCH_SH0,
|
||||
SWITCH_SH1
|
||||
};
|
||||
|
||||
#define TRIM_LH_L 0
|
||||
#define TRIM_LH_R 1
|
||||
|
@ -1037,8 +1053,6 @@ enum Capability {
|
|||
Beeperlen,
|
||||
EepromBackup,
|
||||
Haptic,
|
||||
HapticLength,
|
||||
HapticMode,
|
||||
HasBeeper,
|
||||
ModelTrainerEnable,
|
||||
Timer2ThrTrig,
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
#define LUA
|
||||
#define LUA_MODEL_SCRIPTS
|
||||
#define EEPROM_VARIANT 3
|
||||
#define HAPTIC
|
||||
|
||||
#define NUM_POTS 5
|
||||
|
||||
|
@ -99,6 +100,8 @@ inline int geteepromsize() {
|
|||
#include "radio/src/targets/taranis/keys_driver.cpp"
|
||||
#include "radio/src/keys.cpp"
|
||||
#include "radio/src/bmp.cpp"
|
||||
#include "radio/src/haptic.cpp"
|
||||
#include "radio/src/targets/taranis/haptic_driver.cpp"
|
||||
// TODO Because FatFS in not C++ there cannot be namespaces there and the functions are defined several times!
|
||||
#undef SDCARD
|
||||
#include "radio/src/simpgmspace.cpp"
|
||||
|
|
|
@ -494,8 +494,9 @@ int OpenTxFirmware::getCapability(const Capability capability)
|
|||
case Gvars:
|
||||
return IS_ARM(board) ? 9 : 5;
|
||||
case FlightModesName:
|
||||
case GvarsName:
|
||||
return (IS_TARANIS(board) ? 10 : 6);
|
||||
case GvarsName:
|
||||
return 6;
|
||||
case HasChNames:
|
||||
return (IS_TARANIS(board) ? 1 : 0);
|
||||
case GvarsInCS:
|
||||
|
@ -571,9 +572,6 @@ int OpenTxFirmware::getCapability(const Capability capability)
|
|||
case HasFuncRepeat:
|
||||
case HasContrast:
|
||||
return 1;
|
||||
case HapticLength:
|
||||
case HapticMode:
|
||||
return 1;
|
||||
case Beeperlen:
|
||||
return 1;
|
||||
case MaxVolume:
|
||||
|
@ -662,7 +660,7 @@ int OpenTxFirmware::getCapability(const Capability capability)
|
|||
case LCDWidth:
|
||||
return (IS_TARANIS(board) ? 212 : 128) ;
|
||||
case GetThrSwitch:
|
||||
return (IS_TARANIS(board) ? DSW_SF1 : DSW_THR) ;
|
||||
return (IS_TARANIS(board) ? SWITCH_SF1 : SWITCH_THR) ;
|
||||
case HasDisplayText:
|
||||
case VirtualInputs:
|
||||
return IS_TARANIS(board) ? 32 : 0;
|
||||
|
|
|
@ -201,23 +201,18 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) :
|
|||
|
||||
if (!GetCurrentFirmware()->getCapability(Haptic)) {
|
||||
ui->hapticStrengthSB->setDisabled(true);
|
||||
ui->hapticStrengthSB->hide();
|
||||
ui->label_hapticStrengthSB->hide();
|
||||
}
|
||||
|
||||
if (!GetCurrentFirmware()->getCapability(HapticMode)) {
|
||||
ui->hapticmodeCB->setDisabled(true);
|
||||
ui->hapticmodeCB->hide();
|
||||
ui->label_hapticmode->hide();
|
||||
}
|
||||
|
||||
int renumber=GetCurrentFirmware()->getCapability(RotaryEncoders);
|
||||
if (renumber==0) {
|
||||
ui->re_label->hide();
|
||||
ui->re_CB->hide();
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
populateRotEncCB(ui->re_CB, g_eeGeneral.reNavigation, renumber);
|
||||
}
|
||||
|
||||
ui->contrastSB->setValue(g_eeGeneral.contrast);
|
||||
ui->battwarningDSB->setValue((double)g_eeGeneral.vBatWarn/10);
|
||||
ui->backlightautoSB->setValue(g_eeGeneral.backlightDelay*5);
|
||||
|
@ -344,11 +339,12 @@ void GeneralEdit::setValues()
|
|||
ui->beeperCB->setCurrentIndex(g_eeGeneral.beeperMode+2);
|
||||
ui->channelorderCB->setCurrentIndex(g_eeGeneral.templateSetup);
|
||||
ui->stickmodeCB->setCurrentIndex(g_eeGeneral.stickMode);
|
||||
if (!GetCurrentFirmware()->getCapability(HapticLength)) {
|
||||
if (GetCurrentFirmware()->getCapability(Haptic)) {
|
||||
ui->hapticLengthCB->setCurrentIndex(g_eeGeneral.hapticLength+2);
|
||||
}
|
||||
else {
|
||||
ui->label_HL->hide();
|
||||
ui->hapticLengthCB->hide();
|
||||
} else {
|
||||
ui->hapticLengthCB->setCurrentIndex(g_eeGeneral.hapticLength+2);
|
||||
}
|
||||
ui->BLBright_SB->setValue(100-g_eeGeneral.backlightBright);
|
||||
ui->soundModeCB->setCurrentIndex(g_eeGeneral.speakerMode);
|
||||
|
|
BIN
companion/src/images/wizard/options.png
Normal file
BIN
companion/src/images/wizard/options.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 43 KiB |
|
@ -2023,7 +2023,7 @@ for (i=0; i<MAX_PROFILES && g.profile[i].existsOnDisk(); i++)
|
|||
|
||||
// Copy current profile to new and give it a new name
|
||||
g.profile[i] = g.profile[g.id()];
|
||||
g.profile[i].name( QString("New Radio"));
|
||||
g.profile[i].name( QString(tr("New Radio")));
|
||||
|
||||
g.id(i);
|
||||
updateMenus();
|
||||
|
|
|
@ -674,8 +674,8 @@ void MdiChild::print(int model, QString filename)
|
|||
}
|
||||
|
||||
if (pd) {
|
||||
pd->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||
pd->show();
|
||||
delete pd;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -224,8 +224,8 @@ void Templates::applyNumericTemplate(uint64_t tpl)
|
|||
}
|
||||
}
|
||||
if (flaps>0) {
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->speedUp=4; md->speedDown=4;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->speedUp=4; md->speedDown=4;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->speedUp=4; md->speedDown=4;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->speedUp=4; md->speedDown=4;
|
||||
}
|
||||
sign=-1;
|
||||
for (uint8_t i=0; i< flaps; i++) {
|
||||
|
@ -286,18 +286,18 @@ void Templates::applyNumericTemplate(uint64_t tpl)
|
|||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_CH, 10); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("PITCH").toAscii().data(),6);
|
||||
}
|
||||
md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("RUD").toAscii().data(),6);
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP;
|
||||
switch (gyro) {
|
||||
case 1:
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
break;
|
||||
case 2:
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
|
@ -311,25 +311,25 @@ void Templates::applyNumericTemplate(uint64_t tpl)
|
|||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_CH, 10); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("PITCH").toAscii().data(),6);
|
||||
}
|
||||
md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("RUD").toAscii().data(),6);
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP;
|
||||
switch (gyro) {
|
||||
case 1:
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
break;
|
||||
case 2:
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// collective
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF;
|
||||
break;
|
||||
case 2:
|
||||
ailerons=ailerontype;
|
||||
|
@ -415,8 +415,8 @@ void Templates::applyNumericTemplate(uint64_t tpl)
|
|||
}
|
||||
}
|
||||
if (flaps>0) {
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6);md->speedUp=4; md->speedDown=4;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6);md->speedUp=4; md->speedDown=4;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6);md->speedUp=4; md->speedDown=4;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6);md->speedUp=4; md->speedDown=4;
|
||||
}
|
||||
sign=-1;
|
||||
for (uint8_t i=0; i< flaps; i++) {
|
||||
|
@ -440,8 +440,8 @@ void Templates::applyNumericTemplate(uint64_t tpl)
|
|||
}
|
||||
}
|
||||
if (spoilers>0) {
|
||||
md=setDest(12); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA);strncpy(md->name, tr("SPOIL").toAscii().data(),6); md->speedUp=4;;md->speedDown=4;
|
||||
md=setDest(12); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA);strncpy(md->name, tr("SPOIL").toAscii().data(),6);md->speedUp=4;md->speedDown=4;
|
||||
md=setDest(12); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA);strncpy(md->name, tr("SPOIL").toAscii().data(),6); md->speedUp=4;;md->speedDown=4;
|
||||
md=setDest(12); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA);strncpy(md->name, tr("SPOIL").toAscii().data(),6);md->speedUp=4;md->speedDown=4;
|
||||
}
|
||||
sign=-1;
|
||||
for (uint8_t i=0; i< spoilers; i++) {
|
||||
|
@ -510,8 +510,8 @@ void Templates::applyNumericTemplate(uint64_t tpl)
|
|||
}
|
||||
}
|
||||
if (flaps>0) {
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->sOffset=0; md->speedUp=4;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->sOffset=0; md->speedUp=4;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->sOffset=0; md->speedUp=4;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->sOffset=0; md->speedUp=4;
|
||||
}
|
||||
sign=-1;
|
||||
for (uint8_t i=0; i< flaps; i++) {
|
||||
|
@ -630,19 +630,19 @@ void Templates::applyTemplate(uint8_t idx)
|
|||
md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();
|
||||
|
||||
// throttle
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP;
|
||||
|
||||
// gyro gain
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA);
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA);
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA);
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA);
|
||||
|
||||
// collective
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF;
|
||||
|
||||
model.swashRingData.type = HELI_SWASH_TYPE_120;
|
||||
model.swashRingData.collectiveSource = RawSource(SOURCE_TYPE_CH, 10);
|
||||
|
@ -676,19 +676,19 @@ void Templates::applyTemplate(uint8_t idx)
|
|||
md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();
|
||||
|
||||
// throttle
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP;
|
||||
|
||||
// gyro gain
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); md->sOffset=100;
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); md->sOffset=100;
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); md->sOffset=100;
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); md->sOffset=100;
|
||||
|
||||
// collective
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF;
|
||||
|
||||
model.swashRingData.type = HELI_SWASH_TYPE_120;
|
||||
model.swashRingData.collectiveSource = RawSource(SOURCE_TYPE_CH, 10);
|
||||
|
@ -723,8 +723,8 @@ void Templates::applyTemplate(uint8_t idx)
|
|||
}
|
||||
}
|
||||
}
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); md->sOffset=100;
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); md->sOffset=100;
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); md->sOffset=100;
|
||||
md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); md->sOffset=100;
|
||||
}
|
||||
|
||||
//Heli Setup futaba style
|
||||
|
@ -742,19 +742,19 @@ void Templates::applyTemplate(uint8_t idx)
|
|||
md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();
|
||||
|
||||
// throttle
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP;
|
||||
|
||||
// gyro gain
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA);
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA);
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA);
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA);
|
||||
|
||||
// collective
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF;
|
||||
|
||||
model.swashRingData.type = HELI_SWASH_TYPE_120;
|
||||
model.swashRingData.collectiveSource = RawSource(SOURCE_TYPE_CH, 10);
|
||||
|
@ -788,19 +788,19 @@ void Templates::applyTemplate(uint8_t idx)
|
|||
md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();
|
||||
|
||||
// throttle
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP;
|
||||
|
||||
// gyro gain
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); md->sOffset=100;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); md->sOffset=100;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); md->sOffset=100;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); md->sOffset=100;
|
||||
|
||||
// collective
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF;
|
||||
md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF;
|
||||
|
||||
model.swashRingData.type = HELI_SWASH_TYPE_120;
|
||||
model.swashRingData.collectiveSource = RawSource(SOURCE_TYPE_CH, 10);
|
||||
|
@ -835,8 +835,8 @@ void Templates::applyTemplate(uint8_t idx)
|
|||
}
|
||||
}
|
||||
}
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); md->sOffset=100;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); md->sOffset=100;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); md->sOffset=100;
|
||||
md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); md->sOffset=100;
|
||||
}
|
||||
|
||||
//Servo Test
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -6331,7 +6331,7 @@ p, li { white-space: pre-wrap; }
|
|||
<message>
|
||||
<location filename="../modeledit/customfunctions.cpp" line="19"/>
|
||||
<source>Played once, not during startup</source>
|
||||
<translation>Lu une fois, mais pas à la mose en route</translation>
|
||||
<translation>Lu une fois, mais pas à la mise en route</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../modeledit/customfunctions.cpp" line="26"/>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<context>
|
||||
<name>AileronsPage</name>
|
||||
<message>
|
||||
<location filename="../wizarddialog.cpp" line="+392"/>
|
||||
<location filename="../wizarddialog.cpp" line="+395"/>
|
||||
<source>No</source>
|
||||
<translation>Nej</translation>
|
||||
</message>
|
||||
|
@ -325,11 +325,22 @@ Mode 4:
|
|||
</message>
|
||||
<message>
|
||||
<location line="+36"/>
|
||||
<source>Radio Firmware</source>
|
||||
<translation>Firmware-typ</translation>
|
||||
<source>Radio Type</source>
|
||||
<translation>Radiotyp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+52"/>
|
||||
<location line="+88"/>
|
||||
<source>Set voice language.
|
||||
May be different from firmware language</source>
|
||||
<translation>Välj röstspråk.
|
||||
Behöver inte vara samma som menyspråk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Radio Firmware</source>
|
||||
<translation type="obsolete">Firmware-typ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-36"/>
|
||||
<source>Other Settings</source>
|
||||
<translation>Andra Inställningar</translation>
|
||||
</message>
|
||||
|
@ -344,14 +355,13 @@ Mode 4:
|
|||
<translation>Sökväg till SD-struktur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+16"/>
|
||||
<source>Set language of voice.
|
||||
May be different from firmware language</source>
|
||||
<translation>Välj språk för röstfunktioner.
|
||||
<translation type="obsolete">Välj språk för röstfunktioner.
|
||||
Behöver inte vara samma som menyspråket</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+15"/>
|
||||
<location line="+31"/>
|
||||
<source>Voice Language</source>
|
||||
<translation>Röstspråk</translation>
|
||||
</message>
|
||||
|
@ -1160,7 +1170,7 @@ Behöver inte vara samma som menyspråket</translation>
|
|||
<context>
|
||||
<name>ConclusionPage</name>
|
||||
<message>
|
||||
<location filename="../wizarddialog.cpp" line="+287"/>
|
||||
<location filename="../wizarddialog.cpp" line="+308"/>
|
||||
<source>OK, I understand.</source>
|
||||
<translation>OK, jag förstår.</translation>
|
||||
</message>
|
||||
|
@ -1415,7 +1425,7 @@ Behöver inte vara samma som menyspråket</translation>
|
|||
<context>
|
||||
<name>CyclicPage</name>
|
||||
<message>
|
||||
<location filename="../wizarddialog.cpp" line="-154"/>
|
||||
<location filename="../wizarddialog.cpp" line="-175"/>
|
||||
<source>90</source>
|
||||
<translation>90</translation>
|
||||
</message>
|
||||
|
@ -1684,11 +1694,17 @@ Om fältet lämnas tomt så är filtret aktivt hela tiden.</translation>
|
|||
<translation>Röst</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+13"/>
|
||||
<source>Set language of voice.
|
||||
May be different from firmware language</source>
|
||||
<translation>Välj språk för röstfunktioner.
|
||||
<translation type="obsolete">Välj språk för röstfunktioner.
|
||||
Får skilja från språket för firmware</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+13"/>
|
||||
<source>Set voice language.
|
||||
May be different from firmware language</source>
|
||||
<translation>Välj röstspråk.
|
||||
Behöver inte vara samma som menyspråk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+5"/>
|
||||
|
@ -1751,12 +1767,7 @@ Får skilja från språket för firmware</translation>
|
|||
<translation>Firmware</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+23"/>
|
||||
<source>-</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+7"/>
|
||||
<location line="+30"/>
|
||||
<source>Latest Download</source>
|
||||
<translation>Senast nedladdad</translation>
|
||||
</message>
|
||||
|
@ -3861,7 +3872,12 @@ Vill du ladda ned den nu ?</translation>
|
|||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+42"/>
|
||||
<location line="+23"/>
|
||||
<source>New Radio</source>
|
||||
<translation>Ny Radio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+19"/>
|
||||
<source>Unable to find file %1!</source>
|
||||
<translation>Kan inte hitta filen %1 !</translation>
|
||||
</message>
|
||||
|
@ -5455,6 +5471,19 @@ p, li { white-space: pre-wrap; }
|
|||
<translation>Roll-kanal:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsPage</name>
|
||||
<message>
|
||||
<location line="+23"/>
|
||||
<source>Throttle Cut</source>
|
||||
<translation>Gassäkring</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>Throttle Timer</source>
|
||||
<translation>Gastimer</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PrintDialog</name>
|
||||
<message>
|
||||
|
@ -5852,9 +5881,13 @@ p, li { white-space: pre-wrap; }
|
|||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>System of units</source>
|
||||
<source>Units system</source>
|
||||
<translation>Måttsystem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System of units</source>
|
||||
<translation type="obsolete">Måttsystem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>Blades</source>
|
||||
|
@ -6498,7 +6531,7 @@ p, li { white-space: pre-wrap; }
|
|||
<location line="+29"/>
|
||||
<location line="+25"/>
|
||||
<source>In model setup menus automatically set source by moving the control</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Välj automatisk kontroller i menyn för modelinställningar genom att använda dem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-155"/>
|
||||
|
@ -6508,7 +6541,7 @@ p, li { white-space: pre-wrap; }
|
|||
<location line="+29"/>
|
||||
<location line="+25"/>
|
||||
<source>In model setup menus automatically set switch by moving the control</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Välj automatisk brytare i menyn för modelinställningar genom att använda dem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-138"/>
|
||||
|
@ -7860,20 +7893,22 @@ Gruppen bakom OpenTX/Companion.</translation>
|
|||
<message>
|
||||
<location filename="../firmwares/opentx/open9xStockeeprom.cpp" line="+92"/>
|
||||
<source>Simultaneous usage of expo and curves is no longer supported in OpenTX</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Det går inte att använda Expo på en specialkurva i OpenTX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../warnings.h" line="+5"/>
|
||||
<source>Thank you for upgrading to OpenTX 2.0. This is a major upgrade that adds and modifies a lot of things, so please make sure that you read release notes carefully to learn about the changes, and thoroughly check each of your models for proper function.
|
||||
|
||||
The OpenTX Team.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Tack för att du uppgraderat till OpenTX 2.0. Denna version innehåller många förbättringar och förändringar jämfört med tidiagare versioner. Läs gärna om förändringarna i dokumentet Release Notes. Kontrollera noggrant funktionen hos samtliga modeller som uppgraderas.
|
||||
|
||||
OpenTX-gruppen.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RudderPage</name>
|
||||
<message>
|
||||
<location filename="../wizarddialog.cpp" line="-235"/>
|
||||
<location filename="../wizarddialog.cpp" line="-259"/>
|
||||
<source>No</source>
|
||||
<translation>Nej</translation>
|
||||
</message>
|
||||
|
@ -8848,7 +8883,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga
|
|||
<context>
|
||||
<name>WizardDialog</name>
|
||||
<message>
|
||||
<location line="-265"/>
|
||||
<location line="-268"/>
|
||||
<source>Model Wizard</source>
|
||||
<translation>Modellguide</translation>
|
||||
</message>
|
||||
|
@ -9016,6 +9051,16 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga
|
|||
<source>Select the control channels for your multirotor</source>
|
||||
<translation>Välj kontroll-kanaler för din multikopter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>Model Options</source>
|
||||
<translation>Modell-funktioner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+0"/>
|
||||
<source>Select additional options</source>
|
||||
<translation>Välj ytterligare funktioner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>Save Changes</source>
|
||||
|
@ -9101,16 +9146,17 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga
|
|||
<location line="+2"/>
|
||||
<location line="+2"/>
|
||||
<location line="+8"/>
|
||||
<location line="+2"/>
|
||||
<source>TBD.</source>
|
||||
<translation>Information saknas för denna dialog.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-6"/>
|
||||
<location line="-8"/>
|
||||
<source>Select the control channels for your multirotor.<br><br>Throttle - Spektrum: CH1, Futaba: CH3<br>Yaw - Spektrum: CH4, Futaba: CH4<br>Pitch - Spektrum: CH3, Futaba: CH2<br>Roll - Spektrum: CH2, Futaba: CH1</source>
|
||||
<translation>Välj vilka kanaler som skall användas för att kontrollera din Multirotot-modell.<br><br>Gas - Spektrum: CH1, Futaba: CH3<br>Yaw - Spektrum: CH4, Futaba: CH4<br>Pitch - Spektrum: CH3, Futaba: CH2<br>Roll - Spektrum: CH2, Futaba: CH1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+8"/>
|
||||
<location line="+10"/>
|
||||
<source>There is no help available for the current page.</source>
|
||||
<translation>Det finns ingen hjälp tillgänglig för denna sida.</translation>
|
||||
</message>
|
||||
|
@ -9123,7 +9169,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga
|
|||
<context>
|
||||
<name>WizardPrinter</name>
|
||||
<message>
|
||||
<location line="+774"/>
|
||||
<location line="+795"/>
|
||||
<source>Model Name: </source>
|
||||
<translation>Modelnamn:</translation>
|
||||
</message>
|
||||
|
@ -9133,7 +9179,20 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga
|
|||
<translation>Modeltyp:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+4"/>
|
||||
<location line="+2"/>
|
||||
<source>Options: </source>
|
||||
<translation>Funktioner: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Options: [</source>
|
||||
<translation type="obsolete">Funktioner: [</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>]</source>
|
||||
<translation type="obsolete">]</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+12"/>
|
||||
<source>Channel %1: </source>
|
||||
<translation>Kanal %1: </translation>
|
||||
</message>
|
||||
|
@ -10007,7 +10066,7 @@ m2560 för v4.1-kort</translation>
|
|||
<message>
|
||||
<location line="+65"/>
|
||||
<source>Profile image %1 is invalid.</source>
|
||||
<translation>Profilbilden %1 är ogiltig</translation>
|
||||
<translation>Profilbilden %1 är ogiltig.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+16"/>
|
||||
|
|
|
@ -67,35 +67,61 @@ void WizMix::addMix(ModelData &model, Input input, int weight, int channel, int
|
|||
}
|
||||
else if (input==FLAPS_INPUT){
|
||||
// There ought to be some kind of constants for switches somewhere...
|
||||
maxMixSwitch((char *)"Flaps Up", model.mixData[mixIndex++], channel+1, isTaranis ? 1 :-3 , weight); //SA-UP or ELE-UP
|
||||
maxMixSwitch((char *)"Flaps Down", model.mixData[mixIndex++], channel+1, isTaranis ? 3 : 3 , -weight); //SA-DOWN or ELE-DOWN
|
||||
maxMixSwitch((char *)"Flaps Up", model.mixData[mixIndex++], channel+1, isTaranis ? 1 :-3 , weight); //Taranis SA-UP, 9X ELE-UP
|
||||
maxMixSwitch((char *)"Flaps Down", model.mixData[mixIndex++], channel+1, isTaranis ? 3 : 3 , -weight); //Taranis SA-DOWN, 9X ELE-DOWN
|
||||
|
||||
}
|
||||
else if (input==AIRBRAKES_INPUT){
|
||||
maxMixSwitch((char *)"Airbrk Off", model.mixData[mixIndex++], channel+1, isTaranis ? 13 :-2 , -weight); //SE-UP or RUD-UP
|
||||
maxMixSwitch((char *)"Airbrk On", model.mixData[mixIndex++], channel+1, isTaranis ? 15 : 2 , weight); //SE-DOWN or RUD-DOWN
|
||||
maxMixSwitch((char *)"Airbrk Off", model.mixData[mixIndex++], channel+1, isTaranis ? 13 :-2 , -weight); //Taranis SE-UP, 9X RUD-UP
|
||||
maxMixSwitch((char *)"Airbrk On", model.mixData[mixIndex++], channel+1, isTaranis ? 15 : 2 , weight); //Tatanis SE-DOWN, 9X RUD-DOWN
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
WizMix::operator ModelData()
|
||||
{
|
||||
int throttleChannel = -1;
|
||||
bool isTaranis = IS_TARANIS(GetEepromInterface()->getBoard());
|
||||
|
||||
ModelData model;
|
||||
model.used = true;
|
||||
model.modelId = modelId;
|
||||
model.setDefaultInputs(settings);
|
||||
|
||||
int mixIndex = 0;
|
||||
int switchIndex = 0;
|
||||
int timerIndex = 0;
|
||||
|
||||
// Safe copy model name
|
||||
strncpy(model.name, name, WIZ_MODEL_NAME_LENGTH);
|
||||
model.name[WIZ_MODEL_NAME_LENGTH] = 0;
|
||||
|
||||
int mixIndex = 0;
|
||||
// Add the channel mixes
|
||||
for (int i=0; i<WIZ_MAX_CHANNELS; i++ )
|
||||
{
|
||||
Channel ch = channel[i];
|
||||
if (ch.input1 == THROTTLE_INPUT || ch.input2 == THROTTLE_INPUT)
|
||||
throttleChannel = i;
|
||||
|
||||
addMix(model, ch.input1, ch.weight1, i, mixIndex);
|
||||
addMix(model, ch.input2, ch.weight2, i, mixIndex);
|
||||
}
|
||||
|
||||
// Add the Throttle Cut option
|
||||
if( options[THROTTLE_CUT_OPTION] && throttleChannel >=0 ){
|
||||
model.funcSw[switchIndex].swtch.type = SWITCH_TYPE_SWITCH;
|
||||
model.funcSw[switchIndex].swtch.index = isTaranis ? 16 : 1; // Taranis SF-UP, 9X THR-UP
|
||||
model.funcSw[switchIndex].enabled = 1;
|
||||
model.funcSw[switchIndex].func = (AssignFunc)throttleChannel;
|
||||
model.funcSw[switchIndex].param = -100;
|
||||
}
|
||||
|
||||
// Add the Throttle Timer option
|
||||
if (options[THROTTLE_TIMER_OPTION] && throttleChannel >=0 ){
|
||||
model.timers[timerIndex].mode.type = SWITCH_TYPE_SWITCH;
|
||||
model.timers[timerIndex].mode.index = isTaranis ? -16 : -1; // Taranis !SF-UP, 9X THR-DOWN
|
||||
timerIndex++;
|
||||
}
|
||||
return model;
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#include "eeprominterface.h"
|
||||
|
||||
#define WIZ_MAX_CHANNELS 8
|
||||
|
||||
#define WIZ_MAX_OPTIONS 2
|
||||
// TODO use a constant common to the whole companion
|
||||
// TODO when in the wizard use the getCapacity(...) to know how long the name can be
|
||||
#define WIZ_MODEL_NAME_LENGTH 12
|
||||
|
@ -40,6 +40,11 @@ enum Vehicle {
|
|||
HELICOPTER
|
||||
};
|
||||
|
||||
enum Options {
|
||||
THROTTLE_CUT_OPTION,
|
||||
THROTTLE_TIMER_OPTION
|
||||
};
|
||||
|
||||
enum WizardPage {
|
||||
Page_None = -1,
|
||||
Page_Models,
|
||||
|
@ -60,6 +65,7 @@ enum WizardPage {
|
|||
Page_Fblheli,
|
||||
Page_Helictrl,
|
||||
Page_Multirotor,
|
||||
Page_Options,
|
||||
Page_Conclusion
|
||||
};
|
||||
|
||||
|
@ -86,6 +92,7 @@ class WizMix
|
|||
const GeneralSettings & settings;
|
||||
Vehicle vehicle;
|
||||
Channel channel[WIZ_MAX_CHANNELS];
|
||||
bool options[WIZ_MAX_OPTIONS];
|
||||
|
||||
WizMix(const GeneralSettings & settings, const unsigned int modelId);
|
||||
operator ModelData();
|
||||
|
|
|
@ -32,17 +32,18 @@ WizardDialog::WizardDialog(const GeneralSettings & settings, unsigned int modelI
|
|||
setPage(Page_Flaps, new FlapsPage(this, "flaps",tr("Flaps"),tr("Has your model got flaps?"), Page_Airbrakes));
|
||||
setPage(Page_Airbrakes, new AirbrakesPage(this, "airbrakes",tr("Airbrakes"),tr("Has your model got airbrakes?"), Page_Tails));
|
||||
setPage(Page_Bank, new BankPage(this, "bank",tr("Flying-wing / Delta-wing"),tr("Are the elevons controlled by servos connected to separate channels or by a single servo channel?"), Page_Rudder));
|
||||
setPage(Page_Rudder, new RudderPage(this, "rudder",tr("Rudder"),tr("Does your model have a rudder?"), Page_Conclusion));
|
||||
setPage(Page_Rudder, new RudderPage(this, "rudder",tr("Rudder"),tr("Does your model have a rudder?"), Page_Options));
|
||||
setPage(Page_Tails, new TailSelectionPage(this, "tails",tr("Tail Type"),tr("Select which type of tail your model is equiped with.")));
|
||||
setPage(Page_Tail, new TailPage(this, "tail",tr("Tail"),tr("Select channels for tail control."), Page_Conclusion));
|
||||
setPage(Page_Vtail, new VTailPage(this, "vtail",tr("V-Tail"),tr("Select channels for tail control."), Page_Conclusion));
|
||||
setPage(Page_Simpletail, new SimpleTailPage(this, "simpletail",tr("Tail"),tr("Select elevator channel."), Page_Conclusion));
|
||||
setPage(Page_Tail, new TailPage(this, "tail",tr("Tail"),tr("Select channels for tail control."), Page_Options));
|
||||
setPage(Page_Vtail, new VTailPage(this, "vtail",tr("V-Tail"),tr("Select channels for tail control."), Page_Options));
|
||||
setPage(Page_Simpletail, new SimpleTailPage(this, "simpletail",tr("Tail"),tr("Select elevator channel."), Page_Options));
|
||||
setPage(Page_Cyclic, new CyclicPage(this, "cyclic",tr("Cyclic"),tr("Which type of swash control is installed in your helicopter?"), Page_Gyro));
|
||||
setPage(Page_Gyro, new GyroPage(this, "gyro",tr("Tail Gyro"),tr("Has your helicopter got an adjustable gyro for the tail?"), Page_Flybar));
|
||||
setPage(Page_Flybar, new FlybarSelectionPage(this, "flybar",tr("Rotor Type"),tr("Has your helicopter got a flybar?")));
|
||||
setPage(Page_Fblheli, new FblPage(this, "fblheli",tr("Helicopter"),tr("Select the controls for your helicopter"), Page_Conclusion));
|
||||
setPage(Page_Helictrl, new HeliPage(this, "helictrl",tr("Helicopter"),tr("Select the controls for your helicopter"), Page_Conclusion));
|
||||
setPage(Page_Multirotor, new MultirotorPage(this, "multirotor",tr("Multirotor"),tr("Select the control channels for your multirotor"), Page_Conclusion));
|
||||
setPage(Page_Fblheli, new FblPage(this, "fblheli",tr("Helicopter"),tr("Select the controls for your helicopter"), Page_Options));
|
||||
setPage(Page_Helictrl, new HeliPage(this, "helictrl",tr("Helicopter"),tr("Select the controls for your helicopter"), Page_Options));
|
||||
setPage(Page_Multirotor, new MultirotorPage(this, "multirotor",tr("Multirotor"),tr("Select the control channels for your multirotor"), Page_Options));
|
||||
setPage(Page_Options, new OptionsPage(this, "options",tr("Model Options"),tr("Select additional options"), Page_Conclusion));
|
||||
setPage(Page_Conclusion, new ConclusionPage(this, "conclusion",tr("Save Changes"),tr(
|
||||
"Manually check the direction of each control surface and reverse any channels that make controls move in the wrong direction. "
|
||||
"Remove the propeller/propellers before you try to control your model for the first time.<br>"
|
||||
|
@ -117,6 +118,8 @@ void WizardDialog::showHelp()
|
|||
"Yaw - Spektrum: CH4, Futaba: CH4<br>"
|
||||
"Pitch - Spektrum: CH3, Futaba: CH2<br>"
|
||||
"Roll - Spektrum: CH2, Futaba: CH1"); break;
|
||||
case Page_Options:
|
||||
message = tr("TBD."); break;
|
||||
case Page_Conclusion:
|
||||
message = tr("TBD."); break;
|
||||
default:
|
||||
|
@ -832,6 +835,27 @@ bool MultirotorPage::validatePage() {
|
|||
bookChannel(rollCB, AILERONS_INPUT, 100 ));
|
||||
}
|
||||
|
||||
OptionsPage::OptionsPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||
: StandardPage(Page_Options, dlg, image, title, text, nextPage)
|
||||
{
|
||||
throttleCutRB = new QCheckBox(tr("Throttle Cut"));
|
||||
throttleTimerRB = new QCheckBox(tr("Throttle Timer"));
|
||||
|
||||
QLayout *l = layout();
|
||||
l->addWidget(throttleCutRB);
|
||||
l->addWidget(throttleTimerRB);
|
||||
}
|
||||
|
||||
void OptionsPage::initializePage(){
|
||||
StandardPage::initializePage();
|
||||
}
|
||||
|
||||
bool OptionsPage::validatePage(){
|
||||
wizDlg->mix.options[THROTTLE_CUT_OPTION] = throttleCutRB->isChecked();
|
||||
wizDlg->mix.options[THROTTLE_TIMER_OPTION] = throttleTimerRB->isChecked();
|
||||
return true;
|
||||
}
|
||||
|
||||
ConclusionPage::ConclusionPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||
: StandardPage(Page_Conclusion, dlg, image, title, text, nextPage)
|
||||
{
|
||||
|
@ -840,8 +864,8 @@ ConclusionPage::ConclusionPage(WizardDialog *dlg, QString image, QString title,
|
|||
registerField("evaluate.proceed*", proceedCB);
|
||||
|
||||
QLayout *l = layout();
|
||||
l->addWidget(proceedCB);
|
||||
l->addWidget(textLabel);
|
||||
l->addWidget(proceedCB);
|
||||
}
|
||||
|
||||
void ConclusionPage::initializePage(){
|
||||
|
@ -898,6 +922,16 @@ QString WizardPrinter::print()
|
|||
QString str;
|
||||
str = QString(tr("Model Name: ")) + mix->name + "\n";
|
||||
str += QString(tr("Model Type: ")) + vehicleName(mix->vehicle) + "\n";
|
||||
|
||||
str += QString(tr("Options: ")) + "[";
|
||||
for (int i=0; i<WIZ_MAX_OPTIONS; i++){
|
||||
if (mix->options[i])
|
||||
str += "X";
|
||||
else
|
||||
str += "-";
|
||||
}
|
||||
str += QString("]") + "\n";
|
||||
|
||||
for (int i=0; i<WIZ_MAX_CHANNELS; i++){
|
||||
if (mix->channel[i].page != Page_None) {
|
||||
Channel ch = mix->channel[i];
|
||||
|
|
|
@ -333,6 +333,18 @@ private:
|
|||
QComboBox *rollCB;
|
||||
};
|
||||
|
||||
class OptionsPage: public StandardPage
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
OptionsPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage=-1);
|
||||
void initializePage();
|
||||
bool validatePage();
|
||||
private:
|
||||
QCheckBox *throttleCutRB;
|
||||
QCheckBox *throttleTimerRB;
|
||||
};
|
||||
|
||||
class ConclusionPage: public StandardPage
|
||||
{
|
||||
Q_OBJECT
|
||||
|
|
|
@ -271,7 +271,7 @@ LUA = NO
|
|||
|
||||
# Menu Lock modes
|
||||
# Values = NO, READONLY, NOMENUS
|
||||
MENUS_LOCK == NO
|
||||
MENUS_LOCK = NO
|
||||
|
||||
#------- END BUILD OPTIONS ---------------------------
|
||||
|
||||
|
@ -632,6 +632,12 @@ ifeq ($(PCB), TARANIS)
|
|||
SDCARD = YES
|
||||
THR_TRACE = YES
|
||||
EXT = FRSKY
|
||||
AUTOSWITCH = YES
|
||||
AUTOSOURCE = YES
|
||||
DBLKEYS = YES
|
||||
PPM_LIMITS_SYMETRICAL = YES
|
||||
PPM_CENTER_ADJUSTABLE = YES
|
||||
DSM2 = PPM
|
||||
CPPDEFS += -DPCBTARANIS -DCPUARM -DEEPROM_VARIANT=0 -DAUDIO -DPXX
|
||||
INCDIRS += targets/taranis CoOS/kernel CoOS/portable
|
||||
EXTRAINCDIRS += targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/STM32F2xx_StdPeriph_Driver/inc targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Include targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/include
|
||||
|
|
|
@ -393,11 +393,11 @@ int menuFlashFile(uint32_t index, uint8_t event)
|
|||
|
||||
if (Valid == 0) {
|
||||
// Validate file here
|
||||
if (fr = openBinaryFile(index)) {
|
||||
if ((fr = openBinaryFile(index))) {
|
||||
Valid = 2;
|
||||
}
|
||||
else {
|
||||
if (fr = f_close(&FlashFile)) {
|
||||
if ((fr = f_close(&FlashFile))) {
|
||||
Valid = 2;
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -3186,7 +3186,7 @@ void menuModelMixOne(uint8_t event)
|
|||
if (attr && m_posHorz==0 && (not_stick || editMode>0)) md2->carryTrim = -checkIncDecModel(event, carryTrim, not_stick ? TRIM_ON : -TRIM_OFF, -TRIM_AIL);
|
||||
if (!not_stick) {
|
||||
lcd_puts(COLUMN_X+MIXES_2ND_COLUMN, y, STR_DREX);
|
||||
menu_lcd_onoff(COLUMN_X+MIXES_2ND_COLUMN+5*FW, y, !md2->noExpo, m_posHorz==1 ? attr : 0);
|
||||
menu_lcd_onoff(COLUMN_X+MIXES_2ND_COLUMN+DREX_CHBOX_OFFSET, y, !md2->noExpo, m_posHorz==1 ? attr : 0);
|
||||
if (attr && m_posHorz==1 && editMode>0) md2->noExpo = !checkIncDecModel(event, !md2->noExpo, 0, 1);
|
||||
}
|
||||
else if (attr) {
|
||||
|
|
|
@ -127,7 +127,7 @@ void menuTextView(uint8_t event)
|
|||
}
|
||||
|
||||
for (int i=0; i<LCD_LINES-1; i++) {
|
||||
lcd_puts(0, i*FH+FH+1, s_text_screen[i]);
|
||||
lcd_putsAtt(0, i*FH+FH+1, s_text_screen[i], FIXEDWIDTH);
|
||||
}
|
||||
|
||||
char *title = s_text_file;
|
||||
|
|
|
@ -58,16 +58,16 @@ void hapticQueue::heartbeat()
|
|||
hapticOn(g_eeGeneral.hapticStrength * 20);
|
||||
#else
|
||||
if (hapticTick-- > 0) {
|
||||
HAPTIC_ON;
|
||||
HAPTIC_ON();
|
||||
}
|
||||
else {
|
||||
HAPTIC_OFF;
|
||||
HAPTIC_OFF();
|
||||
hapticTick = g_eeGeneral.hapticStrength;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
HAPTIC_OFF;
|
||||
HAPTIC_OFF();
|
||||
if (buzzPause > 0) {
|
||||
buzzPause--;
|
||||
}
|
||||
|
|
|
@ -367,6 +367,12 @@ void lcd_putsnAtt(xcoord_t x, uint8_t y, const pm_char * s, uint8_t len, LcdFlag
|
|||
#endif
|
||||
if (y >= LCD_H) break;
|
||||
}
|
||||
#if defined(CPUARM)
|
||||
else if (c == 0x1D) { //TAB
|
||||
x |= 0x3F;
|
||||
x += 1;
|
||||
}
|
||||
#endif
|
||||
else {
|
||||
x += (c*FW/2); //EXTENDED SPACE
|
||||
}
|
||||
|
|
|
@ -47,6 +47,7 @@ extern "C" {
|
|||
}
|
||||
#endif
|
||||
|
||||
#define lua_registernumber(L, n, i) (lua_pushnumber(L, (i)), lua_setglobal(L, (n)))
|
||||
#define lua_registerint(L, n, i) (lua_pushinteger(L, (i)), lua_setglobal(L, (n)))
|
||||
#define lua_pushtablenil(L, k) (lua_pushstring(L, (k)), lua_pushnil(L), lua_settable(L, -3))
|
||||
#define lua_pushtableboolean(L, k, v) (lua_pushstring(L, (k)), lua_pushboolean(L, (v)), lua_settable(L, -3))
|
||||
|
@ -89,11 +90,63 @@ static int luaGetTime(lua_State *L)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static void luaGetValueAndPush(int src)
|
||||
{
|
||||
/*
|
||||
Hint about dividers are taken from putsTelemetryChannel()
|
||||
*/
|
||||
if (!TELEMETRY_STREAMING() && src>=MIXSRC_FIRST_TELEM && src<=MIXSRC_LAST_TELEM) {
|
||||
//telemetry not working, return zero for telemetry sources
|
||||
lua_pushinteger(L, (int)0);
|
||||
return;
|
||||
}
|
||||
switch (src) {
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_TX_VOLTAGE:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_VFAS:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_MIN_VFAS:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_CELLS_SUM:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_MIN_CELLS_SUM:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_CURRENT:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_MAX_CURRENT:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_VSPEED:
|
||||
//theese need to be divided by 10
|
||||
lua_pushnumber(L, getValue(src)/10.0);
|
||||
break;
|
||||
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_A1:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_A2:
|
||||
//convert raw A1/2 values to calibrated values
|
||||
lua_pushnumber(L, applyChannelRatio(src-(MIXSRC_FIRST_TELEM-1+TELEM_A1), getValue(src))/100.0);
|
||||
break;
|
||||
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_MIN_A1:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_MIN_A2:
|
||||
//convert raw A1/2 values to calibrated values
|
||||
lua_pushnumber(L, applyChannelRatio(src-(MIXSRC_FIRST_TELEM-1+TELEM_MIN_A1), getValue(src))/100.0);
|
||||
break;
|
||||
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_CELL:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_MIN_CELL:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_ALT:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_ACCx:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_ACCy:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_ACCz:
|
||||
//theese need to be divided by 100
|
||||
lua_pushnumber(L, getValue(src)/100.0);
|
||||
break;
|
||||
|
||||
//TODO: add other values that need special treatment
|
||||
|
||||
default:
|
||||
lua_pushinteger(L, getValue(src));
|
||||
}
|
||||
}
|
||||
|
||||
static int luaGetValue(lua_State *L)
|
||||
{
|
||||
if (lua_isnumber(L, 1)) {
|
||||
int src = luaL_checkinteger(L, 1);
|
||||
lua_pushinteger(L, getValue(src));
|
||||
luaGetValueAndPush(src);
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
|
@ -131,6 +184,16 @@ static int luaPlayFile(lua_State *L)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int luaPlayNumber(lua_State *L)
|
||||
{
|
||||
int number = luaL_checkinteger(L, 1);
|
||||
int unit = luaL_checkinteger(L, 2);
|
||||
int att = luaL_checkinteger(L, 3);
|
||||
playNumber(number, unit, att, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int luaLcdLock(lua_State *L)
|
||||
{
|
||||
lcd_locked = true;
|
||||
|
@ -822,6 +885,7 @@ void luaInit()
|
|||
lua_register(L, "getVersion", luaGetVersion);
|
||||
lua_register(L, "getValue", luaGetValue);
|
||||
lua_register(L, "playFile", luaPlayFile);
|
||||
lua_register(L, "playNumber", luaPlayNumber);
|
||||
lua_register(L, "popupInput", luaPopupInput);
|
||||
|
||||
// Push OpenTX constants
|
||||
|
@ -1053,12 +1117,12 @@ void luaTask(uint8_t evt)
|
|||
lua_rawgeti(L, LUA_REGISTRYINDEX, sid.run);
|
||||
for (int j=0; j<sid.inputsCount; j++) {
|
||||
if (sid.inputs[j].type == 1)
|
||||
lua_pushinteger(L, getValue((uint8_t)sd.inputs[j]));
|
||||
luaGetValueAndPush((uint8_t)sd.inputs[j]);
|
||||
else
|
||||
lua_pushinteger(L, sd.inputs[j]);
|
||||
lua_pushinteger(L, sd.inputs[j] + sid.inputs[j].def);
|
||||
}
|
||||
if (lua_pcall(L, sid.inputsCount, sid.outputsCount, 0) == 0) {
|
||||
for (int j=0; j<sid.outputsCount; j++) {
|
||||
for (int j=sid.outputsCount-1; j>=0; j--) {
|
||||
if (!lua_isnumber(L, -1)) {
|
||||
sid.state = (instructionsPercent > 100 ? SCRIPT_KILLED : SCRIPT_SYNTAX_ERROR);
|
||||
TRACE("Script %10s disabled", sd.file);
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
#include <limits.h>
|
||||
#include <stddef.h>
|
||||
|
||||
#include "debug.h"
|
||||
|
||||
#define USE_FATFS
|
||||
|
||||
/*
|
||||
|
@ -223,9 +225,9 @@
|
|||
#define luai_writestringerror(s,p) \
|
||||
(fprintf(stderr, (s), (p)), fflush(stderr))
|
||||
#else
|
||||
#define luai_writestring(s,l)
|
||||
#define luai_writeline()
|
||||
#define luai_writestringerror(s,p)
|
||||
#define luai_writestring(s,l) TRACE_DEBUG_WP("%s", s);
|
||||
#define luai_writeline() TRACE_DEBUG_WP("\n");
|
||||
#define luai_writestringerror(s,p) TRACE_DEBUG_WP(s, p);
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -826,10 +826,16 @@ enum Functions {
|
|||
#define IS_ADJUST_GV_FUNC(func) (0)
|
||||
#endif
|
||||
|
||||
#if defined(VOICE)
|
||||
#define HAS_REPEAT_PARAM(func) (func == FUNC_PLAY_SOUND || (func >= FUNC_PLAY_TRACK && func <= FUNC_PLAY_VALUE))
|
||||
#if defined(HAPTIC)
|
||||
#define IS_HAPTIC_FUNC(func) (func == FUNC_HAPTIC)
|
||||
#else
|
||||
#define HAS_REPEAT_PARAM(func) (func == FUNC_PLAY_SOUND)
|
||||
#define IS_HAPTIC_FUNC(func) (0)
|
||||
#endif
|
||||
|
||||
#if defined(VOICE)
|
||||
#define HAS_REPEAT_PARAM(func) (func == FUNC_PLAY_SOUND || (func >= FUNC_PLAY_TRACK && func <= FUNC_PLAY_VALUE) || IS_HAPTIC_FUNC(func))
|
||||
#else
|
||||
#define HAS_REPEAT_PARAM(func) (func == FUNC_PLAY_SOUND || IS_HAPTIC_FUNC(func))
|
||||
#endif
|
||||
|
||||
enum ResetFunctionParam {
|
||||
|
|
|
@ -3564,6 +3564,9 @@ void evalFunctions()
|
|||
case FUNC_PLAY_SOUND:
|
||||
case FUNC_PLAY_TRACK:
|
||||
case FUNC_PLAY_VALUE:
|
||||
#if defined(HAPTIC)
|
||||
case FUNC_HAPTIC:
|
||||
#endif
|
||||
{
|
||||
tmr10ms_t tmr10ms = get_tmr10ms();
|
||||
uint8_t repeatParam = CFN_PLAY_REPEAT(sd);
|
||||
|
@ -3578,6 +3581,11 @@ void evalFunctions()
|
|||
else if (CFN_FUNC(sd) == FUNC_PLAY_VALUE) {
|
||||
PLAY_VALUE(CFN_PARAM(sd), i+1);
|
||||
}
|
||||
#if defined(HAPTIC)
|
||||
else if (CFN_FUNC(sd) == FUNC_HAPTIC) {
|
||||
haptic.event(AU_FRSKY_LAST+CFN_PARAM(sd));
|
||||
}
|
||||
#endif
|
||||
else {
|
||||
playCustomFunctionFile(sd, i+1);
|
||||
}
|
||||
|
@ -3643,7 +3651,7 @@ void evalFunctions()
|
|||
break;
|
||||
#endif
|
||||
|
||||
#if defined(HAPTIC)
|
||||
#if defined(HAPTIC) && !defined(CPUARM)
|
||||
case FUNC_HAPTIC:
|
||||
haptic.event(AU_FRSKY_LAST+CFN_PARAM(sd));
|
||||
break;
|
||||
|
|
|
@ -186,8 +186,8 @@ void pwrOff();
|
|||
|
||||
// Haptic driver
|
||||
#define hapticOff() // TODO hapticOn() cleaner ...
|
||||
#define HAPTIC_ON PORTD &= ~(1 << OUT_D_HAPTIC)
|
||||
#define HAPTIC_OFF PORTD |= (1 << OUT_D_HAPTIC)
|
||||
#define HAPTIC_ON() PORTD &= ~(1 << OUT_D_HAPTIC)
|
||||
#define HAPTIC_OFF() PORTD |= (1 << OUT_D_HAPTIC)
|
||||
|
||||
// Rotary encoder driver
|
||||
#if ROTARY_ENCODERS <= 2
|
||||
|
|
|
@ -189,7 +189,7 @@ void pwrOff();
|
|||
|
||||
// Haptic driver
|
||||
#define hapticOff() // TODO hapticOn() cleaner ...
|
||||
#define HAPTIC_ON PORTD &= ~(1 << OUT_D_HAPTIC)
|
||||
#define HAPTIC_OFF PORTD |= (1 << OUT_D_HAPTIC)
|
||||
#define HAPTIC_ON() PORTD &= ~(1 << OUT_D_HAPTIC)
|
||||
#define HAPTIC_OFF() PORTD |= (1 << OUT_D_HAPTIC)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -239,7 +239,7 @@ extern int8_t Coproc_maxtemp;
|
|||
// Haptic driver
|
||||
void hapticOff(void);
|
||||
void hapticOn(uint32_t pwmPercent);
|
||||
#define HAPTIC_OFF hapticOff()
|
||||
#define HAPTIC_OFF() hapticOff()
|
||||
|
||||
// BlueTooth driver
|
||||
#if defined(BLUETOOTH)
|
||||
|
|
|
@ -231,8 +231,8 @@ void rotencPoll();
|
|||
#endif
|
||||
|
||||
// Haptic
|
||||
#define HAPTIC_ON PORTG |= (1 << OUT_G_HAPTIC)
|
||||
#define HAPTIC_OFF PORTG &= ~(1 << OUT_G_HAPTIC)
|
||||
#define HAPTIC_ON() PORTG |= (1 << OUT_G_HAPTIC)
|
||||
#define HAPTIC_OFF() PORTG &= ~(1 << OUT_G_HAPTIC)
|
||||
|
||||
// USB fake driver
|
||||
#define usbPlugged() false
|
||||
|
|
|
@ -239,12 +239,16 @@ void eeWriteBlockCmp(const void *pointer_ram, uint16_t pointer_eeprom, size_t si
|
|||
// Debug driver
|
||||
void debugPutc(const char c);
|
||||
|
||||
// Haptic
|
||||
void hapticOff(void);
|
||||
void hapticOn(uint32_t pwmPercent);
|
||||
// Haptic driver
|
||||
void hapticInit(void);
|
||||
#define HAPTIC_OFF hapticOff()
|
||||
#define HAPTIC_ON hapticOn(100)
|
||||
void hapticOff(void);
|
||||
#define HAPTIC_OFF() hapticOff()
|
||||
#if defined(REVPLUS)
|
||||
void hapticOn(uint32_t pwmPercent);
|
||||
#else
|
||||
void hapticOn();
|
||||
#define HAPTIC_ON() hapticOn()
|
||||
#endif
|
||||
|
||||
extern uint8_t currentTrainerMode;
|
||||
|
||||
|
|
|
@ -39,22 +39,26 @@
|
|||
void hapticOff(void)
|
||||
{
|
||||
#if defined(REVPLUS)
|
||||
return; //TODO PWM support
|
||||
GPIO_ResetBits(GPIO_HAPTIC, PIN_HAPTIC); // Temp, TODO PWM support
|
||||
return;
|
||||
#else
|
||||
GPIO_ResetBits(GPIO_HAPTIC, PIN_HAPTIC);
|
||||
#endif
|
||||
}
|
||||
|
||||
void hapticOn(uint32_t pwmPercent)
|
||||
{
|
||||
#if defined(REVPLUS)
|
||||
// pwmPercent 0-100
|
||||
return; //TODO PWM support
|
||||
void hapticOn(uint32_t pwmPercent)
|
||||
{ // pwmPercent 0-100
|
||||
GPIO_SetBits(GPIO_HAPTIC, PIN_HAPTIC); // Temp, TODO PWM support
|
||||
return;
|
||||
}
|
||||
#else
|
||||
void hapticOn()
|
||||
{
|
||||
// No PWM before REVPLUS
|
||||
GPIO_SetBits(GPIO_HAPTIC, PIN_HAPTIC);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
void hapticInit(void)
|
||||
{
|
||||
|
|
|
@ -33,11 +33,12 @@
|
|||
*
|
||||
* !!!!! DO NOT EDIT cz.h - EDIT cz.h.txt INSTEAD !!!!!!!
|
||||
*/
|
||||
/* Formatting octal codes available in TR_ strings:
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \036 -newline
|
||||
* \001 to \035 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
/* Formatting octal codes available in TR_ strings:
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \n -newline
|
||||
* \t -horizontal tab (ARM only)
|
||||
* \001 to \034 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
*/
|
||||
|
||||
// NON ZERO TERMINATED STRINGS
|
||||
|
@ -187,9 +188,9 @@
|
|||
|
||||
#define LEN_VCSWFUNC "\005"
|
||||
#if defined(CPUARM)
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#else
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#endif
|
||||
|
||||
#define LEN_VFSWFUNC "\013"
|
||||
|
@ -454,15 +455,15 @@
|
|||
#define TR_COPYINGMODEL "Kopíruji model.."
|
||||
#define TR_MOVINGMODEL "Přesouvám model."
|
||||
#define TR_LOADINGMODEL "Aktivuji model.."
|
||||
#define TR_NAME "Jméno"
|
||||
#define TR_NAME "Název"
|
||||
#define TR_MODELNAME "Název modelu"
|
||||
#define TR_PHASENAME "Jméno"
|
||||
#define TR_MIXNAME "Jméno"
|
||||
#define TR_INPUTNAME "Jméno"
|
||||
#define TR_PHASENAME "Název"
|
||||
#define TR_MIXNAME "Název"
|
||||
#define TR_INPUTNAME "Název"
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_EXPONAME "Poznámka"
|
||||
#define TR_EXPONAME "Popis"
|
||||
#else
|
||||
#define TR_EXPONAME "Jméno"
|
||||
#define TR_EXPONAME "Název"
|
||||
#endif
|
||||
#define TR_BITMAP "Obrázek"
|
||||
#define TR_TIMER "Stopky "
|
||||
|
@ -500,7 +501,8 @@
|
|||
#define TR_DIFFERENTIAL "Dif.výchylek"
|
||||
#define TR_OFFSET INDENT"Ofset"
|
||||
#define TR_TRIM "Trim"
|
||||
#define TR_DREX "DRex"
|
||||
#define TR_DREX "DR/Expo"
|
||||
#define DREX_CHBOX_OFFSET 45
|
||||
#define TR_CURVE "Křivka"
|
||||
#define TR_FLMODE "Režim"
|
||||
#define TR_MIXWARNING "Varování"
|
||||
|
@ -606,22 +608,22 @@
|
|||
#define TR_MENUFLIGHTPHASES "LETOVÉ REŽIMY"
|
||||
#define TR_MENUHELISETUP "HELI"
|
||||
|
||||
#define TR_MENULIMITS "SERVA"
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_MENUINPUTS "VSTUPY"
|
||||
#define TR_MENULIMITS "SERVA"
|
||||
#elif defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ...
|
||||
#define TR_MENUINPUTS "DR/EXPO"
|
||||
#define TR_MENULIMITS "LIMITY"
|
||||
#else
|
||||
#define TR_MENUINPUTS "DR/EXPO"
|
||||
#define TR_MENULIMITS "LIMITY"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#define TR_MENUCURVES "KŘIVKY"
|
||||
#define TR_MENUCURVE "\002K"
|
||||
#define TR_MENULOGICALSWITCH "LOG. SPÍNAč"
|
||||
#define TR_MENULOGICALSWITCHES "LOGICKÉ SPÍNAčE"
|
||||
#define TR_MENUCUSTOMFUNC "FUNKCE"
|
||||
#define TR_MENULOGICALSWITCH "LOG. SPÍNAč"
|
||||
#define TR_MENULOGICALSWITCHES "LOGICKÉ SPÍNAčE"
|
||||
#define TR_MENUCUSTOMFUNC "SPECIÁLNÍ FUNKCE"
|
||||
#define TR_MENUCUSTOMSCRIPTS "SKRIPTY LUA"
|
||||
#define TR_MENUCUSTOMSCRIPT "SKRIPT"
|
||||
#define TR_MENUTELEMETRY "TELEMETRIE"
|
||||
|
@ -738,7 +740,7 @@
|
|||
#define TR_STATISTICS "Statistika"
|
||||
#define TR_ABOUT_US "O nás"
|
||||
#define TR_AND_SWITCH "AND Spínač"
|
||||
#define TR_CF "FN"
|
||||
#define TR_CF "SF"
|
||||
#define TR_SPEAKER INDENT"Repro"
|
||||
#define TR_BUZZER INDENT"Pípák"
|
||||
#define TR_BYTES "[B]"
|
||||
|
@ -803,8 +805,8 @@
|
|||
#endif
|
||||
|
||||
// Taranis column headers
|
||||
#define TR_PHASES_HEADERS { " Jméno ", " Spínač ", " Trim směrovky ", " Trim výškovky ", " Trim plynu ", " Trim křidélek ", " Přechod náběhu ", " Přechod konce " }
|
||||
#define TR_LIMITS_HEADERS { " Jméno ", " Subtrim ", " Min ", " Max ", " Směr ", " Křivka ", " Střed PPM ", " Symetrické " }
|
||||
#define TR_PHASES_HEADERS { " Název ", " Spínač ", " Trim směrovky ", " Trim výškovky ", " Trim plynu ", " Trim křidélek ", " Přechod náběhu ", " Přechod konce " }
|
||||
#define TR_LIMITS_HEADERS { " Název ", " Subtrim ", " Min ", " Max ", " Invertovat ", " Křivka ", " Střed PPM ", " Symetrické " }
|
||||
#define TR_CSW_HEADERS { " Funkce ", " Hodnota 1 ", " Hodnota 2 ", " Hodnota 2 ", " AND Spínač ", " Trvání ", " Zpoždění " }
|
||||
|
||||
//Taranis About screen
|
||||
|
@ -867,7 +869,7 @@
|
|||
|
||||
#define TR_TOP_BAR "Horní lišta"
|
||||
#define TR_ALTITUDE INDENT "Výška"
|
||||
#define TR_SCALE "Scale"
|
||||
#define TR_SCALE "Měřítko"
|
||||
#define TR_VIEW_CHANNELS "Zobrazit kanály"
|
||||
#define TR_VIEW_NOTES "Zobrazit poznámky"
|
||||
#define TR_MODS_FORBIDDEN "Změny nejsou povoleny!"
|
||||
|
|
|
@ -31,15 +31,16 @@
|
|||
* !!!!! DO NOT EDIT de.h - EDIT de.h.txt INSTEAD !!!!!!!
|
||||
*/
|
||||
/* Formatting octal codes available in TR_ strings:
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \036 -newline
|
||||
* \001 to \035 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \n -newline
|
||||
* \t -horizontal tab (ARM only)
|
||||
* \001 to \034 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// NON ZERO TERMINATED STRINGS
|
||||
#define LEN_OFFON "\003"
|
||||
#define TR_OFFON "AUS""EIN"
|
||||
|
@ -187,9 +188,9 @@
|
|||
|
||||
#define LEN_VCSWFUNC "\005"
|
||||
#if defined(CPUARM)
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#else
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#endif
|
||||
|
||||
#define LEN_VFSWFUNC "\012"
|
||||
|
@ -284,7 +285,7 @@
|
|||
#define TR_SWR TR("SWR\0", "SWR\0 ")
|
||||
#define TR_RX_BATT TR("RxBt", "RxBat")
|
||||
#define TR_A3_A4 TR("A3\0 ""A4\0 ", "A3\0 ""A4\0 ")
|
||||
#define TR_A3_A4_MIN TR("A3\0 ""A4\0 ", "A3\0 ""A4\0 ")
|
||||
#define TR_A3_A4_MIN TR("A3-\0""A4-\0", "A3-\0 ""A4-\0 ")
|
||||
#else
|
||||
#define TR_TELEM_RESERVE
|
||||
#define TR_SWR
|
||||
|
@ -505,6 +506,7 @@
|
|||
#define TR_OFFSET INDENT"Offset"
|
||||
#define TR_TRIM "Trim"
|
||||
#define TR_DREX "DRex"
|
||||
#define DREX_CHBOX_OFFSET 30
|
||||
#define TR_CURVE "Kurve"
|
||||
#define TR_FLMODE TR("Phase","Phasen")
|
||||
#define TR_MIXWARNING "Warnung"
|
||||
|
|
|
@ -33,11 +33,12 @@
|
|||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
/* Formatting octal codes available in TR_ strings:
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \036 -newline
|
||||
* \001 to \035 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
/* Formatting octal codes available in TR_ strings:
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \n -newline
|
||||
* \t -horizontal tab (ARM only)
|
||||
* \001 to \034 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
*/
|
||||
|
||||
// NON ZERO TERMINATED STRINGS
|
||||
|
@ -187,9 +188,9 @@
|
|||
|
||||
#define LEN_VCSWFUNC "\005"
|
||||
#if defined(CPUARM)
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#else
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#endif
|
||||
|
||||
#define LEN_VFSWFUNC "\012"
|
||||
|
@ -505,6 +506,7 @@
|
|||
#define TR_OFFSET INDENT "Offset"
|
||||
#define TR_TRIM "Trim"
|
||||
#define TR_DREX "DRex"
|
||||
#define DREX_CHBOX_OFFSET 30
|
||||
#define TR_CURVE "Curve"
|
||||
#define TR_FLMODE TR("Mode","Modes")
|
||||
#define TR_MIXWARNING "Warning"
|
||||
|
@ -646,8 +648,8 @@
|
|||
#define TR_SHUTDOWN "SHUTTING DOWN"
|
||||
#define TR_BATT_CALIB "Battery Calib"
|
||||
#define TR_CURRENT_CALIB "Current Calib"
|
||||
#define TR_VOLTAGE INDENT "Voltage"
|
||||
#define TR_CURRENT INDENT "Current"
|
||||
#define TR_VOLTAGE TR(INDENT "Voltage",INDENT "Voltage Source")
|
||||
#define TR_CURRENT TR(INDENT "Current",INDENT "Current Source")
|
||||
#define TR_SELECT_MODEL "Select Model"
|
||||
#define TR_CREATE_MODEL "Create Model"
|
||||
#define TR_COPY_MODEL "Copy Model"
|
||||
|
|
|
@ -28,18 +28,19 @@
|
|||
*
|
||||
* In order to make translations easier es.h.txt is parsed and national
|
||||
* characters are replaced by bitmap codes. The result is es.h.
|
||||
*
|
||||
*
|
||||
* See translate.py in the util catalog for the list of character codes
|
||||
*
|
||||
* !!!!! DO NOT EDIT es.h - EDIT es.h.txt INSTEAD !!!!!!!
|
||||
* !!!!! DO NOT EDIT es.h - EDIT es.h.txt INSTEAD !!!!!!!
|
||||
*/
|
||||
/* Formatting octal codes available in TR_ strings:
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \036 -newline
|
||||
* \001 to \035 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \n -newline
|
||||
* \t -horizontal tab (ARM only)
|
||||
* \001 to \034 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
*/
|
||||
|
||||
|
||||
// NON ZERO TERMINATED STRINGS
|
||||
#define LEN_OFFON "\003"
|
||||
#define TR_OFFON "OFF""ON\0"
|
||||
|
@ -187,9 +188,9 @@
|
|||
|
||||
#define LEN_VCSWFUNC "\005"
|
||||
#if defined(CPUARM)
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#else
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#endif
|
||||
|
||||
#define LEN_VFSWFUNC "\012"
|
||||
|
@ -501,6 +502,7 @@
|
|||
#define TR_OFFSET INDENT"Offset"
|
||||
#define TR_TRIM "Trim"
|
||||
#define TR_DREX "DRex"
|
||||
#define DREX_CHBOX_OFFSET 30
|
||||
#define TR_CURVE "Curva"
|
||||
#define TR_FLMODE TR("Modo","Modos")
|
||||
#define TR_MIXWARNING "Aviso"
|
||||
|
|
|
@ -34,10 +34,11 @@
|
|||
* !!!!! DO NOT EDIT fi.h - EDIT fi.h.txt INSTEAD !!!!!!!
|
||||
*/
|
||||
/* Formatting octal codes available in TR_ strings:
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \036 -newline
|
||||
* \001 to \035 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \n -newline
|
||||
* \t -horizontal tab (ARM only)
|
||||
* \001 to \034 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
*/
|
||||
|
||||
// NON ZERO TERMINATED STRINGS
|
||||
|
@ -187,9 +188,9 @@
|
|||
|
||||
#define LEN_VCSWFUNC "\005"
|
||||
#if defined(CPUARM)
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#else
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#endif
|
||||
|
||||
#define LEN_VFSWFUNC "\012"
|
||||
|
@ -501,6 +502,7 @@
|
|||
#define TR_OFFSET INDENT"Offset"
|
||||
#define TR_TRIM "Trim"
|
||||
#define TR_DREX "DRex"
|
||||
#define DREX_CHBOX_OFFSET 30
|
||||
#define TR_CURVE "Curve"
|
||||
#define TR_FLMODE TR("Mode","Modes")
|
||||
#define TR_MIXWARNING "Warning"
|
||||
|
|
|
@ -31,10 +31,11 @@
|
|||
* !!!!! DO NOT EDIT fr.h - EDIT fr.h.txt INSTEAD !!!!!!!
|
||||
*/
|
||||
/* Formatting octal codes available in TR_ strings:
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \036 -newline
|
||||
* \001 to \035 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \n -newline
|
||||
* \t -horizontal tab (ARM only)
|
||||
* \001 to \034 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
*/
|
||||
|
||||
|
||||
|
@ -187,9 +188,9 @@
|
|||
|
||||
#define LEN_VCSWFUNC "\005"
|
||||
#if defined(CPUARM)
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""ET\0 ""OU\0 ""OUX\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""ET\0 ""OU\0 ""OUX\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#else
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""ET\0 ""OU\0 ""OUX\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""ET\0 ""OU\0 ""OUX\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#endif
|
||||
|
||||
#define LEN_VFSWFUNC "\015"
|
||||
|
@ -334,7 +335,7 @@
|
|||
#define TR_VTELPROTO "Aucun ""Hub\0 ""WSHHigh"
|
||||
|
||||
#define LEN_VOLTSRC "\003"
|
||||
#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel"
|
||||
#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Elm"
|
||||
|
||||
#define LEN_VARIOSRC "\005"
|
||||
#if defined(FRSKY_SPORT)
|
||||
|
@ -501,6 +502,7 @@
|
|||
#define TR_OFFSET INDENT "Décalage"
|
||||
#define TR_TRIM "Trim"
|
||||
#define TR_DREX "DRex"
|
||||
#define DREX_CHBOX_OFFSET 30
|
||||
#define TR_CURVE "Courbe"
|
||||
#define TR_FLMODE TR("Phase", "Phases")
|
||||
#define TR_MIXWARNING "Alerte"
|
||||
|
@ -642,8 +644,8 @@
|
|||
#define TR_SHUTDOWN "ARRET EN COURS"
|
||||
#define TR_BATT_CALIB "Calib. Batterie"
|
||||
#define TR_CURRENT_CALIB "Calib. Courant"
|
||||
#define TR_VOLTAGE INDENT "Tension"
|
||||
#define TR_CURRENT INDENT "Courant"
|
||||
#define TR_VOLTAGE TR(INDENT "Tension",INDENT "Source Tension")
|
||||
#define TR_CURRENT TR(INDENT "Courant",INDENT "Source Courant")
|
||||
#define TR_SELECT_MODEL "Sélect. Modèle"
|
||||
#define TR_CREATE_MODEL "Créer Modèle"
|
||||
#define TR_COPY_MODEL "Copier Modèle"
|
||||
|
|
|
@ -34,10 +34,11 @@
|
|||
* !!!!! DO NOT EDIT it.h - EDIT it.h.txt INSTEAD !!!!!!!
|
||||
*/
|
||||
/* Formatting octal codes available in TR_ strings:
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \036 -newline
|
||||
* \001 to \035 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \n -newline
|
||||
* \t -horizontal tab (ARM only)
|
||||
* \001 to \034 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
*/
|
||||
|
||||
// NON ZERO TERMINATED STRINGS
|
||||
|
@ -187,9 +188,9 @@
|
|||
|
||||
#define LEN_VCSWFUNC "\005"
|
||||
#if defined(CPUARM)
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#else
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#endif
|
||||
|
||||
#define LEN_VFSWFUNC "\015"
|
||||
|
@ -501,6 +502,7 @@
|
|||
#define TR_OFFSET INDENT"Offset"
|
||||
#define TR_TRIM "Trim"
|
||||
#define TR_DREX "DRex"
|
||||
#define DREX_CHBOX_OFFSET 30
|
||||
#define TR_CURVE "Curva"
|
||||
#define TR_FLMODE "Fase"
|
||||
#define TR_MIXWARNING "Avviso"
|
||||
|
@ -622,8 +624,8 @@
|
|||
#define TR_MENULOGICALSWITCH "SWITCH PERSON."
|
||||
#define TR_MENULOGICALSWITCHES TR("SWITCH PERSON.","SWITCH PERSONALIZZATI")
|
||||
#define TR_MENUCUSTOMFUNC TR("FUNZ. PERSON.","FUNZIONI PERSONALIZZATE")
|
||||
#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS"
|
||||
#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT"
|
||||
#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS"
|
||||
#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT"
|
||||
#define TR_MENUTELEMETRY "TELEMETRIA"
|
||||
#define TR_MENUTEMPLATES "ESEMPI GUIDA"
|
||||
#define TR_MENUSTAT "STATS"
|
||||
|
@ -636,9 +638,9 @@
|
|||
#define TR_LONGITUDE "Longitud."
|
||||
#define TR_GPSCOORD "Coord. GPS"
|
||||
#define TR_VARIO "Vario"
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_SHUTDOWN "ARRESTO.."
|
||||
#define TR_BATT_CALIB "Calibra batt."
|
||||
#define TR_CURRENT_CALIB "Calibra corr."
|
||||
|
@ -656,7 +658,7 @@
|
|||
#define TR_INCOMPATIBLE "Incompatibile"
|
||||
#define TR_WARNING "AVVISO"
|
||||
#define TR_EEPROMWARN "EEPROM"
|
||||
#define TR_EEPROM_CONVERTING "EEPROM Converting"
|
||||
#define TR_EEPROM_CONVERTING "EEPROM Converting"
|
||||
#define TR_THROTTLEWARN "MOTORE"
|
||||
#define TR_ALARMSWARN "ALLARMI"
|
||||
#define TR_SWITCHWARN "SWITCH"
|
||||
|
@ -681,13 +683,13 @@
|
|||
#define TR_NO_SOUNDS_ON_SD "No Suoni su SD"
|
||||
#define TR_NO_MODELS_ON_SD "No Model. su SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "no Immag. su SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
|
||||
#define TR_PLAY_FILE "Suona"
|
||||
#define TR_DELETE_FILE "Cancella"
|
||||
#define TR_COPY_FILE "Copia"
|
||||
#define TR_RENAME_FILE "Rinomomina"
|
||||
#define TR_ASSIGN_BITMAP "Assegna Immagine"
|
||||
#define TR_EXECUTE_FILE "Execute"
|
||||
#define TR_EXECUTE_FILE "Execute"
|
||||
#define TR_REMOVED " rimosso"
|
||||
#define TR_SD_INFO "Informazioni"
|
||||
#define TR_SD_FORMAT "Format"
|
||||
|
@ -711,11 +713,11 @@
|
|||
#define TR_DATE "Data"
|
||||
#define TR_ROTARY_ENCODER "R.Encs"
|
||||
#define TR_CHANNELS_MONITOR "CHANNELS MONITOR"
|
||||
#define TR_PATH_TOO_LONG "Path too long"
|
||||
#define TR_VIEW_TEXT "View text"
|
||||
#define TR_FLASH_BOOTLOADER "Flash BootLoader"
|
||||
#define TR_WRITING "\032Writing..."
|
||||
#define TR_CONFIRM_FORMAT "Confirm Format?"
|
||||
#define TR_PATH_TOO_LONG "Path too long"
|
||||
#define TR_VIEW_TEXT "View text"
|
||||
#define TR_FLASH_BOOTLOADER "Flash BootLoader"
|
||||
#define TR_WRITING "\032Writing..."
|
||||
#define TR_CONFIRM_FORMAT "Confirm Format?"
|
||||
#define TR_INTERNALRF "Modulo Interno"
|
||||
#define TR_EXTERNALRF "Modulo esterno"
|
||||
#define TR_FAILSAFE "Modo failsafe"
|
||||
|
@ -753,19 +755,19 @@
|
|||
#define TR_CHANNELRANGE INDENT "Numero Canali"
|
||||
#define TR_LOWALARM INDENT "Allarme Basso"
|
||||
#define TR_CRITICALALARM INDENT "Allarme Critico"
|
||||
#define TR_ENABLE_POPUP "Enable Popup"
|
||||
#define TR_DISABLE_POPUP "Disable Popup"
|
||||
#define TR_CURVE_PRESET "Preset..."
|
||||
#define TR_PRESET "Preset"
|
||||
#define TR_MIRROR "Mirror"
|
||||
#define TR_CLEAR "Clear"
|
||||
#define TR_RESET "Reset"
|
||||
#define TR_RESET_SUBMENU "Reset..."
|
||||
#define TR_COUNT "Count"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pts"
|
||||
#define TR_SMOOTH "Smooth"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset"
|
||||
#define TR_ENABLE_POPUP "Enable Popup"
|
||||
#define TR_DISABLE_POPUP "Disable Popup"
|
||||
#define TR_CURVE_PRESET "Preset..."
|
||||
#define TR_PRESET "Preset"
|
||||
#define TR_MIRROR "Mirror"
|
||||
#define TR_CLEAR "Clear"
|
||||
#define TR_RESET "Reset"
|
||||
#define TR_RESET_SUBMENU "Reset..."
|
||||
#define TR_COUNT "Count"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pts"
|
||||
#define TR_SMOOTH "Smooth"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset"
|
||||
#define TR_PERSISTENT_MAH INDENT "Store mAh"
|
||||
#define TR_PREFLIGHT "Preflight Checks"
|
||||
#define TR_CHECKLIST INDENT "Display Checklist"
|
||||
|
@ -867,8 +869,8 @@
|
|||
|
||||
#define TR_TOP_BAR "Top Bar"
|
||||
#define TR_ALTITUDE INDENT "Altitude"
|
||||
#define TR_SCALE "Scale"
|
||||
#define TR_VIEW_CHANNELS "View Channels"
|
||||
#define TR_VIEW_NOTES "View Notes"
|
||||
#define TR_SCALE "Scale"
|
||||
#define TR_VIEW_CHANNELS "View Channels"
|
||||
#define TR_VIEW_NOTES "View Notes"
|
||||
#define TR_MODS_FORBIDDEN "Modifications forbidden!"
|
||||
#define TR_UNLOCKED "Unlocked"
|
||||
|
|
|
@ -34,10 +34,11 @@
|
|||
*
|
||||
*/
|
||||
/* Formatting octal codes available in TR_ strings:
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \036 -newline
|
||||
* \001 to \035 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \n -newline
|
||||
* \t -horizontal tab (ARM only)
|
||||
* \001 to \034 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
*/
|
||||
|
||||
// NON ZERO TERMINATED STRINGS
|
||||
|
@ -187,9 +188,9 @@
|
|||
|
||||
#define LEN_VCSWFUNC "\005"
|
||||
#if defined(CPUARM)
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#else
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#endif
|
||||
|
||||
#define LEN_VFSWFUNC "\013"
|
||||
|
@ -501,6 +502,7 @@
|
|||
#define TR_OFFSET INDENT"Ofset"
|
||||
#define TR_TRIM "Trymer"
|
||||
#define TR_DREX "DRex"
|
||||
#define DREX_CHBOX_OFFSET 30
|
||||
#define TR_CURVE "Krzywa"
|
||||
#define TR_FLMODE "Tryb"
|
||||
#define TR_MIXWARNING "UWAGA"
|
||||
|
|
|
@ -34,10 +34,11 @@
|
|||
* !!!!! DO NOT EDIT pt.h - EDIT pt.h.txt INSTEAD !!!!!!!
|
||||
*/
|
||||
/* Formatting octal codes available in TR_ strings:
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \036 -newline
|
||||
* \001 to \035 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \n -newline
|
||||
* \t -horizontal tab (ARM only)
|
||||
* \001 to \034 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
*/
|
||||
|
||||
// NON ZERO TERMINATED STRINGS
|
||||
|
@ -187,9 +188,9 @@
|
|||
|
||||
#define LEN_VCSWFUNC "\005"
|
||||
#if defined(CPUARM)
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#else
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#endif
|
||||
|
||||
#define LEN_VFSWFUNC "\015"
|
||||
|
@ -501,6 +502,7 @@
|
|||
#define TR_OFFSET INDENT"Desvio"
|
||||
#define TR_TRIM "Trim"
|
||||
#define TR_DREX "DRex"
|
||||
#define DREX_CHBOX_OFFSET 30
|
||||
#define TR_CURVE "Curvas"
|
||||
#define TR_FLMODE "Fase"
|
||||
#define TR_MIXWARNING "Aviso"
|
||||
|
@ -713,9 +715,9 @@
|
|||
#define TR_CHANNELS_MONITOR "CHANNELS MONITOR"
|
||||
#define TR_PATH_TOO_LONG "Path too long"
|
||||
#define TR_VIEW_TEXT "View text"
|
||||
#define TR_FLASH_BOOTLOADER "Flash BootLoader"
|
||||
#define TR_WRITING "\032Writing..."
|
||||
#define TR_CONFIRM_FORMAT "Confirm Format?"
|
||||
#define TR_FLASH_BOOTLOADER "Flash BootLoader"
|
||||
#define TR_WRITING "\032Writing..."
|
||||
#define TR_CONFIRM_FORMAT "Confirm Format?"
|
||||
#define TR_INTERNALRF "Internal RF"
|
||||
#define TR_EXTERNALRF "External RF"
|
||||
#define TR_FAILSAFE "Failsafe mode"
|
||||
|
@ -760,7 +762,7 @@
|
|||
#define TR_MIRROR "Mirror"
|
||||
#define TR_CLEAR "Clear"
|
||||
#define TR_RESET "Reset"
|
||||
#define TR_RESET_SUBMENU "Reset..."
|
||||
#define TR_RESET_SUBMENU "Reset..."
|
||||
#define TR_COUNT "Count"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pts"
|
||||
|
|
|
@ -34,10 +34,11 @@
|
|||
* !!!!! DO NOT EDIT se.h - EDIT se.h.txt INSTEAD !!!!!!!
|
||||
*/
|
||||
/* Formatting octal codes available in TR_ strings:
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \036 -newline
|
||||
* \001 to \035 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
* \037\x -sets LCD x-coord (x value in octal)
|
||||
* \n -newline
|
||||
* \t -horizontal tab (ARM only)
|
||||
* \001 to \034 -extended spacing (value * FW/2)
|
||||
* \0 -ends actual string
|
||||
*/
|
||||
|
||||
// NON ZERO TERMINATED STRINGS
|
||||
|
@ -187,9 +188,9 @@
|
|||
|
||||
#define LEN_VCSWFUNC "\005"
|
||||
#if defined(CPUARM)
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""Δ}x\0 ""|Δ|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#else
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""a<x\0 " TR_CSWRANGE "|a|>x""|a|<x""AND\0 ""OR\0 ""XOR\0 " TR_CSWSTAY "a=b\0 ""a>b\0 ""a<b\0 ""^}x\0 ""|^|}x" TR_CSWTIMER TR_CSWSTICKY
|
||||
#endif
|
||||
|
||||
#define LEN_VFSWFUNC "\012"
|
||||
|
@ -423,7 +424,7 @@
|
|||
#define TR_VTRAINERMODES "Lärare""Elev\0."
|
||||
|
||||
#define LEN_VFAILSAFE "\011"
|
||||
#define TR_VFAILSAFE "Lås Servo""Anpassat\0""Pulsfritt""Receiver\0"
|
||||
#define TR_VFAILSAFE "Lås Servo""Anpassat\0""Pulsfritt""Mottagare"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define LEN_MAVLINK_BAUDS "\006"
|
||||
|
@ -439,6 +440,7 @@
|
|||
#define LEN_INDENT 1
|
||||
#define INDENT_WIDTH (FW/2)
|
||||
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_ENTER "[ENTER]"
|
||||
#else
|
||||
|
@ -501,6 +503,7 @@
|
|||
#define TR_OFFSET INDENT"Offset"
|
||||
#define TR_TRIM "Trim"
|
||||
#define TR_DREX "DRex"
|
||||
#define DREX_CHBOX_OFFSET 30
|
||||
#define TR_CURVE "Kurva"
|
||||
#define TR_FLMODE TR("Läge","Flyglägen")
|
||||
#define TR_MIXWARNING "Varning"
|
||||
|
@ -639,7 +642,7 @@
|
|||
#define TR_PITCH_AT_ZERO INDENT "Ton vid Noll"
|
||||
#define TR_PITCH_AT_MAX INDENT "Ton vid Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repetera vid Noll"
|
||||
#define TR_SHUTDOWN "STäNGER AV"
|
||||
#define TR_SHUTDOWN "STÄNGER AV"
|
||||
#define TR_BATT_CALIB "Kalib. Batteri"
|
||||
#define TR_CURRENT_CALIB "Kalib. Ström"
|
||||
#define TR_VOLTAGE INDENT"Volt"
|
||||
|
@ -713,9 +716,9 @@
|
|||
#define TR_CHANNELS_MONITOR "Kanalöversikt"
|
||||
#define TR_PATH_TOO_LONG "För lång sökväg"
|
||||
#define TR_VIEW_TEXT "Visa Text"
|
||||
#define TR_FLASH_BOOTLOADER "Flash BootLoader"
|
||||
#define TR_WRITING "\032Writing..."
|
||||
#define TR_CONFIRM_FORMAT "Confirm Format?"
|
||||
#define TR_FLASH_BOOTLOADER "Skriv BootLoader"
|
||||
#define TR_WRITING "\032Skriver..."
|
||||
#define TR_CONFIRM_FORMAT "Formatera Minnet?"
|
||||
#define TR_INTERNALRF "Intern Radio"
|
||||
#define TR_EXTERNALRF "Extern Radiomodul"
|
||||
#define TR_FAILSAFE "Failsafeläge"
|
||||
|
@ -760,12 +763,12 @@
|
|||
#define TR_MIRROR "Spegla"
|
||||
#define TR_CLEAR "Töm"
|
||||
#define TR_RESET "Nollställ"
|
||||
#define TR_RESET_SUBMENU "Reset..."
|
||||
#define TR_RESET_SUBMENU "Nollställ..."
|
||||
#define TR_COUNT "Antal"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pkt"
|
||||
#define TR_SMOOTH "Mjuk"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Spara trimmar som offset"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Spara trimmar som offset"
|
||||
#define TR_PERSISTENT_MAH INDENT "Lagra mAh"
|
||||
#define TR_PREFLIGHT "Startkontroller"
|
||||
#define TR_CHECKLIST INDENT "Visa checklisa"
|
||||
|
@ -774,7 +777,7 @@
|
|||
#define TR_SCRIPT "Programkod"
|
||||
#define TR_INPUTS "Input"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
#define TR_EEBACKUP "\004[ENTER Long] to backup the EEPROM"
|
||||
#define TR_EEBACKUP "\004[ENTER Lång] säkerhetskopiera EEPROM"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
|
|
@ -109,7 +109,10 @@ translations = {'cz': [('\\200', u'á'),
|
|||
|
||||
'en': [],
|
||||
|
||||
'all': [('\\306', u'Δ')],
|
||||
'all': [('\\306', u'Δ'),
|
||||
('\\173', u'~'),
|
||||
('\\036', u'\\n'),
|
||||
('\\035', u'\\t')],
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue