Merge branch 'next' into bsongis/issue_1471_Lua_read_write_SD
This commit is contained in:
+51
-19
@@ -20,7 +20,7 @@ AppData g;
|
||||
// ** CompStoreObj class********************
|
||||
void CompStoreObj::clear (const QString tag1, const QString tag2, const QString tag3)
|
||||
{
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
if (tag2.isEmpty())
|
||||
{
|
||||
settings.remove(tag1);
|
||||
@@ -43,7 +43,7 @@ void CompStoreObj::clear (const QString tag1, const QString tag2, const QString
|
||||
|
||||
void CompStoreObj::store(const QByteArray newArray, QByteArray &array, const QString tag, const QString group1, const QString group2 )
|
||||
{
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
if (!group1.isEmpty()) settings.beginGroup(group1);
|
||||
if (!group2.isEmpty()) settings.beginGroup(group2);
|
||||
|
||||
@@ -56,7 +56,7 @@ void CompStoreObj::store(const QByteArray newArray, QByteArray &array, const QSt
|
||||
|
||||
void CompStoreObj::store(const QStringList newSList, QStringList &stringList, const QString tag, const QString group1, const QString group2 )
|
||||
{
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
if (!group1.isEmpty()) settings.beginGroup(group1);
|
||||
if (!group2.isEmpty()) settings.beginGroup(group2);
|
||||
|
||||
@@ -69,7 +69,7 @@ void CompStoreObj::store(const QStringList newSList, QStringList &stringList, co
|
||||
|
||||
void CompStoreObj::store(const QString newString, QString &string, const QString tag, const QString group1, const QString group2 )
|
||||
{
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
if (!group1.isEmpty()) settings.beginGroup(group1);
|
||||
if (!group2.isEmpty()) settings.beginGroup(group2);
|
||||
|
||||
@@ -82,7 +82,7 @@ void CompStoreObj::store(const QString newString, QString &string, const QString
|
||||
|
||||
void CompStoreObj::store(const bool newTruth, bool &truth, const QString tag, const QString group1, const QString group2 )
|
||||
{
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
if (!group1.isEmpty()) settings.beginGroup(group1);
|
||||
if (!group2.isEmpty()) settings.beginGroup(group2);
|
||||
|
||||
@@ -95,7 +95,7 @@ void CompStoreObj::store(const bool newTruth, bool &truth, const QString tag, co
|
||||
|
||||
void CompStoreObj::store(const int newNumber, int &number, const QString tag, const QString group1, const QString group2 )
|
||||
{
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
if (!group1.isEmpty()) settings.beginGroup(group1);
|
||||
if (!group2.isEmpty()) settings.beginGroup(group2);
|
||||
|
||||
@@ -109,7 +109,7 @@ void CompStoreObj::store(const int newNumber, int &number, const QString tag, co
|
||||
// Retrieval functions
|
||||
void CompStoreObj::retrieve( QByteArray &array, const QString tag, const QString def, const QString group1, const QString group2 )
|
||||
{
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
if (!group1.isEmpty()) settings.beginGroup(group1);
|
||||
if (!group2.isEmpty()) settings.beginGroup(group2);
|
||||
|
||||
@@ -121,7 +121,7 @@ void CompStoreObj::retrieve( QByteArray &array, const QString tag, const QString
|
||||
|
||||
void CompStoreObj::retrieve( QStringList &stringList, const QString tag, const QString def, const QString group1, const QString group2 )
|
||||
{
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
if (!group1.isEmpty()) settings.beginGroup(group1);
|
||||
if (!group2.isEmpty()) settings.beginGroup(group2);
|
||||
|
||||
@@ -133,7 +133,7 @@ void CompStoreObj::retrieve( QStringList &stringList, const QString tag, const Q
|
||||
|
||||
void CompStoreObj::retrieve( QString &string, const QString tag, const QString def, const QString group1, const QString group2 )
|
||||
{
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
if (!group1.isEmpty()) settings.beginGroup(group1);
|
||||
if (!group2.isEmpty()) settings.beginGroup(group2);
|
||||
|
||||
@@ -145,7 +145,7 @@ void CompStoreObj::retrieve( QString &string, const QString tag, const QString d
|
||||
|
||||
void CompStoreObj::retrieve( bool &truth, const QString tag, const bool def, const QString group1, const QString group2 )
|
||||
{
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
if (!group1.isEmpty()) settings.beginGroup(group1);
|
||||
if (!group2.isEmpty()) settings.beginGroup(group2);
|
||||
|
||||
@@ -157,7 +157,7 @@ void CompStoreObj::retrieve( bool &truth, const QString tag, const bool def, con
|
||||
|
||||
void CompStoreObj::retrieve( int &number, const QString tag, const int def, const QString group1, const QString group2 )
|
||||
{
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
if (!group1.isEmpty()) settings.beginGroup(group1);
|
||||
if (!group2.isEmpty()) settings.beginGroup(group2);
|
||||
|
||||
@@ -241,7 +241,7 @@ JStickData::JStickData()
|
||||
void JStickData::remove()
|
||||
{
|
||||
// Remove all JStickData values from settings file
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
settings.beginGroup( "JsCalibration" );
|
||||
settings.remove( QString( "stick%1_axe").arg(index) );
|
||||
settings.remove( QString( "stick%1_min").arg(index) );
|
||||
@@ -256,7 +256,7 @@ void JStickData::remove()
|
||||
|
||||
bool JStickData::existsOnDisk()
|
||||
{
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
settings.beginGroup("JsCalibration");
|
||||
int axe = settings.value( QString("stick%1_axe").arg(index), -1 ).toInt();
|
||||
settings.endGroup();
|
||||
@@ -377,7 +377,7 @@ Profile& Profile::operator=(const Profile& rhs)
|
||||
void Profile::remove()
|
||||
{
|
||||
// Remove all profile values from settings file
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
settings.beginGroup("Profiles");
|
||||
settings.remove(QString("profile%1").arg(index));
|
||||
settings.endGroup();
|
||||
@@ -388,7 +388,7 @@ void Profile::remove()
|
||||
|
||||
bool Profile::existsOnDisk()
|
||||
{
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
settings.beginGroup("Profiles");
|
||||
settings.beginGroup(QString("profile%1").arg(index));
|
||||
QStringList keyList = settings.allKeys();
|
||||
@@ -577,11 +577,43 @@ AppData::AppData()
|
||||
for (int i=0; i<MAX_JOYSTICKS; i++)
|
||||
joystick[i].init( i );
|
||||
|
||||
// Import settings from companion9x, but only do it one time.
|
||||
QSettings c9x_settings("companion9x", "companion9x");
|
||||
QSettings settings(PRODUCT, COMPANY);
|
||||
if (profile[0].name().isEmpty() )
|
||||
// Copy existing 2.0.16 settings if present
|
||||
QSettings settings(COMPANY, PRODUCT);
|
||||
if (profile[0].name().isEmpty())
|
||||
{
|
||||
QSettings settings20("OpenTX", "Companion 2.0");
|
||||
|
||||
QStringList keys = settings20.allKeys();
|
||||
for (QStringList::iterator i=keys.begin(); i!=keys.end(); i++)
|
||||
{
|
||||
settings.setValue(*i, settings20.value(*i));
|
||||
}
|
||||
|
||||
//Reload profiles
|
||||
for (int i=0; i<MAX_PROFILES; i++)
|
||||
profile[i].init( i );
|
||||
}
|
||||
|
||||
// Else copy existing <2.0.16 settings if present
|
||||
if (profile[0].name().isEmpty())
|
||||
{
|
||||
QSettings pre2016settings("OpenTX", "OpenTX Companion");
|
||||
|
||||
QStringList keys = pre2016settings.allKeys();
|
||||
for (QStringList::iterator i=keys.begin(); i!=keys.end(); i++)
|
||||
{
|
||||
settings.setValue(*i, pre2016settings.value(*i));
|
||||
}
|
||||
|
||||
//Reload profiles
|
||||
for (int i=0; i<MAX_PROFILES; i++)
|
||||
profile[i].init( i );
|
||||
}
|
||||
|
||||
// Else import settings from companion9x if present
|
||||
if (profile[0].name().isEmpty())
|
||||
{
|
||||
QSettings c9x_settings("companion9x", "companion9x");
|
||||
// Copy all settings from companion9x to companion
|
||||
QStringList keys = c9x_settings.allKeys();
|
||||
for (QStringList::iterator i=keys.begin(); i!=keys.end(); i++)
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
#include <QString>
|
||||
#include <QSettings>
|
||||
|
||||
#define COMPANY "OpenTX Companion"
|
||||
#define PRODUCT "OpenTX"
|
||||
#define COMPANY "OpenTX"
|
||||
#define PRODUCT "Companion 2.1"
|
||||
|
||||
#define MAX_PROFILES 15
|
||||
#define MAX_JOYSTICKS 8
|
||||
|
||||
@@ -533,15 +533,19 @@ QString RawSwitch::toString()
|
||||
SwitchUp('C'), QString::fromUtf8("SC-"), SwitchDn('C'),
|
||||
SwitchUp('D'), QString::fromUtf8("SD-"), SwitchDn('D'),
|
||||
SwitchUp('E'), QString::fromUtf8("SE-"), SwitchDn('E'),
|
||||
SwitchUp('F'), SwitchDn('F'),
|
||||
SwitchUp('F'), QString::fromUtf8("SF-"), SwitchDn('F'),
|
||||
SwitchUp('G'), QString::fromUtf8("SG-"), SwitchDn('G'),
|
||||
SwitchUp('H'), SwitchDn('H'),
|
||||
SwitchUp('I'), SwitchDn('I'),
|
||||
SwitchUp('J'), SwitchDn('J'),
|
||||
SwitchUp('K'), SwitchDn('K'),
|
||||
SwitchUp('L'), SwitchDn('L'),
|
||||
SwitchUp('M'), SwitchDn('M'),
|
||||
SwitchUp('N'), SwitchDn('N'),
|
||||
SwitchUp('H'), QString::fromUtf8("SH-"), SwitchDn('H'),
|
||||
SwitchUp('I'), QString::fromUtf8("SI-"), SwitchDn('I'),
|
||||
SwitchUp('J'), QString::fromUtf8("SJ-"), SwitchDn('J'),
|
||||
SwitchUp('K'), QString::fromUtf8("SK-"), SwitchDn('K'),
|
||||
SwitchUp('L'), QString::fromUtf8("SL-"), SwitchDn('L'),
|
||||
SwitchUp('M'), QString::fromUtf8("SM-"), SwitchDn('M'),
|
||||
SwitchUp('N'), QString::fromUtf8("SN-"), SwitchDn('N'),
|
||||
SwitchUp('O'), QString::fromUtf8("SO-"), SwitchDn('O'),
|
||||
SwitchUp('P'), QString::fromUtf8("SP-"), SwitchDn('P'),
|
||||
SwitchUp('Q'), QString::fromUtf8("SQ-"), SwitchDn('Q'),
|
||||
SwitchUp('R'), QString::fromUtf8("SR-"), SwitchDn('R'),
|
||||
};
|
||||
|
||||
static const QString logicalSwitches[] = {
|
||||
@@ -991,14 +995,7 @@ void LimitData::clear()
|
||||
|
||||
GeneralSettings::SwitchInfo GeneralSettings::switchInfoFromSwitchPositionTaranis(unsigned int index)
|
||||
{
|
||||
if (index <= 3*5)
|
||||
return SwitchInfo((index-1)/3, (index-1)%3);
|
||||
else if (index <= 17)
|
||||
return SwitchInfo(5, index==17 ? 2 : 0);
|
||||
else if (index <= 20)
|
||||
return SwitchInfo(6, index-18);
|
||||
else
|
||||
return SwitchInfo(7+(index-21)/2, 2*((index-21)%2));
|
||||
return SwitchInfo((index-1)/3, (index-1)%3);
|
||||
}
|
||||
|
||||
bool GeneralSettings::switchPositionAllowedTaranis(int index) const
|
||||
@@ -1011,7 +1008,12 @@ bool GeneralSettings::switchPositionAllowedTaranis(int index) const
|
||||
else if (info.position == 1)
|
||||
return switchConfig[info.index] == SWITCH_3POS;
|
||||
else
|
||||
return true;
|
||||
return switchConfig[info.index] != SWITCH_NONE;
|
||||
}
|
||||
|
||||
bool GeneralSettings::switchSourceAllowedTaranis(int index) const
|
||||
{
|
||||
return switchConfig[index] != SWITCH_NONE;
|
||||
}
|
||||
|
||||
GeneralSettings::GeneralSettings()
|
||||
|
||||
@@ -906,7 +906,8 @@ class SensorData {
|
||||
char label[4+1];
|
||||
unsigned int unit;
|
||||
unsigned int prec;
|
||||
unsigned int inputFlags;
|
||||
bool autoOffset;
|
||||
bool filter;
|
||||
bool logs;
|
||||
bool persistent;
|
||||
|
||||
@@ -1095,7 +1096,8 @@ class GeneralSettings {
|
||||
bool enableTelemetryAlarm;
|
||||
BeeperMode hapticMode;
|
||||
unsigned int stickMode; // TODO enum
|
||||
int timezone;
|
||||
int timezone;
|
||||
bool adjustRTC;
|
||||
bool optrexDisplay;
|
||||
unsigned int inactivityTimer;
|
||||
bool minuteBeep;
|
||||
@@ -1172,6 +1174,7 @@ class GeneralSettings {
|
||||
|
||||
static SwitchInfo switchInfoFromSwitchPositionTaranis(unsigned int index);
|
||||
bool switchPositionAllowedTaranis(int index) const;
|
||||
bool switchSourceAllowedTaranis(int index) const;
|
||||
};
|
||||
|
||||
class RadioData {
|
||||
@@ -1246,7 +1249,6 @@ enum Capability {
|
||||
NoTelemetryProtocol,
|
||||
TelemetryCustomScreens,
|
||||
TelemetryCustomScreensFieldsPerLine,
|
||||
TelemetryTimeshift,
|
||||
TelemetryMaxMultiplier,
|
||||
HasVario,
|
||||
HasVarioSink,
|
||||
|
||||
@@ -2696,7 +2696,8 @@ class SensorField: public TransformedField {
|
||||
internalField.Append(new UnsignedField<1>(sensor.type, "type"));
|
||||
internalField.Append(new UnsignedField<5>(sensor.unit, "unit"));
|
||||
internalField.Append(new UnsignedField<2>(sensor.prec, "prec"));
|
||||
internalField.Append(new UnsignedField<2>(sensor.inputFlags, "inputFlags"));
|
||||
internalField.Append(new BoolField<1>(sensor.autoOffset));
|
||||
internalField.Append(new BoolField<1>(sensor.filter));
|
||||
internalField.Append(new BoolField<1>(sensor.logs));
|
||||
internalField.Append(new BoolField<1>(sensor.persistent));
|
||||
internalField.Append(new SpareBitsField<4>());
|
||||
@@ -2729,6 +2730,8 @@ class SensorField: public TransformedField {
|
||||
if (sensor.type == SensorData::TYPE_CUSTOM) {
|
||||
sensor.id = _id;
|
||||
sensor.instance = _instance;
|
||||
sensor.ratio = _param & 0xFF;
|
||||
sensor.offset = (_param >> 16) & 0xFF;
|
||||
}
|
||||
else {
|
||||
sensor.persistentValue = _id;
|
||||
@@ -3012,8 +3015,7 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, BoardEnum board, unsigne
|
||||
}
|
||||
|
||||
if (IS_ARM(board) && version >= 217) {
|
||||
int size = IS_TARANIS_X9E(board) ? 32 : 8;
|
||||
for (int i=0; i<size; i++) {
|
||||
for (int i=0; i<8; i++) {
|
||||
if (i < MAX_POTS(board)+MAX_SLIDERS(board))
|
||||
internalField.Append(new BoolField<1>(modelData.potsWarningEnabled[i]));
|
||||
else
|
||||
@@ -3031,7 +3033,7 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, BoardEnum board, unsigne
|
||||
}
|
||||
|
||||
if (IS_ARM(board) && version >= 216) {
|
||||
for (int i=0; i < GetCurrentFirmware()->getCapability(Pots); i++) {
|
||||
for (int i=0; i < MAX_POTS(board)+MAX_SLIDERS(board); i++) {
|
||||
internalField.Append(new SignedField<8>(modelData.potPosition[i]));
|
||||
}
|
||||
}
|
||||
@@ -3157,7 +3159,12 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, BoardEnum bo
|
||||
|
||||
internalField.Append(new UnsignedField<2>(generalData.stickMode));
|
||||
internalField.Append(new SignedField<5>(generalData.timezone));
|
||||
internalField.Append(new SpareBitsField<1>());
|
||||
if (version >= 217 && IS_TARANIS(board)) {
|
||||
internalField.Append(new BoolField<1>(generalData.adjustRTC));
|
||||
}
|
||||
else {
|
||||
internalField.Append(new SpareBitsField<1>());
|
||||
}
|
||||
|
||||
internalField.Append(new UnsignedField<8>(generalData.inactivityTimer));
|
||||
if (IS_9X(board) && version >= 215) {
|
||||
@@ -3269,7 +3276,7 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, BoardEnum bo
|
||||
internalField.Append(new SpareBitsField<64>());
|
||||
else if (IS_TARANIS(board))
|
||||
internalField.Append(new SpareBitsField<16>());
|
||||
|
||||
|
||||
if (version >= 217) {
|
||||
for (int i=0; i<MAX_CUSTOM_FUNCTIONS(board, version); i++) {
|
||||
internalField.Append(new ArmCustomFunctionField(generalData.customFn[i], board, version, variant));
|
||||
|
||||
@@ -551,7 +551,7 @@ int OpenTxFirmware::getCapability(const Capability capability)
|
||||
case FlightModesName:
|
||||
return (IS_TARANIS(board) ? 10 : 6);
|
||||
case GvarsName:
|
||||
return 6;
|
||||
return (IS_9X(board) ? 0 : 6);
|
||||
case HasChNames:
|
||||
return (IS_TARANIS(board) ? 1 : 0);
|
||||
case GvarsInCS:
|
||||
@@ -689,8 +689,6 @@ int OpenTxFirmware::getCapability(const Capability capability)
|
||||
return IS_TARANIS(board) ? 1 : 0;
|
||||
case TelemetryUnits:
|
||||
return 0;
|
||||
case TelemetryTimeshift:
|
||||
return 1;
|
||||
case TelemetryMaxMultiplier:
|
||||
return (IS_ARM(board) ? 32 : 8);
|
||||
case PPMCenter:
|
||||
|
||||
@@ -13,12 +13,13 @@
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
#ifndef open9x_interface_h
|
||||
#define open9x_interface_h
|
||||
|
||||
#ifndef opentx_interface_h
|
||||
#define opentx_interface_h
|
||||
|
||||
#include "eeprominterface.h"
|
||||
|
||||
#define OPENTX_FIRMWARE_DOWNLOADS "http://downloads-20.open-tx.org/firmware"
|
||||
#define OPENTX_FIRMWARE_DOWNLOADS "http://downloads-21.open-tx.org/firmware"
|
||||
|
||||
class RleFile;
|
||||
|
||||
|
||||
@@ -123,17 +123,16 @@ GeneralSetupPanel::GeneralSetupPanel(QWidget * parent, GeneralSettings & general
|
||||
ui->units_CB->setCurrentIndex(generalSettings.imperial);
|
||||
}
|
||||
|
||||
if (!firmware->getCapability(TelemetryTimeshift)) {
|
||||
ui->label_timezone->hide();
|
||||
ui->timezoneSB->hide();
|
||||
ui->timezoneSB->setDisabled(true);
|
||||
ui->gpsFormatCB->hide();
|
||||
ui->gpsFormatLabel->hide();
|
||||
}
|
||||
|
||||
ui->gpsFormatCB->setCurrentIndex(generalSettings.gpsFormat);
|
||||
ui->timezoneSB->setValue(generalSettings.timezone);
|
||||
|
||||
if (IS_TARANIS(firmware->getBoard())) {
|
||||
ui->adjustRTC->setChecked(generalSettings.adjustRTC);
|
||||
}
|
||||
else {
|
||||
ui->adjustRTC->hide();
|
||||
}
|
||||
|
||||
if (!firmware->getCapability(OptrexDisplay)) {
|
||||
ui->label_displayType->hide();
|
||||
ui->displayTypeCB->setDisabled(true);
|
||||
@@ -533,6 +532,13 @@ void GeneralSetupPanel::on_timezoneSB_editingFinished()
|
||||
emit modified();
|
||||
}
|
||||
|
||||
void GeneralSetupPanel::on_adjustRTC_stateChanged(int)
|
||||
{
|
||||
generalSettings.adjustRTC = ui->adjustRTC->isChecked();
|
||||
emit modified();
|
||||
}
|
||||
|
||||
|
||||
void GeneralSetupPanel::on_inactimerSB_editingFinished()
|
||||
{
|
||||
generalSettings.inactivityTimer = ui->inactimerSB->value();
|
||||
|
||||
@@ -19,7 +19,7 @@ class GeneralSetupPanel : public GeneralPanel
|
||||
private slots:
|
||||
void on_splashScreenChkB_stateChanged(int);
|
||||
void on_splashScreenDuration_currentIndexChanged(int index);
|
||||
void on_alarmwarnChkB_stateChanged(int );
|
||||
void on_alarmwarnChkB_stateChanged(int);
|
||||
void on_gpsFormatCB_currentIndexChanged(int index);
|
||||
void on_displayTypeCB_currentIndexChanged(int index);
|
||||
void on_BLBright_SB_editingFinished();
|
||||
@@ -29,6 +29,7 @@ class GeneralSetupPanel : public GeneralPanel
|
||||
void on_faimode_CB_stateChanged(int );
|
||||
void on_speakerPitchSB_editingFinished();
|
||||
void on_timezoneSB_editingFinished();
|
||||
void on_adjustRTC_stateChanged(int);
|
||||
void on_hapticStrength_valueChanged();
|
||||
void on_soundModeCB_currentIndexChanged(int index);
|
||||
void on_beeperlenCB_currentIndexChanged(int index);
|
||||
|
||||
@@ -6,101 +6,29 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>689</width>
|
||||
<height>606</height>
|
||||
<width>758</width>
|
||||
<height>635</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout" columnstretch="1,0,0,0,0">
|
||||
<item row="34" column="3">
|
||||
<item row="36" column="0">
|
||||
<widget class="QLabel" name="gpsFormatLabel">
|
||||
<property name="text">
|
||||
<string>GPS Coordinates</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QLabel" name="label_speakerPitch">
|
||||
<property name="text">
|
||||
<string>Speaker Pitch (spkr only)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="36" column="4">
|
||||
<widget class="QComboBox" name="voiceLang_CB"/>
|
||||
</item>
|
||||
<item row="33" column="3">
|
||||
<item row="35" column="0">
|
||||
<widget class="QLabel" name="units_label">
|
||||
<property name="text">
|
||||
<string>Measurement Units</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="34" column="4">
|
||||
<widget class="QComboBox" name="gpsFormatCB">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>hh° (N/S) mm' ss''.dd</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>NMEA</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="35" column="4">
|
||||
<widget class="QSpinBox" name="timezoneSB">
|
||||
<property name="minimum">
|
||||
<number>-14</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="36" column="3">
|
||||
<widget class="QLabel" name="VoiceLang_label">
|
||||
<property name="text">
|
||||
<string>Voice Language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="35" column="3">
|
||||
<widget class="QLabel" name="label_timezone">
|
||||
<property name="text">
|
||||
<string>Timeshift from UTC</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="33" column="4">
|
||||
<widget class="QComboBox" name="units_CB">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Metric</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Imperial</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="31" column="3">
|
||||
<widget class="QLabel" name="countrycode_label">
|
||||
<property name="text">
|
||||
<string>Country Code</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="31" column="4">
|
||||
<widget class="QComboBox" name="countrycode_CB">
|
||||
<item>
|
||||
<property name="text">
|
||||
@@ -119,6 +47,144 @@
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="34" column="3">
|
||||
<widget class="QLabel" name="label_faimode">
|
||||
<property name="text">
|
||||
<string>FAI Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="35" column="3">
|
||||
<widget class="QLabel" name="countrycode_label">
|
||||
<property name="text">
|
||||
<string>Country Code</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="splashScreenChkB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Show splash screen on startup</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string>Show splash screen on startup</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="splashScreenDuration">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>---</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>2s</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>3s</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>4s</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>6s</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>8s</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>10s</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>15s</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="36" column="1">
|
||||
<widget class="QComboBox" name="gpsFormatCB">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>hh° (N/S) mm' ss''.dd</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>NMEA</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="35" column="1">
|
||||
<widget class="QComboBox" name="units_CB">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Metric</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Imperial</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QLabel" name="label_speakerPitch">
|
||||
<property name="text">
|
||||
<string>Speaker Pitch (spkr only)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="37" column="4">
|
||||
<widget class="QComboBox" name="voiceLang_CB"/>
|
||||
</item>
|
||||
<item row="37" column="3">
|
||||
<widget class="QLabel" name="VoiceLang_label">
|
||||
<property name="text">
|
||||
<string>Voice Language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSlider" name="hapticStrength">
|
||||
<property name="minimum">
|
||||
@@ -195,6 +261,41 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="16" column="1">
|
||||
<widget class="QCheckBox" name="memwarnChkB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" text-decoration: underline;">Warnings</span></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These will define startup warnings.</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Throttle warning - will alert if the throttle is not at idle during startup</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Switch warning - will alert if switches are not in their defaul position</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Memory warning - will alert if there's not a lot of memory left</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Silent mode warning - will alert you if the beeper is set to quiet (0)</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_beeperlen">
|
||||
<property name="text">
|
||||
@@ -247,7 +348,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="38" column="0" colspan="2">
|
||||
<item row="39" column="0" colspan="2">
|
||||
<spacer name="verticalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
@@ -1278,41 +1379,6 @@ Acceptable values are 5v..10v</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="1">
|
||||
<widget class="QCheckBox" name="memwarnChkB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" text-decoration: underline;">Warnings</span></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These will define startup warnings.</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Throttle warning - will alert if the throttle is not at idle during startup</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Switch warning - will alert if switches are not in their defaul position</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Memory warning - will alert if there's not a lot of memory left</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Silent mode warning - will alert you if the beeper is set to quiet (0)</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="17" column="0">
|
||||
<widget class="QLabel" name="mavbaud_label">
|
||||
<property name="text">
|
||||
@@ -1404,85 +1470,6 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="splashScreenChkB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Show splash screen on startup</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string>Show splash screen on startup</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="splashScreenDuration">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>---</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>2s</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>3s</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>4s</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>6s</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>8s</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>10s</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>15s</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="14" column="0">
|
||||
<widget class="QLabel" name="label_27">
|
||||
<property name="text">
|
||||
@@ -1607,19 +1594,6 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="33" column="0">
|
||||
<widget class="QLabel" name="stickReverseLB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Stick reverse (order as above)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="34" column="0">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="sizePolicy">
|
||||
@@ -1633,13 +1607,6 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="35" column="0">
|
||||
<widget class="QLabel" name="label_faimode">
|
||||
<property name="text">
|
||||
<string>FAI Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="31" column="1">
|
||||
<widget class="QComboBox" name="stickmodeCB">
|
||||
<property name="toolTip">
|
||||
@@ -1694,38 +1661,6 @@ Mode 4:
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="33" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse1">
|
||||
<property name="text">
|
||||
<string notr="true">1</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse2">
|
||||
<property name="text">
|
||||
<string notr="true">2</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse3">
|
||||
<property name="text">
|
||||
<string notr="true">3</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse4">
|
||||
<property name="text">
|
||||
<string notr="true">4</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="34" column="1">
|
||||
<widget class="QComboBox" name="channelorderCB">
|
||||
<property name="toolTip">
|
||||
@@ -1862,17 +1797,7 @@ Mode 4:
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="35" column="1">
|
||||
<widget class="QCheckBox" name="faimode_CB">
|
||||
<property name="toolTip">
|
||||
<string>If you enable FAI, you loose the vario, the play functions, the telemetry screen. This function cannot be disabled by the radio.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="36" column="0">
|
||||
<item row="37" column="0">
|
||||
<widget class="QLabel" name="switchesDelayLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
@@ -1885,7 +1810,7 @@ Mode 4:
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="36" column="1">
|
||||
<item row="37" column="1">
|
||||
<widget class="QSpinBox" name="switchesDelay">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
@@ -1932,6 +1857,98 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="36" column="3">
|
||||
<widget class="QLabel" name="label_timezone">
|
||||
<property name="text">
|
||||
<string>Timeshift from UTC</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="31" column="4">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse1">
|
||||
<property name="text">
|
||||
<string notr="true">1</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse2">
|
||||
<property name="text">
|
||||
<string notr="true">2</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse3">
|
||||
<property name="text">
|
||||
<string notr="true">3</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse4">
|
||||
<property name="text">
|
||||
<string notr="true">4</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="31" column="3">
|
||||
<widget class="QLabel" name="stickReverseLB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Stick reverse</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="36" column="4">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QSpinBox" name="timezoneSB">
|
||||
<property name="minimum">
|
||||
<number>-14</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="adjustRTC">
|
||||
<property name="toolTip">
|
||||
<string>If you enable FAI, you loose the vario, the play functions, the telemetry screen. This function cannot be disabled by the radio.</string>
|
||||
</property>
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::RightToLeft</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Adjust RTC</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="34" column="4">
|
||||
<widget class="QCheckBox" name="faimode_CB">
|
||||
<property name="toolTip">
|
||||
<string>If you enable FAI, you loose the vario, the play functions, the telemetry screen. This function cannot be disabled by the radio.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
||||
@@ -412,9 +412,10 @@ void populateSwitchCB(QComboBox *b, const RawSwitch & value, const GeneralSettin
|
||||
}
|
||||
|
||||
for (int i=-GetCurrentFirmware()->getCapability(SwitchesPositions); i<0; i++) {
|
||||
if (IS_TARANIS(GetCurrentFirmware()->getBoard()) && !generalSettings.switchPositionAllowedTaranis(i))
|
||||
continue;
|
||||
item = RawSwitch(SWITCH_TYPE_SWITCH, i);
|
||||
if (IS_TARANIS(GetCurrentFirmware()->getBoard()) && !generalSettings.switchPositionAllowedTaranis(i)){
|
||||
continue;
|
||||
}
|
||||
b->addItem(item.toString(), item.toValue());
|
||||
if (item == value) b->setCurrentIndex(b->count()-1);
|
||||
}
|
||||
@@ -433,9 +434,10 @@ void populateSwitchCB(QComboBox *b, const RawSwitch & value, const GeneralSettin
|
||||
}
|
||||
|
||||
for (int i=1; i<=GetCurrentFirmware()->getCapability(SwitchesPositions); i++) {
|
||||
if (IS_TARANIS(GetCurrentFirmware()->getBoard()) && !generalSettings.switchPositionAllowedTaranis(i))
|
||||
continue;
|
||||
item = RawSwitch(SWITCH_TYPE_SWITCH, i);
|
||||
if (IS_TARANIS(GetCurrentFirmware()->getBoard()) && !generalSettings.switchPositionAllowedTaranis(i)){
|
||||
continue;
|
||||
}
|
||||
b->addItem(item.toString(), item.toValue());
|
||||
if (item == value) b->setCurrentIndex(b->count()-1);
|
||||
}
|
||||
@@ -525,7 +527,7 @@ void populateGVCB(QComboBox *b, int value)
|
||||
}
|
||||
}
|
||||
|
||||
void populateSourceCB(QComboBox *b, const RawSource & source, const ModelData * model, unsigned int flags)
|
||||
void populateSourceCB(QComboBox *b, const RawSource & source, const GeneralSettings generalSettings, const ModelData * model, unsigned int flags)
|
||||
{
|
||||
BoardEnum board = GetCurrentFirmware()->getBoard();
|
||||
RawSource item;
|
||||
@@ -590,6 +592,11 @@ void populateSourceCB(QComboBox *b, const RawSource & source, const ModelData *
|
||||
for (int i=0; i<GetCurrentFirmware()->getCapability(Switches); i++) {
|
||||
item = RawSource(SOURCE_TYPE_SWITCH, i);
|
||||
b->addItem(item.toString(model), item.toValue());
|
||||
if (IS_TARANIS(GetCurrentFirmware()->getBoard()) && !generalSettings.switchSourceAllowedTaranis(i)) {
|
||||
QModelIndex index = b->model()->index(b->count()-1, 0);
|
||||
QVariant v(0);
|
||||
b->model()->setData(index, v, Qt::UserRole - 1);
|
||||
}
|
||||
if (item == source) b->setCurrentIndex(b->count()-1);
|
||||
}
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ QString getPhasesStr(unsigned int phases, ModelData * model);
|
||||
|
||||
// void populateGVarCB(QComboBox *b, int value, int min, int max,int pgvars=5); //TODO: Clean Up
|
||||
void populateGVCB(QComboBox *b, int value);
|
||||
void populateSourceCB(QComboBox *b, const RawSource &source, const ModelData * model, unsigned int flags);
|
||||
void populateSourceCB(QComboBox *b, const RawSource &source, const GeneralSettings generalSettings, const ModelData * model, unsigned int flags);
|
||||
QString getPhaseName(int val, const char * phasename=NULL);
|
||||
QString getInputStr(ModelData * model, int index);
|
||||
QString image2qstring(QImage image);
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
#include "radiointerface.h"
|
||||
#include "progressdialog.h"
|
||||
|
||||
#define OPENTX_COMPANION_DOWNLOADS "http://downloads-20.open-tx.org/companion"
|
||||
#define OPENTX_COMPANION_DOWNLOADS "http://downloads-21.open-tx.org/companion"
|
||||
#define DONATE_STR "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QUZ48K4SEXDP2"
|
||||
|
||||
#ifdef __APPLE__
|
||||
@@ -121,6 +121,7 @@ MainWindow::MainWindow():
|
||||
}
|
||||
QTimer::singleShot(updateDelay, this, SLOT(doAutoUpdates()));
|
||||
QTimer::singleShot(updateDelay, this, SLOT(displayWarnings()));
|
||||
updateSdsyncAction();
|
||||
|
||||
QStringList strl = QApplication::arguments();
|
||||
QString str;
|
||||
@@ -916,13 +917,12 @@ void MainWindow::updateMenus()
|
||||
printAct->setEnabled(hasSelection);
|
||||
loadbackupAct->setEnabled(hasMdiChild);
|
||||
compareAct->setEnabled(activeMdiChild());
|
||||
updateSdsyncAction();
|
||||
updateRecentFileActions();
|
||||
updateProfilesActions();
|
||||
updateLanguageActions();
|
||||
updateIconSizeActions();
|
||||
updateIconThemeActions();
|
||||
setWindowTitle(tr("OpenTX Companion - FW: %1 - Profile: %2").arg(GetCurrentFirmware()->getName()).arg( g.profile[g.id()].name() ));
|
||||
setWindowTitle(tr("OpenTX Companion 2.1 - FW: %1 - Profile: %2").arg(GetCurrentFirmware()->getName()).arg( g.profile[g.id()].name() ));
|
||||
}
|
||||
|
||||
MdiChild *MainWindow::createMdiChild()
|
||||
|
||||
@@ -264,6 +264,7 @@ void CustomFunctionsPanel::playMusic()
|
||||
phononCurrent = -1;
|
||||
}
|
||||
else {
|
||||
playBT[phononCurrent]->setIcon(CompanionIcon("play.png"));
|
||||
phononCurrent = index;
|
||||
clickObject->clear();
|
||||
#ifdef __APPLE__
|
||||
@@ -714,18 +715,18 @@ void CustomFunctionsPanel::populateFuncParamCB(QComboBox *b, uint function, unsi
|
||||
b->setCurrentIndex(value);
|
||||
}
|
||||
else if (function==FuncVolume) {
|
||||
populateSourceCB(b, RawSource(value), model, POPULATE_SOURCES|POPULATE_VIRTUAL_INPUTS|POPULATE_TRIMS);
|
||||
populateSourceCB(b, RawSource(value), generalSettings, model, POPULATE_SOURCES|POPULATE_VIRTUAL_INPUTS|POPULATE_TRIMS);
|
||||
}
|
||||
else if (function==FuncPlayValue) {
|
||||
populateSourceCB(b, RawSource(value), model, POPULATE_SOURCES|POPULATE_VIRTUAL_INPUTS|POPULATE_SWITCHES|POPULATE_GVARS|POPULATE_TRIMS|POPULATE_TELEMETRYEXT);
|
||||
populateSourceCB(b, RawSource(value), generalSettings, model, POPULATE_SOURCES|POPULATE_VIRTUAL_INPUTS|POPULATE_SWITCHES|POPULATE_GVARS|POPULATE_TRIMS|POPULATE_TELEMETRYEXT);
|
||||
}
|
||||
else if (function>=FuncAdjustGV1 && function<=FuncAdjustGVLast) {
|
||||
switch (adjustmode) {
|
||||
case 1:
|
||||
populateSourceCB(b, RawSource(value), model, POPULATE_SOURCES|POPULATE_VIRTUAL_INPUTS|POPULATE_TRIMS|POPULATE_SWITCHES);
|
||||
populateSourceCB(b, RawSource(value), generalSettings, model, POPULATE_SOURCES|POPULATE_VIRTUAL_INPUTS|POPULATE_TRIMS|POPULATE_SWITCHES);
|
||||
break;
|
||||
case 2:
|
||||
populateSourceCB(b, RawSource(value), model, POPULATE_GVARS);
|
||||
populateSourceCB(b, RawSource(value), generalSettings, model, POPULATE_GVARS);
|
||||
break;
|
||||
case 3:
|
||||
b->clear();
|
||||
|
||||
@@ -60,7 +60,7 @@ ExpoDialog::ExpoDialog(QWidget *parent, ModelData & model, ExpoData *expoData, G
|
||||
|
||||
if (firmware->getCapability(VirtualInputs)) {
|
||||
ui->inputName->setMaxLength(4);
|
||||
populateSourceCB(ui->sourceCB, ed->srcRaw, &model, POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS | POPULATE_TELEMETRY);
|
||||
populateSourceCB(ui->sourceCB, ed->srcRaw, generalSettings, &model, POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS | POPULATE_TELEMETRY);
|
||||
ui->sourceCB->removeItem(0);
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -209,7 +209,9 @@ void FlightModePanel::update()
|
||||
|
||||
if (ui->gvGB->isVisible()) {
|
||||
for (int i=0; i<gvCount; i++) {
|
||||
gvNames[i]->setText(model->gvars_names[i]);
|
||||
if (firmware->getCapability(GvarsName) > 0) {
|
||||
gvNames[i]->setText(model->gvars_names[i]);
|
||||
}
|
||||
gvValues[i]->setDisabled(model->isGVarLinked(phaseIdx, i));
|
||||
gvValues[i]->setValue(model->getGVarValue(phaseIdx, i));
|
||||
if (IS_TARANIS(GetEepromInterface()->getBoard()) && phaseIdx == 0) {
|
||||
|
||||
@@ -48,11 +48,11 @@ void HeliPanel::update()
|
||||
lock = true;
|
||||
|
||||
ui->swashType->setCurrentIndex(model->swashRingData.type);
|
||||
populateSourceCB(ui->swashCollectiveSource, model->swashRingData.collectiveSource, model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TRIMS);
|
||||
populateSourceCB(ui->swashCollectiveSource, model->swashRingData.collectiveSource, generalSettings, model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TRIMS);
|
||||
ui->swashRingVal->setValue(model->swashRingData.value);
|
||||
if (firmware->getCapability(VirtualInputs)) {
|
||||
populateSourceCB(ui->swashElevatorSource, model->swashRingData.elevatorSource, model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TRIMS);
|
||||
populateSourceCB(ui->swashAileronSource, model->swashRingData.aileronSource, model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TRIMS);
|
||||
populateSourceCB(ui->swashElevatorSource, model->swashRingData.elevatorSource, generalSettings, model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TRIMS);
|
||||
populateSourceCB(ui->swashAileronSource, model->swashRingData.aileronSource, generalSettings, model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TRIMS);
|
||||
ui->swashElevatorWeight->setValue(model->swashRingData.elevatorWeight);
|
||||
ui->swashAileronWeight->setValue(model->swashRingData.aileronWeight);
|
||||
ui->swashCollectiveWeight->setValue(model->swashRingData.collectiveWeight);
|
||||
|
||||
@@ -261,6 +261,7 @@ void LogicalSwitchesPanel::edited()
|
||||
}
|
||||
emit modified();
|
||||
lock = false;
|
||||
updateLine(i);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -300,7 +301,7 @@ void LogicalSwitchesPanel::setSwitchWidgetVisibility(int i)
|
||||
{
|
||||
case LS_FAMILY_VOFS:
|
||||
mask |= SOURCE1_VISIBLE;
|
||||
populateSourceCB(cswitchSource1[i], source, model, POPULATE_SOURCES | POPULATE_SCRIPT_OUTPUTS | POPULATE_VIRTUAL_INPUTS | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (firmware->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
|
||||
populateSourceCB(cswitchSource1[i], source, generalSettings, model, POPULATE_SOURCES | POPULATE_SCRIPT_OUTPUTS | POPULATE_VIRTUAL_INPUTS | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (firmware->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
|
||||
cswitchOffset[i]->setDecimals(range.decimals);
|
||||
cswitchOffset[i]->setSingleStep(range.step);
|
||||
if (source.isTimeBased()) {
|
||||
@@ -345,8 +346,8 @@ void LogicalSwitchesPanel::setSwitchWidgetVisibility(int i)
|
||||
break;
|
||||
case LS_FAMILY_VCOMP:
|
||||
mask |= SOURCE1_VISIBLE | SOURCE2_VISIBLE;
|
||||
populateSourceCB(cswitchSource1[i], RawSource(model->logicalSw[i].val1), model, POPULATE_SOURCES | POPULATE_SCRIPT_OUTPUTS | POPULATE_VIRTUAL_INPUTS | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (firmware->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
|
||||
populateSourceCB(cswitchSource2[i], RawSource(model->logicalSw[i].val2), model, POPULATE_SOURCES | POPULATE_SCRIPT_OUTPUTS | POPULATE_VIRTUAL_INPUTS | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (firmware->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
|
||||
populateSourceCB(cswitchSource1[i], RawSource(model->logicalSw[i].val1), generalSettings, model, POPULATE_SOURCES | POPULATE_SCRIPT_OUTPUTS | POPULATE_VIRTUAL_INPUTS | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (firmware->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
|
||||
populateSourceCB(cswitchSource2[i], RawSource(model->logicalSw[i].val2), generalSettings, model, POPULATE_SOURCES | POPULATE_SCRIPT_OUTPUTS | POPULATE_VIRTUAL_INPUTS | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (firmware->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
|
||||
break;
|
||||
case LS_FAMILY_TIMER:
|
||||
mask |= VALUE1_VISIBLE | VALUE2_VISIBLE;
|
||||
|
||||
@@ -19,7 +19,7 @@ MixerDialog::MixerDialog(QWidget *parent, ModelData & model, MixData *mixdata, G
|
||||
|
||||
this->setWindowTitle(tr("DEST -> CH%1").arg(md->destCh));
|
||||
|
||||
populateSourceCB(ui->sourceCB, md->srcRaw, &model, POPULATE_SOURCES | POPULATE_SCRIPT_OUTPUTS | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TRIMS);
|
||||
populateSourceCB(ui->sourceCB, md->srcRaw, generalSettings, &model, POPULATE_SOURCES | POPULATE_SCRIPT_OUTPUTS | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TRIMS);
|
||||
ui->sourceCB->removeItem(0);
|
||||
|
||||
int limit = firmware->getCapability(OffsetWeight);
|
||||
|
||||
@@ -495,19 +495,16 @@ SetupPanel::SetupPanel(QWidget *parent, ModelData & model, GeneralSettings & gen
|
||||
slider->setTickPosition(QSlider::TicksBothSides);
|
||||
slider->setMinimumSize(QSize(30, 50));
|
||||
slider->setMaximumSize(QSize(50, 50));
|
||||
slider->setSingleStep(1);
|
||||
slider->setPageStep(1);
|
||||
slider->setTickInterval(1);
|
||||
if (IS_TARANIS(board)) {
|
||||
label->setText(switchesX9D[i]);
|
||||
slider->setMaximum(2);
|
||||
slider->setSingleStep(generalSettings.switchConfig[i] == GeneralSettings::SWITCH_3POS ? 1 : 2);
|
||||
slider->setPageStep(slider->singleStep());
|
||||
slider->setTickInterval(slider->singleStep());
|
||||
slider->setMaximum(generalSettings.switchConfig[i] == GeneralSettings::SWITCH_3POS ? 2 : 1);
|
||||
}
|
||||
else {
|
||||
label->setText(switches9X[i]);
|
||||
slider->setMaximum(i==0 ? 2 : 1);
|
||||
slider->setSingleStep(1);
|
||||
slider->setPageStep(1);
|
||||
slider->setTickInterval(1);
|
||||
}
|
||||
cb->setProperty("index", i);
|
||||
ui->switchesStartupLayout->addWidget(label, 0, i+1);
|
||||
@@ -735,12 +732,25 @@ void SetupPanel::updateBeepCenter()
|
||||
void SetupPanel::updateStartupSwitches()
|
||||
{
|
||||
lock = true;
|
||||
|
||||
unsigned int switchStates = model->switchWarningStates;
|
||||
unsigned int value;
|
||||
|
||||
for (int i=0; i<startupSwitchesSliders.size(); i++) {
|
||||
QSlider *slider = startupSwitchesSliders[i];
|
||||
QCheckBox * cb = startupSwitchesCheckboxes[i];
|
||||
int index = slider->property("index").toInt();
|
||||
bool enabled = !(model->switchWarningEnable & (1 << index));
|
||||
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
|
||||
value = (switchStates >> 2*index) & 0x03;
|
||||
if (generalSettings.switchConfig[index] != GeneralSettings::SWITCH_3POS && value == 2)
|
||||
value = 1;
|
||||
}
|
||||
else {
|
||||
value = (i==0 ? switchStates & 0x3 : switchStates & 0x1);
|
||||
switchStates >>= (i==0 ? 2 : 1);
|
||||
}
|
||||
slider->setValue(value);
|
||||
slider->setEnabled(enabled);
|
||||
cb->setChecked(enabled);
|
||||
}
|
||||
@@ -760,16 +770,20 @@ void SetupPanel::startupSwitchEdited(int value)
|
||||
mask = 0x03 << shift;
|
||||
}
|
||||
else {
|
||||
if (index == 1) {
|
||||
if (index == 0) {
|
||||
mask = 0x03;
|
||||
}
|
||||
else {
|
||||
shift = index;
|
||||
shift = index+1;
|
||||
mask = 0x01 << shift;
|
||||
}
|
||||
}
|
||||
|
||||
model->switchWarningStates &= ~mask;
|
||||
|
||||
if (IS_TARANIS(GetEepromInterface()->getBoard()) && generalSettings.switchConfig[index] != GeneralSettings::SWITCH_3POS) {
|
||||
if (value == 1) value = 2;
|
||||
}
|
||||
|
||||
if (value) {
|
||||
model->switchWarningStates |= (value << shift);
|
||||
|
||||
@@ -486,7 +486,8 @@ TelemetrySensorPanel::TelemetrySensorPanel(QWidget *parent, SensorData & sensor,
|
||||
ui->instance->setField(sensor.instance);
|
||||
ui->ratio->setField(sensor.ratio);
|
||||
ui->offset->setField(sensor.offset);
|
||||
ui->inputFlags->setField(sensor.inputFlags);
|
||||
ui->autoOffset->setField(sensor.autoOffset);
|
||||
ui->filter->setField(sensor.filter);
|
||||
ui->logs->setField(sensor.logs);
|
||||
ui->persistent->setField(sensor.persistent);
|
||||
ui->gpsSensor->setField(sensor.gps);
|
||||
@@ -557,13 +558,28 @@ void TelemetrySensorPanel::update()
|
||||
ui->instance->show();
|
||||
ui->formula->hide();
|
||||
ratioFieldsDisplayed = (sensor.unit != SensorData::UNIT_GPS && sensor.unit != SensorData::UNIT_DATETIME);
|
||||
ui->offset->setDecimals(sensor.prec);
|
||||
precDisplayed = (sensor.unit != SensorData::UNIT_GPS && sensor.unit != SensorData::UNIT_DATETIME);
|
||||
ui->offset->setMaximum((sensor.prec > 0 ? sensor.prec == 2 ? 30000 : 3000 : 300));
|
||||
ui->offset->setMinimum((sensor.prec > 0 ? sensor.prec == 2 ? -30000 : -3000 : -300));
|
||||
|
||||
if (sensor.unit == SensorData::UNIT_RPMS) {
|
||||
ui->offset->setDecimals(0);
|
||||
ui->ratio->setDecimals(0);
|
||||
ui->autoOffset->hide();
|
||||
ui->ratio->setMinimum(1);
|
||||
ui->offset->setMinimum(1);
|
||||
}
|
||||
else {
|
||||
ui->offset->setDecimals(sensor.prec);
|
||||
ui->ratio->setDecimals(1);
|
||||
}
|
||||
}
|
||||
|
||||
ui->ratioLabel->setVisible(ratioFieldsDisplayed);
|
||||
ui->ratioLabel->setVisible(ratioFieldsDisplayed && sensor.unit != SensorData::UNIT_RPMS);
|
||||
ui->bladesLabel->setVisible(sensor.unit == SensorData::UNIT_RPMS);
|
||||
ui->ratio->setVisible(ratioFieldsDisplayed);
|
||||
ui->offsetLabel->setVisible(ratioFieldsDisplayed);
|
||||
ui->offsetLabel->setVisible(ratioFieldsDisplayed && sensor.unit != SensorData::UNIT_RPMS);
|
||||
ui->multiplierLabel->setVisible(sensor.unit == SensorData::UNIT_RPMS);
|
||||
ui->offset->setVisible(ratioFieldsDisplayed);
|
||||
ui->precLabel->setVisible(precDisplayed);
|
||||
ui->prec->setVisible(precDisplayed);
|
||||
@@ -642,7 +658,7 @@ void TelemetrySensorPanel::on_unit_currentIndexChanged(int index)
|
||||
}
|
||||
}
|
||||
|
||||
void TelemetrySensorPanel::on_prec_editingFinished()
|
||||
void TelemetrySensorPanel::on_prec_valueChanged()
|
||||
{
|
||||
if (!lock) {
|
||||
sensor.prec = ui->prec->value();
|
||||
|
||||
@@ -95,7 +95,7 @@ class TelemetrySensorPanel: public ModelPanel
|
||||
void on_type_currentIndexChanged(int index);
|
||||
void on_formula_currentIndexChanged(int index);
|
||||
void on_unit_currentIndexChanged(int index);
|
||||
void on_prec_editingFinished();
|
||||
void on_prec_valueChanged();
|
||||
|
||||
protected:
|
||||
void updateSourcesComboBox(AutoComboBox * cb, bool negative);
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,1,0,0,0,1,1,1,1,0,0,1,0,1,0,1,1,1,1,1,1,0,1,0,1,0,1,1,0,1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,1,0,0,0,1,1,1,1,0,0,1,0,1,0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,1">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
@@ -419,6 +419,46 @@
|
||||
<string>Percentage (%)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Energy (mAh)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Power (W)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>RF Power (dBm)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>RPM</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Acceleration (g)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Heading (°)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Volume (mL)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Volume (US fl.Oz.)</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
@@ -466,6 +506,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="bladesLabel">
|
||||
<property name="text">
|
||||
<string>Blades</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="AutoDoubleSpinBox" name="ratio">
|
||||
<property name="enabled">
|
||||
@@ -478,7 +525,10 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="decimals">
|
||||
<number>1</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>3000.000000000000000</double>
|
||||
@@ -498,6 +548,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="multiplierLabel">
|
||||
<property name="text">
|
||||
<string>Multiplier</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="AutoDoubleSpinBox" name="offset">
|
||||
<property name="sizePolicy">
|
||||
@@ -507,42 +564,37 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="decimals">
|
||||
<number>2</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<double>-12.800000000000001</double>
|
||||
<double>-30000.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>12.699999999999999</double>
|
||||
<double>30000.000000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.100000000000000</double>
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="AutoComboBox" name="inputFlags">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
<widget class="AutoCheckBox" name="autoOffset">
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Auto Offset</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="AutoCheckBox" name="filter">
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Filter</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>---</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Auto Offset</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Filtered</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
|
||||
@@ -31,7 +31,7 @@ void registerSimulators()
|
||||
{
|
||||
QDir dir(".");
|
||||
QStringList filters;
|
||||
#if !defined __GNUC__
|
||||
#if (!defined __GNUC__) || (defined __CYGWIN__)
|
||||
filters << "*-simulator.dll";
|
||||
#else
|
||||
filters << "*-simulator.so";
|
||||
|
||||
@@ -61,11 +61,14 @@ void generateSportPacket(uint8_t * packet, uint8_t dataId, uint8_t prim, uint16_
|
||||
void TelemetrySimulator::generateTelemetryFrame()
|
||||
{
|
||||
static int item = 0;
|
||||
bool ok = true;
|
||||
uint8_t buffer[FRSKY_SPORT_PACKET_SIZE];
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
|
||||
switch(item++) {
|
||||
case 0:
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, RSSI_ID, LIMIT<uint32_t>(0, ui->Rssi->text().toInt(), 0xFF));
|
||||
if (ui->Rssi->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, RSSI_ID, LIMIT<uint32_t>(0, ui->Rssi->text().toInt(&ok, 0), 0xFF));
|
||||
break;
|
||||
|
||||
case 1:
|
||||
@@ -75,20 +78,127 @@ void TelemetrySimulator::generateTelemetryFrame()
|
||||
break;
|
||||
|
||||
case 2:
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, SWR_ID, LIMIT<uint32_t>(0, ui->Swr->text().toInt(), 0xFF));
|
||||
if (ui->Swr->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, SWR_ID, LIMIT<uint32_t>(0, ui->Swr->text().toInt(&ok, 0), 0xFFFF));
|
||||
break;
|
||||
|
||||
case 3:
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, ADC1_ID, LIMIT<uint32_t>(0, ui->A1->text().toInt(), 0xFF));
|
||||
if (ui->A1->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, ADC1_ID, LIMIT<uint32_t>(0, ui->A1->text().toInt(&ok, 0), 0xFF));
|
||||
break;
|
||||
|
||||
case 4:
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, ADC2_ID, LIMIT<uint32_t>(0, ui->A2->text().toInt(), 0xFF));
|
||||
if (ui->A2->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, ADC2_ID, LIMIT<uint32_t>(0, ui->A2->text().toInt(&ok, 0), 0xFF));
|
||||
break;
|
||||
|
||||
case 5:
|
||||
if (ui->A3->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, A3_FIRST_ID, LIMIT<uint32_t>(0, ui->A3->text().toInt(&ok, 0), 0xFFFFFFFF));
|
||||
break;
|
||||
|
||||
case 6:
|
||||
if (ui->A4->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, A4_FIRST_ID, LIMIT<uint32_t>(0, ui->A4->text().toInt(&ok, 0), 0xFFFFFFFF));
|
||||
break;
|
||||
|
||||
case 7:
|
||||
if (ui->T1->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, T1_FIRST_ID, LIMIT<int32_t>(-0x7FFFFFFF, ui->T1->text().toInt(&ok, 0), 0x7FFFFFFF));
|
||||
break;
|
||||
|
||||
case 8:
|
||||
if (ui->T2->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, T2_FIRST_ID, LIMIT<int32_t>(-0x7FFFFFFF, ui->T2->text().toInt(&ok, 0), 0x7FFFFFFF));
|
||||
break;
|
||||
|
||||
case 9:
|
||||
if (ui->rpm->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, RPM_FIRST_ID, LIMIT<uint32_t>(0, ui->rpm->text().toInt(&ok, 0), 0xFFFF));
|
||||
break;
|
||||
|
||||
case 10:
|
||||
if (ui->fuel->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, FUEL_FIRST_ID, LIMIT<uint32_t>(0, ui->fuel->text().toInt(&ok, 0), 0xFFFF));
|
||||
break;
|
||||
|
||||
case 11:
|
||||
if (ui->aspeed->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, AIR_SPEED_FIRST_ID, LIMIT<uint32_t>(0, ui->aspeed->text().toInt(&ok, 0), 0xFFFFFFFF));
|
||||
break;
|
||||
|
||||
case 12:
|
||||
if (ui->vspeed->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, VARIO_FIRST_ID, LIMIT<int32_t>(-0x7FFFFFFF, ui->vspeed->text().toInt(&ok, 0), 0x7FFFFFFF));
|
||||
break;
|
||||
|
||||
case 13:
|
||||
if (ui->valt->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, ALT_FIRST_ID, LIMIT<int32_t>(-0x7FFFFFFF, ui->valt->text().toInt(&ok, 0), 0x7FFFFFFF));
|
||||
break;
|
||||
|
||||
case 14:
|
||||
if (ui->accx->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, ACCX_FIRST_ID, LIMIT<int32_t>(-0x7FFFFFFF, ui->accx->text().toInt(&ok, 0), 0x7FFFFFFF));
|
||||
break;
|
||||
|
||||
case 15:
|
||||
if (ui->accy->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, ACCY_FIRST_ID, LIMIT<int32_t>(-0x7FFFFFFF, ui->accy->text().toInt(&ok, 0), 0x7FFFFFFF));
|
||||
break;
|
||||
|
||||
case 16:
|
||||
if (ui->accz->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, ACCZ_FIRST_ID, LIMIT<int32_t>(-0x7FFFFFFF, ui->accz->text().toInt(&ok, 0), 0x7FFFFFFF));
|
||||
break;
|
||||
|
||||
case 17:
|
||||
if (ui->vfas->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, VFAS_FIRST_ID, LIMIT<uint32_t>(0, ui->vfas->text().toInt(&ok, 0), 0xFFFFFFFF));
|
||||
break;
|
||||
|
||||
case 18:
|
||||
if (ui->curr->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, CURR_FIRST_ID, LIMIT<uint32_t>(0, ui->curr->text().toInt(&ok, 0), 0xFFFFFFFF));
|
||||
break;
|
||||
|
||||
case 19:
|
||||
if (ui->cells->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, CELLS_FIRST_ID, LIMIT<uint32_t>(0, ui->cells->text().toInt(&ok, 0), 0xFFFFFFFF));
|
||||
break;
|
||||
|
||||
case 20:
|
||||
if (ui->gps_alt->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, GPS_ALT_FIRST_ID, LIMIT<int32_t>(-0x7FFFFFFF, ui->gps_alt->text().toInt(&ok, 0), 0x7FFFFFFF));
|
||||
break;
|
||||
|
||||
case 21:
|
||||
if (ui->gps_speed->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, GPS_SPEED_FIRST_ID, LIMIT<uint32_t>(0, ui->gps_speed->text().toInt(&ok, 0), 0xFFFFFFFF));
|
||||
break;
|
||||
|
||||
case 22:
|
||||
if (ui->gps_course->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, GPS_COURS_FIRST_ID, LIMIT<uint32_t>(0, ui->gps_course->text().toInt(&ok, 0), 0xFFFFFFFF));
|
||||
break;
|
||||
|
||||
case 23:
|
||||
if (ui->gps_time->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, GPS_TIME_DATE_FIRST_ID, LIMIT<uint32_t>(0, ui->gps_time->text().toInt(&ok, 0), 0xFFFFFFFF));
|
||||
break;
|
||||
|
||||
case 24:
|
||||
if (ui->gps_latlon->text().length())
|
||||
generateSportPacket(buffer, 1, DATA_FRAME, GPS_LONG_LATI_FIRST_ID, LIMIT<uint32_t>(0, ui->gps_latlon->text().toInt(&ok, 0), 0xFFFFFFFF));
|
||||
break;
|
||||
|
||||
default:
|
||||
item = 0;
|
||||
return;
|
||||
}
|
||||
simulator->sendTelemetry(buffer, 9);
|
||||
|
||||
if (ok && buffer[0])
|
||||
simulator->sendTelemetry(buffer, FRSKY_SPORT_PACKET_SIZE);
|
||||
else
|
||||
onTimerEvent();
|
||||
}
|
||||
|
||||
@@ -6,67 +6,342 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>184</width>
|
||||
<height>165</height>
|
||||
<width>278</width>
|
||||
<height>384</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Telemetry Simulator</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="bottomMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="3" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="12" column="0">
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="toolTip">
|
||||
<string>Vario Altitude</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>V-ALT</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="0">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="toolTip">
|
||||
<string>Vario Vertical Speed</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>V-VSPD</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<widget class="QLineEdit" name="valt"/>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<widget class="QLineEdit" name="vspeed"/>
|
||||
</item>
|
||||
<item row="5" column="3">
|
||||
<widget class="QLineEdit" name="gps_alt"/>
|
||||
</item>
|
||||
<item row="12" column="2">
|
||||
<widget class="QLabel" name="label_15">
|
||||
<property name="text">
|
||||
<string>ACCZ</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="2">
|
||||
<widget class="QLabel" name="label_23">
|
||||
<property name="toolTip">
|
||||
<string>GPS Time</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>GPS-T</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="3">
|
||||
<widget class="QLineEdit" name="gps_time"/>
|
||||
</item>
|
||||
<item row="10" column="2">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="text">
|
||||
<string>ACCX</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="3">
|
||||
<widget class="QLineEdit" name="accx"/>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<widget class="QLineEdit" name="Swr"/>
|
||||
<widget class="QLineEdit" name="cells"/>
|
||||
</item>
|
||||
<item row="4" column="3">
|
||||
<widget class="QLineEdit" name="A1"/>
|
||||
<item row="2" column="3">
|
||||
<widget class="QLineEdit" name="curr"/>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<item row="6" column="3">
|
||||
<widget class="QLineEdit" name="gps_speed"/>
|
||||
</item>
|
||||
<item row="9" column="2">
|
||||
<widget class="QLabel" name="label_24">
|
||||
<property name="toolTip">
|
||||
<string>GPS Lat/Lon</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>GPS-LL</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="toolTip">
|
||||
<string>VFAS</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>FAS-V</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2">
|
||||
<widget class="QLabel" name="label_21">
|
||||
<property name="toolTip">
|
||||
<string>GPS Speed</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>GPS-S</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QLabel" name="label_19">
|
||||
<property name="text">
|
||||
<string>CELLS</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="3">
|
||||
<widget class="QLineEdit" name="accy"/>
|
||||
</item>
|
||||
<item row="7" column="3">
|
||||
<widget class="QLineEdit" name="gps_course"/>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QLineEdit" name="vfas"/>
|
||||
</item>
|
||||
<item row="11" column="2">
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="text">
|
||||
<string>ACCY</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="2">
|
||||
<widget class="QLabel" name="label_22">
|
||||
<property name="toolTip">
|
||||
<string>GPS Course</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>GPS-C</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="3">
|
||||
<widget class="QLineEdit" name="gps_latlon"/>
|
||||
</item>
|
||||
<item row="12" column="3">
|
||||
<widget class="QLineEdit" name="accz"/>
|
||||
</item>
|
||||
<item row="5" column="2">
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="toolTip">
|
||||
<string>GPS Altitude</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>GPS-A</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLabel" name="label_18">
|
||||
<property name="toolTip">
|
||||
<string>CURRENT</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>FAS-C</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="Swr">
|
||||
<property name="text">
|
||||
<string>30</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>RSSI</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QLineEdit" name="Rssi"/>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="Rssi">
|
||||
<property name="text">
|
||||
<string>A1</string>
|
||||
<string>75</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>SWR</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QCheckBox" name="Simulate">
|
||||
<item row="4" column="2">
|
||||
<widget class="QLabel" name="label_16">
|
||||
<property name="toolTip">
|
||||
<string>FR_ID_AIR_SPEED</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>simulate</string>
|
||||
<string>ASPD</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="3">
|
||||
<widget class="QLineEdit" name="aspeed"/>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="A1"/>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLineEdit" name="A2"/>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QLineEdit" name="A3"/>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QLineEdit" name="A4"/>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QLineEdit" name="T1"/>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QLineEdit" name="T2"/>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<widget class="QLineEdit" name="rpm"/>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="QLineEdit" name="fuel"/>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>A1</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>A2</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="3">
|
||||
<widget class="QLineEdit" name="A2"/>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>A3</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>A4</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="toolTip">
|
||||
<string>Temperature 1</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>T1</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="toolTip">
|
||||
<string>Temperature 2</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>T2</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>RPM</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="text">
|
||||
<string>FUEL</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QCheckBox" name="Simulate">
|
||||
<property name="toolTip">
|
||||
<string>When enabled, sends any non-blank values as simulated telemetry data.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>simulate</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_25">
|
||||
<property name="text">
|
||||
<string><html><head/><body><p>Start with <span style=" font-style:italic;">0x</span> for hex, <span style=" font-style:italic;">0</span> for octal, otherwise decimal.<br/>Numeric entry only. Blank values are not sent.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>Simulate</tabstop>
|
||||
<tabstop>Rssi</tabstop>
|
||||
<tabstop>Swr</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
||||
@@ -173,8 +173,10 @@ Section "Uninstall"
|
||||
Delete "$INSTDIR\Uninstall.exe"
|
||||
|
||||
Delete "$INSTDIR\lang\*.*"
|
||||
Delete "$INSTDIR\phonon_backend\*.*"
|
||||
|
||||
RMDir "$INSTDIR\lang"
|
||||
RMDir "$INSTDIR\phonon_backend"
|
||||
RMDir "$INSTDIR"
|
||||
|
||||
${unregisterExtension} ".bin" "BIN File"
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
;General
|
||||
|
||||
;Name and file
|
||||
Name "OpenTX Companion"
|
||||
Name "OpenTX Companion 2.1"
|
||||
OutFile "companionInstall_@C9X_VERSION@.exe"
|
||||
|
||||
;Default installation folder
|
||||
InstallDir "$PROGRAMFILES\OpenTX"
|
||||
InstallDir "$PROGRAMFILES\OpenTX\Companion 2.1"
|
||||
|
||||
;Get installation folder from registry if available
|
||||
InstallDirRegKey HKCU "Software\OpenTX" ""
|
||||
InstallDirRegKey HKCU "Software\OpenTX\Companion 2.1" ""
|
||||
|
||||
;Compressor options
|
||||
SetCompressor /FINAL /SOLID lzma
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
;Start Menu Folder Page Configuration
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenTX"
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenTX\Companion 2.1"
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
|
||||
|
||||
!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
|
||||
@@ -77,7 +77,7 @@
|
||||
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
||||
!define MUI_FINISHPAGE_RUN
|
||||
!define MUI_FINISHPAGE_RUN_CHECKED
|
||||
!define MUI_FINISHPAGE_RUN_TEXT "Launch OpenTX Companion"
|
||||
!define MUI_FINISHPAGE_RUN_TEXT "Launch OpenTX Companion 2.1"
|
||||
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink"
|
||||
# !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
|
||||
# !define MUI_FINISHPAGE_SHOWREADME $INSTDIR\readme.txt
|
||||
@@ -134,7 +134,7 @@ Section "OpenTX Companion" SecDummy
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
;Store installation folder
|
||||
WriteRegStr HKCU "Software\OpenTX" "" $INSTDIR
|
||||
WriteRegStr HKCU "Software\OpenTX\Companion 2.1" "" $INSTDIR
|
||||
|
||||
;Associate with extentions ,bin and .hex
|
||||
${registerExtension} "$INSTDIR\companion.exe" ".bin" "BIN_File"
|
||||
@@ -147,20 +147,20 @@ Section "OpenTX Companion" SecDummy
|
||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||
|
||||
;Registry information for add/remove programs
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "DisplayName" "OpenTX Companion"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "DisplayIcon" "$\"$INSTDIR\companion.exe$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "Publisher" "OpenTX"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "URLInfoAbout" "http://www.open-tx.org"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ImageMaker" "QuietUninstallString" "$\"$INSTDIR\Uninstall.exe$\" /S"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX Companion 2.1" "DisplayName" "OpenTX Companion 2.1"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX Companion 2.1" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX Companion 2.1" "DisplayIcon" "$\"$INSTDIR\companion.exe$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX Companion 2.1" "Publisher" "OpenTX"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX Companion 2.1" "URLInfoAbout" "http://www.open-tx.org"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX Companion 2.1" "QuietUninstallString" "$\"$INSTDIR\Uninstall.exe$\" /S"
|
||||
|
||||
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
|
||||
|
||||
;Create shortcuts
|
||||
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
|
||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\companion.lnk" "$INSTDIR\companion.exe"
|
||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\simulator.lnk" "$INSTDIR\simulator.exe"
|
||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Companion 2.1.lnk" "$INSTDIR\companion.exe"
|
||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Firmware Simulator 2.1.lnk" "$INSTDIR\simulator.exe"
|
||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall Companion 2.1.lnk" "$INSTDIR\Uninstall.exe"
|
||||
|
||||
!insertmacro MUI_STARTMENU_WRITE_END
|
||||
|
||||
@@ -207,8 +207,10 @@ Section "Uninstall"
|
||||
Delete "$INSTDIR\Uninstall.exe"
|
||||
|
||||
Delete "$INSTDIR\lang\*.*"
|
||||
Delete "$INSTDIR\phonon_backend\*.*"
|
||||
|
||||
RMDir "$INSTDIR\lang"
|
||||
RMDir "$INSTDIR\phonon_backend"
|
||||
RMDir "$INSTDIR"
|
||||
|
||||
${unregisterExtension} ".bin" "BIN File"
|
||||
@@ -218,13 +220,13 @@ Section "Uninstall"
|
||||
|
||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
|
||||
|
||||
Delete "$SMPROGRAMS\$StartMenuFolder\companion.lnk"
|
||||
Delete "$SMPROGRAMS\$StartMenuFolder\simulator.lnk"
|
||||
Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk"
|
||||
Delete "$SMPROGRAMS\$StartMenuFolder\Companion 2.1.lnk"
|
||||
Delete "$SMPROGRAMS\$StartMenuFolder\Firmware Simulator 2.1.lnk"
|
||||
Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall Companion 2.1.lnk"
|
||||
RMDir "$SMPROGRAMS\$StartMenuFolder"
|
||||
|
||||
DeleteRegKey /ifempty HKCU "Software\OpenTX"
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX"
|
||||
DeleteRegKey /ifempty HKCU "Software\OpenTX Companion 2.1"
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX Companion 2.1"
|
||||
|
||||
SectionEnd
|
||||
|
||||
|
||||
+2
-2
@@ -307,7 +307,7 @@ MIXERS_MONITOR = NO
|
||||
|
||||
# Use newlib-nano
|
||||
# Values = NO, YES
|
||||
NANO = YES
|
||||
NANO = NO
|
||||
|
||||
# Use custom bin based allocator for Lua
|
||||
# Values = NO, YES
|
||||
@@ -853,7 +853,7 @@ ifeq ($(PCB), TARANIS)
|
||||
INCDIRS += targets/taranis $(THIRDPARTY) $(COOSDIR) $(COOSDIR)/kernel $(COOSDIR)/portable
|
||||
ifeq ($(PCBREV), REV9E)
|
||||
STM32LIBPATH = $(THIRDPARTY)/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries
|
||||
CPPDEFS += -DHSE_VALUE=16800000
|
||||
CPPDEFS += -DHSE_VALUE=12000000
|
||||
CPPDEFS += -DSTM32F40_41xxx
|
||||
EXTRAINCDIRS += $(STM32LIBPATH)/CMSIS/Device/ST/STM32F4xx/Include $(STM32LIBPATH)/CMSIS/Include $(STM32LIBPATH)/STM32F4xx_StdPeriph_Driver/inc
|
||||
else
|
||||
|
||||
@@ -974,6 +974,12 @@ void audioEvent(unsigned int index, unsigned int freq)
|
||||
if (index == AU_NONE)
|
||||
return;
|
||||
|
||||
#if defined(HAPTIC)
|
||||
if (index >= AU_THROTTLE_ALERT) {
|
||||
haptic.event(index); //do this before audio to help sync timings
|
||||
}
|
||||
#endif
|
||||
|
||||
if (index <= AU_ERROR || (index >= AU_WARNING1 && index < AU_FRSKY_FIRST)) {
|
||||
if (g_eeGeneral.alarmsFlash) {
|
||||
flashCounter = FLASH_DURATION;
|
||||
|
||||
@@ -58,6 +58,7 @@ bool eeModelExists(uint8_t id);
|
||||
void eeLoadModelName(uint8_t id, char *name);
|
||||
void eeLoadModel(uint8_t id);
|
||||
bool eeConvert();
|
||||
void eeErase(bool warn);
|
||||
void ConvertModel(int id, int version);
|
||||
uint8_t eeFindEmptyModel(uint8_t id, bool down);
|
||||
void selectModel(uint8_t sub);
|
||||
|
||||
+16
-13
@@ -1016,6 +1016,21 @@ void eeLoadModel(uint8_t id)
|
||||
}
|
||||
}
|
||||
|
||||
void eeErase(bool warn)
|
||||
{
|
||||
generalDefault();
|
||||
|
||||
if (warn) {
|
||||
ALERT(STR_EEPROMWARN, STR_BADEEPROMDATA, AU_BAD_EEPROM);
|
||||
}
|
||||
|
||||
MESSAGE(STR_EEPROMWARN, STR_EEPROMFORMATTING, NULL, AU_EEPROM_FORMATTING);
|
||||
EeFsFormat();
|
||||
theFile.writeRlc(FILE_GENERAL, FILE_TYP_GENERAL, (uint8_t*)&g_eeGeneral, sizeof(EEGeneral), true);
|
||||
modelDefault(0);
|
||||
theFile.writeRlc(FILE_MODEL(0), FILE_TYP_MODEL, (uint8_t*)&g_model, sizeof(g_model), true);
|
||||
}
|
||||
|
||||
// TODO merge this code with eeprom_arm.cpp one
|
||||
void eeReadAll()
|
||||
{
|
||||
@@ -1023,19 +1038,7 @@ void eeReadAll()
|
||||
EeFsck() < 0 ||
|
||||
!eeLoadGeneral())
|
||||
{
|
||||
generalDefault();
|
||||
|
||||
ALERT(STR_EEPROMWARN, STR_BADEEPROMDATA, AU_BAD_EEPROM);
|
||||
|
||||
MESSAGE(STR_EEPROMWARN, STR_EEPROMFORMATTING, NULL, AU_EEPROM_FORMATTING);
|
||||
|
||||
EeFsFormat();
|
||||
|
||||
theFile.writeRlc(FILE_GENERAL, FILE_TYP_GENERAL, (uint8_t*)&g_eeGeneral, sizeof(EEGeneral), true);
|
||||
|
||||
modelDefault(0);
|
||||
|
||||
theFile.writeRlc(FILE_MODEL(0), FILE_TYP_MODEL, (uint8_t*)&g_model, sizeof(g_model), true);
|
||||
eeErase(true);
|
||||
}
|
||||
else {
|
||||
eeLoadModelHeaders();
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 15 KiB |
@@ -355,6 +355,12 @@ void evalFunctions()
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
#if defined(CPUARM)
|
||||
if (CFN_PARAM(cfn)>=FUNC_RESET_PARAM_FIRST_TELEM) {
|
||||
TelemetryItem * telemetryItem = & telemetryItems[CFN_PARAM(cfn)-FUNC_RESET_PARAM_FIRST_TELEM];
|
||||
telemetryItem->clear();
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
#if defined(CPUARM)
|
||||
|
||||
@@ -105,9 +105,6 @@ bool isInputSourceAvailable(int source)
|
||||
if (source>=MIXSRC_Rud && source<=MIXSRC_MAX)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_Rud && source<=MIXSRC_MAX)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_TrimRud && source<MIXSRC_SW1)
|
||||
return true;
|
||||
|
||||
|
||||
@@ -192,7 +192,9 @@ enum SensorFields {
|
||||
SENSOR_FIELD_PARAM2,
|
||||
SENSOR_FIELD_PARAM3,
|
||||
SENSOR_FIELD_PARAM4,
|
||||
SENSOR_FIELD_INPUT_FLAGS,
|
||||
SENSOR_FIELD_AUTOOFFSET,
|
||||
SENSOR_FIELD_FILTER,
|
||||
SENSOR_FIELD_PERSISTENT,
|
||||
SENSOR_FIELD_LOGS,
|
||||
SENSOR_FIELD_MAX
|
||||
};
|
||||
@@ -243,18 +245,21 @@ bool isSensorAvailable(int sensor)
|
||||
#define SENSOR_2ND_COLUMN (12*FW)
|
||||
#define SENSOR_3RD_COLUMN (18*FW)
|
||||
|
||||
#define SENSOR_UNIT_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula >= TELEM_FORMULA_CELL) ? HIDDEN_ROW : ((sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS) ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PREC_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula >= TELEM_FORMULA_CELL) ? HIDDEN_ROW : ((sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME) ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PARAM1_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS) ? HIDDEN_ROW : (uint8_t)0
|
||||
#define SENSOR_PARAM2_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS || (sensor->type==TELEM_TYPE_CALCULATED && sensor->formula==TELEM_FORMULA_CONSUMPTION)) ? HIDDEN_ROW : (uint8_t)0
|
||||
#define SENSOR_PARAM3_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_PARAM4_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_UNIT_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_PREC_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_PARAM1_ROWS (sensor->unit >= UNIT_FIRST_VIRTUAL ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PARAM2_ROWS (sensor->unit == UNIT_RPMS || sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS || (sensor->type==TELEM_TYPE_CALCULATED && (sensor->formula==TELEM_FORMULA_CONSUMPTION || sensor->formula==TELEM_FORMULA_TOTALIZE)) ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PARAM3_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_PARAM4_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_AUTOOFFSET_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_FILTER_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_PERSISTENT_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
|
||||
void menuModelSensor(uint8_t event)
|
||||
{
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[s_currIdx];
|
||||
|
||||
SUBMENU(STR_MENUSENSOR, SENSOR_FIELD_MAX, {0, 0, sensor->type == TELEM_TYPE_CALCULATED ? (uint8_t)0 : (uint8_t)1, SENSOR_UNIT_ROWS, SENSOR_PREC_ROWS, SENSOR_PARAM1_ROWS, SENSOR_PARAM2_ROWS, SENSOR_PARAM3_ROWS, SENSOR_PARAM4_ROWS, 0 });
|
||||
SUBMENU(STR_MENUSENSOR, SENSOR_FIELD_MAX, {0, 0, sensor->type == TELEM_TYPE_CALCULATED ? (uint8_t)0 : (uint8_t)1, SENSOR_UNIT_ROWS, SENSOR_PREC_ROWS, SENSOR_PARAM1_ROWS, SENSOR_PARAM2_ROWS, SENSOR_PARAM3_ROWS, SENSOR_PARAM4_ROWS, SENSOR_AUTOOFFSET_ROWS, SENSOR_FILTER_ROWS, SENSOR_PERSISTENT_ROWS, 0 });
|
||||
lcd_outdezAtt(PSIZE(TR_MENUSENSOR)*FW+1, 0, s_currIdx+1, INVERS|LEFT);
|
||||
|
||||
putsTelemetryChannelValue(SENSOR_2ND_COLUMN, 0, s_currIdx, getValue(MIXSRC_FIRST_TELEM+3*s_currIdx), LEFT);
|
||||
@@ -279,12 +284,13 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_TYPE:
|
||||
sensor->type = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_TYPE, "\012Custom\0 Calculated", sensor->type, 0, 1, attr, event);
|
||||
sensor->type = selectMenuItem(SENSOR_2ND_COLUMN, y, NO_INDENT(STR_TYPE), STR_VSENSORTYPES, sensor->type, 0, 1, attr, event);
|
||||
if (attr && checkIncDec_Ret) {
|
||||
sensor->instance = 0;
|
||||
if (sensor->type == TELEM_TYPE_CALCULATED) {
|
||||
sensor->param = 0;
|
||||
sensor->inputFlags = 0;
|
||||
sensor->autoOffset = 0;
|
||||
sensor->filter = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -307,7 +313,7 @@ void menuModelSensor(uint8_t event)
|
||||
}
|
||||
}
|
||||
else {
|
||||
sensor->formula = selectMenuItem(SENSOR_2ND_COLUMN, y, "Formula", "\010Add\0 Average\0Min\0 Max\0 MultiplyCell\0 ConsumptDistance", sensor->formula, 0, TELEM_FORMULA_DIST, attr, event);
|
||||
sensor->formula = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_FORMULA, STR_VFORMULAS, sensor->formula, 0, TELEM_FORMULA_LAST, attr, event);
|
||||
if (attr && checkIncDec_Ret) {
|
||||
sensor->param = 0;
|
||||
if (sensor->formula == TELEM_FORMULA_CELL) {
|
||||
@@ -339,7 +345,7 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_PRECISION:
|
||||
sensor->prec = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_PRECISION, "\005PREC0PREC1PREC2", sensor->prec, 0, 2, attr, event);
|
||||
sensor->prec = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_PRECISION, STR_VPREC, sensor->prec, 0, 2, attr, event);
|
||||
if (attr && checkIncDec_Ret) {
|
||||
telemetryItems[s_currIdx].clear();
|
||||
}
|
||||
@@ -348,7 +354,7 @@ void menuModelSensor(uint8_t event)
|
||||
case SENSOR_FIELD_PARAM1:
|
||||
if (sensor->type == TELEM_TYPE_CALCULATED) {
|
||||
if (sensor->formula == TELEM_FORMULA_CELL) {
|
||||
lcd_putsLeft(y, "Cells sensor");
|
||||
lcd_putsLeft(y, STR_CELLSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->cell.source ? MIXSRC_FIRST_TELEM+3*(sensor->cell.source-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->cell.source = checkIncDec(event, sensor->cell.source, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isCellsSensor);
|
||||
@@ -356,7 +362,7 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_DIST) {
|
||||
lcd_putsLeft(y, "GPS sensor");
|
||||
lcd_putsLeft(y, STR_GPSSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->dist.gps ? MIXSRC_FIRST_TELEM+3*(sensor->dist.gps-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->dist.gps = checkIncDec(event, sensor->dist.gps, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isGPSSensor);
|
||||
@@ -364,7 +370,7 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_CONSUMPTION) {
|
||||
lcd_putsLeft(y, "Amps sensor");
|
||||
lcd_putsLeft(y, STR_CURRENTSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->consumption.source ? MIXSRC_FIRST_TELEM+3*(sensor->consumption.source-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->consumption.source = checkIncDec(event, sensor->consumption.source, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isCurrentSensor);
|
||||
@@ -373,24 +379,32 @@ void menuModelSensor(uint8_t event)
|
||||
}
|
||||
}
|
||||
else {
|
||||
lcd_putsLeft(y, "Ratio");
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.ratio, 0, 30000);
|
||||
if (sensor->custom.ratio == 0)
|
||||
lcd_putcAtt(SENSOR_2ND_COLUMN, y, '-', attr);
|
||||
else
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.ratio, LEFT|attr|PREC1);
|
||||
break;
|
||||
if (sensor->unit == UNIT_RPMS) {
|
||||
lcd_putsLeft(y, NO_INDENT(STR_BLADES));
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.ratio, 1, 30000);
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.ratio, LEFT|attr);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
lcd_putsLeft(y, STR_RATIO);
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.ratio, 0, 30000);
|
||||
if (sensor->custom.ratio == 0)
|
||||
lcd_putcAtt(SENSOR_2ND_COLUMN, y, '-', attr);
|
||||
else
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.ratio, LEFT|attr|PREC1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// no break
|
||||
|
||||
case SENSOR_FIELD_PARAM2:
|
||||
if (sensor->type == TELEM_TYPE_CALCULATED) {
|
||||
if (sensor->formula == TELEM_FORMULA_CELL) {
|
||||
sensor->cell.index = selectMenuItem(SENSOR_2ND_COLUMN, y, "Cell index", "\007Lowest\0001\0 2\0 3\0 4\0 5\0 6\0 HighestDelta\0", sensor->cell.index, 0, 8, attr, event);
|
||||
sensor->cell.index = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_CELLINDEX, STR_VCELLINDEX, sensor->cell.index, 0, 8, attr, event);
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_DIST) {
|
||||
lcd_putsLeft(y, "Alt sensor");
|
||||
lcd_putsLeft(y, STR_ALTSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->dist.alt ? MIXSRC_FIRST_TELEM+3*(sensor->dist.alt-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->dist.alt = checkIncDec(event, sensor->dist.alt, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isAltSensor);
|
||||
@@ -412,7 +426,7 @@ void menuModelSensor(uint8_t event)
|
||||
|
||||
case SENSOR_FIELD_PARAM4:
|
||||
{
|
||||
putsStrIdx(0, y, "Source", k-SENSOR_FIELD_PARAM1+1);
|
||||
putsStrIdx(0, y, NO_INDENT(STR_SOURCE), k-SENSOR_FIELD_PARAM1+1);
|
||||
int8_t & source = sensor->calc.sources[k-SENSOR_FIELD_PARAM1];
|
||||
if (attr) {
|
||||
source = checkIncDec(event, source, -TELEM_VALUES_MAX, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isSensorAvailable);
|
||||
@@ -427,12 +441,20 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
|
||||
case SENSOR_FIELD_INPUT_FLAGS:
|
||||
sensor->inputFlags = selectMenuItem(SENSOR_2ND_COLUMN, y, "Options", "\013None\0 ""Auto Offset""Filter\0", sensor->inputFlags, 0, TELEM_INPUT_FLAGS_MAX, attr, event);
|
||||
case SENSOR_FIELD_AUTOOFFSET:
|
||||
ON_OFF_MENU_ITEM(sensor->autoOffset, SENSOR_2ND_COLUMN, y, STR_AUTOOFFSET, attr, event);
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_FILTER:
|
||||
ON_OFF_MENU_ITEM(sensor->filter, SENSOR_2ND_COLUMN, y, STR_FILTER, attr, event);
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_PERSISTENT:
|
||||
ON_OFF_MENU_ITEM(sensor->persistent, SENSOR_2ND_COLUMN, y, NO_INDENT(STR_PERSISTENT), attr, event);
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_LOGS:
|
||||
ON_OFF_MENU_ITEM(sensor->logs, SENSOR_2ND_COLUMN, y, "Logs", attr, event);
|
||||
ON_OFF_MENU_ITEM(sensor->logs, SENSOR_2ND_COLUMN, y, STR_LOGS, attr, event);
|
||||
break;
|
||||
|
||||
}
|
||||
@@ -552,6 +574,9 @@ void menuModelTelemetry(uint8_t event)
|
||||
s_currIdx = res;
|
||||
pushMenu(menuModelSensor);
|
||||
}
|
||||
else {
|
||||
POPUP_WARNING(STR_TELEMETRYFULL);
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
@@ -95,9 +95,9 @@ void displayGpsCoord(uint8_t y, char direction, int16_t bp, int16_t ap)
|
||||
lcd_outdezNAtt(lcdLastPos+FW+FW+1, y, mn, LEFT|LEADING0, 2); // mm before '.'
|
||||
lcd_vline(lcdLastPos, y, 2);
|
||||
uint16_t ss = ap * 6;
|
||||
lcd_outdezAtt(lcdLastPos+3, y, ss / 1000, LEFT); // ''
|
||||
lcd_outdezNAtt(lcdLastPos+3, y, ss / 1000, LEFT|LEADING0, 2); // ''
|
||||
lcd_plot(lcdLastPos, y+FH-2, 0); // small decimal point
|
||||
lcd_outdezAtt(lcdLastPos+2, y, ss % 1000, LEFT); // ''
|
||||
lcd_outdezNAtt(lcdLastPos+2, y, ss % 1000, LEFT|LEADING0, 3); // ''
|
||||
lcd_vline(lcdLastPos, y, 2);
|
||||
lcd_vline(lcdLastPos+2, y, 2);
|
||||
}
|
||||
|
||||
@@ -53,6 +53,9 @@ void displayScrollbar(coord_t x, coord_t y, coord_t h, uint16_t offset, uint16_t
|
||||
void displayMenuBar(const MenuItem *menu, int index);
|
||||
void displayProgressBar(const char *label);
|
||||
void updateProgressBar(int num, int den);
|
||||
#if defined(REV9E)
|
||||
void displayShutdownProgress(uint32_t progress);
|
||||
#endif
|
||||
|
||||
extern coord_t scrollbar_X;
|
||||
#define SET_SCROLLBAR_X(x) scrollbar_X = (x);
|
||||
|
||||
@@ -38,14 +38,8 @@
|
||||
|
||||
uint8_t switchToMix(uint8_t source)
|
||||
{
|
||||
if (source <= 5*3)
|
||||
return MIXSRC_FIRST_SWITCH + (source-1) / 3;
|
||||
else if (source <= 17)
|
||||
return MIXSRC_SF;
|
||||
else if (source <= 20)
|
||||
return MIXSRC_SG;
|
||||
else
|
||||
return MIXSRC_SH;
|
||||
div_t qr = div(source-1, 3);
|
||||
return qr.quot+MIXSRC_FIRST_SWITCH;
|
||||
}
|
||||
|
||||
int circularIncDec(int current, int inc, int min, int max, IsValueAvailable isValueAvailable)
|
||||
@@ -94,6 +88,10 @@ bool isSourceAvailable(int source)
|
||||
return IS_POT_AVAILABLE(POT1+source-MIXSRC_FIRST_POT);
|
||||
}
|
||||
|
||||
if (source>=MIXSRC_FIRST_SWITCH && source<=MIXSRC_LAST_SWITCH) {
|
||||
return SWITCH_EXISTS(source-MIXSRC_FIRST_SWITCH);
|
||||
}
|
||||
|
||||
#if !defined(HELI)
|
||||
if (source>=MIXSRC_CYC1 && source<=MIXSRC_CYC3)
|
||||
return false;
|
||||
@@ -109,7 +107,7 @@ bool isSourceAvailable(int source)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (source>=MIXSRC_SW1 && source<=MIXSRC_LAST_LOGICAL_SWITCH) {
|
||||
if (source>=MIXSRC_FIRST_LOGICAL_SWITCH && source<=MIXSRC_LAST_LOGICAL_SWITCH) {
|
||||
LogicalSwitchData * cs = lswAddress(source-MIXSRC_SW1);
|
||||
return (cs->func != LS_FUNC_NONE);
|
||||
}
|
||||
@@ -156,20 +154,22 @@ bool isInputSourceAvailable(int source)
|
||||
if (source>=MIXSRC_Rud && source<=MIXSRC_MAX)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_Rud && source<=MIXSRC_MAX)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_TrimRud && source<MIXSRC_SW1)
|
||||
if (source>=MIXSRC_FIRST_TRIM && source<=MIXSRC_LAST_TRIM)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_FIRST_SWITCH && source<=MIXSRC_LAST_SWITCH)
|
||||
return SWITCH_EXISTS(source-MIXSRC_FIRST_SWITCH);
|
||||
|
||||
if (source>=MIXSRC_FIRST_CH && source<=MIXSRC_LAST_CH)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_FIRST_TRAINER && source<=MIXSRC_LAST_TRAINER)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_FIRST_TELEM && source<=MIXSRC_LAST_TELEM)
|
||||
return isTelemetryFieldAvailable(source-MIXSRC_FIRST_TELEM);
|
||||
if (source>=MIXSRC_FIRST_TELEM && source<=MIXSRC_LAST_TELEM) {
|
||||
div_t qr = div(source-MIXSRC_FIRST_TELEM, 3);
|
||||
return isTelemetryFieldAvailable(qr.quot) && isTelemetryFieldComparisonAvailable(qr.quot);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
@@ -196,18 +196,12 @@ bool isSwitchAvailable(int swtch, SwitchContext context)
|
||||
swtch = -swtch;
|
||||
}
|
||||
|
||||
#if defined(REV9E)
|
||||
if (swtch >= SWSRC_SA0 && swtch <= SWSRC_SR2) {
|
||||
if (swtch >= SWSRC_SA0 && swtch <= SWSRC_LAST_SWITCH) {
|
||||
if (!SWITCH_EXISTS(index))
|
||||
return false;
|
||||
if ((swtch-SWSRC_SA1)%3 == 0)
|
||||
return IS_3POS(index);
|
||||
}
|
||||
#else
|
||||
if (swtch == SWSRC_SA1 || swtch == SWSRC_SB1 || swtch == SWSRC_SC1 || swtch == SWSRC_SD1 || swtch == SWSRC_SE1 || swtch == SWSRC_SG1) {
|
||||
return IS_3POS(index);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (swtch >= SWSRC_FIRST_MULTIPOS_SWITCH && swtch <= SWSRC_LAST_MULTIPOS_SWITCH) {
|
||||
int index = (swtch - SWSRC_FIRST_MULTIPOS_SWITCH) / XPOTS_MULTIPOS_COUNT;
|
||||
@@ -350,3 +344,14 @@ bool modelHasNotes()
|
||||
return isFileAvailable(filename);
|
||||
}
|
||||
|
||||
int getFirstAvailableSource(int min, int max, bool (*func)(int))
|
||||
{
|
||||
int retval = MIXSRC_NONE;
|
||||
for (int i = min; i <= max; i++) {
|
||||
if ((*func)(i)) {
|
||||
retval = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -632,7 +632,7 @@ void putsStickName(coord_t x, coord_t y, uint8_t idx, LcdFlags att)
|
||||
}
|
||||
#endif
|
||||
|
||||
void putsMixerSource(coord_t x, coord_t y, uint8_t idx, LcdFlags att)
|
||||
void putsMixerSource(coord_t x, coord_t y, uint32_t idx, LcdFlags att)
|
||||
{
|
||||
if (idx == 0) {
|
||||
lcd_putsiAtt(x, y, STR_VSRCRAW, 0, att); // TODO macro
|
||||
@@ -890,7 +890,12 @@ void displayDate(coord_t x, coord_t y, TelemetryItem & telemetryItem, LcdFlags a
|
||||
lcd_outdezNAtt(lcdNextPos, y, telemetryItem.datetime.sec, att|LEADING0|LEFT, 2);
|
||||
}
|
||||
else {
|
||||
lcd_outdezNAtt(x, y, telemetryItem.datetime.hour, att|LEADING0|LEFT, 2);
|
||||
lcd_outdezNAtt(x, y, telemetryItem.datetime.day, att|LEADING0|LEFT, 2);
|
||||
lcd_putcAtt(lcdLastPos-1, y, '-', att);
|
||||
lcd_outdezNAtt(lcdNextPos, y, telemetryItem.datetime.month, att|LEFT, 2);
|
||||
lcd_putcAtt(lcdLastPos-1, y, '-', att);
|
||||
lcd_outdezAtt(lcdNextPos, y, telemetryItem.datetime.year, att|LEFT);
|
||||
lcd_outdezNAtt(lcdNextPos+FW+1, y, telemetryItem.datetime.hour, att|LEADING0|LEFT, 2);
|
||||
lcd_putcAtt(lcdLastPos, y, ':', att);
|
||||
lcd_outdezNAtt(lcdNextPos, y, telemetryItem.datetime.min, att|LEADING0|LEFT, 2);
|
||||
lcd_putcAtt(lcdLastPos, y, ':', att);
|
||||
|
||||
@@ -169,7 +169,7 @@ void putsStrIdx(coord_t x, coord_t y, const pm_char *str, uint8_t idx, LcdFlags
|
||||
void putsModelName(coord_t x, coord_t y, char *name, uint8_t id, LcdFlags att);
|
||||
void putsSwitches(coord_t x, coord_t y, int8_t swtch, LcdFlags att=0);
|
||||
void putsStickName(coord_t x, coord_t y, uint8_t idx, LcdFlags att=0);
|
||||
void putsMixerSource(coord_t x, coord_t y, uint8_t idx, LcdFlags att=0);
|
||||
void putsMixerSource(coord_t x, coord_t y, uint32_t idx, LcdFlags att=0);
|
||||
void putsFlightMode(coord_t x, coord_t y, int8_t idx, LcdFlags att=0);
|
||||
#if !defined(BOOT)
|
||||
void putsCurveRef(coord_t x, coord_t y, CurveRef &curve, LcdFlags att);
|
||||
|
||||
@@ -321,8 +321,8 @@ void menuGeneralSdManager(uint8_t _event)
|
||||
}
|
||||
}
|
||||
else if (!READ_ONLY() && !strcasecmp(ext, SPORT_FIRMWARE_EXT)) {
|
||||
MENU_ADD_ITEM(STR_FLASH_INTERNAL_MODULE);
|
||||
MENU_ADD_ITEM(STR_FLASH_EXTERNAL_DEVICE);
|
||||
MENU_ADD_ITEM(STR_FLASH_INTERNAL_MODULE);
|
||||
}
|
||||
}
|
||||
if (!READ_ONLY()) {
|
||||
@@ -437,7 +437,10 @@ void menuGeneralSdManager(uint8_t _event)
|
||||
editName(lcdNextPos, y, reusableBuffer.sdmanager.lines[i], SD_SCREEN_FILE_LENGTH-4, _event, attr, 0);
|
||||
if (s_editMode == 0) {
|
||||
unsigned int len = effectiveLen(reusableBuffer.sdmanager.lines[i], SD_SCREEN_FILE_LENGTH-LEN_FILE_EXTENSION);
|
||||
strAppend(&reusableBuffer.sdmanager.lines[i][len], getFileExtension(reusableBuffer.sdmanager.originalName, sizeof(reusableBuffer.sdmanager.originalName)));
|
||||
char * ext = getFileExtension(reusableBuffer.sdmanager.originalName, sizeof(reusableBuffer.sdmanager.originalName));
|
||||
if (ext) {
|
||||
strAppend(&reusableBuffer.sdmanager.lines[i][len], ext);
|
||||
}
|
||||
f_rename(reusableBuffer.sdmanager.originalName, reusableBuffer.sdmanager.lines[i]);
|
||||
REFRESH_FILES();
|
||||
}
|
||||
|
||||
@@ -90,7 +90,9 @@ enum menuGeneralSetupItems {
|
||||
CASE_REVPLUS(ITEM_SETUP_BACKLIGHT_COLOR)
|
||||
ITEM_SETUP_FLASH_BEEP,
|
||||
CASE_SPLASH_PARAM(ITEM_SETUP_DISABLE_SPLASH)
|
||||
CASE_GPS(ITEM_SETUP_LABEL_GPS)
|
||||
CASE_GPS(ITEM_SETUP_TIMEZONE)
|
||||
CASE_GPS(ITEM_SETUP_ADJUST_RTC)
|
||||
CASE_GPS(ITEM_SETUP_GPSFORMAT)
|
||||
CASE_PXX(ITEM_SETUP_COUNTRYCODE)
|
||||
ITEM_SETUP_LANGUAGE,
|
||||
@@ -126,7 +128,7 @@ void menuGeneralSetup(uint8_t event)
|
||||
}
|
||||
#endif
|
||||
|
||||
MENU(STR_MENURADIOSETUP, menuTabGeneral, e_Setup, ITEM_SETUP_MAX, { 2, 2, 1, LABEL(SOUND), 0, 0, 0, 0, 0, 0, 0, CASE_VARIO_CPUARM(LABEL(VARIO)) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, 0, CASE_REVPLUS(0) CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(0) CASE_GPS(0) CASE_PXX(0) 0, 0, IF_FAI_CHOICE(0) CASE_MAVLINK(0) 0, 0, LABEL(TX_MODE), 0, 1/*to force edit mode*/ });
|
||||
MENU(STR_MENURADIOSETUP, menuTabGeneral, e_Setup, ITEM_SETUP_MAX, { 2, 2, 1, LABEL(SOUND), 0, 0, 0, 0, 0, 0, 0, CASE_VARIO_CPUARM(LABEL(VARIO)) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, 0, CASE_REVPLUS(0) CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(LABEL(GPS)) CASE_GPS(0) CASE_GPS(0) CASE_GPS(0) CASE_PXX(0) 0, 0, IF_FAI_CHOICE(0) CASE_MAVLINK(0) 0, 0, LABEL(TX_MODE), 0, 1/*to force edit mode*/ });
|
||||
|
||||
int sub = m_posVert;
|
||||
|
||||
@@ -412,12 +414,20 @@ void menuGeneralSetup(uint8_t event)
|
||||
#endif
|
||||
|
||||
#if defined(FRSKY) && defined(FRSKY_HUB) && defined(GPS)
|
||||
case ITEM_SETUP_LABEL_GPS:
|
||||
lcd_putsLeft(y, STR_GPS);
|
||||
break;
|
||||
|
||||
case ITEM_SETUP_TIMEZONE:
|
||||
lcd_putsLeft(y, STR_TIMEZONE);
|
||||
lcd_outdezAtt(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.timezone, attr|LEFT);
|
||||
if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.timezone, -12, 12);
|
||||
break;
|
||||
|
||||
case ITEM_SETUP_ADJUST_RTC:
|
||||
g_eeGeneral.adjustRTC = onoffMenuItem(g_eeGeneral.adjustRTC, RADIO_SETUP_2ND_COLUMN, y, STR_ADJUST_RTC, attr, event);
|
||||
break;
|
||||
|
||||
case ITEM_SETUP_GPSFORMAT:
|
||||
g_eeGeneral.gpsFormat = selectMenuItem(RADIO_SETUP_2ND_COLUMN, y, STR_GPSCOORD, STR_GPSFORMAT, g_eeGeneral.gpsFormat, 0, 1, attr, event);
|
||||
break;
|
||||
|
||||
@@ -88,12 +88,27 @@ void backupEeprom()
|
||||
|
||||
void menuGeneralVersion(uint8_t event)
|
||||
{
|
||||
if (s_warning_result) {
|
||||
s_warning_result = 0;
|
||||
displayPopup(STR_EEPROMFORMATTING);
|
||||
eeErase(false);
|
||||
#if !defined(SIMU)
|
||||
NVIC_SystemReset();
|
||||
#else
|
||||
exit(0);
|
||||
#endif
|
||||
}
|
||||
|
||||
SIMPLE_MENU(STR_MENUVERSION, menuTabGeneral, e_Vers, 1);
|
||||
|
||||
lcd_putsLeft(MENU_HEADER_HEIGHT+FH, vers_stamp);
|
||||
|
||||
lcd_putsLeft(MENU_HEADER_HEIGHT+6*FH, STR_EEBACKUP);
|
||||
lcd_putsLeft(MENU_HEADER_HEIGHT+5*FH, STR_EEBACKUP);
|
||||
lcd_putsLeft(MENU_HEADER_HEIGHT+6*FH, STR_FACTORYRESET);
|
||||
if (event == EVT_KEY_LONG(KEY_ENTER)) {
|
||||
backupEeprom();
|
||||
}
|
||||
else if (event == EVT_KEY_LONG(KEY_MENU)) {
|
||||
POPUP_CONFIRMATION(STR_CONFIRMRESET);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,8 +211,18 @@ void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFu
|
||||
int16_t val_min = 0;
|
||||
int16_t val_max = 255;
|
||||
if (func == FUNC_RESET) {
|
||||
val_max = FUNC_RESET_PARAM_LAST;
|
||||
lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VFSWRESET, CFN_PARAM(cfn), attr);
|
||||
val_max = FUNC_RESET_PARAM_FIRST_TELEM+lastUsedTelemetryIndex();
|
||||
int param = CFN_PARAM(cfn);
|
||||
if (param < FUNC_RESET_PARAM_FIRST_TELEM) {
|
||||
lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VFSWRESET, param, attr);
|
||||
}
|
||||
else {
|
||||
if (param > FUNC_RESET_PARAM_FIRST_TELEM) {
|
||||
INCDEC_ENABLE_CHECK(isSensorAvailableInResetSpecialFunction);
|
||||
}
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[param-FUNC_RESET_PARAM_FIRST_TELEM];
|
||||
lcd_putsnAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, sensor->label, TELEM_LABEL_LEN, attr|ZCHAR);
|
||||
}
|
||||
}
|
||||
#if defined(OVERRIDE_CHANNEL_FUNCTION)
|
||||
else if (func == FUNC_OVERRIDE_CHANNEL) {
|
||||
|
||||
@@ -346,7 +346,7 @@ void menuModelExpoOne(uint8_t event)
|
||||
|
||||
case EXPO_FIELD_SCALE:
|
||||
lcd_putsLeft(y, STR_SCALE);
|
||||
putsTelemetryChannelValue(EXPO_ONE_2ND_COLUMN, y, ed->srcRaw - MIXSRC_FIRST_TELEM, convertTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1, ed->scale), LEFT|attr);
|
||||
putsTelemetryChannelValue(EXPO_ONE_2ND_COLUMN, y, (ed->srcRaw - MIXSRC_FIRST_TELEM)/3, convertTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1, ed->scale), LEFT|attr);
|
||||
if (attr) ed->scale = checkIncDec(event, ed->scale, 0, maxTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1), EE_MODEL);
|
||||
break;
|
||||
|
||||
@@ -396,7 +396,7 @@ void menuModelExpoOne(uint8_t event)
|
||||
|
||||
int x512 = getValue(ed->srcRaw);
|
||||
if (ed->srcRaw >= MIXSRC_FIRST_TELEM) {
|
||||
putsTelemetryChannelValue(LCD_W-8, 6*FH, ed->srcRaw - MIXSRC_FIRST_TELEM, x512, 0);
|
||||
putsTelemetryChannelValue(LCD_W-8, 6*FH, (ed->srcRaw - MIXSRC_FIRST_TELEM) / 3, x512, 0);
|
||||
if (ed->scale > 0) x512 = (x512 * 1024) / convertTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1, ed->scale);
|
||||
}
|
||||
else {
|
||||
@@ -869,7 +869,7 @@ void menuModelExpoMix(uint8_t expo, uint8_t event)
|
||||
if (cur-s_pgOfs >= 0 && cur-s_pgOfs < NUM_BODY_LINES) {
|
||||
uint8_t attr = ((s_copyMode || sub != cur) ? 0 : INVERS);
|
||||
if (expo) {
|
||||
ed->weight = GVAR_MENU_ITEM(EXPO_LINE_WEIGHT_POS, y, ed->weight, MIN_EXPO_WEIGHT, 100, attr | (isExpoActive(i) ? BOLD : 0), 0, event);
|
||||
GVAR_MENU_ITEM(EXPO_LINE_WEIGHT_POS, y, ed->weight, MIN_EXPO_WEIGHT, 100, attr | (isExpoActive(i) ? BOLD : 0), 0, 0);
|
||||
displayExpoLine(y, ed);
|
||||
if (ed->mode!=3) {
|
||||
lcd_putc(EXPO_LINE_SIDE_POS, y, ed->mode == 2 ? 126 : 127);
|
||||
@@ -884,7 +884,7 @@ void menuModelExpoMix(uint8_t expo, uint8_t event)
|
||||
|
||||
putsMixerSource(MIX_LINE_SRC_POS, y, md->srcRaw, 0);
|
||||
|
||||
gvarWeightItem(MIX_LINE_WEIGHT_POS, y, md, attr | (isMixActive(i) ? BOLD : 0), event);
|
||||
gvarWeightItem(MIX_LINE_WEIGHT_POS, y, md, attr | (isMixActive(i) ? BOLD : 0), 0);
|
||||
|
||||
displayMixLine(y, md);
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@ void menuModelLogicalSwitches(uint8_t event)
|
||||
}
|
||||
}
|
||||
else if (cstate == LS_FAMILY_COMP) {
|
||||
v1_val = (uint8_t)cs->v1;
|
||||
v1_val = cs->v1;
|
||||
putsMixerSource(CSW_2ND_COLUMN, y, v1_val, attr1);
|
||||
putsMixerSource(CSW_3RD_COLUMN, y, cs->v2, attr2);
|
||||
INCDEC_SET_FLAG(EE_MODEL | INCDEC_SOURCE);
|
||||
@@ -178,7 +178,7 @@ void menuModelLogicalSwitches(uint8_t event)
|
||||
INCDEC_ENABLE_CHECK(NULL);
|
||||
}
|
||||
else {
|
||||
v1_val = (uint8_t)cs->v1;
|
||||
v1_val = cs->v1;
|
||||
putsMixerSource(CSW_2ND_COLUMN, y, v1_val, attr1);
|
||||
if (horz == 1) {
|
||||
INCDEC_SET_FLAG(EE_MODEL | INCDEC_SOURCE);
|
||||
|
||||
@@ -149,7 +149,9 @@ enum SensorFields {
|
||||
SENSOR_FIELD_PARAM2,
|
||||
SENSOR_FIELD_PARAM3,
|
||||
SENSOR_FIELD_PARAM4,
|
||||
SENSOR_FIELD_INPUT_FLAGS,
|
||||
SENSOR_FIELD_AUTOOFFSET,
|
||||
SENSOR_FIELD_FILTER,
|
||||
SENSOR_FIELD_PERSISTENT,
|
||||
SENSOR_FIELD_LOGS,
|
||||
SENSOR_FIELD_MAX
|
||||
};
|
||||
@@ -200,18 +202,21 @@ bool isSensorAvailable(int sensor)
|
||||
#define SENSOR_2ND_COLUMN (12*FW)
|
||||
#define SENSOR_3RD_COLUMN (18*FW)
|
||||
|
||||
#define SENSOR_UNIT_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula >= TELEM_FORMULA_CELL) ? HIDDEN_ROW : ((sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS) ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PREC_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula >= TELEM_FORMULA_CELL) ? HIDDEN_ROW : ((sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME) ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PARAM1_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS) ? HIDDEN_ROW : (uint8_t)0
|
||||
#define SENSOR_PARAM2_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS || (sensor->type==TELEM_TYPE_CALCULATED && sensor->formula==TELEM_FORMULA_CONSUMPTION)) ? HIDDEN_ROW : (uint8_t)0
|
||||
#define SENSOR_PARAM3_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_PARAM4_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_UNIT_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_PREC_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_PARAM1_ROWS (sensor->unit >= UNIT_FIRST_VIRTUAL ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PARAM2_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS || (sensor->type==TELEM_TYPE_CALCULATED && (sensor->formula==TELEM_FORMULA_CONSUMPTION || sensor->formula==TELEM_FORMULA_TOTALIZE)) ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PARAM3_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_PARAM4_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_AUTOOFFSET_ROWS (sensor->unit != UNIT_RPMS && sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_FILTER_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_PERSISTENT_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
|
||||
void menuModelSensor(uint8_t event)
|
||||
{
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[s_currIdx];
|
||||
|
||||
SUBMENU(STR_MENUSENSOR, SENSOR_FIELD_MAX, {0, 0, sensor->type == TELEM_TYPE_CALCULATED ? (uint8_t)0 : (uint8_t)1, SENSOR_UNIT_ROWS, SENSOR_PREC_ROWS, SENSOR_PARAM1_ROWS, SENSOR_PARAM2_ROWS, SENSOR_PARAM3_ROWS, SENSOR_PARAM4_ROWS, 0 });
|
||||
SUBMENU(STR_MENUSENSOR, SENSOR_FIELD_MAX, {0, 0, sensor->type == TELEM_TYPE_CALCULATED ? (uint8_t)0 : (uint8_t)1, SENSOR_UNIT_ROWS, SENSOR_PREC_ROWS, SENSOR_PARAM1_ROWS, SENSOR_PARAM2_ROWS, SENSOR_PARAM3_ROWS, SENSOR_PARAM4_ROWS, SENSOR_AUTOOFFSET_ROWS, SENSOR_FILTER_ROWS, SENSOR_PERSISTENT_ROWS, 0 });
|
||||
lcd_outdezAtt(PSIZE(TR_MENUSENSOR)*FW+1, 0, s_currIdx+1, INVERS|LEFT);
|
||||
|
||||
putsTelemetryChannelValue(SENSOR_2ND_COLUMN, 0, s_currIdx, getValue(MIXSRC_FIRST_TELEM+3*s_currIdx), LEFT);
|
||||
@@ -223,7 +228,7 @@ void menuModelSensor(uint8_t event)
|
||||
int k = i + s_pgOfs;
|
||||
|
||||
for (int j=0; j<k; j++) {
|
||||
if (mstate_tab[j] == HIDDEN_ROW)
|
||||
if (mstate_tab[j+1] == HIDDEN_ROW)
|
||||
k++;
|
||||
}
|
||||
|
||||
@@ -236,12 +241,13 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_TYPE:
|
||||
sensor->type = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_TYPE, "\012Custom\0 Calculated", sensor->type, 0, 1, attr, event);
|
||||
sensor->type = selectMenuItem(SENSOR_2ND_COLUMN, y, NO_INDENT(STR_TYPE), STR_VSENSORTYPES, sensor->type, 0, 1, attr, event);
|
||||
if (attr && checkIncDec_Ret) {
|
||||
sensor->instance = 0;
|
||||
if (sensor->type == TELEM_TYPE_CALCULATED) {
|
||||
sensor->param = 0;
|
||||
sensor->inputFlags = 0;
|
||||
sensor->filter = 0;
|
||||
sensor->autoOffset = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -264,7 +270,7 @@ void menuModelSensor(uint8_t event)
|
||||
}
|
||||
}
|
||||
else {
|
||||
sensor->formula = selectMenuItem(SENSOR_2ND_COLUMN, y, "Formula", "\010Add\0 Average\0Min\0 Max\0 MultiplyCell\0 ConsumptDistance", sensor->formula, 0, TELEM_FORMULA_DIST, attr, event);
|
||||
sensor->formula = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_FORMULA, STR_VFORMULAS, sensor->formula, 0, TELEM_FORMULA_LAST, attr, event);
|
||||
if (attr && checkIncDec_Ret) {
|
||||
sensor->param = 0;
|
||||
if (sensor->formula == TELEM_FORMULA_CELL) {
|
||||
@@ -284,7 +290,7 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_UNIT:
|
||||
lcd_putsLeft(y, "Unit");
|
||||
lcd_putsLeft(y, STR_UNIT);
|
||||
// TODO flash saving with selectMenuItem where I copied those 2 lines?
|
||||
lcd_putsiAtt(SENSOR_2ND_COLUMN, y, STR_VTELEMUNIT, sensor->unit, attr);
|
||||
if (attr) {
|
||||
@@ -296,7 +302,7 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_PRECISION:
|
||||
sensor->prec = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_PRECISION, "\005PREC0PREC1PREC2", sensor->prec, 0, 2, attr, event);
|
||||
sensor->prec = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_PRECISION, STR_VPREC, sensor->prec, 0, 2, attr, event);
|
||||
if (attr && checkIncDec_Ret) {
|
||||
telemetryItems[s_currIdx].clear();
|
||||
}
|
||||
@@ -305,7 +311,7 @@ void menuModelSensor(uint8_t event)
|
||||
case SENSOR_FIELD_PARAM1:
|
||||
if (sensor->type == TELEM_TYPE_CALCULATED) {
|
||||
if (sensor->formula == TELEM_FORMULA_CELL) {
|
||||
lcd_putsLeft(y, "Cells sensor");
|
||||
lcd_putsLeft(y, STR_CELLSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->cell.source ? MIXSRC_FIRST_TELEM+3*(sensor->cell.source-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->cell.source = checkIncDec(event, sensor->cell.source, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isCellsSensor);
|
||||
@@ -313,7 +319,7 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_DIST) {
|
||||
lcd_putsLeft(y, "GPS sensor");
|
||||
lcd_putsLeft(y, STR_GPSSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->dist.gps ? MIXSRC_FIRST_TELEM+3*(sensor->dist.gps-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->dist.gps = checkIncDec(event, sensor->dist.gps, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isGPSSensor);
|
||||
@@ -321,33 +327,49 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_CONSUMPTION) {
|
||||
lcd_putsLeft(y, "Amps sensor");
|
||||
lcd_putsLeft(y, STR_CURRENTSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->consumption.source ? MIXSRC_FIRST_TELEM+3*(sensor->consumption.source-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->consumption.source = checkIncDec(event, sensor->consumption.source, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isCurrentSensor);
|
||||
}
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_TOTALIZE) {
|
||||
lcd_putsLeft(y, NO_INDENT(STR_SOURCE));
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->consumption.source ? MIXSRC_FIRST_TELEM+3*(sensor->consumption.source-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->consumption.source = checkIncDec(event, sensor->consumption.source, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isTelemetryFieldComparisonAvailable);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
lcd_putsLeft(y, "Ratio");
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.ratio, 0, 30000);
|
||||
if (sensor->custom.ratio == 0)
|
||||
lcd_putcAtt(SENSOR_2ND_COLUMN, y, '-', attr);
|
||||
else
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.ratio, LEFT|attr|PREC1);
|
||||
break;
|
||||
if (sensor->unit == UNIT_RPMS) {
|
||||
lcd_putsLeft(y, NO_INDENT(STR_BLADES));
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.ratio, 1, 30000);
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.ratio, LEFT|attr);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
lcd_putsLeft(y, STR_RATIO);
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.ratio, 0, 30000);
|
||||
if (sensor->custom.ratio == 0)
|
||||
lcd_putcAtt(SENSOR_2ND_COLUMN, y, '-', attr);
|
||||
else
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.ratio, LEFT|attr|PREC1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// no break
|
||||
|
||||
case SENSOR_FIELD_PARAM2:
|
||||
if (sensor->type == TELEM_TYPE_CALCULATED) {
|
||||
if (sensor->formula == TELEM_FORMULA_CELL) {
|
||||
sensor->cell.index = selectMenuItem(SENSOR_2ND_COLUMN, y, "Cell index", "\007Lowest\0001\0 2\0 3\0 4\0 5\0 6\0 HighestDelta\0", sensor->cell.index, 0, 8, attr, event);
|
||||
sensor->cell.index = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_CELLINDEX, STR_VCELLINDEX, sensor->cell.index, 0, 8, attr, event);
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_DIST) {
|
||||
lcd_putsLeft(y, "Alt sensor");
|
||||
lcd_putsLeft(y, STR_ALTSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->dist.alt ? MIXSRC_FIRST_TELEM+3*(sensor->dist.alt-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->dist.alt = checkIncDec(event, sensor->dist.alt, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isAltSensor);
|
||||
@@ -355,6 +377,12 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (sensor->unit == UNIT_RPMS) {
|
||||
lcd_putsLeft(y, STR_MULTIPLIER);
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.offset, 1, 30000);
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.offset, LEFT|attr);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
lcd_putsLeft(y, NO_INDENT(STR_OFFSET));
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.offset, -30000, +30000);
|
||||
@@ -369,7 +397,7 @@ void menuModelSensor(uint8_t event)
|
||||
|
||||
case SENSOR_FIELD_PARAM4:
|
||||
{
|
||||
putsStrIdx(0, y, "Source", k-SENSOR_FIELD_PARAM1+1);
|
||||
putsStrIdx(0, y, NO_INDENT(STR_SOURCE), k-SENSOR_FIELD_PARAM1+1);
|
||||
int8_t & source = sensor->calc.sources[k-SENSOR_FIELD_PARAM1];
|
||||
if (attr) {
|
||||
source = checkIncDec(event, source, -TELEM_VALUES_MAX, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isSensorAvailable);
|
||||
@@ -384,12 +412,20 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
|
||||
case SENSOR_FIELD_INPUT_FLAGS:
|
||||
sensor->inputFlags = selectMenuItem(SENSOR_2ND_COLUMN, y, "Options", "\013None\0 ""Auto Offset""Filter\0", sensor->inputFlags, 0, TELEM_INPUT_FLAGS_MAX, attr, event);
|
||||
case SENSOR_FIELD_AUTOOFFSET:
|
||||
ON_OFF_MENU_ITEM(sensor->autoOffset, SENSOR_2ND_COLUMN, y, STR_AUTOOFFSET, attr, event);
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_FILTER:
|
||||
ON_OFF_MENU_ITEM(sensor->filter, SENSOR_2ND_COLUMN, y, STR_FILTER, attr, event);
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_PERSISTENT:
|
||||
ON_OFF_MENU_ITEM(sensor->persistent, SENSOR_2ND_COLUMN, y, NO_INDENT(STR_PERSISTENT), attr, event);
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_LOGS:
|
||||
ON_OFF_MENU_ITEM(sensor->logs, SENSOR_2ND_COLUMN, y, "Logs", attr, event);
|
||||
ON_OFF_MENU_ITEM(sensor->logs, SENSOR_2ND_COLUMN, y, STR_LOGS, attr, event);
|
||||
break;
|
||||
|
||||
}
|
||||
@@ -478,6 +514,10 @@ void menuModelTelemetry(uint8_t event)
|
||||
else {
|
||||
lcd_putsAtt(TELEM_COL2, y, "---", 0); // TODO shortcut
|
||||
}
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[index];
|
||||
if (sensor->type == TELEM_TYPE_CUSTOM) {
|
||||
lcd_outdezAtt(TELEM_COL3+1*FW, y, sensor->instance, LEFT);
|
||||
}
|
||||
if (attr) {
|
||||
s_editMode = 0;
|
||||
s_currIdx = index;
|
||||
@@ -501,6 +541,8 @@ void menuModelTelemetry(uint8_t event)
|
||||
|
||||
case ITEM_TELEMETRY_SENSORS_LABEL:
|
||||
lcd_putsLeft(y, STR_TELEMETRY_SENSORS);
|
||||
lcd_putsAtt(TELEM_COL2, y, STR_VALUE, 0);
|
||||
lcd_putsAtt(TELEM_COL3+1*FW, y, STR_ID, 0);
|
||||
break;
|
||||
|
||||
case ITEM_TELEMETRY_NEWSENSOR:
|
||||
@@ -512,6 +554,9 @@ void menuModelTelemetry(uint8_t event)
|
||||
s_currIdx = res;
|
||||
pushMenu(menuModelSensor);
|
||||
}
|
||||
else {
|
||||
POPUP_WARNING(STR_TELEMETRYFULL);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -590,8 +635,8 @@ void menuModelTelemetry(uint8_t event)
|
||||
|
||||
#if defined(REV9E)
|
||||
case ITEM_TELEMETRY_TOP_LCD_TIMER:
|
||||
lcd_putsLeft(y, "Top LCD Timer");
|
||||
putsStrIdx(TELEM_COL2, y, "Timer", g_model.topLcdTimer+1, attr);
|
||||
lcd_putsLeft(y, STR_TOPLCDTIMER);
|
||||
putsStrIdx(TELEM_COL2, y, STR_TIMER, g_model.topLcdTimer+1, attr);
|
||||
if (attr) {
|
||||
g_model.topLcdTimer = checkIncDec(event, g_model.topLcdTimer, 0, MAX_TIMERS-1, EE_MODEL);
|
||||
}
|
||||
@@ -728,7 +773,7 @@ void menuModelTelemetry(uint8_t event)
|
||||
const coord_t pos[] = {TELEM_COL1, TELEM_COL2, TELEM_COL3};
|
||||
putsMixerSource(pos[c], y, value, cellAttr);
|
||||
if (cellAttr && s_editMode>0) {
|
||||
CHECK_INCDEC_MODELVAR_ZERO_CHECK(event, value, MIXSRC_LAST_TELEM, isSourceAvailable);
|
||||
value = checkIncDec(event, value, 0, MIXSRC_LAST_TELEM, EE_MODEL|INCDEC_SOURCE|NO_INCDEC_MARKS, isSourceAvailable);
|
||||
}
|
||||
}
|
||||
if (attr && m_posHorz == NUM_LINE_ITEMS) {
|
||||
|
||||
@@ -202,6 +202,7 @@ bool isSwitchAvailableInCustomFunctions(int swtch);
|
||||
bool isSwitchAvailableInMixes(int swtch);
|
||||
bool isSwitchAvailableInTimers(int swtch);
|
||||
bool isModuleAvailable(int module);
|
||||
int getFirstAvailableSource(int min, int max, bool (*func)(int));
|
||||
#define AUTOSWITCH_ENTER_LONG() (attr && event==EVT_KEY_LONG(KEY_ENTER))
|
||||
#define CHECK_INCDEC_SWITCH(event, var, min, max, flags, available) \
|
||||
var = checkIncDec(event, var, min, max, (flags)|INCDEC_SWITCH, available)
|
||||
@@ -326,7 +327,8 @@ extern uint8_t s_warning_info_flags;
|
||||
|
||||
#define NAVIGATION_MENUS
|
||||
#define MENU_ADD_ITEM(s) s_menu[s_menu_count++] = s
|
||||
#define MENU_MAX_LINES 6
|
||||
#define MENU_MAX_LINES 12
|
||||
#define MENU_MAX_DISPLAY_LINES 6
|
||||
#define MENU_ADD_SD_ITEM(s) MENU_ADD_ITEM(s)
|
||||
#define MENU_LINE_LENGTH (LEN_MODEL_NAME+12)
|
||||
extern const char *s_menu[MENU_MAX_LINES];
|
||||
|
||||
@@ -42,6 +42,7 @@ horzpos_t m_posHorz;
|
||||
int8_t s_editMode;
|
||||
uint8_t s_noHi;
|
||||
uint8_t calibrationState;
|
||||
int s_source = MIXSRC_NONE;
|
||||
|
||||
#if defined(AUTOSWITCH)
|
||||
int8_t checkIncDecMovedSwitch(int8_t val)
|
||||
@@ -52,7 +53,7 @@ int8_t checkIncDecMovedSwitch(int8_t val)
|
||||
div_t info = switchInfo(swtch);
|
||||
if (IS_TOGGLE(info.quot)) {
|
||||
if (info.rem != 0) {
|
||||
val = (val == swtch ? swtch+2 : swtch);
|
||||
val = (val == swtch ? swtch-2 : swtch);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -70,6 +71,44 @@ INIT_STOPS(stops100, 3, -100, 0, 100)
|
||||
INIT_STOPS(stops1000, 3, -1000, 0, 1000)
|
||||
INIT_STOPS(stopsSwitch, 15, SWSRC_FIRST, CATEGORY_END(-SWSRC_FIRST_LOGICAL_SWITCH), CATEGORY_END(-SWSRC_FIRST_TRIM), CATEGORY_END(-SWSRC_LAST_SWITCH+1), 0, CATEGORY_END(SWSRC_LAST_SWITCH), CATEGORY_END(SWSRC_FIRST_TRIM-1), CATEGORY_END(SWSRC_FIRST_LOGICAL_SWITCH-1), SWSRC_LAST)
|
||||
|
||||
void onLongEnterPress(const char *result)
|
||||
{
|
||||
if (result == STR_MENU_INPUTS)
|
||||
s_source = getFirstAvailableSource(MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, isInputAvailable)+1;
|
||||
#if defined(LUA_MODEL_SCRIPTS)
|
||||
else if (result == STR_MENU_LUA)
|
||||
s_source = getFirstAvailableSource(MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, isSourceAvailable);
|
||||
#endif
|
||||
else if (result == STR_MENU_STICKS)
|
||||
s_source = MIXSRC_FIRST_STICK;
|
||||
else if (result == STR_MENU_POTS)
|
||||
s_source = MIXSRC_FIRST_POT;
|
||||
else if (result == STR_MENU_MAX)
|
||||
s_source = MIXSRC_MAX;
|
||||
else if (result == STR_MENU_HELI)
|
||||
s_source = MIXSRC_FIRST_HELI;
|
||||
else if (result == STR_MENU_TRIMS)
|
||||
s_source = MIXSRC_FIRST_TRIM;
|
||||
else if (result == STR_MENU_SWITCHES)
|
||||
s_source = MIXSRC_FIRST_SWITCH;
|
||||
else if (result == STR_MENU_TRAINER)
|
||||
s_source = MIXSRC_FIRST_TRAINER;
|
||||
else if (result == STR_MENU_CHANNELS)
|
||||
s_source = getFirstAvailableSource(MIXSRC_FIRST_CH, MIXSRC_LAST_CH, isSourceAvailable);
|
||||
else if (result == STR_MENU_GVARS)
|
||||
s_source = MIXSRC_FIRST_GVAR;
|
||||
|
||||
else if (result == STR_MENU_TELEMETRY) {
|
||||
for (int i = 0; i < TELEM_VALUES_MAX; i++) {
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[i];
|
||||
if (sensor->isAvailable()) {
|
||||
s_source = MIXSRC_FIRST_TELEM + 3*i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int checkIncDec(unsigned int event, int val, int i_min, int i_max, unsigned int i_flags, IsValueAvailable isValueAvailable, const CheckIncDecStops &stops)
|
||||
{
|
||||
int newval = val;
|
||||
@@ -207,6 +246,56 @@ int checkIncDec(unsigned int event, int val, int i_min, int i_max, unsigned int
|
||||
else {
|
||||
checkIncDec_Ret = 0;
|
||||
}
|
||||
|
||||
if (i_flags & INCDEC_SOURCE) {
|
||||
if (event == EVT_KEY_LONG(KEY_ENTER)) {
|
||||
killEvents(event);
|
||||
s_source = MIXSRC_NONE;
|
||||
|
||||
if (i_min <= MIXSRC_FIRST_INPUT && i_max >= MIXSRC_FIRST_INPUT) {
|
||||
if (getFirstAvailableSource(MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, isInputAvailable) != MIXSRC_NONE)
|
||||
MENU_ADD_ITEM(STR_MENU_INPUTS);
|
||||
}
|
||||
#if defined(LUA_MODEL_SCRIPTS)
|
||||
if (i_min <= MIXSRC_FIRST_LUA && i_max >= MIXSRC_FIRST_LUA) {
|
||||
if (getFirstAvailableSource(MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, isSourceAvailable) != MIXSRC_NONE)
|
||||
MENU_ADD_ITEM(STR_MENU_LUA);
|
||||
}
|
||||
#endif
|
||||
if (i_min <= MIXSRC_FIRST_STICK && i_max >= MIXSRC_FIRST_STICK) MENU_ADD_ITEM(STR_MENU_STICKS);
|
||||
if (i_min <= MIXSRC_FIRST_POT && i_max >= MIXSRC_FIRST_POT) MENU_ADD_ITEM(STR_MENU_POTS);
|
||||
if (i_min <= MIXSRC_MAX && i_max >= MIXSRC_MAX) MENU_ADD_ITEM(STR_MENU_MAX);
|
||||
#if defined(HELI)
|
||||
if (i_min <= MIXSRC_FIRST_HELI && i_max >= MIXSRC_FIRST_HELI) MENU_ADD_ITEM(STR_MENU_HELI);
|
||||
#endif
|
||||
if (i_min <= MIXSRC_FIRST_TRIM && i_max >= MIXSRC_FIRST_TRIM) MENU_ADD_ITEM(STR_MENU_TRIMS);
|
||||
if (i_min <= MIXSRC_FIRST_SWITCH && i_max >= MIXSRC_FIRST_SWITCH) MENU_ADD_ITEM(STR_MENU_SWITCHES);
|
||||
if (i_min <= MIXSRC_FIRST_TRAINER && i_max >= MIXSRC_FIRST_TRAINER) MENU_ADD_ITEM(STR_MENU_TRAINER);
|
||||
if (i_min <= MIXSRC_FIRST_CH && i_max >= MIXSRC_FIRST_CH) MENU_ADD_ITEM(STR_MENU_CHANNELS);
|
||||
if (i_min <= MIXSRC_FIRST_GVAR && i_max >= MIXSRC_FIRST_GVAR && isValueAvailable(MIXSRC_FIRST_GVAR))
|
||||
MENU_ADD_ITEM(STR_MENU_GVARS);
|
||||
|
||||
if (i_min <= MIXSRC_FIRST_TELEM && i_max >= MIXSRC_FIRST_TELEM) {
|
||||
bool available = false;
|
||||
for (int i = 0; i < TELEM_VALUES_MAX; i++) {
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[i];
|
||||
if (sensor->isAvailable()) {
|
||||
available = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (available)
|
||||
MENU_ADD_ITEM(STR_MENU_TELEMETRY);
|
||||
}
|
||||
menuHandler = onLongEnterPress;
|
||||
}
|
||||
if (s_source != MIXSRC_NONE) {
|
||||
newval = s_source;
|
||||
if (s_source != MIXSRC_MAX)
|
||||
s_editMode = 1;
|
||||
s_source = MIXSRC_NONE;
|
||||
}
|
||||
}
|
||||
return newval;
|
||||
}
|
||||
|
||||
@@ -229,6 +318,7 @@ void onLongMenuPress(const char *result)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
tmr10ms_t menuEntryTime;
|
||||
|
||||
void check(const char *name, check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTabSize, const pm_uint8_t *horTab, uint8_t horTabMax, vertpos_t rowcount, uint8_t flags)
|
||||
|
||||
@@ -127,18 +127,18 @@ const char * displayMenu(uint8_t event)
|
||||
{
|
||||
const char * result = NULL;
|
||||
|
||||
uint8_t display_count = min(s_menu_count, (uint16_t)MENU_MAX_LINES);
|
||||
uint8_t display_count = min(s_menu_count, (uint16_t)MENU_MAX_DISPLAY_LINES);
|
||||
uint8_t y = (display_count >= 5 ? MENU_Y - FH - 1 : MENU_Y);
|
||||
drawFilledRect(MENU_X, y, MENU_W, display_count * (FH+1) + 2, SOLID, ERASE);
|
||||
lcd_rect(MENU_X, y, MENU_W, display_count * (FH+1) + 2);
|
||||
|
||||
for (uint8_t i=0; i<display_count; i++) {
|
||||
lcd_putsAtt(MENU_X+6, i*(FH+1) + y + 2, s_menu[i], s_menu_flags);
|
||||
lcd_putsAtt(MENU_X+6, i*(FH+1) + y + 2, s_menu[i+s_menu_offset], s_menu_flags);
|
||||
if (i == s_menu_item) drawFilledRect(MENU_X+1, i*(FH+1) + y + 1, MENU_W-2, 9);
|
||||
}
|
||||
|
||||
if (s_menu_count > display_count) {
|
||||
displayScrollbar(MENU_X+MENU_W-1, y+1, MENU_MAX_LINES * (FH+1), s_menu_offset, s_menu_count, MENU_MAX_LINES);
|
||||
displayScrollbar(MENU_X+MENU_W-1, y+1, MENU_MAX_DISPLAY_LINES * (FH+1), s_menu_offset, s_menu_count, display_count);
|
||||
}
|
||||
|
||||
switch(event) {
|
||||
@@ -152,9 +152,9 @@ const char * displayMenu(uint8_t event)
|
||||
result = STR_UPDATE_LIST;
|
||||
}
|
||||
else {
|
||||
s_menu_item = display_count - 1;
|
||||
if (s_menu_count > MENU_MAX_LINES) {
|
||||
s_menu_offset = s_menu_count - display_count;
|
||||
s_menu_item = min(display_count, (uint8_t)MENU_MAX_DISPLAY_LINES)-1;
|
||||
if (s_menu_count > MENU_MAX_DISPLAY_LINES) {
|
||||
s_menu_offset = s_menu_count - MENU_MAX_DISPLAY_LINES;
|
||||
result = STR_UPDATE_LIST;
|
||||
}
|
||||
}
|
||||
@@ -179,7 +179,7 @@ const char * displayMenu(uint8_t event)
|
||||
break;
|
||||
CASE_EVT_ROTARY_BREAK
|
||||
case EVT_KEY_BREAK(KEY_ENTER):
|
||||
result = s_menu[s_menu_item];
|
||||
result = s_menu[s_menu_item+s_menu_offset];
|
||||
// no break
|
||||
case EVT_KEY_BREAK(KEY_EXIT):
|
||||
s_menu_count = 0;
|
||||
|
||||
@@ -36,6 +36,10 @@
|
||||
|
||||
#include "../../opentx.h"
|
||||
|
||||
const pm_uchar about_bmp[] PROGMEM = {
|
||||
#include "../../bitmaps/Taranis/about.lbm"
|
||||
};
|
||||
|
||||
enum AboutScreens {
|
||||
ABOUT_OPENTX,
|
||||
ABOUT_BERTRAND,
|
||||
@@ -78,6 +82,10 @@ void menuAboutView(uint8_t event)
|
||||
break;
|
||||
}
|
||||
|
||||
lcd_bmp(0, 0, about_bmp);
|
||||
lcd_putsAtt(64, 0, STR_ABOUTUS, DBLSIZE);
|
||||
lcd_hline(ABOUT_X, 18, 120);
|
||||
lcd_hline(ABOUT_X, 19, 130, GREY_DEFAULT);
|
||||
LcdFlags att = GREY(max(0, 15-greyIndex/2));
|
||||
|
||||
uint8_t screenDuration = 150;
|
||||
|
||||
@@ -117,7 +117,7 @@ void doMainScreenGraphics()
|
||||
|
||||
void displayTrims(uint8_t phase)
|
||||
{
|
||||
for (unsigned int i=0; i<NUM_STICKS; ++i) {
|
||||
for (unsigned int i=0; i<NUM_STICKS; i++) {
|
||||
coord_t x[4] = { TRIM_LH_X, TRIM_LV_X, TRIM_RV_X, TRIM_RH_X };
|
||||
uint8_t vert[4] = { 0, 1, 1, 0 };
|
||||
coord_t xm, ym;
|
||||
@@ -159,9 +159,9 @@ void displayTrims(uint8_t phase)
|
||||
if (exttrim) {
|
||||
lcd_hline(xm-1, ym, 3);
|
||||
}
|
||||
if (g_model.displayTrims != DISPLAY_TRIMS_NEVER) {
|
||||
if ((g_model.displayTrims == DISPLAY_TRIMS_ALWAYS && dir != 0) || (trimsDisplayTimer > 0 && (trimsDisplayMask & (1<<stickIndex)))) {
|
||||
lcd_outdezAtt(dir>0 ? 25 : 57, xm-2, -abs(dir), TINSIZE|VERTICAL);
|
||||
if (g_model.displayTrims != DISPLAY_TRIMS_NEVER && dir != 0) {
|
||||
if (g_model.displayTrims == DISPLAY_TRIMS_ALWAYS || (trimsDisplayTimer > 0 && (trimsDisplayMask & (1<<i)))) {
|
||||
lcd_outdezAtt(dir>0 ? 22 : 54, xm-2, -abs(dir/5), TINSIZE|VERTICAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -182,8 +182,8 @@ void displayTrims(uint8_t phase)
|
||||
lcd_vline(xm, ym-1, 3);
|
||||
}
|
||||
if (g_model.displayTrims != DISPLAY_TRIMS_NEVER && dir != 0) {
|
||||
if (g_model.displayTrims == DISPLAY_TRIMS_ALWAYS || (trimsDisplayTimer > 0 && (trimsDisplayMask & (1<<stickIndex)))) {
|
||||
lcd_outdezAtt((stickIndex==0 ? TRIM_LH_X : TRIM_RH_X)+(dir>0 ? -9 : 22), ym-2, -abs(dir), TINSIZE);
|
||||
if (g_model.displayTrims == DISPLAY_TRIMS_ALWAYS || (trimsDisplayTimer > 0 && (trimsDisplayMask & (1<<i)))) {
|
||||
lcd_outdezAtt((stickIndex==0 ? TRIM_LH_X : TRIM_RH_X)+(dir>0 ? -11 : 20), ym-2, -abs(dir/5), TINSIZE);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -571,7 +571,6 @@ void menuMainView(uint8_t event)
|
||||
lcd_bmp(BITMAP_X, BITMAP_Y, modelBitmap);
|
||||
|
||||
// Switches
|
||||
#if defined(REV9E)
|
||||
if (getSwitchCount() > 8) {
|
||||
for (int i=0; i<NUM_SWITCHES; ++i) {
|
||||
div_t qr = div(i, 9);
|
||||
@@ -591,39 +590,13 @@ void menuMainView(uint8_t event)
|
||||
int index = 0;
|
||||
for (int i=0; i<NUM_SWITCHES; ++i) {
|
||||
if (SWITCH_EXISTS(i)) {
|
||||
getvalue_t val = getValue(MIXSRC_SA+i);
|
||||
getvalue_t val = getValue(MIXSRC_FIRST_SWITCH+i);
|
||||
getvalue_t sw = ((val < 0) ? 3*i+1 : ((val == 0) ? 3*i+2 : 3*i+3));
|
||||
putsSwitches((g_eeGeneral.view == VIEW_INPUTS) ? (index<4 ? 8*FW+3 : 24*FW+1) : (index<4 ? 3*FW+2 : 8*FW-1), (index%4)*FH+3*FH, sw, 0);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
for (int i=0; i<8; ++i) {
|
||||
getvalue_t sw;
|
||||
getvalue_t val;
|
||||
// TODO simplify this + reuse code in checkSwitches() + Menu MODELSETUP
|
||||
switch(i) {
|
||||
case 5:
|
||||
sw = getValue(MIXSRC_SF) > 0 ? 3*i+2 : 3*i+1;
|
||||
break;
|
||||
case 6:
|
||||
val = getValue(MIXSRC_SG);
|
||||
sw = ((val < 0) ? 3*i : ((val == 0) ? 3*i+1 : 3*i+2));
|
||||
break;
|
||||
case 7:
|
||||
sw = getValue(MIXSRC_SH) > 0 ? 3*i+1 : 3*i;
|
||||
break;
|
||||
default:
|
||||
{
|
||||
val = getValue(MIXSRC_SA+i);
|
||||
sw = ((val < 0) ? 3*i+1 : ((val == 0) ? 3*i+2 : 3*i+3));
|
||||
break;
|
||||
}
|
||||
}
|
||||
putsSwitches((g_eeGeneral.view == VIEW_INPUTS) ? (i<4 ? 8*FW+3 : 24*FW+1) : (i<4 ? 3*FW+2 : 8*FW-1), (i%4)*FH+3*FH, sw, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (g_eeGeneral.view == VIEW_TIMERS) {
|
||||
displayTimers();
|
||||
|
||||
@@ -63,6 +63,19 @@ void menu_lcd_onoff(coord_t x, coord_t y, uint8_t value, LcdFlags attr)
|
||||
lcd_square(x, y, 7);
|
||||
}
|
||||
|
||||
#if defined(REV9E)
|
||||
void displayShutdownProgress(uint32_t progress)
|
||||
{
|
||||
lcd_clear();
|
||||
lcd_putsLeft(LCD_H/2-20, STR_POWEROFF);
|
||||
drawFilledRect((LCD_W-44)/2, LCD_H/2-5, 28, 10, SOLID, ERASE);
|
||||
lcd_rect((LCD_W-44)/2, LCD_H/2-5, 28, 10);
|
||||
for (int i=(progress/100); i>=0; i--) {
|
||||
drawFilledRect((LCD_W-44)/2+3+i*8, LCD_H/2-3, 6, 6, SOLID);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void displayScreenIndex(uint8_t index, uint8_t count, uint8_t attr)
|
||||
{
|
||||
lcd_outdezAtt(LCD_W, 0, count, attr);
|
||||
|
||||
@@ -89,17 +89,13 @@ enum EnumKeys {
|
||||
SW_SE1,
|
||||
SW_SE2,
|
||||
SW_SF0,
|
||||
#if defined(REV9E)
|
||||
SW_SF1,
|
||||
#endif
|
||||
SW_SF2,
|
||||
SW_SG0,
|
||||
SW_SG1,
|
||||
SW_SG2,
|
||||
SW_SH0,
|
||||
#if defined(REV9E)
|
||||
SW_SH1,
|
||||
#endif
|
||||
SW_SH2,
|
||||
#if defined(REV9E)
|
||||
SW_SI0,
|
||||
|
||||
+11
-2
@@ -39,8 +39,6 @@
|
||||
static uint8_t currentSpeakerVolume = 255;
|
||||
uint8_t requiredSpeakerVolume = 255;
|
||||
|
||||
extern void checkBattery();
|
||||
|
||||
void handleUsbConnection()
|
||||
{
|
||||
#if defined(PCBTARANIS) && !defined(SIMU)
|
||||
@@ -185,6 +183,13 @@ void perMain()
|
||||
drawStatusLine();
|
||||
}
|
||||
|
||||
#if defined(REV9E) && !defined(SIMU)
|
||||
uint32_t pwr_pressed_duration = pwrPressedDuration();
|
||||
if (pwr_pressed_duration > 0) {
|
||||
displayShutdownProgress(pwr_pressed_duration);
|
||||
}
|
||||
#endif
|
||||
|
||||
lcdRefresh();
|
||||
|
||||
#if defined(REV9E) && !defined(SIMU)
|
||||
@@ -198,4 +203,8 @@ void perMain()
|
||||
topLcdRefreshEnd();
|
||||
#endif
|
||||
|
||||
#if defined(REV9E) && !defined(SIMU)
|
||||
bt_wakeup();
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
+12
-29
@@ -278,32 +278,15 @@ getvalue_t getValue(mixsrc_t i)
|
||||
else if (i<=MIXSRC_TrimAil) return calc1000toRESX((int16_t)8 * getTrimValue(mixerCurrentFlightMode, i-MIXSRC_TrimRud));
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
else if (i==MIXSRC_SA) return (switchState(SW_SA0) ? -1024 : (switchState(SW_SA1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SB) return (switchState(SW_SB0) ? -1024 : (switchState(SW_SB1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SC) return (switchState(SW_SC0) ? -1024 : (switchState(SW_SC1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SD) return (switchState(SW_SD0) ? -1024 : (switchState(SW_SD1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SE) return (switchState(SW_SE0) ? -1024 : (switchState(SW_SE1) ? 0 : 1024));
|
||||
#if defined(REV9E)
|
||||
else if (i==MIXSRC_SF) return (switchState(SW_SF0) ? -1024 : (switchState(SW_SF1) ? 0 : 1024));
|
||||
#else
|
||||
else if (i==MIXSRC_SF) return (switchState(SW_SF0) ? -1024 : 1024);
|
||||
#endif
|
||||
else if (i==MIXSRC_SG) return (switchState(SW_SG0) ? -1024 : (switchState(SW_SG1) ? 0 : 1024));
|
||||
#if defined(REV9E)
|
||||
else if (i==MIXSRC_SH) return (switchState(SW_SH0) ? -1024 : (switchState(SW_SH1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SI) return (switchState(SW_SI0) ? -1024 : (switchState(SW_SI1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SJ) return (switchState(SW_SJ0) ? -1024 : (switchState(SW_SJ1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SK) return (switchState(SW_SK0) ? -1024 : (switchState(SW_SK1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SL) return (switchState(SW_SL0) ? -1024 : (switchState(SW_SL1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SM) return (switchState(SW_SM0) ? -1024 : (switchState(SW_SM1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SN) return (switchState(SW_SN0) ? -1024 : (switchState(SW_SN1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SO) return (switchState(SW_SO0) ? -1024 : (switchState(SW_SO1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SP) return (switchState(SW_SP0) ? -1024 : (switchState(SW_SP1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SQ) return (switchState(SW_SQ0) ? -1024 : (switchState(SW_SQ1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SR) return (switchState(SW_SR0) ? -1024 : (switchState(SW_SR1) ? 0 : 1024));
|
||||
#else
|
||||
else if (i==MIXSRC_SH) return (switchState(SW_SH0) ? -1024 : 1024);
|
||||
#endif
|
||||
else if ((i >= MIXSRC_FIRST_SWITCH) && (i <= MIXSRC_LAST_SWITCH)) {
|
||||
mixsrc_t sw = i-MIXSRC_FIRST_SWITCH;
|
||||
if (SWITCH_EXISTS(sw)) {
|
||||
return (switchState((EnumKeys)(SW_BASE+(3*sw))) ? -1024 : (switchState((EnumKeys)(SW_BASE+(3*sw)+1)) ? 0 : 1024));
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
else if (i==MIXSRC_3POS) return (getSwitch(SW_ID0-SW_BASE+1) ? -1024 : (getSwitch(SW_ID1-SW_BASE+1) ? 0 : 1024));
|
||||
// don't use switchState directly to give getSwitch possibility to hack values if needed for switch warning
|
||||
@@ -670,7 +653,7 @@ void evalFlightModeMixes(uint8_t mode, uint8_t tick10ms)
|
||||
|
||||
if (md->srcRaw == 0) break;
|
||||
|
||||
uint8_t stickIndex = md->srcRaw - MIXSRC_Rud;
|
||||
mixsrc_t stickIndex = md->srcRaw - MIXSRC_Rud;
|
||||
|
||||
if (!(dirtyChannels & ((bitfield_channels_t)1 << md->destCh))) continue;
|
||||
|
||||
@@ -726,10 +709,10 @@ void evalFlightModeMixes(uint8_t mode, uint8_t tick10ms)
|
||||
else
|
||||
#endif
|
||||
{
|
||||
int8_t srcRaw = MIXSRC_Rud + stickIndex;
|
||||
mixsrc_t srcRaw = MIXSRC_Rud + stickIndex;
|
||||
v = getValue(srcRaw);
|
||||
srcRaw -= MIXSRC_CH1;
|
||||
if (srcRaw>=0 && srcRaw<=MIXSRC_LAST_CH-MIXSRC_CH1 && md->destCh != srcRaw) {
|
||||
if (srcRaw<=MIXSRC_LAST_CH-MIXSRC_CH1 && md->destCh != srcRaw) {
|
||||
if (dirtyChannels & ((bitfield_channels_t)1 << srcRaw) & (passDirtyChannels|~(((bitfield_channels_t) 1 << md->destCh)-1)))
|
||||
passDirtyChannels |= (bitfield_channels_t) 1 << md->destCh;
|
||||
if (srcRaw < md->destCh || pass > 0)
|
||||
|
||||
+40
-33
@@ -130,6 +130,7 @@
|
||||
#define NUM_POTS 5
|
||||
#define NUM_XPOTS 3
|
||||
#endif
|
||||
#define TELEM_VALUES_MAX 32
|
||||
#elif defined(CPUARM)
|
||||
#define MAX_MODELS 60
|
||||
#define NUM_CHNOUT 32 // number of real output channels CH1-CH32
|
||||
@@ -141,6 +142,7 @@
|
||||
#define NUM_TRAINER 16
|
||||
#define NUM_POTS 3
|
||||
#define NUM_XPOTS 0
|
||||
#define TELEM_VALUES_MAX 16
|
||||
#elif defined(CPUM2560) || defined(CPUM2561)
|
||||
#define MAX_MODELS 30
|
||||
#define NUM_CHNOUT 16 // number of real output channels CH1-CH16
|
||||
@@ -152,6 +154,7 @@
|
||||
#define NUM_TRAINER 8
|
||||
#define NUM_POTS 3
|
||||
#define NUM_XPOTS 0
|
||||
#define TELEM_VALUES_MAX 0
|
||||
#elif defined(CPUM128)
|
||||
#define MAX_MODELS 30
|
||||
#define NUM_CHNOUT 16 // number of real output channels CH1-CH16
|
||||
@@ -163,6 +166,7 @@
|
||||
#define NUM_TRAINER 8
|
||||
#define NUM_POTS 3
|
||||
#define NUM_XPOTS 0
|
||||
#define TELEM_VALUES_MAX 0
|
||||
#else
|
||||
#define MAX_MODELS 16
|
||||
#define NUM_CHNOUT 16 // number of real output channels CH1-CH16
|
||||
@@ -174,6 +178,7 @@
|
||||
#define NUM_TRAINER 8
|
||||
#define NUM_POTS 3
|
||||
#define NUM_XPOTS 0
|
||||
#define TELEM_VALUES_MAX 0
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
@@ -584,9 +589,13 @@ enum ResetFunctionParam {
|
||||
#endif
|
||||
#if ROTARY_ENCODERS > 1
|
||||
FUNC_RESET_ROTENC2,
|
||||
#endif
|
||||
#if defined(CPUARM)
|
||||
FUNC_RESET_PARAM_FIRST_TELEM,
|
||||
FUNC_RESET_PARAM_LAST_TELEM = FUNC_RESET_PARAM_FIRST_TELEM + TELEM_VALUES_MAX,
|
||||
#endif
|
||||
FUNC_RESET_PARAMS_COUNT,
|
||||
FUNC_RESET_PARAM_LAST = FUNC_RESET_PARAMS_COUNT-1
|
||||
FUNC_RESET_PARAM_LAST = FUNC_RESET_PARAMS_COUNT-1,
|
||||
};
|
||||
|
||||
enum AdjustGvarFunctionParam {
|
||||
@@ -742,7 +751,7 @@ PACK(typedef struct {
|
||||
uint8_t disableAlarmWarning:1;
|
||||
uint8_t stickMode:2;
|
||||
int8_t timezone:5;
|
||||
uint8_t spare1:1;
|
||||
uint8_t adjustRTC:1;
|
||||
uint8_t inactivityTimer;
|
||||
uint8_t mavbaud:3;
|
||||
SPLASH_MODE; /* 3bits */
|
||||
@@ -1141,11 +1150,14 @@ enum TelemetryUnit {
|
||||
UNIT_RPMS,
|
||||
UNIT_G,
|
||||
UNIT_DEGREE,
|
||||
UNIT_MILLILITERS,
|
||||
UNIT_FLOZ,
|
||||
UNIT_HOURS,
|
||||
UNIT_MINUTES,
|
||||
UNIT_SECONDS,
|
||||
// FrSky format used for these fields, could be another format in the future
|
||||
UNIT_CELLS,
|
||||
UNIT_FIRST_VIRTUAL,
|
||||
UNIT_CELLS = UNIT_FIRST_VIRTUAL,
|
||||
UNIT_DATETIME,
|
||||
UNIT_GPS,
|
||||
UNIT_GPS_LONGITUDE,
|
||||
@@ -1157,7 +1169,7 @@ enum TelemetryUnit {
|
||||
UNIT_DATETIME_HOUR_MIN,
|
||||
UNIT_DATETIME_SEC
|
||||
};
|
||||
#define UNIT_MAX UNIT_DEGREE
|
||||
#define UNIT_MAX UNIT_FLOZ
|
||||
#define UNIT_DIST UNIT_METERS
|
||||
#define UNIT_TEMPERATURE UNIT_CELSIUS
|
||||
#define UNIT_SPEED UNIT_KMH
|
||||
@@ -1211,11 +1223,6 @@ PACK(typedef struct {
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
#if defined(PCBTARANIS)
|
||||
#define TELEM_VALUES_MAX 32
|
||||
#else
|
||||
#define TELEM_VALUES_MAX 16
|
||||
#endif
|
||||
#define TELEM_LABEL_LEN 4
|
||||
//#define TELEM_FLAG_TIMEOUT 0x01
|
||||
#define TELEM_FLAG_LOG 0x02
|
||||
@@ -1238,17 +1245,11 @@ enum TelemetrySensorFormula
|
||||
TELEM_FORMULA_MIN,
|
||||
TELEM_FORMULA_MAX,
|
||||
TELEM_FORMULA_MULTIPLY,
|
||||
TELEM_FORMULA_TOTALIZE,
|
||||
TELEM_FORMULA_CELL,
|
||||
TELEM_FORMULA_CONSUMPTION,
|
||||
TELEM_FORMULA_DIST,
|
||||
};
|
||||
|
||||
enum TelemetrySensorInputFlags
|
||||
{
|
||||
TELEM_INPUT_FLAGS_NONE,
|
||||
TELEM_INPUT_FLAGS_AUTO_OFFSET,
|
||||
TELEM_INPUT_FLAGS_FILTERING,
|
||||
TELEM_INPUT_FLAGS_MAX=TELEM_INPUT_FLAGS_FILTERING
|
||||
TELEM_FORMULA_LAST = TELEM_FORMULA_DIST
|
||||
};
|
||||
|
||||
PACK(typedef struct {
|
||||
@@ -1264,7 +1265,8 @@ PACK(typedef struct {
|
||||
uint8_t type:1; // 0=custom / 1=calculated
|
||||
uint8_t unit:5; // user can choose what unit to display each value in
|
||||
uint8_t prec:2;
|
||||
uint8_t inputFlags:2;
|
||||
uint8_t autoOffset:1;
|
||||
uint8_t filter:1;
|
||||
uint8_t logs:1;
|
||||
uint8_t persistent:1;
|
||||
uint8_t spare:4;
|
||||
@@ -1296,6 +1298,7 @@ PACK(typedef struct {
|
||||
void init(uint16_t id);
|
||||
bool isAvailable();
|
||||
int32_t getValue(int32_t value, uint8_t unit, uint8_t prec) const;
|
||||
bool isConfigurable();
|
||||
}) TelemetrySensor;
|
||||
#endif
|
||||
|
||||
@@ -1630,17 +1633,13 @@ enum SwitchSources {
|
||||
SWSRC_SE1,
|
||||
SWSRC_SE2,
|
||||
SWSRC_SF0,
|
||||
#if defined(REV9E)
|
||||
SWSRC_SF1,
|
||||
#endif
|
||||
SWSRC_SF2,
|
||||
SWSRC_SG0,
|
||||
SWSRC_SG1,
|
||||
SWSRC_SG2,
|
||||
SWSRC_SH0,
|
||||
#if defined(REV9E)
|
||||
SWSRC_SH1,
|
||||
#endif
|
||||
SWSRC_SH2,
|
||||
SWSRC_TRAINER = SWSRC_SH2,
|
||||
#if defined(REV9E)
|
||||
@@ -1767,10 +1766,11 @@ enum MixSources {
|
||||
MIXSRC_LAST_LUA = MIXSRC_FIRST_LUA+(MAX_SCRIPTS*MAX_SCRIPT_OUTPUTS)-1,
|
||||
#endif
|
||||
|
||||
MIXSRC_Rud, LUA_EXPORT("rud", "Rudder")
|
||||
MIXSRC_Ele, LUA_EXPORT("ele", "Elevator")
|
||||
MIXSRC_Thr, LUA_EXPORT("thr", "Throttle")
|
||||
MIXSRC_Ail, LUA_EXPORT("ail", "Aileron")
|
||||
MIXSRC_FIRST_STICK,
|
||||
MIXSRC_Rud = MIXSRC_FIRST_STICK, LUA_EXPORT("rud", "Rudder")
|
||||
MIXSRC_Ele, LUA_EXPORT("ele", "Elevator")
|
||||
MIXSRC_Thr, LUA_EXPORT("thr", "Throttle")
|
||||
MIXSRC_Ail, LUA_EXPORT("ail", "Aileron")
|
||||
|
||||
MIXSRC_FIRST_POT,
|
||||
#if defined(PCBTARANIS)
|
||||
@@ -1813,14 +1813,17 @@ enum MixSources {
|
||||
|
||||
MIXSRC_MAX,
|
||||
|
||||
MIXSRC_CYC1, LUA_EXPORT("cyc1", "Cyclic 1")
|
||||
MIXSRC_CYC2, LUA_EXPORT("cyc2", "Cyclic 2")
|
||||
MIXSRC_CYC3, LUA_EXPORT("cyc3", "Cyclic 3")
|
||||
MIXSRC_FIRST_HELI,
|
||||
MIXSRC_CYC1 = MIXSRC_FIRST_HELI, LUA_EXPORT("cyc1", "Cyclic 1")
|
||||
MIXSRC_CYC2, LUA_EXPORT("cyc2", "Cyclic 2")
|
||||
MIXSRC_CYC3, LUA_EXPORT("cyc3", "Cyclic 3")
|
||||
|
||||
MIXSRC_TrimRud, LUA_EXPORT("trim-rud", "Rudder trim")
|
||||
MIXSRC_TrimEle, LUA_EXPORT("trim-ele", "Elevator trim")
|
||||
MIXSRC_TrimThr, LUA_EXPORT("trim-thr", "Throttle trim")
|
||||
MIXSRC_TrimAil, LUA_EXPORT("trim-ail", "Aileron trim")
|
||||
MIXSRC_FIRST_TRIM,
|
||||
MIXSRC_TrimRud = MIXSRC_FIRST_TRIM, LUA_EXPORT("trim-rud", "Rudder trim")
|
||||
MIXSRC_TrimEle, LUA_EXPORT("trim-ele", "Elevator trim")
|
||||
MIXSRC_TrimThr, LUA_EXPORT("trim-thr", "Throttle trim")
|
||||
MIXSRC_TrimAil, LUA_EXPORT("trim-ail", "Aileron trim")
|
||||
MIXSRC_LAST_TRIM = MIXSRC_TrimAil,
|
||||
|
||||
MIXSRC_FIRST_SWITCH,
|
||||
|
||||
@@ -1844,6 +1847,9 @@ enum MixSources {
|
||||
MIXSRC_SP, LUA_EXPORT("sp", "Switch P")
|
||||
MIXSRC_SQ, LUA_EXPORT("sq", "Switch Q")
|
||||
MIXSRC_SR, LUA_EXPORT("sr", "Switch R")
|
||||
MIXSRC_LAST_SWITCH = MIXSRC_SR,
|
||||
#else
|
||||
MIXSRC_LAST_SWITCH = MIXSRC_SH,
|
||||
#endif
|
||||
#else
|
||||
MIXSRC_3POS = MIXSRC_FIRST_SWITCH,
|
||||
@@ -1853,6 +1859,7 @@ enum MixSources {
|
||||
MIXSRC_AIL,
|
||||
MIXSRC_GEA,
|
||||
MIXSRC_TRN,
|
||||
MIXSRC_LAST_SWITCH = MIXSRC_TRN,
|
||||
#endif
|
||||
MIXSRC_FIRST_LOGICAL_SWITCH,
|
||||
MIXSRC_SW1 = MIXSRC_FIRST_LOGICAL_SWITCH, LUA_EXPORT_MULTIPLE("ls", "Logical switch L%d", NUM_LOGICAL_SWITCH)
|
||||
|
||||
@@ -334,14 +334,15 @@ void defaultInputs()
|
||||
expo->mode = 3; // TODO constant
|
||||
#if defined(TRANSLATIONS_CZ)
|
||||
for (int c=0; c<4; c++) {
|
||||
g_model.inputNames[i][c] = char2idx(STR_INPUTNAMES[1+STR_INPUTNAMES[0]*(stick_index-1)+c]);
|
||||
g_model.inputNames[i][c] = char2idx(STR_INPUTNAMES[1+4*(stick_index-1)+c]);
|
||||
}
|
||||
g_model.inputNames[i][4] = '\0';
|
||||
#else
|
||||
for (int c=0; c<3; c++) {
|
||||
g_model.inputNames[i][c] = char2idx(STR_VSRCRAW[2+4*stick_index+c]);
|
||||
#endif
|
||||
}
|
||||
g_model.inputNames[i][3] = '\0';
|
||||
#endif
|
||||
}
|
||||
eeDirty(EE_MODEL);
|
||||
}
|
||||
@@ -2527,6 +2528,10 @@ int main(void)
|
||||
lcdSetRefVolt(25);
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
displaySplash();
|
||||
#endif
|
||||
|
||||
sei(); // interrupts needed for telemetryInit and eeReadAll.
|
||||
|
||||
#if defined(FRSKY) && !defined(DSM2_SERIAL)
|
||||
|
||||
@@ -1474,6 +1474,10 @@ enum AUDIO_SOUNDS {
|
||||
extern uint8_t requiredSpeakerVolume;
|
||||
#endif
|
||||
|
||||
extern void checkBattery();
|
||||
extern void opentxClose();
|
||||
extern void opentxInit();
|
||||
|
||||
// Re-useable byte array to save having multiple buffers
|
||||
#define SD_SCREEN_FILE_LENGTH (32)
|
||||
union ReusableBuffer
|
||||
|
||||
@@ -207,8 +207,9 @@ char *strAppendFilename(char *dest, const char *filename, const int size)
|
||||
#define LEN_FILE_EXTENSION 4
|
||||
char *getFileExtension(char *filename, int size)
|
||||
{
|
||||
for (int i=0; i<size-LEN_FILE_EXTENSION; ++i) {
|
||||
if (filename[i] == '.' || filename[i] == '\0') {
|
||||
int len = min<int>(size, strlen(filename));
|
||||
for (int i=len; i>=len-LEN_FILE_EXTENSION; --i) {
|
||||
if (filename[i] == '.') {
|
||||
return &filename[i];
|
||||
}
|
||||
}
|
||||
|
||||
+1
-30
@@ -77,32 +77,10 @@ uint64_t switchesPos = 0;
|
||||
tmr10ms_t potsLastposStart[NUM_XPOTS] = { 0 };
|
||||
uint8_t potsPos[NUM_XPOTS];
|
||||
|
||||
#if defined(REV9E)
|
||||
div_t switchInfo(int switchPosition)
|
||||
{
|
||||
return div(switchPosition-SWSRC_FIRST_SWITCH, 3);
|
||||
}
|
||||
#else
|
||||
div_t switchInfo(int switchPosition)
|
||||
{
|
||||
if (switchPosition <= SWSRC_SE2) {
|
||||
return div(switchPosition-SWSRC_SA0, 3);
|
||||
}
|
||||
else if (switchPosition <= SWSRC_SF2) {
|
||||
div_t qr = { 5, switchPosition == SWSRC_SF2 ? 2 : 0 };
|
||||
return qr;
|
||||
}
|
||||
else if (switchPosition <= SWSRC_SG2) {
|
||||
div_t qr = { 6, switchPosition-SWSRC_SG0 };
|
||||
return qr;
|
||||
}
|
||||
else {
|
||||
div_t qr = div(2*7+switchPosition-SWSRC_SH0, 2);
|
||||
qr.rem *= 2;
|
||||
return qr;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
uint64_t check2PosSwitchPosition(EnumKeys sw)
|
||||
{
|
||||
@@ -577,14 +555,7 @@ int8_t getMovedSwitch()
|
||||
uint8_t next = (1024+getValue(MIXSRC_SA+i)) / 1024;
|
||||
if (prev != next) {
|
||||
switches_states = (switches_states & (~mask)) | ((swarnstate_t)next << (i*2));
|
||||
if (i<5)
|
||||
result = 1+(3*i)+next;
|
||||
else if (i==5)
|
||||
result = 1+(3*5)+(next!=0);
|
||||
else if (i==6)
|
||||
result = 1+(3*5)+2+next;
|
||||
else
|
||||
result = 1+(3*5)+2+3+(next!=0);
|
||||
result = 1+(3*i)+next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ uint8_t pwrCheck()
|
||||
|
||||
void pwrOff()
|
||||
{
|
||||
PORTH = 0x1F; // PortH-4 set to 0
|
||||
PORTH = 0xEF; // PortH-4 set to 0
|
||||
}
|
||||
|
||||
FORCEINLINE uint8_t keyDown()
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "../opentx.h"
|
||||
#include "../../opentx.h"
|
||||
|
||||
#if defined(REVX)
|
||||
// TODO change this, not the right place
|
||||
|
||||
@@ -16,9 +16,16 @@
|
||||
#define BT_UART_AF GPIO_AF_USART6
|
||||
#define BT_UART_IRQn USART6_IRQn
|
||||
|
||||
#define BT_UART_GPIO_PORT GPIOG
|
||||
#define BT_UART_GPIO_CLK_TXRX RCC_AHB1Periph_GPIOG
|
||||
#define BT_UART_GPIO_PORT_TXRX GPIOG
|
||||
#define BT_UART_GPIO_PIN_TX GPIO_Pin_14
|
||||
#define BT_UART_GPIO_PIN_RX GPIO_Pin_9
|
||||
#define BT_UART_GPIO_CLK_EN RCC_AHB1Periph_GPIOD
|
||||
#define BT_UART_GPIO_PORT_EN GPIOD
|
||||
#define BT_UART_GPIO_PIN_EN GPIO_Pin_11
|
||||
#define BT_UART_GPIO_CLK_BRTS RCC_AHB1Periph_GPIOB
|
||||
#define BT_UART_GPIO_PORT_BRTS GPIOB
|
||||
#define BT_UART_GPIO_PIN_BRTS GPIO_Pin_10
|
||||
#define BT_UART_GPIO_TX_PinSource GPIO_PinSource14
|
||||
#define BT_UART_GPIO_RX_PinSource GPIO_PinSource9
|
||||
|
||||
@@ -30,25 +37,34 @@ int bt_open()
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
USART_InitTypeDef USART_InitStructure;
|
||||
|
||||
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE);
|
||||
RCC_AHB1PeriphClockCmd(BT_UART_GPIO_CLK_TXRX, ENABLE);
|
||||
RCC_AHB1PeriphClockCmd(BT_UART_GPIO_CLK_EN, ENABLE);
|
||||
RCC_AHB1PeriphClockCmd(BT_UART_GPIO_CLK_BRTS, ENABLE);
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART6, ENABLE);
|
||||
|
||||
GPIO_PinAFConfig(BT_UART_GPIO_PORT, BT_UART_GPIO_TX_PinSource, BT_UART_AF);
|
||||
GPIO_PinAFConfig(BT_UART_GPIO_PORT, BT_UART_GPIO_RX_PinSource, BT_UART_AF);
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = BT_UART_GPIO_PIN_TX;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_Pin = BT_UART_GPIO_PIN_EN;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
||||
GPIO_Init(BT_UART_GPIO_PORT, &GPIO_InitStructure);
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = BT_UART_GPIO_PIN_RX;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_Init(BT_UART_GPIO_PORT_EN, &GPIO_InitStructure);
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = BT_UART_GPIO_PIN_BRTS;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
||||
GPIO_Init(BT_UART_GPIO_PORT, &GPIO_InitStructure);
|
||||
GPIO_Init(BT_UART_GPIO_PORT_BRTS, &GPIO_InitStructure);
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = BT_UART_GPIO_PIN_TX|BT_UART_GPIO_PIN_RX;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(BT_UART_GPIO_PORT_TXRX, &GPIO_InitStructure);
|
||||
|
||||
GPIO_PinAFConfig(BT_UART_GPIO_PORT_TXRX, BT_UART_GPIO_TX_PinSource, BT_UART_AF);
|
||||
GPIO_PinAFConfig(BT_UART_GPIO_PORT_TXRX, BT_UART_GPIO_RX_PinSource, BT_UART_AF);
|
||||
|
||||
USART_InitStructure.USART_BaudRate = 115200;
|
||||
USART_InitStructure.USART_Parity = USART_Parity_No;
|
||||
@@ -68,9 +84,14 @@ int bt_open()
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
||||
NVIC_Init(&NVIC_InitStructure);
|
||||
|
||||
GPIO_SetBits(BT_UART_GPIO_PORT_BRTS, BT_UART_GPIO_PIN_BRTS);
|
||||
GPIO_ResetBits(BT_UART_GPIO_PORT_EN, BT_UART_GPIO_PIN_EN); // open bluetooth
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t bt_state = 0;
|
||||
|
||||
extern "C" void USART6_IRQHandler(void)
|
||||
{
|
||||
#if 1
|
||||
@@ -90,6 +111,8 @@ extern "C" void USART6_IRQHandler(void)
|
||||
}
|
||||
else {
|
||||
USART_ITConfig(BT_UART, USART_IT_TXE, DISABLE);
|
||||
GPIO_SetBits(BT_UART_GPIO_PORT_BRTS, BT_UART_GPIO_PIN_BRTS);
|
||||
bt_state = 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -101,10 +124,23 @@ int bt_write(const void *buffer, int len)
|
||||
for (int i=0; i<len; ++i) {
|
||||
btTxFifo.push(data[i]);
|
||||
}
|
||||
USART_ITConfig(BT_UART, USART_IT_TXE, ENABLE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void bt_wakeup(void)
|
||||
{
|
||||
if (bt_state < 2 && !btTxFifo.empty()) {
|
||||
if (bt_state == 0) {
|
||||
GPIO_ResetBits(BT_UART_GPIO_PORT_BRTS, BT_UART_GPIO_PIN_BRTS);
|
||||
bt_state = 1;
|
||||
}
|
||||
else {
|
||||
USART_ITConfig(BT_UART, USART_IT_TXE, ENABLE);
|
||||
bt_state = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int bt_read(void *buffer, int len)
|
||||
{
|
||||
int result = 0;
|
||||
@@ -121,5 +157,6 @@ int bt_read(void *buffer, int len)
|
||||
|
||||
int bt_close()
|
||||
{
|
||||
GPIO_SetBits(BT_UART_GPIO_PORT_EN, BT_UART_GPIO_PIN_EN); // close bluetooth
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -110,16 +110,30 @@ extern "C" {
|
||||
#define PIN_OUTPUT 0x0001
|
||||
#define PIN_PERIPHERAL 0x0002
|
||||
#define PIN_ANALOG 0x0003
|
||||
|
||||
#define PIN_PULL_MASK 0x000C
|
||||
#define PIN_PULLUP 0x0004
|
||||
#define PIN_NO_PULLUP 0x0000
|
||||
#define PIN_PULLDOWN 0x0008
|
||||
#define PIN_NO_PULLDOWN 0x0000
|
||||
#define PIN_PERI_MASK 0x00F0
|
||||
#define PIN_PUSHPULL 0x0000
|
||||
#define PIN_ODRAIN 0x8000
|
||||
|
||||
#define PIN_PORT_MASK 0x0700
|
||||
#define PIN_PORTA 0x0000
|
||||
#define PIN_PORTB 0x0100
|
||||
#define PIN_PORTC 0x0200
|
||||
#define PIN_PORTD 0x0300
|
||||
#define PIN_PORTE 0x0400
|
||||
#define PIN_PORTF 0x0500
|
||||
|
||||
#define PIN_PERI_MASK 0x00F0
|
||||
#define PIN_PER_1 0x0010
|
||||
#define PIN_PER_2 0x0020
|
||||
#define PIN_PER_3 0x0030
|
||||
#define PIN_PER_5 0x0050
|
||||
#define PIN_PER_6 0x0060
|
||||
#define PIN_PER_8 0x0080
|
||||
|
||||
#define PIN_SPEED_MASK 0x6000
|
||||
#define PIN_OS25 0x2000
|
||||
#define PIN_OS50 0x4000
|
||||
#define PIN_OS100 0x6000
|
||||
|
||||
void configure_pins( uint32_t pins, uint16_t config );
|
||||
|
||||
@@ -243,6 +257,10 @@ extern "C" {
|
||||
void pwrInit(void);
|
||||
uint32_t pwrCheck(void);
|
||||
void pwrOff(void);
|
||||
#if defined(REV9E)
|
||||
uint32_t pwrPressed(void);
|
||||
uint32_t pwrPressedDuration(void);
|
||||
#endif
|
||||
#define UNEXPECTED_SHUTDOWN() (g_eeGeneral.unexpectedShutdown)
|
||||
|
||||
// Backlight driver
|
||||
@@ -312,6 +330,7 @@ void uart3Stop(void);
|
||||
int bt_open(void);
|
||||
int bt_write(const void *buffer, int len);
|
||||
int bt_read(void *buffer, int len);
|
||||
void bt_wakeup(void);
|
||||
|
||||
// Top LCD driver
|
||||
#if defined(REV9E)
|
||||
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
/bootloader_ramBoot.*
|
||||
/.dep
|
||||
|
||||
@@ -791,11 +791,17 @@ int main()
|
||||
}
|
||||
}
|
||||
|
||||
if (pwrCheck() == e_power_off && state != ST_FLASHING && state != ST_USB) {
|
||||
lcdOff(); // this drains LCD caps
|
||||
pwrOff();
|
||||
for (;;) {
|
||||
// Wait for power to go off
|
||||
if (state != ST_FLASHING && state != ST_USB) {
|
||||
#if defined(REV9E)
|
||||
if (pwrPressed()) {
|
||||
#else
|
||||
if (pwrCheck() == e_power_off) {
|
||||
#endif
|
||||
lcdOff(); // this drains LCD caps
|
||||
pwrOff();
|
||||
for (;;) {
|
||||
// Wait for power to go off
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -65,10 +65,6 @@ void configure_pins( uint32_t pins, uint16_t config )
|
||||
|
||||
/* Output mode configuration*/
|
||||
pgpio->OTYPER &= ~((GPIO_OTYPER_OT_0) << ((uint16_t)pos)) ;
|
||||
if ( config & PIN_ODRAIN )
|
||||
{
|
||||
pgpio->OTYPER |= (GPIO_OTYPER_OT_0) << pos ;
|
||||
}
|
||||
}
|
||||
/* Pull-up Pull down resistor configuration*/
|
||||
pgpio->PUPDR &= ~(GPIO_PUPDR_PUPDR0 << ((uint16_t)pos * 2));
|
||||
|
||||
@@ -210,23 +210,6 @@
|
||||
#define GPIOTRNDET GPIOA
|
||||
#define PIN_TRNDET GPIO_Pin_8
|
||||
|
||||
#define PIN_PORTA 0x0000
|
||||
#define PIN_PORTB 0x0100
|
||||
#define PIN_PORTC 0x0200
|
||||
#define PIN_PORTD 0x0300
|
||||
#define PIN_PORTE 0x0400
|
||||
#define PIN_PORTF 0x0500
|
||||
#define PIN_PER_1 0x0010
|
||||
#define PIN_PER_2 0x0020
|
||||
#define PIN_PER_3 0x0030
|
||||
#define PIN_PER_5 0x0050
|
||||
#define PIN_PER_6 0x0060
|
||||
#define PIN_PER_8 0x0080
|
||||
// #define PIN_OS2 0x0000
|
||||
#define PIN_OS25 0x2000
|
||||
#define PIN_OS50 0x4000
|
||||
#define PIN_OS100 0x6000
|
||||
|
||||
// Cppm
|
||||
#define RCC_AHB1Periph_GPIO_INTPPM RCC_AHB1Periph_GPIOA
|
||||
#define PIN_INTPPM_OUT GPIO_Pin_10 // PA.10
|
||||
@@ -301,7 +284,7 @@
|
||||
#endif
|
||||
|
||||
// LCD
|
||||
#if defined(REVPLUS)
|
||||
#if defined(REV9E)
|
||||
#define RCC_AHB1Periph_LCD (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD)
|
||||
#define RCC_AHB1Periph_LCD_RST RCC_AHB1Periph_GPIOD
|
||||
#define RCC_AHB1Periph_LCD_NCS RCC_AHB1Periph_GPIOA
|
||||
@@ -312,7 +295,19 @@
|
||||
#define PIN_LCD_CLK GPIO_Pin_10 // PC.10
|
||||
#define PIN_LCD_NCS GPIO_Pin_15 // PA.15
|
||||
#define PIN_LCD_A0 GPIO_Pin_11 // PC.11
|
||||
#define PIN_LCD_RST GPIO_Pin_15 // TOTO PD.12
|
||||
#define PIN_LCD_RST GPIO_Pin_15 // PD.15
|
||||
#elif defined(REVPLUS)
|
||||
#define RCC_AHB1Periph_LCD (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD)
|
||||
#define RCC_AHB1Periph_LCD_RST RCC_AHB1Periph_GPIOD
|
||||
#define RCC_AHB1Periph_LCD_NCS RCC_AHB1Periph_GPIOA
|
||||
#define GPIO_LCD_SPI GPIOC
|
||||
#define GPIO_LCD_NCS GPIOA
|
||||
#define GPIO_LCD_RST GPIOD
|
||||
#define PIN_LCD_MOSI GPIO_Pin_12 // PC.12
|
||||
#define PIN_LCD_CLK GPIO_Pin_10 // PC.10
|
||||
#define PIN_LCD_NCS GPIO_Pin_15 // PA.15
|
||||
#define PIN_LCD_A0 GPIO_Pin_11 // PC.11
|
||||
#define PIN_LCD_RST GPIO_Pin_12 // PD.12
|
||||
#else
|
||||
#define RCC_AHB1Periph_LCD RCC_AHB1Periph_GPIOD
|
||||
#define GPIO_LCD_SPI GPIOD
|
||||
|
||||
@@ -55,10 +55,10 @@ void initLcdSpi()
|
||||
SPI3->CR1 |= SPI_CR1_MSTR ; // Make sure in case SSM/SSI needed to be set first
|
||||
SPI3->CR1 |= SPI_CR1_SPE ;
|
||||
|
||||
configure_pins( PIN_LCD_NCS, PIN_OUTPUT | PIN_PORTA | PIN_PUSHPULL | PIN_OS25 | PIN_NO_PULLUP ) ;
|
||||
configure_pins( PIN_LCD_RST, PIN_OUTPUT | PIN_PORTD | PIN_PUSHPULL | PIN_OS25 | PIN_NO_PULLUP ) ;
|
||||
configure_pins( PIN_LCD_A0, PIN_OUTPUT | PIN_PORTC | PIN_PUSHPULL | PIN_OS50 | PIN_NO_PULLUP ) ;
|
||||
configure_pins( PIN_LCD_MOSI|PIN_LCD_CLK, PIN_PORTC | PIN_PUSHPULL | PIN_OS50 | PIN_NO_PULLUP | PIN_PER_6 | PIN_PERIPHERAL ) ;
|
||||
configure_pins( PIN_LCD_NCS, PIN_OUTPUT | PIN_PORTA | PIN_OS25) ;
|
||||
configure_pins( PIN_LCD_RST, PIN_OUTPUT | PIN_PORTD | PIN_OS25) ;
|
||||
configure_pins( PIN_LCD_A0, PIN_OUTPUT | PIN_PORTC | PIN_OS50) ;
|
||||
configure_pins( PIN_LCD_MOSI|PIN_LCD_CLK, PIN_PORTC | PIN_OS50 | PIN_PER_6 | PIN_PERIPHERAL ) ;
|
||||
|
||||
|
||||
// NVIC_SetPriority( DMA1_Stream7_IRQn, 8 ) ;
|
||||
|
||||
@@ -323,7 +323,7 @@ static void init_pa10_ppm()
|
||||
//RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN ; // Enable portA clock
|
||||
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO_INTPPM, ENABLE);
|
||||
|
||||
configure_pins( PIN_INTPPM_OUT, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_1 | PIN_OS25 | PIN_PUSHPULL ) ;
|
||||
configure_pins( PIN_INTPPM_OUT, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_1 | PIN_OS25) ;
|
||||
|
||||
RCC->APB2ENR |= RCC_APB2ENR_TIM1EN ; // Enable clock
|
||||
TIM1->CR1 &= ~TIM_CR1_CEN ;
|
||||
@@ -553,7 +553,7 @@ static void init_pa7_ppm()
|
||||
ppmStreamPtr[EXTERNAL_MODULE] = ppmStream[EXTERNAL_MODULE];
|
||||
|
||||
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN ; // Enable portA clock
|
||||
configure_pins( PIN_EXTPPM_OUT, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_3 | PIN_OS25 | PIN_PUSHPULL ) ;
|
||||
configure_pins( PIN_EXTPPM_OUT, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_3 | PIN_OS25) ;
|
||||
RCC->APB2ENR |= RCC_APB2ENR_TIM8EN ; // Enable clock
|
||||
TIM8->CR1 &= ~TIM_CR1_CEN ;
|
||||
|
||||
|
||||
@@ -37,14 +37,8 @@
|
||||
#include "board_taranis.h"
|
||||
#include "../../pwr.h"
|
||||
|
||||
#ifdef REV9E
|
||||
#define POWER_STATE_OFF 0
|
||||
#define POWER_STATE_START 1
|
||||
#define POWER_STATE_RUNNING 2
|
||||
#define POWER_STATE_STOPPING 3
|
||||
#define POWER_STATE_STOPPED 4
|
||||
uint8_t PowerState = POWER_STATE_OFF ;
|
||||
#endif
|
||||
extern volatile uint32_t g_tmr10ms;
|
||||
#define get_tmr10ms() g_tmr10ms
|
||||
|
||||
void pwrInit()
|
||||
{
|
||||
@@ -99,6 +93,10 @@ void pwrInit()
|
||||
|
||||
// Soft power ON
|
||||
GPIO_SetBits(GPIOPWR, PIN_MCU_PWR);
|
||||
|
||||
#if defined(REV9E)
|
||||
while (pwrPressed()) ;
|
||||
#endif
|
||||
}
|
||||
|
||||
void pwrOff()
|
||||
@@ -106,41 +104,45 @@ void pwrOff()
|
||||
GPIO_ResetBits(GPIOPWR, PIN_MCU_PWR);
|
||||
}
|
||||
|
||||
// TODO enums should be UPPERCASE
|
||||
#if defined(REV9E)
|
||||
uint32_t pwrPressed()
|
||||
{
|
||||
return GPIO_ReadInputDataBit(GPIOPWR, PIN_PWR_STATUS) == Bit_RESET;
|
||||
}
|
||||
#if !defined(BOOT)
|
||||
uint32_t pwrPressTime = 0;
|
||||
uint32_t pwrPressedDuration()
|
||||
{
|
||||
if (pwrPressTime == 0) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return get_tmr10ms() - pwrPressTime;
|
||||
}
|
||||
}
|
||||
uint32_t pwrCheck()
|
||||
{
|
||||
if (pwrPressed()) {
|
||||
if (pwrPressTime == 0) {
|
||||
pwrPressTime = get_tmr10ms();
|
||||
}
|
||||
else {
|
||||
if (get_tmr10ms() - pwrPressTime > 250) {
|
||||
return e_power_off;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
pwrPressTime = 0;
|
||||
}
|
||||
return e_power_on;
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
uint32_t pwrCheck()
|
||||
{
|
||||
#if defined(SIMU)
|
||||
return e_power_on;
|
||||
#elif defined(REV9E)
|
||||
uint32_t switchValue = GPIO_ReadInputDataBit(GPIOPWR, PIN_PWR_STATUS) == Bit_RESET;
|
||||
switch ( PowerState )
|
||||
{
|
||||
case POWER_STATE_OFF :
|
||||
PowerState = POWER_STATE_START ;
|
||||
return e_power_on ;
|
||||
|
||||
case POWER_STATE_START :
|
||||
if ( !switchValue ) {
|
||||
PowerState = POWER_STATE_RUNNING ;
|
||||
}
|
||||
return e_power_on ;
|
||||
|
||||
case POWER_STATE_RUNNING :
|
||||
if ( switchValue ) {
|
||||
PowerState = POWER_STATE_STOPPING ;
|
||||
// return e_power_on;
|
||||
}
|
||||
return e_power_on ;
|
||||
|
||||
case POWER_STATE_STOPPING :
|
||||
if ( !switchValue ) {
|
||||
PowerState = POWER_STATE_STOPPED ;
|
||||
}
|
||||
return e_power_off ;
|
||||
|
||||
case POWER_STATE_STOPPED :
|
||||
return e_power_off ;
|
||||
}
|
||||
#else
|
||||
if (GPIO_ReadInputDataBit(GPIOPWR, PIN_PWR_STATUS) == Bit_RESET)
|
||||
return e_power_on;
|
||||
@@ -150,3 +152,4 @@ uint32_t pwrCheck()
|
||||
return e_power_off;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -48,7 +48,7 @@ void init_trainer_ppm()
|
||||
TrainerPulsePtr = ppmStream[TRAINER_MODULE];
|
||||
|
||||
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN ; // Enable portC clock
|
||||
configure_pins( PIN_TR_PPM_OUT, PIN_PERIPHERAL | PIN_PORTC | PIN_PER_2 | PIN_OS25 | PIN_PUSHPULL ) ;
|
||||
configure_pins( PIN_TR_PPM_OUT, PIN_PERIPHERAL | PIN_PORTC | PIN_PER_2 | PIN_OS25) ;
|
||||
configure_pins( PIN_TR_PPM_IN, PIN_PORTA | PIN_INPUT ) ;
|
||||
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN ; // Enable clock
|
||||
TIM3->CR1 &= ~TIM_CR1_CEN ;
|
||||
@@ -92,10 +92,22 @@ void set_trainer_ppm_parameters(uint32_t idleTime, uint32_t delay, uint32_t posi
|
||||
// Trainer capture, PC8, Timer 3 channel 3
|
||||
void init_trainer_capture()
|
||||
{
|
||||
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN ; // Enable portC clock
|
||||
configure_pins (PIN_TR_PPM_IN, PIN_PERIPHERAL | PIN_PORTC | PIN_PER_2) ;
|
||||
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN ; // Enable clock
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
|
||||
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
|
||||
#if 0
|
||||
configure_pins (PIN_TR_PPM_IN, PIN_PERIPHERAL | PIN_PORTC | PIN_PER_2) ;
|
||||
#else
|
||||
GPIO_InitStructure.GPIO_Pin = PIN_TR_PPM_IN;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
||||
GPIO_Init(GPIO_TR_INOUT, &GPIO_InitStructure);
|
||||
GPIO_PinAFConfig(GPIO_TR_INOUT, GPIO_PinSource8, GPIO_AF_TIM3);
|
||||
#endif
|
||||
|
||||
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN ;
|
||||
TIM3->ARR = 0xFFFF ;
|
||||
TIM3->PSC = (PERI1_FREQUENCY * TIMER_MULT_APB1) / 2000000 - 1 ; // 0.5uS
|
||||
TIM3->CR2 = 0 ;
|
||||
|
||||
@@ -155,9 +155,6 @@ void mixerTask(void * pdata)
|
||||
|
||||
#define MENU_TASK_PERIOD_TICKS 10 // 20ms
|
||||
|
||||
extern void opentxClose();
|
||||
extern void opentxInit();
|
||||
|
||||
void menusTask(void * pdata)
|
||||
{
|
||||
opentxInit();
|
||||
|
||||
@@ -357,6 +357,11 @@ void telemetryWakeup()
|
||||
uint8_t lastReceived = telemetryItems[i].lastReceived;
|
||||
if (lastReceived < TELEMETRY_VALUE_TIMER_CYCLE && uint8_t(now - lastReceived) > TELEMETRY_VALUE_OLD_THRESHOLD) {
|
||||
telemetryItems[i].lastReceived = TELEMETRY_VALUE_OLD;
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[i];
|
||||
if (sensor->unit == UNIT_DATETIME) {
|
||||
telemetryItems[i].datetime.datestate = 0;
|
||||
telemetryItems[i].datetime.timestate = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -566,12 +571,15 @@ void telemetryReset()
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM) && defined(SIMU)
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, RSSI_ID, 0, 75, UNIT_RAW, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, T1_FIRST_ID, 0, 100, UNIT_CELSIUS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, T1_FIRST_ID, 1, 200, UNIT_CELSIUS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, RSSI_ID, 25, 75, UNIT_RAW, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, SWR_ID, 25, 5, UNIT_RAW, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, T1_FIRST_ID, 5, 100, UNIT_CELSIUS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, T1_FIRST_ID+0x10, 5, 200, UNIT_CELSIUS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, ALT_FIRST_ID, 1, 1000, UNIT_METERS, 2);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, CELLS_FIRST_ID, 1, 0x80280220, UNIT_CELLS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, CURR_FIRST_ID, 1, 100, UNIT_AMPS, 2);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, CELLS_FIRST_ID, 2, 0x80280220, UNIT_CELLS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, CURR_FIRST_ID, 3, 100, UNIT_AMPS, 2);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, RPM_FIRST_ID, 5, 3600, UNIT_RPMS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, FUEL_QTY_FIRST_ID, 11, 1000, UNIT_MILLILITERS, 2);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -135,9 +135,13 @@
|
||||
#define RSSI_ID 0xf101
|
||||
#define ADC1_ID 0xf102
|
||||
#define ADC2_ID 0xf103
|
||||
#define SP2UART_A_ID 0xfd00
|
||||
#define SP2UART_B_ID 0xfd01
|
||||
#define BATT_ID 0xf104
|
||||
#define SWR_ID 0xf105
|
||||
#define XJT_VERSION_ID 0xf106
|
||||
#define FUEL_QTY_FIRST_ID 0x0a10
|
||||
#define FUEL_QTY_LAST_ID 0x0a1f
|
||||
|
||||
// Default sensor data IDs (Physical IDs + CRC)
|
||||
#define DATA_ID_VARIO 0x00 // 0
|
||||
@@ -331,7 +335,8 @@ struct FrskyData {
|
||||
};
|
||||
#endif
|
||||
|
||||
#define IS_VALID_XJT_VERSION() (frskyData.xjtVersion != 0 && frskyData.xjtVersion != 0xff)
|
||||
#define IS_VALID_XJT_VERSION() (frskyData.xjtVersion != 0 && frskyData.xjtVersion != 0xff)
|
||||
#define IS_HIDDEN_TELEMETRY_VALUE() ((appId == SP2UART_A_ID) || (appId == SP2UART_B_ID) || (appId == XJT_VERSION_ID) || ((appId == SWR_ID) && !IS_VALID_XJT_VERSION()))
|
||||
|
||||
enum AlarmLevel {
|
||||
alarm_off = 0,
|
||||
|
||||
@@ -643,10 +643,10 @@ void frskyDSetDefault(int index, uint16_t id)
|
||||
if (id >= D_A1_ID && id <= D_A2_ID) {
|
||||
telemetrySensor.prec = 1;
|
||||
telemetrySensor.custom.ratio = 132;
|
||||
telemetrySensor.inputFlags = TELEM_INPUT_FLAGS_FILTERING;
|
||||
telemetrySensor.filter = 1;
|
||||
}
|
||||
else if (id == D_RSSI_ID) {
|
||||
telemetrySensor.inputFlags = TELEM_INPUT_FLAGS_FILTERING;
|
||||
telemetrySensor.filter = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -58,9 +58,12 @@ struct FrSkySportSensor {
|
||||
|
||||
const FrSkySportSensor sportSensors[] = {
|
||||
{ RSSI_ID, RSSI_ID, ZSTR_RSSI, UNIT_RAW, 0 },
|
||||
{ ADC1_ID, ADC1_ID, ZSTR_A1, UNIT_VOLTS, 0 },
|
||||
{ ADC2_ID, ADC2_ID, ZSTR_A2, UNIT_VOLTS, 0 },
|
||||
{ BATT_ID, BATT_ID, ZSTR_BATT, UNIT_VOLTS, 0 },
|
||||
{ SWR_ID, SWR_ID, ZSTR_SWR, UNIT_RAW, 0 },
|
||||
{ ADC1_ID, ADC1_ID, ZSTR_A1, UNIT_VOLTS, 1 },
|
||||
{ ADC2_ID, ADC2_ID, ZSTR_A2, UNIT_VOLTS, 1 },
|
||||
{ A3_FIRST_ID, A3_LAST_ID, ZSTR_A3, UNIT_VOLTS, 2 },
|
||||
{ A4_FIRST_ID, A4_LAST_ID, ZSTR_A4, UNIT_VOLTS, 2 },
|
||||
{ BATT_ID, BATT_ID, ZSTR_BATT, UNIT_VOLTS, 1 },
|
||||
{ T1_FIRST_ID, T2_LAST_ID, ZSTR_TEMP, UNIT_CELSIUS, 0 },
|
||||
{ RPM_FIRST_ID, RPM_LAST_ID, ZSTR_RPM, UNIT_RPMS, 0 },
|
||||
{ FUEL_FIRST_ID, FUEL_LAST_ID, ZSTR_FUEL, UNIT_PERCENT, 0 },
|
||||
@@ -77,6 +80,7 @@ const FrSkySportSensor sportSensors[] = {
|
||||
{ GPS_ALT_FIRST_ID, GPS_ALT_LAST_ID, ZSTR_GPSALT, UNIT_METERS, 2 },
|
||||
{ GPS_TIME_DATE_FIRST_ID, GPS_TIME_DATE_LAST_ID, ZSTR_GPSDATETIME, UNIT_DATETIME, 0 },
|
||||
{ GPS_LONG_LATI_FIRST_ID, GPS_LONG_LATI_LAST_ID, ZSTR_GPS, UNIT_GPS, 0 },
|
||||
{ FUEL_QTY_FIRST_ID, FUEL_QTY_LAST_ID, ZSTR_FUEL, UNIT_MILLILITERS, 2 },
|
||||
{ 0, 0, NULL, UNIT_RAW, 0 } // sentinel
|
||||
};
|
||||
|
||||
@@ -166,7 +170,7 @@ void processSportUpdatePacket(uint8_t *packet)
|
||||
|
||||
void processSportPacket(uint8_t *packet)
|
||||
{
|
||||
uint8_t dataId = packet[0];
|
||||
uint8_t dataId = (packet[0] & 0x1F) + 1;
|
||||
uint8_t prim = packet[1];
|
||||
uint16_t appId = *((uint16_t *)(packet+2));
|
||||
|
||||
@@ -220,8 +224,8 @@ void processSportPacket(uint8_t *packet)
|
||||
uint16_t value = HUB_DATA_U16(packet);
|
||||
processHubPacket(id, value);
|
||||
}
|
||||
else {
|
||||
if (appId == ADC1_ID || appId == ADC2_ID || appId == BATT_ID) {
|
||||
else if (!IS_HIDDEN_TELEMETRY_VALUE()) {
|
||||
if (appId == ADC1_ID || appId == ADC2_ID || appId == BATT_ID || appId == SWR_ID) {
|
||||
data = SPORT_DATA_U8(packet);
|
||||
}
|
||||
const FrSkySportSensor * sensor = getFrSkySportSensor(appId);
|
||||
@@ -250,9 +254,12 @@ void frskySportSetDefault(int index, uint16_t id, uint8_t instance)
|
||||
uint8_t prec = min<uint8_t>(2, sensor->prec);
|
||||
telemetrySensor.init(sensor->name, unit, prec);
|
||||
if (id >= ADC1_ID && id <= BATT_ID) {
|
||||
telemetrySensor.prec = 1;
|
||||
telemetrySensor.custom.ratio = 132;
|
||||
telemetrySensor.inputFlags = TELEM_INPUT_FLAGS_FILTERING;
|
||||
telemetrySensor.filter = 1;
|
||||
}
|
||||
if (unit == UNIT_RPMS) {
|
||||
telemetrySensor.custom.ratio = 1;
|
||||
telemetrySensor.custom.offset = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -14,8 +14,10 @@ void TelemetryItem::gpsReceived()
|
||||
lastReceived = now();
|
||||
}
|
||||
|
||||
void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t newVal, uint32_t unit, uint32_t prec)
|
||||
void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t val, uint32_t unit, uint32_t prec)
|
||||
{
|
||||
int32_t newVal = val;
|
||||
|
||||
if (unit == UNIT_CELLS) {
|
||||
uint32_t data = uint32_t(newVal);
|
||||
uint8_t cellIndex = data & 0xF;
|
||||
@@ -52,13 +54,41 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t newVal, uin
|
||||
datetime.year = (uint16_t) ((data & 0xff000000) >> 24);
|
||||
datetime.month = (uint8_t) ((data & 0x00ff0000) >> 16);
|
||||
datetime.day = (uint8_t) ((data & 0x0000ff00) >> 8);
|
||||
datetime.datestate = 1;
|
||||
if (datetime.year != 0) {
|
||||
datetime.datestate = 1;
|
||||
}
|
||||
#if defined(RTCLOCK)
|
||||
if (g_eeGeneral.adjustRTC && (datetime.datestate == 1)) {
|
||||
struct gtm t;
|
||||
gettime(&t);
|
||||
t.tm_year = datetime.year+4;
|
||||
t.tm_mon = datetime.month-1;
|
||||
t.tm_mday = datetime.day;
|
||||
rtcSetTime(&t);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
datetime.hour = ((uint8_t) ((data & 0xff000000) >> 24) + g_eeGeneral.timezone + 24) % 24;
|
||||
datetime.min = (uint8_t) ((data & 0x00ff0000) >> 16);
|
||||
datetime.sec = (uint16_t) ((data & 0x0000ff00) >> 8);
|
||||
datetime.timestate = 1;
|
||||
if (datetime.datestate == 1) {
|
||||
datetime.timestate = 1;
|
||||
}
|
||||
#if defined(RTCLOCK)
|
||||
if (g_eeGeneral.adjustRTC && (datetime.datestate == 1)) {
|
||||
struct gtm t;
|
||||
gettime(&t);
|
||||
if (abs((t.tm_hour-datetime.hour)*3600 + (t.tm_min-datetime.min)*60 + (t.tm_sec-datetime.sec)) > 20) {
|
||||
// we adjust RTC only if difference is > 20 seconds
|
||||
t.tm_hour = datetime.hour;
|
||||
t.tm_min = datetime.min;
|
||||
t.tm_sec = datetime.sec;
|
||||
g_rtcTime = gmktime(&t); // update local timestamp and get wday calculated
|
||||
rtcSetTime(&t);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
if (datetime.year == 0) {
|
||||
return;
|
||||
@@ -141,30 +171,33 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t newVal, uin
|
||||
datetime.timestate = 1;
|
||||
newVal = 0;
|
||||
}
|
||||
else if (unit == UNIT_RPMS) {
|
||||
newVal = (newVal * sensor.custom.offset) / sensor.custom.ratio;
|
||||
}
|
||||
else {
|
||||
newVal = sensor.getValue(newVal, unit, prec);
|
||||
if (sensor.inputFlags == TELEM_INPUT_FLAGS_AUTO_OFFSET) {
|
||||
if (sensor.autoOffset) {
|
||||
if (!isAvailable()) {
|
||||
offsetAuto = -newVal;
|
||||
std.offsetAuto = -newVal;
|
||||
}
|
||||
newVal += offsetAuto;
|
||||
newVal += std.offsetAuto;
|
||||
}
|
||||
else if (sensor.inputFlags == TELEM_INPUT_FLAGS_FILTERING) {
|
||||
else if (sensor.filter) {
|
||||
if (!isAvailable()) {
|
||||
for (int i=0; i<TELEMETRY_AVERAGE_COUNT; i++) {
|
||||
filterValues[i] = newVal;
|
||||
std.filterValues[i] = newVal;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// calculate the average from values[] and value
|
||||
// also shift readings in values [] array
|
||||
unsigned int sum = filterValues[0];
|
||||
unsigned int sum = std.filterValues[0];
|
||||
for (int i=0; i<TELEMETRY_AVERAGE_COUNT-1; i++) {
|
||||
int32_t tmp = filterValues[i+1];
|
||||
filterValues[i] = tmp;
|
||||
int32_t tmp = std.filterValues[i+1];
|
||||
std.filterValues[i] = tmp;
|
||||
sum += tmp;
|
||||
}
|
||||
filterValues[TELEMETRY_AVERAGE_COUNT-1] = newVal;
|
||||
std.filterValues[TELEMETRY_AVERAGE_COUNT-1] = newVal;
|
||||
sum += newVal;
|
||||
newVal = sum/(TELEMETRY_AVERAGE_COUNT+1);
|
||||
}
|
||||
@@ -185,6 +218,15 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t newVal, uin
|
||||
}
|
||||
}
|
||||
|
||||
for (int i=0; i<TELEM_VALUES_MAX; i++) {
|
||||
TelemetrySensor & it = g_model.telemetrySensors[i];
|
||||
if (it.type == TELEM_TYPE_CALCULATED && it.formula == TELEM_FORMULA_TOTALIZE && &g_model.telemetrySensors[it.consumption.source-1] == &sensor) {
|
||||
TelemetryItem & item = telemetryItems[i];
|
||||
int32_t increment = it.getValue(val, unit, prec);
|
||||
item.setValue(it, item.value+increment, it.unit, it.prec);
|
||||
}
|
||||
}
|
||||
|
||||
value = newVal;
|
||||
lastReceived = now();
|
||||
}
|
||||
@@ -401,40 +443,6 @@ void TelemetryItem::eval(const TelemetrySensor & sensor)
|
||||
}
|
||||
}
|
||||
|
||||
int getTelemetryIndex(TelemetryProtocol protocol, uint16_t id, uint8_t instance)
|
||||
{
|
||||
int available = -1;
|
||||
|
||||
for (int index=0; index<TELEM_VALUES_MAX; index++) {
|
||||
TelemetrySensor & telemetrySensor = g_model.telemetrySensors[index];
|
||||
if (telemetrySensor.id == id && telemetrySensor.instance == instance) {
|
||||
return index;
|
||||
}
|
||||
else if (available < 0 && telemetrySensor.id == 0) {
|
||||
available = index;
|
||||
}
|
||||
}
|
||||
|
||||
if (available >= 0) {
|
||||
switch (protocol) {
|
||||
#if defined(FRSKY_SPORT)
|
||||
case TELEM_PROTO_FRSKY_SPORT:
|
||||
frskySportSetDefault(available, id, instance);
|
||||
break;
|
||||
#endif
|
||||
#if defined(FRSKY)
|
||||
case TELEM_PROTO_FRSKY_D:
|
||||
frskyDSetDefault(available, id);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return available;
|
||||
}
|
||||
|
||||
void delTelemetryIndex(uint8_t index)
|
||||
{
|
||||
memclear(&g_model.telemetrySensors[index], sizeof(TelemetrySensor));
|
||||
@@ -453,15 +461,56 @@ int availableTelemetryIndex()
|
||||
return -1;
|
||||
}
|
||||
|
||||
int lastUsedTelemetryIndex()
|
||||
{
|
||||
for (int index=TELEM_VALUES_MAX-1; index>=0; index--) {
|
||||
TelemetrySensor & telemetrySensor = g_model.telemetrySensors[index];
|
||||
if (telemetrySensor.isAvailable()) {
|
||||
return index;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool isSensorAvailableInResetSpecialFunction(int index)
|
||||
{
|
||||
TelemetrySensor & telemetrySensor = g_model.telemetrySensors[index-FUNC_RESET_PARAM_FIRST_TELEM];
|
||||
return telemetrySensor.isAvailable();
|
||||
}
|
||||
|
||||
void setTelemetryValue(TelemetryProtocol protocol, uint16_t id, uint8_t instance, int32_t value, uint32_t unit, uint32_t prec)
|
||||
{
|
||||
int index = getTelemetryIndex(protocol, id, instance);
|
||||
|
||||
if (index >= 0) {
|
||||
telemetryItems[index].setValue(g_model.telemetrySensors[index], value, unit, prec);
|
||||
bool available = false;
|
||||
|
||||
for (int index=0; index<TELEM_VALUES_MAX; index++) {
|
||||
TelemetrySensor & telemetrySensor = g_model.telemetrySensors[index];
|
||||
if (telemetrySensor.id == id && telemetrySensor.instance == instance) {
|
||||
telemetryItems[index].setValue(g_model.telemetrySensors[index], value, unit, prec);
|
||||
available = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// TODO error too many sensors
|
||||
|
||||
if (!available) {
|
||||
int index = availableTelemetryIndex();
|
||||
if (index >= 0) {
|
||||
switch (protocol) {
|
||||
#if defined(FRSKY_SPORT)
|
||||
case TELEM_PROTO_FRSKY_SPORT:
|
||||
frskySportSetDefault(index, id, instance);
|
||||
break;
|
||||
#endif
|
||||
#if defined(FRSKY)
|
||||
case TELEM_PROTO_FRSKY_D:
|
||||
frskyDSetDefault(index, id);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
POPUP_WARNING(STR_TELEMETRYFULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -516,7 +565,12 @@ int32_t convertTelemetryValue(int32_t value, uint8_t unit, uint8_t prec, uint8_t
|
||||
value = 32 + (value*18)/10;
|
||||
}
|
||||
}
|
||||
|
||||
else if (unit == UNIT_MILLILITERS) {
|
||||
if (destUnit == UNIT_FLOZ) {
|
||||
value = (value * 100) / 2957;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i=destPrec; i<prec; i++)
|
||||
value /= 10;
|
||||
|
||||
@@ -545,3 +599,17 @@ int32_t TelemetrySensor::getValue(int32_t value, uint8_t unit, uint8_t prec) con
|
||||
return value;
|
||||
}
|
||||
|
||||
bool TelemetrySensor::isConfigurable()
|
||||
{
|
||||
if (type == TELEM_TYPE_CALCULATED) {
|
||||
if (formula >= TELEM_FORMULA_CELL) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (unit >= UNIT_FIRST_VIRTUAL) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -97,8 +97,10 @@ class TelemetryItem
|
||||
uint8_t lastReceived; // for detection of sensor loss
|
||||
|
||||
union {
|
||||
int32_t offsetAuto;
|
||||
int32_t filterValues[TELEMETRY_AVERAGE_COUNT];
|
||||
struct {
|
||||
int32_t offsetAuto;
|
||||
int32_t filterValues[TELEMETRY_AVERAGE_COUNT];
|
||||
} std;
|
||||
struct {
|
||||
uint16_t prescale;
|
||||
} consumption;
|
||||
@@ -175,16 +177,18 @@ inline bool isTelemetryFieldComparisonAvailable(int index)
|
||||
TelemetrySensor & sensor = g_model.telemetrySensors[index];
|
||||
if (sensor.type == TELEM_TYPE_CALCULATED)
|
||||
return true;
|
||||
if (sensor.unit == UNIT_GPS)
|
||||
return false;
|
||||
if (sensor.unit == UNIT_DATETIME)
|
||||
if (sensor.unit >= UNIT_DATETIME)
|
||||
return false;
|
||||
return (sensor.id != 0);
|
||||
}
|
||||
|
||||
extern TelemetryItem telemetryItems[];
|
||||
|
||||
void setTelemetryValue(TelemetryProtocol protocol, uint16_t id, uint8_t instance, int32_t value, uint32_t unit, uint32_t prec);
|
||||
void delTelemetryIndex(uint8_t index);
|
||||
int availableTelemetryIndex();
|
||||
int lastUsedTelemetryIndex();
|
||||
bool isSensorAvailableInResetSpecialFunction(int index);
|
||||
int32_t getTelemetryValue(uint8_t index, uint8_t & prec);
|
||||
int32_t convertTelemetryValue(int32_t value, uint8_t unit, uint8_t prec, uint8_t destUnit, uint8_t destPrec);
|
||||
|
||||
|
||||
@@ -761,6 +761,9 @@ TEST(Mixer, SlowOnSwitchSource)
|
||||
g_model.mixData[0].weight = 100;
|
||||
g_model.mixData[0].speedUp = SLOW_STEP*5;
|
||||
g_model.mixData[0].speedDown = SLOW_STEP*5;
|
||||
#if defined(PCBTARANIS)
|
||||
g_eeGeneral.switchConfig = 0x03;
|
||||
#endif
|
||||
|
||||
s_mixer_first_run_done = true;
|
||||
|
||||
|
||||
+67
-640
@@ -2,10 +2,12 @@
|
||||
******************************************************************************
|
||||
* @file system_stm32f4xx.c
|
||||
* @author MCD Application Team
|
||||
* @version V1.4.0
|
||||
* @date 04-August-2014
|
||||
* @version V1.1.0
|
||||
* @date 21-March-2015
|
||||
* @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File.
|
||||
* This file contains the system clock configuration for STM32F4xx devices.
|
||||
* This file contains the system clock configuration for STM32F4xx devices,
|
||||
* and is generated by the clock configuration tool
|
||||
* stm32f4xx_Clock_Configuration_V1.1.0.xls
|
||||
*
|
||||
* 1. This file provides two functions and one global variable to be called from
|
||||
* user application:
|
||||
@@ -40,7 +42,7 @@
|
||||
* 5. This file configures the system clock as follows:
|
||||
*=============================================================================
|
||||
*=============================================================================
|
||||
* Supported STM32F40xxx/41xxx devices
|
||||
* Supported STM32F40xx/41xx/427x/437x devices
|
||||
*-----------------------------------------------------------------------------
|
||||
* System Clock source | PLL (HSE)
|
||||
*-----------------------------------------------------------------------------
|
||||
@@ -54,9 +56,9 @@
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB2 Prescaler | 2
|
||||
*-----------------------------------------------------------------------------
|
||||
* HSE Frequency(Hz) | 25000000
|
||||
* HSE Frequency(Hz) | 12000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_M | 25
|
||||
* PLL_M | 12
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_N | 336
|
||||
*-----------------------------------------------------------------------------
|
||||
@@ -82,152 +84,11 @@
|
||||
*-----------------------------------------------------------------------------
|
||||
* Data cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Require 48MHz for USB OTG FS, | Disabled
|
||||
* Require 48MHz for USB OTG FS, | Enabled
|
||||
* SDIO and RNG clock |
|
||||
*-----------------------------------------------------------------------------
|
||||
*=============================================================================
|
||||
*=============================================================================
|
||||
* Supported STM32F42xxx/43xxx devices
|
||||
*-----------------------------------------------------------------------------
|
||||
* System Clock source | PLL (HSE)
|
||||
*-----------------------------------------------------------------------------
|
||||
* SYSCLK(Hz) | 180000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* HCLK(Hz) | 180000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* AHB Prescaler | 1
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB1 Prescaler | 4
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB2 Prescaler | 2
|
||||
*-----------------------------------------------------------------------------
|
||||
* HSE Frequency(Hz) | 25000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_M | 25
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_N | 360
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_P | 2
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_Q | 7
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLLI2S_N | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLLI2S_R | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* I2S input clock | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* VDD(V) | 3.3
|
||||
*-----------------------------------------------------------------------------
|
||||
* Main regulator output voltage | Scale1 mode
|
||||
*-----------------------------------------------------------------------------
|
||||
* Flash Latency(WS) | 5
|
||||
*-----------------------------------------------------------------------------
|
||||
* Prefetch Buffer | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Instruction cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Data cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Require 48MHz for USB OTG FS, | Disabled
|
||||
* SDIO and RNG clock |
|
||||
*-----------------------------------------------------------------------------
|
||||
*=============================================================================
|
||||
*=============================================================================
|
||||
* Supported STM32F401xx devices
|
||||
*-----------------------------------------------------------------------------
|
||||
* System Clock source | PLL (HSE)
|
||||
*-----------------------------------------------------------------------------
|
||||
* SYSCLK(Hz) | 84000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* HCLK(Hz) | 84000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* AHB Prescaler | 1
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB1 Prescaler | 2
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB2 Prescaler | 1
|
||||
*-----------------------------------------------------------------------------
|
||||
* HSE Frequency(Hz) | 25000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_M | 25
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_N | 336
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_P | 4
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_Q | 7
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLLI2S_N | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLLI2S_R | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* I2S input clock | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* VDD(V) | 3.3
|
||||
*-----------------------------------------------------------------------------
|
||||
* Main regulator output voltage | Scale1 mode
|
||||
*-----------------------------------------------------------------------------
|
||||
* Flash Latency(WS) | 2
|
||||
*-----------------------------------------------------------------------------
|
||||
* Prefetch Buffer | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Instruction cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Data cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Require 48MHz for USB OTG FS, | Disabled
|
||||
* SDIO and RNG clock |
|
||||
*-----------------------------------------------------------------------------
|
||||
*=============================================================================
|
||||
*=============================================================================
|
||||
* Supported STM32F411xx devices
|
||||
*-----------------------------------------------------------------------------
|
||||
* System Clock source | PLL (HSI)
|
||||
*-----------------------------------------------------------------------------
|
||||
* SYSCLK(Hz) | 100000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* HCLK(Hz) | 100000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* AHB Prescaler | 1
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB1 Prescaler | 2
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB2 Prescaler | 1
|
||||
*-----------------------------------------------------------------------------
|
||||
* HSI Frequency(Hz) | 16000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_M | 16
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_N | 400
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_P | 4
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_Q | 7
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLLI2S_N | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLLI2S_R | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* I2S input clock | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* VDD(V) | 3.3
|
||||
*-----------------------------------------------------------------------------
|
||||
* Main regulator output voltage | Scale1 mode
|
||||
*-----------------------------------------------------------------------------
|
||||
* Flash Latency(WS) | 3
|
||||
*-----------------------------------------------------------------------------
|
||||
* Prefetch Buffer | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Instruction cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Data cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Require 48MHz for USB OTG FS, | Disabled
|
||||
* SDIO and RNG clock |
|
||||
*-----------------------------------------------------------------------------
|
||||
*=============================================================================
|
||||
******************************************************************************
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© COPYRIGHT 2013 STMicroelectronics</center></h2>
|
||||
@@ -278,31 +139,10 @@
|
||||
*/
|
||||
|
||||
/************************* Miscellaneous Configuration ************************/
|
||||
/*!< Uncomment the following line if you need to use external SRAM or SDRAM mounted
|
||||
on STM324xG_EVAL/STM324x7I_EVAL/STM324x9I_EVAL boards as data memory */
|
||||
#if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
/*!< Uncomment the following line if you need to use external SRAM mounted
|
||||
on STM324xG_EVAL/STM324x7I_EVAL board as data memory */
|
||||
/* #define DATA_IN_ExtSRAM */
|
||||
#endif /* STM32F40_41xxx || STM32F427_437x || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
/* #define DATA_IN_ExtSDRAM */
|
||||
#endif /* STM32F427_437x || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F411xE)
|
||||
/*!< Uncomment the following line if you need to clock the STM32F411xE by HSE Bypass
|
||||
through STLINK MCO pin of STM32F103 microcontroller. The frequency cannot be changed
|
||||
and is fixed at 8 MHz.
|
||||
Hardware configuration needed for Nucleo Board:
|
||||
� SB54, SB55 OFF
|
||||
� R35 removed
|
||||
� SB16, SB50 ON */
|
||||
/* #define USE_HSE_BYPASS */
|
||||
|
||||
#if defined (USE_HSE_BYPASS)
|
||||
#define HSE_BYPASS_INPUT_FREQUENCY 8000000
|
||||
#endif /* USE_HSE_BYPASS */
|
||||
#endif /* STM32F411xE */
|
||||
|
||||
/*!< Uncomment the following line if you need to relocate your vector Table in
|
||||
Internal SRAM. */
|
||||
/* #define VECT_TAB_SRAM */
|
||||
@@ -311,48 +151,16 @@
|
||||
/******************************************************************************/
|
||||
|
||||
/************************* PLL Parameters *************************************/
|
||||
#if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx) || defined (STM32F401xx)
|
||||
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
|
||||
#if defined(REV9E)
|
||||
#define PLL_M 12
|
||||
#else
|
||||
#define PLL_M 25
|
||||
#endif
|
||||
#else /* STM32F411xE */
|
||||
#if defined (USE_HSE_BYPASS)
|
||||
#define PLL_M 8
|
||||
#else /* STM32F411xE */
|
||||
#define PLL_M 16
|
||||
#endif /* USE_HSE_BYPASS */
|
||||
#endif /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F401xx */
|
||||
#define PLL_N 336
|
||||
|
||||
/* SYSCLK = PLL_VCO / PLL_P */
|
||||
#define PLL_P 2
|
||||
|
||||
/* USB OTG FS, SDIO and RNG Clock = PLL_VCO / PLLQ */
|
||||
#define PLL_Q 7
|
||||
|
||||
#if defined (STM32F40_41xxx)
|
||||
#define PLL_N 336
|
||||
/* SYSCLK = PLL_VCO / PLL_P */
|
||||
#define PLL_P 2
|
||||
#endif /* STM32F40_41xxx */
|
||||
|
||||
#if defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
#define PLL_N 360
|
||||
/* SYSCLK = PLL_VCO / PLL_P */
|
||||
#define PLL_P 2
|
||||
#endif /* STM32F427_437x || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F401xx)
|
||||
#define PLL_N 336
|
||||
/* SYSCLK = PLL_VCO / PLL_P */
|
||||
#define PLL_P 4
|
||||
#endif /* STM32F401xx */
|
||||
|
||||
#if defined (STM32F411xE)
|
||||
#define PLL_N 400
|
||||
/* SYSCLK = PLL_VCO / PLL_P */
|
||||
#define PLL_P 4
|
||||
#endif /* STM32F411xx */
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/**
|
||||
@@ -371,23 +179,9 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
#if defined (STM32F40_41xxx)
|
||||
uint32_t SystemCoreClock = 168000000;
|
||||
#endif /* STM32F40_41xxx */
|
||||
|
||||
#if defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
uint32_t SystemCoreClock = 180000000;
|
||||
#endif /* STM32F427_437x || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F401xx)
|
||||
uint32_t SystemCoreClock = 84000000;
|
||||
#endif /* STM32F401xx */
|
||||
|
||||
#if defined (STM32F411xE)
|
||||
uint32_t SystemCoreClock = 100000000;
|
||||
#endif /* STM32F401xx */
|
||||
|
||||
__I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
|
||||
__I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
|
||||
|
||||
/**
|
||||
* @}
|
||||
@@ -398,10 +192,9 @@ __I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}
|
||||
*/
|
||||
|
||||
static void SetSysClock(void);
|
||||
|
||||
#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
|
||||
static void SystemInit_ExtMemCtl(void);
|
||||
#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
|
||||
#ifdef DATA_IN_ExtSRAM
|
||||
static void SystemInit_ExtMemCtl(void);
|
||||
#endif /* DATA_IN_ExtSRAM */
|
||||
|
||||
/**
|
||||
* @}
|
||||
@@ -443,9 +236,9 @@ void SystemInit(void)
|
||||
/* Disable all interrupts */
|
||||
RCC->CIR = 0x00000000;
|
||||
|
||||
#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
|
||||
#ifdef DATA_IN_ExtSRAM
|
||||
SystemInit_ExtMemCtl();
|
||||
#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
|
||||
#endif /* DATA_IN_ExtSRAM */
|
||||
|
||||
/* Configure the System clock source, PLL Multiplier and Divider factors,
|
||||
AHB/APBx prescalers and Flash settings ----------------------------------*/
|
||||
@@ -513,13 +306,13 @@ void SystemCoreClockUpdate(void)
|
||||
SystemCoreClock = HSE_VALUE;
|
||||
break;
|
||||
case 0x08: /* PLL used as system clock source */
|
||||
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
|
||||
|
||||
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
|
||||
SYSCLK = PLL_VCO / PLL_P
|
||||
*/
|
||||
pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
|
||||
pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
|
||||
|
||||
#if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx) || defined (STM32F401xx)
|
||||
if (pllsource != 0)
|
||||
{
|
||||
/* HSE used as PLL clock source */
|
||||
@@ -530,23 +323,9 @@ void SystemCoreClockUpdate(void)
|
||||
/* HSI used as PLL clock source */
|
||||
pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
|
||||
}
|
||||
#elif defined (STM32F411xE)
|
||||
#if defined (USE_HSE_BYPASS)
|
||||
if (pllsource != 0)
|
||||
{
|
||||
/* HSE used as PLL clock source */
|
||||
pllvco = (HSE_BYPASS_INPUT_FREQUENCY / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
|
||||
}
|
||||
#else
|
||||
if (pllsource == 0)
|
||||
{
|
||||
/* HSI used as PLL clock source */
|
||||
pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
|
||||
}
|
||||
#endif /* USE_HSE_BYPASS */
|
||||
#endif /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F401xx */
|
||||
|
||||
pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
|
||||
SystemCoreClock = pllvco/pllp;
|
||||
SystemCoreClock = pllvco/pllp;
|
||||
break;
|
||||
default:
|
||||
SystemCoreClock = HSI_VALUE;
|
||||
@@ -569,7 +348,6 @@ void SystemCoreClockUpdate(void)
|
||||
*/
|
||||
static void SetSysClock(void)
|
||||
{
|
||||
#if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx) || defined (STM32F401xx)
|
||||
/******************************************************************************/
|
||||
/* PLL (clocked by HSE) used as System clock source */
|
||||
/******************************************************************************/
|
||||
@@ -596,29 +374,19 @@ static void SetSysClock(void)
|
||||
|
||||
if (HSEStatus == (uint32_t)0x01)
|
||||
{
|
||||
/* Select regulator voltage output Scale 1 mode */
|
||||
/* Select regulator voltage output Scale 1 mode, System frequency up to 168 MHz */
|
||||
RCC->APB1ENR |= RCC_APB1ENR_PWREN;
|
||||
PWR->CR |= PWR_CR_VOS;
|
||||
|
||||
/* HCLK = SYSCLK / 1*/
|
||||
RCC->CFGR |= RCC_CFGR_HPRE_DIV1;
|
||||
|
||||
#if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
|
||||
/* PCLK2 = HCLK / 2*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE2_DIV2;
|
||||
|
||||
/* PCLK1 = HCLK / 4*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE1_DIV4;
|
||||
#endif /* STM32F40_41xxx || STM32F427_437x || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F401xx)
|
||||
/* PCLK2 = HCLK / 2*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE2_DIV1;
|
||||
|
||||
/* PCLK1 = HCLK / 4*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2;
|
||||
#endif /* STM32F401xx */
|
||||
|
||||
/* Configure the main PLL */
|
||||
RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) |
|
||||
(RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);
|
||||
@@ -631,29 +399,8 @@ static void SetSysClock(void)
|
||||
{
|
||||
}
|
||||
|
||||
#if defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
/* Enable the Over-drive to extend the clock frequency to 180 Mhz */
|
||||
PWR->CR |= PWR_CR_ODEN;
|
||||
while((PWR->CSR & PWR_CSR_ODRDY) == 0)
|
||||
{
|
||||
}
|
||||
PWR->CR |= PWR_CR_ODSWEN;
|
||||
while((PWR->CSR & PWR_CSR_ODSWRDY) == 0)
|
||||
{
|
||||
}
|
||||
/* Configure Flash prefetch, Instruction cache, Data cache and wait state */
|
||||
FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;
|
||||
#endif /* STM32F427_437x || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F40_41xxx)
|
||||
/* Configure Flash prefetch, Instruction cache, Data cache and wait state */
|
||||
FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;
|
||||
#endif /* STM32F40_41xxx */
|
||||
|
||||
#if defined (STM32F401xx)
|
||||
/* Configure Flash prefetch, Instruction cache, Data cache and wait state */
|
||||
FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_2WS;
|
||||
#endif /* STM32F401xx */
|
||||
FLASH->ACR = FLASH_ACR_PRFTEN |FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;
|
||||
|
||||
/* Select the main PLL as system clock source */
|
||||
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
|
||||
@@ -668,113 +415,7 @@ static void SetSysClock(void)
|
||||
{ /* If HSE fails to start-up, the application will have wrong clock
|
||||
configuration. User can add here some code to deal with this error */
|
||||
}
|
||||
#elif defined (STM32F411xE)
|
||||
#if defined (USE_HSE_BYPASS)
|
||||
/******************************************************************************/
|
||||
/* PLL (clocked by HSE) used as System clock source */
|
||||
/******************************************************************************/
|
||||
__IO uint32_t StartUpCounter = 0, HSEStatus = 0;
|
||||
|
||||
/* Enable HSE and HSE BYPASS */
|
||||
RCC->CR |= ((uint32_t)RCC_CR_HSEON | RCC_CR_HSEBYP);
|
||||
|
||||
/* Wait till HSE is ready and if Time out is reached exit */
|
||||
do
|
||||
{
|
||||
HSEStatus = RCC->CR & RCC_CR_HSERDY;
|
||||
StartUpCounter++;
|
||||
} while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));
|
||||
|
||||
if ((RCC->CR & RCC_CR_HSERDY) != RESET)
|
||||
{
|
||||
HSEStatus = (uint32_t)0x01;
|
||||
}
|
||||
else
|
||||
{
|
||||
HSEStatus = (uint32_t)0x00;
|
||||
}
|
||||
|
||||
if (HSEStatus == (uint32_t)0x01)
|
||||
{
|
||||
/* Select regulator voltage output Scale 1 mode */
|
||||
RCC->APB1ENR |= RCC_APB1ENR_PWREN;
|
||||
PWR->CR |= PWR_CR_VOS;
|
||||
|
||||
/* HCLK = SYSCLK / 1*/
|
||||
RCC->CFGR |= RCC_CFGR_HPRE_DIV1;
|
||||
|
||||
/* PCLK2 = HCLK / 2*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE2_DIV1;
|
||||
|
||||
/* PCLK1 = HCLK / 4*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2;
|
||||
|
||||
/* Configure the main PLL */
|
||||
RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) |
|
||||
(RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);
|
||||
|
||||
/* Enable the main PLL */
|
||||
RCC->CR |= RCC_CR_PLLON;
|
||||
|
||||
/* Wait till the main PLL is ready */
|
||||
while((RCC->CR & RCC_CR_PLLRDY) == 0)
|
||||
{
|
||||
}
|
||||
|
||||
/* Configure Flash prefetch, Instruction cache, Data cache and wait state */
|
||||
FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_2WS;
|
||||
|
||||
/* Select the main PLL as system clock source */
|
||||
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
|
||||
RCC->CFGR |= RCC_CFGR_SW_PLL;
|
||||
|
||||
/* Wait till the main PLL is used as system clock source */
|
||||
while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS ) != RCC_CFGR_SWS_PLL);
|
||||
{
|
||||
}
|
||||
}
|
||||
else
|
||||
{ /* If HSE fails to start-up, the application will have wrong clock
|
||||
configuration. User can add here some code to deal with this error */
|
||||
}
|
||||
#else /* HSI will be used as PLL clock source */
|
||||
/* Select regulator voltage output Scale 1 mode */
|
||||
RCC->APB1ENR |= RCC_APB1ENR_PWREN;
|
||||
PWR->CR |= PWR_CR_VOS;
|
||||
|
||||
/* HCLK = SYSCLK / 1*/
|
||||
RCC->CFGR |= RCC_CFGR_HPRE_DIV1;
|
||||
|
||||
/* PCLK2 = HCLK / 2*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE2_DIV1;
|
||||
|
||||
/* PCLK1 = HCLK / 4*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2;
|
||||
|
||||
/* Configure the main PLL */
|
||||
RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) | (PLL_Q << 24);
|
||||
|
||||
/* Enable the main PLL */
|
||||
RCC->CR |= RCC_CR_PLLON;
|
||||
|
||||
/* Wait till the main PLL is ready */
|
||||
while((RCC->CR & RCC_CR_PLLRDY) == 0)
|
||||
{
|
||||
}
|
||||
|
||||
/* Configure Flash prefetch, Instruction cache, Data cache and wait state */
|
||||
FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_2WS;
|
||||
|
||||
/* Select the main PLL as system clock source */
|
||||
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
|
||||
RCC->CFGR |= RCC_CFGR_SW_PLL;
|
||||
|
||||
/* Wait till the main PLL is used as system clock source */
|
||||
while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS ) != RCC_CFGR_SWS_PLL);
|
||||
{
|
||||
}
|
||||
#endif /* USE_HSE_BYPASS */
|
||||
#endif /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F401xx */
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -787,7 +428,7 @@ static void SetSysClock(void)
|
||||
/**
|
||||
* @brief Setup the external memory controller.
|
||||
* Called in startup_stm32f4xx.s before jump to main.
|
||||
* This function configures the external SRAM mounted on STM324xG_EVAL/STM324x7I boards
|
||||
* This function configures the external SRAM mounted on STM324xG_EVAL/STM324x7I_EVAL board
|
||||
* This SRAM will be used as program data memory (including heap and stack).
|
||||
* @param None
|
||||
* @retval None
|
||||
@@ -796,28 +437,31 @@ void SystemInit_ExtMemCtl(void)
|
||||
{
|
||||
/*-- GPIOs Configuration -----------------------------------------------------*/
|
||||
/*
|
||||
+-------------------+--------------------+------------------+--------------+
|
||||
+ SRAM pins assignment +
|
||||
+-------------------+--------------------+------------------+--------------+
|
||||
| PD0 <-> FMC_D2 | PE0 <-> FMC_NBL0 | PF0 <-> FMC_A0 | PG0 <-> FMC_A10 |
|
||||
| PD1 <-> FMC_D3 | PE1 <-> FMC_NBL1 | PF1 <-> FMC_A1 | PG1 <-> FMC_A11 |
|
||||
| PD4 <-> FMC_NOE | PE3 <-> FMC_A19 | PF2 <-> FMC_A2 | PG2 <-> FMC_A12 |
|
||||
| PD5 <-> FMC_NWE | PE4 <-> FMC_A20 | PF3 <-> FMC_A3 | PG3 <-> FMC_A13 |
|
||||
| PD8 <-> FMC_D13 | PE7 <-> FMC_D4 | PF4 <-> FMC_A4 | PG4 <-> FMC_A14 |
|
||||
| PD9 <-> FMC_D14 | PE8 <-> FMC_D5 | PF5 <-> FMC_A5 | PG5 <-> FMC_A15 |
|
||||
| PD10 <-> FMC_D15 | PE9 <-> FMC_D6 | PF12 <-> FMC_A6 | PG9 <-> FMC_NE2 |
|
||||
| PD11 <-> FMC_A16 | PE10 <-> FMC_D7 | PF13 <-> FMC_A7 |-----------------+
|
||||
| PD12 <-> FMC_A17 | PE11 <-> FMC_D8 | PF14 <-> FMC_A8 |
|
||||
| PD13 <-> FMC_A18 | PE12 <-> FMC_D9 | PF15 <-> FMC_A9 |
|
||||
| PD14 <-> FMC_D0 | PE13 <-> FMC_D10 |-----------------+
|
||||
| PD15 <-> FMC_D1 | PE14 <-> FMC_D11 |
|
||||
| | PE15 <-> FMC_D12 |
|
||||
+------------------+------------------+
|
||||
+-------------------+--------------------+------------------+------------------+
|
||||
+ SRAM pins assignment +
|
||||
+-------------------+--------------------+------------------+------------------+
|
||||
| PD0 <-> FSMC_D2 | PE0 <-> FSMC_NBL0 | PF0 <-> FSMC_A0 | PG0 <-> FSMC_A10 |
|
||||
| PD1 <-> FSMC_D3 | PE1 <-> FSMC_NBL1 | PF1 <-> FSMC_A1 | PG1 <-> FSMC_A11 |
|
||||
| PD4 <-> FSMC_NOE | PE2 <-> FSMC_A23 | PF2 <-> FSMC_A2 | PG2 <-> FSMC_A12 |
|
||||
| PD5 <-> FSMC_NWE | PE3 <-> FSMC_A19 | PF3 <-> FSMC_A3 | PG3 <-> FSMC_A13 |
|
||||
| PD8 <-> FSMC_D13 | PE4 <-> FSMC_A20 | PF4 <-> FSMC_A4 | PG4 <-> FSMC_A14 |
|
||||
| PD9 <-> FSMC_D14 | PE5 <-> FSMC_A21 | PF5 <-> FSMC_A5 | PG5 <-> FSMC_A15 |
|
||||
| PD10 <-> FSMC_D15 | PE6 <-> FSMC_A22 | PF12 <-> FSMC_A6 | PG9 <-> FSMC_NE2 |
|
||||
| PD11 <-> FSMC_A16 | PE7 <-> FSMC_D4 | PF13 <-> FSMC_A7 |------------------+
|
||||
| PD12 <-> FSMC_A17 | PE8 <-> FSMC_D5 | PF14 <-> FSMC_A8 |
|
||||
| PD13 <-> FSMC_A18 | PE9 <-> FSMC_D6 | PF15 <-> FSMC_A9 |
|
||||
| PD14 <-> FSMC_D0 | PE10 <-> FSMC_D7 |------------------+
|
||||
| PD15 <-> FSMC_D1 | PE11 <-> FSMC_D8 |
|
||||
+-------------------| PE12 <-> FSMC_D9 |
|
||||
| PE13 <-> FSMC_D10 |
|
||||
| PE14 <-> FSMC_D11 |
|
||||
| PE15 <-> FSMC_D12 |
|
||||
+--------------------+
|
||||
*/
|
||||
/* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */
|
||||
RCC->AHB1ENR |= 0x00000078;
|
||||
|
||||
/* Connect PDx pins to FMC Alternate function */
|
||||
/* Connect PDx pins to FSMC Alternate function */
|
||||
GPIOD->AFR[0] = 0x00cc00cc;
|
||||
GPIOD->AFR[1] = 0xcccccccc;
|
||||
/* Configure PDx pins in Alternate function mode */
|
||||
@@ -829,7 +473,7 @@ void SystemInit_ExtMemCtl(void)
|
||||
/* No pull-up, pull-down for PDx pins */
|
||||
GPIOD->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PEx pins to FMC Alternate function */
|
||||
/* Connect PEx pins to FSMC Alternate function */
|
||||
GPIOE->AFR[0] = 0xcccccccc;
|
||||
GPIOE->AFR[1] = 0xcccccccc;
|
||||
/* Configure PEx pins in Alternate function mode */
|
||||
@@ -841,7 +485,7 @@ void SystemInit_ExtMemCtl(void)
|
||||
/* No pull-up, pull-down for PEx pins */
|
||||
GPIOE->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PFx pins to FMC Alternate function */
|
||||
/* Connect PFx pins to FSMC Alternate function */
|
||||
GPIOF->AFR[0] = 0x00cccccc;
|
||||
GPIOF->AFR[1] = 0xcccc0000;
|
||||
/* Configure PFx pins in Alternate function mode */
|
||||
@@ -853,7 +497,7 @@ void SystemInit_ExtMemCtl(void)
|
||||
/* No pull-up, pull-down for PFx pins */
|
||||
GPIOF->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PGx pins to FMC Alternate function */
|
||||
/* Connect PGx pins to FSMC Alternate function */
|
||||
GPIOG->AFR[0] = 0x00cccccc;
|
||||
GPIOG->AFR[1] = 0x000000c0;
|
||||
/* Configure PGx pins in Alternate function mode */
|
||||
@@ -865,34 +509,24 @@ void SystemInit_ExtMemCtl(void)
|
||||
/* No pull-up, pull-down for PGx pins */
|
||||
GPIOG->PUPDR = 0x00000000;
|
||||
|
||||
/*-- FMC Configuration ------------------------------------------------------*/
|
||||
/* Enable the FMC/FSMC interface clock */
|
||||
/*-- FSMC Configuration ------------------------------------------------------*/
|
||||
/* Enable the FSMC interface clock */
|
||||
RCC->AHB3ENR |= 0x00000001;
|
||||
|
||||
#if defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
/* Configure and enable Bank1_SRAM2 */
|
||||
FMC_Bank1->BTCR[2] = 0x00001011;
|
||||
FMC_Bank1->BTCR[3] = 0x00000201;
|
||||
FMC_Bank1E->BWTR[2] = 0x0fffffff;
|
||||
#endif /* STM32F427_437xx || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F40_41xxx)
|
||||
/* Configure and enable Bank1_SRAM2 */
|
||||
FSMC_Bank1->BTCR[2] = 0x00001011;
|
||||
FSMC_Bank1->BTCR[3] = 0x00000201;
|
||||
FSMC_Bank1E->BWTR[2] = 0x0fffffff;
|
||||
#endif /* STM32F40_41xxx */
|
||||
|
||||
/*
|
||||
Bank1_SRAM2 is configured as follow:
|
||||
In case of FSMC configuration
|
||||
NORSRAMTimingStructure.FSMC_AddressSetupTime = 1;
|
||||
NORSRAMTimingStructure.FSMC_AddressHoldTime = 0;
|
||||
NORSRAMTimingStructure.FSMC_DataSetupTime = 2;
|
||||
NORSRAMTimingStructure.FSMC_BusTurnAroundDuration = 0;
|
||||
NORSRAMTimingStructure.FSMC_CLKDivision = 0;
|
||||
NORSRAMTimingStructure.FSMC_DataLatency = 0;
|
||||
NORSRAMTimingStructure.FSMC_AccessMode = FMC_AccessMode_A;
|
||||
|
||||
p.FSMC_AddressSetupTime = 1;
|
||||
p.FSMC_AddressHoldTime = 0;
|
||||
p.FSMC_DataSetupTime = 2;
|
||||
p.FSMC_BusTurnAroundDuration = 0;
|
||||
p.FSMC_CLKDivision = 0;
|
||||
p.FSMC_DataLatency = 0;
|
||||
p.FSMC_AccessMode = FSMC_AccessMode_A;
|
||||
|
||||
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM2;
|
||||
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
|
||||
@@ -907,219 +541,11 @@ void SystemInit_ExtMemCtl(void)
|
||||
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
|
||||
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
|
||||
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
|
||||
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &NORSRAMTimingStructure;
|
||||
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &NORSRAMTimingStructure;
|
||||
|
||||
In case of FMC configuration
|
||||
NORSRAMTimingStructure.FMC_AddressSetupTime = 1;
|
||||
NORSRAMTimingStructure.FMC_AddressHoldTime = 0;
|
||||
NORSRAMTimingStructure.FMC_DataSetupTime = 2;
|
||||
NORSRAMTimingStructure.FMC_BusTurnAroundDuration = 0;
|
||||
NORSRAMTimingStructure.FMC_CLKDivision = 0;
|
||||
NORSRAMTimingStructure.FMC_DataLatency = 0;
|
||||
NORSRAMTimingStructure.FMC_AccessMode = FMC_AccessMode_A;
|
||||
|
||||
FMC_NORSRAMInitStructure.FMC_Bank = FMC_Bank1_NORSRAM2;
|
||||
FMC_NORSRAMInitStructure.FMC_DataAddressMux = FMC_DataAddressMux_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_MemoryType = FMC_MemoryType_SRAM;
|
||||
FMC_NORSRAMInitStructure.FMC_MemoryDataWidth = FMC_MemoryDataWidth_16b;
|
||||
FMC_NORSRAMInitStructure.FMC_BurstAccessMode = FMC_BurstAccessMode_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_AsynchronousWait = FMC_AsynchronousWait_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_WaitSignalPolarity = FMC_WaitSignalPolarity_Low;
|
||||
FMC_NORSRAMInitStructure.FMC_WrapMode = FMC_WrapMode_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_WaitSignalActive = FMC_WaitSignalActive_BeforeWaitState;
|
||||
FMC_NORSRAMInitStructure.FMC_WriteOperation = FMC_WriteOperation_Enable;
|
||||
FMC_NORSRAMInitStructure.FMC_WaitSignal = FMC_WaitSignal_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_ExtendedMode = FMC_ExtendedMode_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_WriteBurst = FMC_WriteBurst_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_ContinousClock = FMC_CClock_SyncOnly;
|
||||
FMC_NORSRAMInitStructure.FMC_ReadWriteTimingStruct = &NORSRAMTimingStructure;
|
||||
FMC_NORSRAMInitStructure.FMC_WriteTimingStruct = &NORSRAMTimingStructure;
|
||||
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
|
||||
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
|
||||
*/
|
||||
|
||||
}
|
||||
#endif /* DATA_IN_ExtSRAM */
|
||||
|
||||
#ifdef DATA_IN_ExtSDRAM
|
||||
/**
|
||||
* @brief Setup the external memory controller.
|
||||
* Called in startup_stm32f4xx.s before jump to main.
|
||||
* This function configures the external SDRAM mounted on STM324x9I_EVAL board
|
||||
* This SDRAM will be used as program data memory (including heap and stack).
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void SystemInit_ExtMemCtl(void)
|
||||
{
|
||||
register uint32_t tmpreg = 0, timeout = 0xFFFF;
|
||||
register uint32_t index;
|
||||
|
||||
/* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface
|
||||
clock */
|
||||
RCC->AHB1ENR |= 0x000001FC;
|
||||
|
||||
/* Connect PCx pins to FMC Alternate function */
|
||||
GPIOC->AFR[0] = 0x0000000c;
|
||||
GPIOC->AFR[1] = 0x00007700;
|
||||
/* Configure PCx pins in Alternate function mode */
|
||||
GPIOC->MODER = 0x00a00002;
|
||||
/* Configure PCx pins speed to 50 MHz */
|
||||
GPIOC->OSPEEDR = 0x00a00002;
|
||||
/* Configure PCx pins Output type to push-pull */
|
||||
GPIOC->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PCx pins */
|
||||
GPIOC->PUPDR = 0x00500000;
|
||||
|
||||
/* Connect PDx pins to FMC Alternate function */
|
||||
GPIOD->AFR[0] = 0x000000CC;
|
||||
GPIOD->AFR[1] = 0xCC000CCC;
|
||||
/* Configure PDx pins in Alternate function mode */
|
||||
GPIOD->MODER = 0xA02A000A;
|
||||
/* Configure PDx pins speed to 50 MHz */
|
||||
GPIOD->OSPEEDR = 0xA02A000A;
|
||||
/* Configure PDx pins Output type to push-pull */
|
||||
GPIOD->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PDx pins */
|
||||
GPIOD->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PEx pins to FMC Alternate function */
|
||||
GPIOE->AFR[0] = 0xC00000CC;
|
||||
GPIOE->AFR[1] = 0xCCCCCCCC;
|
||||
/* Configure PEx pins in Alternate function mode */
|
||||
GPIOE->MODER = 0xAAAA800A;
|
||||
/* Configure PEx pins speed to 50 MHz */
|
||||
GPIOE->OSPEEDR = 0xAAAA800A;
|
||||
/* Configure PEx pins Output type to push-pull */
|
||||
GPIOE->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PEx pins */
|
||||
GPIOE->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PFx pins to FMC Alternate function */
|
||||
GPIOF->AFR[0] = 0xcccccccc;
|
||||
GPIOF->AFR[1] = 0xcccccccc;
|
||||
/* Configure PFx pins in Alternate function mode */
|
||||
GPIOF->MODER = 0xAA800AAA;
|
||||
/* Configure PFx pins speed to 50 MHz */
|
||||
GPIOF->OSPEEDR = 0xAA800AAA;
|
||||
/* Configure PFx pins Output type to push-pull */
|
||||
GPIOF->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PFx pins */
|
||||
GPIOF->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PGx pins to FMC Alternate function */
|
||||
GPIOG->AFR[0] = 0xcccccccc;
|
||||
GPIOG->AFR[1] = 0xcccccccc;
|
||||
/* Configure PGx pins in Alternate function mode */
|
||||
GPIOG->MODER = 0xaaaaaaaa;
|
||||
/* Configure PGx pins speed to 50 MHz */
|
||||
GPIOG->OSPEEDR = 0xaaaaaaaa;
|
||||
/* Configure PGx pins Output type to push-pull */
|
||||
GPIOG->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PGx pins */
|
||||
GPIOG->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PHx pins to FMC Alternate function */
|
||||
GPIOH->AFR[0] = 0x00C0CC00;
|
||||
GPIOH->AFR[1] = 0xCCCCCCCC;
|
||||
/* Configure PHx pins in Alternate function mode */
|
||||
GPIOH->MODER = 0xAAAA08A0;
|
||||
/* Configure PHx pins speed to 50 MHz */
|
||||
GPIOH->OSPEEDR = 0xAAAA08A0;
|
||||
/* Configure PHx pins Output type to push-pull */
|
||||
GPIOH->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PHx pins */
|
||||
GPIOH->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PIx pins to FMC Alternate function */
|
||||
GPIOI->AFR[0] = 0xCCCCCCCC;
|
||||
GPIOI->AFR[1] = 0x00000CC0;
|
||||
/* Configure PIx pins in Alternate function mode */
|
||||
GPIOI->MODER = 0x0028AAAA;
|
||||
/* Configure PIx pins speed to 50 MHz */
|
||||
GPIOI->OSPEEDR = 0x0028AAAA;
|
||||
/* Configure PIx pins Output type to push-pull */
|
||||
GPIOI->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PIx pins */
|
||||
GPIOI->PUPDR = 0x00000000;
|
||||
|
||||
/*-- FMC Configuration ------------------------------------------------------*/
|
||||
/* Enable the FMC interface clock */
|
||||
RCC->AHB3ENR |= 0x00000001;
|
||||
|
||||
/* Configure and enable SDRAM bank1 */
|
||||
FMC_Bank5_6->SDCR[0] = 0x000039D0;
|
||||
FMC_Bank5_6->SDTR[0] = 0x01115351;
|
||||
|
||||
/* SDRAM initialization sequence */
|
||||
/* Clock enable command */
|
||||
FMC_Bank5_6->SDCMR = 0x00000011;
|
||||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
|
||||
while((tmpreg != 0) & (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
/* Delay */
|
||||
for (index = 0; index<1000; index++);
|
||||
|
||||
/* PALL command */
|
||||
FMC_Bank5_6->SDCMR = 0x00000012;
|
||||
timeout = 0xFFFF;
|
||||
while((tmpreg != 0) & (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
/* Auto refresh command */
|
||||
FMC_Bank5_6->SDCMR = 0x00000073;
|
||||
timeout = 0xFFFF;
|
||||
while((tmpreg != 0) & (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
/* MRD register program */
|
||||
FMC_Bank5_6->SDCMR = 0x00046014;
|
||||
timeout = 0xFFFF;
|
||||
while((tmpreg != 0) & (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
/* Set refresh count */
|
||||
tmpreg = FMC_Bank5_6->SDRTR;
|
||||
FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1));
|
||||
|
||||
/* Disable write protection */
|
||||
tmpreg = FMC_Bank5_6->SDCR[0];
|
||||
FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF);
|
||||
|
||||
/*
|
||||
Bank1_SDRAM is configured as follow:
|
||||
|
||||
FMC_SDRAMTimingInitStructure.FMC_LoadToActiveDelay = 2;
|
||||
FMC_SDRAMTimingInitStructure.FMC_ExitSelfRefreshDelay = 6;
|
||||
FMC_SDRAMTimingInitStructure.FMC_SelfRefreshTime = 4;
|
||||
FMC_SDRAMTimingInitStructure.FMC_RowCycleDelay = 6;
|
||||
FMC_SDRAMTimingInitStructure.FMC_WriteRecoveryTime = 2;
|
||||
FMC_SDRAMTimingInitStructure.FMC_RPDelay = 2;
|
||||
FMC_SDRAMTimingInitStructure.FMC_RCDDelay = 2;
|
||||
|
||||
FMC_SDRAMInitStructure.FMC_Bank = SDRAM_BANK;
|
||||
FMC_SDRAMInitStructure.FMC_ColumnBitsNumber = FMC_ColumnBits_Number_8b;
|
||||
FMC_SDRAMInitStructure.FMC_RowBitsNumber = FMC_RowBits_Number_11b;
|
||||
FMC_SDRAMInitStructure.FMC_SDMemoryDataWidth = FMC_SDMemory_Width_16b;
|
||||
FMC_SDRAMInitStructure.FMC_InternalBankNumber = FMC_InternalBank_Number_4;
|
||||
FMC_SDRAMInitStructure.FMC_CASLatency = FMC_CAS_Latency_3;
|
||||
FMC_SDRAMInitStructure.FMC_WriteProtection = FMC_Write_Protection_Disable;
|
||||
FMC_SDRAMInitStructure.FMC_SDClockPeriod = FMC_SDClock_Period_2;
|
||||
FMC_SDRAMInitStructure.FMC_ReadBurst = FMC_Read_Burst_disable;
|
||||
FMC_SDRAMInitStructure.FMC_ReadPipeDelay = FMC_ReadPipe_Delay_1;
|
||||
FMC_SDRAMInitStructure.FMC_SDRAMTimingStruct = &FMC_SDRAMTimingInitStructure;
|
||||
*/
|
||||
|
||||
}
|
||||
#endif /* DATA_IN_ExtSDRAM */
|
||||
|
||||
|
||||
/**
|
||||
@@ -1134,3 +560,4 @@ void SystemInit_ExtMemCtl(void)
|
||||
* @}
|
||||
*/
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
|
||||
|
||||
@@ -121,6 +121,10 @@ const pm_char STR_OPEN9X[] PROGMEM =
|
||||
ISTR(DSM_PROTOCOLS)
|
||||
ISTR(VOLTSRC)
|
||||
ISTR(CURVE_TYPES)
|
||||
ISTR(VSENSORTYPES)
|
||||
ISTR(VFORMULAS)
|
||||
ISTR(VPREC)
|
||||
ISTR(VCELLINDEX)
|
||||
#endif
|
||||
#if defined(MAVLINK)
|
||||
ISTR(MAVLINK_BAUDS)
|
||||
@@ -248,6 +252,8 @@ const pm_char STR_THROTTLEWARNING[] PROGMEM = TR_THROTTLEWARNING;
|
||||
const pm_char STR_SWITCHWARNING[] PROGMEM = TR_SWITCHWARNING;
|
||||
#ifdef FRSKY
|
||||
const pm_char STR_TIMEZONE[] PROGMEM = TR_TIMEZONE;
|
||||
const pm_char STR_ADJUST_RTC[] PROGMEM = TR_ADJUST_RTC;
|
||||
const pm_char STR_GPS[] PROGMEM = TR_GPS;
|
||||
const pm_char STR_GPSCOORD[] PROGMEM = TR_GPSCOORD;
|
||||
const pm_char STR_VARIO[] PROGMEM = TR_VARIO;
|
||||
const pm_char STR_PITCH_AT_ZERO[] PROGMEM = TR_PITCH_AT_ZERO;
|
||||
@@ -376,6 +382,10 @@ const pm_char STR_SHUTDOWN[] PROGMEM = TR_SHUTDOWN;
|
||||
const pm_char STR_SAVEMODEL[] PROGMEM = TR_SAVEMODEL;
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
const pm_char STR_POWEROFF[] PROGMEM = TR_POWEROFF;
|
||||
#endif
|
||||
|
||||
const pm_char STR_BATT_CALIB[] PROGMEM = TR_BATT_CALIB;
|
||||
|
||||
#if defined(CPUARM) || defined(FRSKY)
|
||||
@@ -499,6 +509,8 @@ const pm_char STR_FLASH_EXTERNAL_DEVICE[] PROGMEM = TR_FLASH_EXTERNAL_DEVICE;
|
||||
const pm_char STR_WRITING[] PROGMEM = TR_WRITING;
|
||||
const pm_char STR_CONFIRM_FORMAT[] PROGMEM = TR_CONFIRM_FORMAT;
|
||||
const pm_char STR_EEBACKUP[] PROGMEM = TR_EEBACKUP;
|
||||
const pm_char STR_FACTORYRESET[] PROGMEM = TR_FACTORYRESET;
|
||||
const pm_char STR_CONFIRMRESET[] PROGMEM = TR_CONFIRMRESET;
|
||||
const pm_char STR_TOO_MANY_LUA_SCRIPTS[] PROGMEM = TR_TO_MANY_LUA_SCRIPTS;
|
||||
const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR;
|
||||
|
||||
@@ -529,9 +541,24 @@ const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR;
|
||||
const pm_char STR_CRITICALALARM[] PROGMEM = TR_CRITICALALARM;
|
||||
const pm_char STR_TELEMETRY_TYPE[] PROGMEM = TR_TELEMETRY_TYPE;
|
||||
const pm_char STR_TELEMETRY_SENSORS[] PROGMEM = TR_TELEMETRY_SENSORS;
|
||||
const pm_char STR_VALUE[] PROGMEM = TR_VALUE;
|
||||
const pm_char STR_TOPLCDTIMER[] PROGMEM = TR_TOPLCDTIMER;
|
||||
const pm_char STR_UNIT[] PROGMEM = TR_UNIT;
|
||||
const pm_char STR_TELEMETRY_NEWSENSOR[] PROGMEM = TR_TELEMETRY_NEWSENSOR;
|
||||
const pm_char STR_ID[] PROGMEM = TR_ID;
|
||||
const pm_char STR_PRECISION[] PROGMEM = TR_PRECISION;
|
||||
const pm_char STR_RATIO[] PROGMEM = TR_RATIO;
|
||||
const pm_char STR_FORMULA[] PROGMEM = TR_FORMULA;
|
||||
const pm_char STR_CELLINDEX[] PROGMEM = TR_CELLINDEX;
|
||||
const pm_char STR_LOGS[] PROGMEM = TR_LOGS;
|
||||
const pm_char STR_OPTIONS[] PROGMEM = TR_OPTIONS;
|
||||
const pm_char STR_ALTSENSOR[] PROGMEM = TR_ALTSENSOR;
|
||||
const pm_char STR_CELLSENSOR[] PROGMEM = TR_CELLSENSOR;
|
||||
const pm_char STR_GPSSENSOR[] PROGMEM = TR_GPSSENSOR;
|
||||
const pm_char STR_CURRENTSENSOR[] PROGMEM = TR_CURRENTSENSOR;
|
||||
const pm_char STR_AUTOOFFSET[] PROGMEM = TR_AUTOOFFSET;
|
||||
const pm_char STR_FILTER[] PROGMEM = TR_FILTER;
|
||||
const pm_char STR_TELEMETRYFULL[] PROGMEM = TR_TELEMETRYFULL;
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
@@ -561,6 +588,18 @@ const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR;
|
||||
const pm_char STR_SCRIPT[] PROGMEM = TR_SCRIPT;
|
||||
const pm_char STR_INPUTS[] PROGMEM = TR_INPUTS;
|
||||
const pm_char STR_OUTPUTS[] PROGMEM = TR_OUTPUTS;
|
||||
const pm_char STR_MENU_INPUTS[] PROGMEM = TR_MENU_INPUTS;
|
||||
const pm_char STR_MENU_LUA[] PROGMEM = TR_MENU_LUA;
|
||||
const pm_char STR_MENU_STICKS[] PROGMEM = TR_MENU_STICKS;
|
||||
const pm_char STR_MENU_POTS[] PROGMEM = TR_MENU_POTS;
|
||||
const pm_char STR_MENU_MAX[] PROGMEM = TR_MENU_MAX;
|
||||
const pm_char STR_MENU_HELI[] PROGMEM = TR_MENU_HELI;
|
||||
const pm_char STR_MENU_TRIMS[] PROGMEM = TR_MENU_TRIMS;
|
||||
const pm_char STR_MENU_SWITCHES[] PROGMEM = TR_MENU_SWITCHES;
|
||||
const pm_char STR_MENU_TRAINER[] PROGMEM = TR_MENU_TRAINER;
|
||||
const pm_char STR_MENU_CHANNELS[] PROGMEM = TR_MENU_CHANNELS;
|
||||
const pm_char STR_MENU_GVARS[] PROGMEM = TR_MENU_GVARS;
|
||||
const pm_char STR_MENU_TELEMETRY[] PROGMEM = TR_MENU_TELEMETRY;
|
||||
#endif
|
||||
|
||||
#if MENUS_LOCK == 1
|
||||
|
||||
@@ -192,7 +192,11 @@ extern const pm_char STR_OPEN9X[];
|
||||
#define OFS_DSM_PROTOCOLS (OFS_XJT_PROTOCOLS + sizeof(TR_XJT_PROTOCOLS))
|
||||
#define OFS_VOLTSRC (OFS_DSM_PROTOCOLS + sizeof(TR_DSM_PROTOCOLS))
|
||||
#define OFS_CURVE_TYPES (OFS_VOLTSRC + sizeof(TR_VOLTSRC))
|
||||
#define OFS_MAVLINK_BAUDS (OFS_CURVE_TYPES + sizeof(TR_CURVE_TYPES))
|
||||
#define OFS_VSENSORTYPES (OFS_CURVE_TYPES + sizeof(TR_CURVE_TYPES))
|
||||
#define OFS_VFORMULAS (OFS_VSENSORTYPES + sizeof(TR_VSENSORTYPES))
|
||||
#define OFS_VPREC (OFS_VFORMULAS + sizeof(TR_VFORMULAS))
|
||||
#define OFS_VCELLINDEX (OFS_VPREC + sizeof(TR_VPREC))
|
||||
#define OFS_MAVLINK_BAUDS (OFS_VCELLINDEX + sizeof(TR_VCELLINDEX))
|
||||
#else
|
||||
#define OFS_MAVLINK_BAUDS (OFS_VTRAINERMODES)
|
||||
#endif
|
||||
@@ -298,6 +302,10 @@ extern const pm_char STR_OPEN9X[];
|
||||
#define STR_XJT_PROTOCOLS (STR_OPEN9X + OFS_XJT_PROTOCOLS)
|
||||
#define STR_DSM_PROTOCOLS (STR_OPEN9X + OFS_DSM_PROTOCOLS)
|
||||
#define STR_CURVE_TYPES (STR_OPEN9X + OFS_CURVE_TYPES)
|
||||
#define STR_VSENSORTYPES (STR_OPEN9X + OFS_VSENSORTYPES)
|
||||
#define STR_VFORMULAS (STR_OPEN9X + OFS_VFORMULAS)
|
||||
#define STR_VPREC (STR_OPEN9X + OFS_VPREC)
|
||||
#define STR_VCELLINDEX (STR_OPEN9X + OFS_VCELLINDEX)
|
||||
#endif
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -427,6 +435,8 @@ extern const pm_char STR_SPLASHSCREEN[];
|
||||
extern const pm_char STR_THROTTLEWARNING[];
|
||||
extern const pm_char STR_SWITCHWARNING[];
|
||||
extern const pm_char STR_TIMEZONE[];
|
||||
extern const pm_char STR_ADJUST_RTC[];
|
||||
extern const pm_char STR_GPS[];
|
||||
extern const pm_char STR_GPSCOORD[];
|
||||
extern const pm_char STR_VARIO[];
|
||||
extern const pm_char STR_PITCH_AT_ZERO[];
|
||||
@@ -542,6 +552,10 @@ extern const pm_char STR_SHUTDOWN[];
|
||||
extern const pm_char STR_SAVEMODEL[];
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
extern const pm_char STR_POWEROFF[];
|
||||
#endif
|
||||
|
||||
extern const pm_char STR_BATT_CALIB[];
|
||||
|
||||
#if defined(CPUARM) || defined(FRSKY)
|
||||
@@ -669,6 +683,8 @@ extern const pm_char STR_FLASH_INTERNAL_MODULE[];
|
||||
extern const pm_char STR_WRITING[];
|
||||
extern const pm_char STR_CONFIRM_FORMAT[];
|
||||
extern const pm_char STR_EEBACKUP[];
|
||||
extern const pm_char STR_FACTORYRESET[];
|
||||
extern const pm_char STR_CONFIRMRESET[];
|
||||
extern const pm_char STR_TOO_MANY_LUA_SCRIPTS[];
|
||||
extern const pm_char STR_BLCOLOR[];
|
||||
|
||||
@@ -735,9 +751,24 @@ extern const pm_char STR_BLCOLOR[];
|
||||
extern const pm_char STR_CRITICALALARM[];
|
||||
extern const pm_char STR_TELEMETRY_TYPE[];
|
||||
extern const pm_char STR_TELEMETRY_SENSORS[];
|
||||
extern const pm_char STR_VALUE[];
|
||||
extern const pm_char STR_TOPLCDTIMER[];
|
||||
extern const pm_char STR_UNIT[] PROGMEM;
|
||||
extern const pm_char STR_TELEMETRY_NEWSENSOR[];
|
||||
extern const pm_char STR_ID[];
|
||||
extern const pm_char STR_PRECISION[];
|
||||
extern const pm_char STR_RATIO[];
|
||||
extern const pm_char STR_FORMULA[];
|
||||
extern const pm_char STR_CELLINDEX[];
|
||||
extern const pm_char STR_LOGS[];
|
||||
extern const pm_char STR_OPTIONS[];
|
||||
extern const pm_char STR_ALTSENSOR[];
|
||||
extern const pm_char STR_CELLSENSOR[];
|
||||
extern const pm_char STR_GPSSENSOR[];
|
||||
extern const pm_char STR_CURRENTSENSOR[];
|
||||
extern const pm_char STR_AUTOOFFSET[];
|
||||
extern const pm_char STR_FILTER[];
|
||||
extern const pm_char STR_TELEMETRYFULL[];
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
@@ -767,6 +798,18 @@ extern const pm_char STR_BLCOLOR[];
|
||||
extern const pm_char STR_SCRIPT[];
|
||||
extern const pm_char STR_INPUTS[];
|
||||
extern const pm_char STR_OUTPUTS[];
|
||||
extern const pm_char STR_MENU_INPUTS[];
|
||||
extern const pm_char STR_MENU_LUA[];
|
||||
extern const pm_char STR_MENU_STICKS[];
|
||||
extern const pm_char STR_MENU_POTS[];
|
||||
extern const pm_char STR_MENU_MAX[];
|
||||
extern const pm_char STR_MENU_HELI[];
|
||||
extern const pm_char STR_MENU_TRIMS[];
|
||||
extern const pm_char STR_MENU_SWITCHES[];
|
||||
extern const pm_char STR_MENU_TRAINER[];
|
||||
extern const pm_char STR_MENU_CHANNELS[];
|
||||
extern const pm_char STR_MENU_GVARS[];
|
||||
extern const pm_char STR_MENU_TELEMETRY[];
|
||||
#endif
|
||||
|
||||
#if MENUS_LOCK == 1
|
||||
|
||||
+212
-79
@@ -82,9 +82,15 @@
|
||||
#define LEN_UART3MODES "\015"
|
||||
#define TR_UART3MODES "VYP\0 ""S-Port Mirror""Telemetrie\0 ""SBUS Trainer\0""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "Není\0 ""Pot s aretací\0 ""Vícepol. přep.\0""Potenciometr\0"
|
||||
|
||||
#define LEN_SLIDERTYPES "\006"
|
||||
#define TR_SLIDERTYPES "žádný\0""Slider"
|
||||
|
||||
#define LEN_DATETIME "\006"
|
||||
#define TR_DATETIME "DATUM:""ČAS: "
|
||||
|
||||
@@ -109,15 +115,20 @@
|
||||
#define LEN_VTRIMINC "\007"
|
||||
#define TR_VTRIMINC "Expo\0 ""ExJemný""Jemný\0 ""Střední""Hrubý\0 "
|
||||
|
||||
#define LEN_VDISPLAYTRIMS "\006"
|
||||
#define TR_VDISPLAYTRIMS "Ne\0 ""Změna\0""Ano\0 "
|
||||
|
||||
#define LEN_VBEEPCOUNTDOWN "\006"
|
||||
#define TR_VBEEPCOUNTDOWN "Tichý\0""Zvuk\0 ""Hlas\0 "
|
||||
#define TR_VBEEPCOUNTDOWN "Ne\0 ""Zvuk\0 ""Hlas\0 "
|
||||
|
||||
#define LEN_CURVE_TYPES "\010"
|
||||
#define TR_CURVE_TYPES "Rastr-X\0""Volná-XY"
|
||||
|
||||
#define LEN_RETA123 "\001"
|
||||
|
||||
#if defined(PCBTARANIS) || defined(REVX)
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_RETA123 "SVPK1234LRLR"
|
||||
#elif defined(PCBTARANIS) || defined(REVX)
|
||||
#define TR_RETA123 "SVPK123LR"
|
||||
#elif defined(PCBSKY9X)
|
||||
#define TR_RETA123 "SVPK123a"
|
||||
@@ -174,7 +185,7 @@
|
||||
#define LEN_VMIXTRIMS "\004"
|
||||
#define TR_VMIXTRIMS "VYP\0""ZAP\0""Směr""Výšk""Plyn""Křid"
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if LCD_W >= 212
|
||||
#define TR_CSWTIMER "Timer"
|
||||
#define TR_CSWSTICKY "Stcky"
|
||||
#define TR_CSWRANGE "Range"
|
||||
@@ -230,18 +241,18 @@
|
||||
#else
|
||||
#define TR_PLAY_TRACK "\221\222Stopa\0 "
|
||||
#endif
|
||||
#define TR_PLAY_BOTH "\221\222Pár\0 "
|
||||
#define TR_PLAY_VALUE "\221\222TTS\0 "
|
||||
#define TR_PLAY_BOTH "\221\222Pár stop\0"
|
||||
#define TR_PLAY_VALUE "\221\222Hlásit\0 "
|
||||
#else
|
||||
#define TR_PLAY_TRACK "[\221\222Stopa]\0 "
|
||||
#define TR_PLAY_BOTH "[\221\222Pár]\0 "
|
||||
#define TR_PLAY_VALUE "[\221\222TTS]\0 "
|
||||
#define TR_PLAY_VALUE "[\221\222Hlásit]\0"
|
||||
#endif
|
||||
|
||||
#define TR_SF_BG_MUSIC "BgHudba\0 ""BgHudba ||\0"
|
||||
#define TR_SF_BG_MUSIC "\221\222Hudba\0 ""\221\222Hudba ||\0"
|
||||
|
||||
#if defined(SDCARD)
|
||||
#define TR_SDCLOGS "Log na SD\0 "
|
||||
#define TR_SDCLOGS "Loguj na SD"
|
||||
#else
|
||||
#define TR_SDCLOGS "[Logování]\0"
|
||||
#endif
|
||||
@@ -249,7 +260,7 @@
|
||||
#ifdef GVARS
|
||||
#define TR_ADJUST_GVAR "Nastav \0 "
|
||||
#else
|
||||
#define TR_ADJUST_GVAR "[AdjustGV]\0"
|
||||
#define TR_ADJUST_GVAR "[Nastav GP]"
|
||||
#endif
|
||||
|
||||
#if defined(LUA)
|
||||
@@ -302,8 +313,8 @@
|
||||
#define TR_FSW_RESET_ROTENC
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_FSW_RESET_TIMERS "Timer 1\0 ""Timer 2\0 ""Timer 3\0 "
|
||||
#if LCD_W >= 212
|
||||
#define TR_FSW_RESET_TIMERS "Stopky 1\0 ""Stopky 2\0 ""Stopky 3\0 "
|
||||
#elif defined(CPUARM)
|
||||
#define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3"
|
||||
#else
|
||||
@@ -335,10 +346,10 @@
|
||||
|
||||
#define TR_ASPD_MAX TR("ASp+", "ASpd+")
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if LCD_W >= 212
|
||||
#define TR_TELEM_RSSI_RX "RSSI\0"
|
||||
#else
|
||||
#define TR_TELEM_RSSI_RX TR("Rx\0 ", "Rx\0 ")
|
||||
#define TR_TELEM_RSSI_RX TR("Rx\0 ", "Rx\0 ")
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
@@ -361,10 +372,8 @@
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
||||
#define TR_VUNITSSYSTEM TR("Metr.\0""Imper.", "Metrické""Imperial")
|
||||
#define LEN_VTELEMUNIT_METR "\003"
|
||||
#define TR_VTELEMUNIT_METR "v\0 ""A\0 ""m/s""-\0 ""kmh""m\0 ""@\0 ""%\0 ""mA\0""mAh""W\0 "
|
||||
#define LEN_VTELEMUNIT_IMP "\003"
|
||||
#define TR_VTELEMUNIT_IMP "v\0 ""A\0 ""m/s""-\0 ""kts""ft\0""@\0 ""%\0 ""mA\0""mAh""W\0 "
|
||||
#define LEN_VTELEMUNIT "\003"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz"
|
||||
#else
|
||||
#if defined(IMPERIAL_UNITS)
|
||||
#define LENGTH_UNIT LENGTH_UNIT_IMP
|
||||
@@ -390,24 +399,29 @@
|
||||
#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_AMPSRC TR("\003", "\007")
|
||||
#define TR_AMPSRC TR("---""A1\0""A2\0""A3\0""A4\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells\0 ")
|
||||
#define LEN_VOLTSRC TR("\003", "\007")
|
||||
#define TR_VOLTSRC TR("A1\0""A2\0""A3\0""A4\0""FAS""Cel", "A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells\0 ")
|
||||
#define LEN_AMPSRC TR("\003", "\005")
|
||||
#define TR_AMPSRC TR("---""A1\0""A2\0""A3\0""A4\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells")
|
||||
#define LEN_VOLTSRC TR("\003", "\005")
|
||||
#define TR_VOLTSRC TR("A1\0""A2\0""A3\0""A4\0""FAS""Cel", "A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells")
|
||||
#else
|
||||
#define LEN_AMPSRC TR("\003", "\007")
|
||||
#define TR_AMPSRC TR("---""A1\0""A2\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""FAS\0 ""Cells\0 ")
|
||||
#define LEN_AMPSRC TR("\003", "\005")
|
||||
#define TR_AMPSRC TR("---""A1\0""A2\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""FAS\0 ""Cells")
|
||||
#endif
|
||||
|
||||
#define LEN_VARIOSRC "\005"
|
||||
#define LEN_VARIOSRC "\004"
|
||||
#if defined(FRSKY_SPORT)
|
||||
#define TR_VARIOSRC "Vario""A1\0 ""A2\0"
|
||||
#define TR_VARIOSRC "VSpd""A1\0 ""A2\0 ""dTE\0"
|
||||
#else
|
||||
#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0"
|
||||
#define TR_VARIOSRC "Alt\0""Alt+""VSpd""A1\0 ""A2\0"
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VTELEMSCREENTYPE "\010"
|
||||
#define TR_VTELEMSCREENTYPE "Hodnota ""Ukazatel""Skript\0"
|
||||
#else
|
||||
#define LEN_VTELEMSCREENTYPE "\010"
|
||||
#define TR_VTELEMSCREENTYPE "Hodnota ""Ukazatel"
|
||||
#endif
|
||||
|
||||
#define LEN_GPSFORMAT "\004"
|
||||
#define TR_GPSFORMAT "DMS\0""NMEA"
|
||||
@@ -428,22 +442,31 @@
|
||||
#define LEN_VSWITCHES "\003"
|
||||
#define LEN_VSRCRAW "\004"
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_POTS_VSRCRAW "S1\0 ""S2\0 ""S3\0 ""LS\0 ""RS\0 "
|
||||
#define TR_SW_VSRCRAW "SA\0 ""SB\0 ""SC\0 ""SD\0 ""SE\0 ""SF\0 ""SG\0 ""SH\0 "
|
||||
#define LEN_INPUTNAMES "\004"
|
||||
#define TR_INPUTNAMES "Smer""Vysk""Plyn""Krid"
|
||||
|
||||
#define TR_STICKS_VSRCRAW TR("Směr""Výšk""Plyn""Křid", "\307Smě""\307Výš""\307Pln""\307Kři")
|
||||
#define TR_TRIMS_VSRCRAW TR("TrmS""TrmV""TrmP""TrmK", "\313Smě""\313Výš""\313Pln""\313Kři")
|
||||
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\310S4\0""\311LS\0""\311RS\0""\311LS2""\311RS2"
|
||||
#define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0"
|
||||
#define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0"
|
||||
#else
|
||||
#define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 "
|
||||
#define TR_POTS_VSRCRAW "POT1""POT2""POT3"
|
||||
#define TR_SW_VSRCRAW "3POS"
|
||||
#define TR_9X_3POS_SWITCHES "ID0""ID1""ID2"
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12""L13""L14""L15""L16""L17""L18""L19""L20""L21""L22""L23""L24""L25""L26""L27""L28""L29""L30""L31""L32"
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12""L13""L14""L15""L16""L17""L18""L19""L20""L21""L22""L23""L24""L25""L26""L27""L28""L29""L30""L31""L32"
|
||||
#else
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tSl""tSp""tVd""tVn""tPd""tPn""tKl""tKp"
|
||||
#define TR_TRIMS_SWITCHES TR("tSl""tSp""tVd""tVn""tPd""tPn""tKl""tKp", "\313Sl""\313Sp""\313Vd""\313Vn""\313Pd""\313Pn""\313Kl""\313Kp")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -456,13 +479,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ZAP""One"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ZAP""One"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ZAP""One"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ZAP""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ZAP""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -471,13 +504,17 @@
|
||||
#define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]"
|
||||
#endif
|
||||
|
||||
#define TR_VSRCRAW "---\0""Směr""Výšk""Plyn""Křid" TR_POTS_VSRCRAW TR_ROTARY_ENCODERS "MAX\0" TR_CYC_VSRCRAW "TrmS" "TrmV" "TrmP" "TrmK" TR_SW_VSRCRAW
|
||||
#if defined(CPUARM)
|
||||
#define TR_RESERVE_VSRCRAW "[--]"
|
||||
#define TR_EXTRA_VSRCRAW "Batt""Time" TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW "Tmr1""Tmr2""Tmr3"
|
||||
#else
|
||||
#define TR_EXTRA_VSRCRAW
|
||||
#endif
|
||||
|
||||
#define LEN_INPUTNAMES "\004"
|
||||
#define TR_INPUTNAMES "Smer""Vysk""Plyn""Krid"
|
||||
#define TR_VSRCRAW "---\0" TR_STICKS_VSRCRAW TR_POTS_VSRCRAW TR_ROTARY_ENCODERS "MAX\0" TR_CYC_VSRCRAW TR_TRIMS_VSRCRAW TR_SW_VSRCRAW TR_EXTRA_VSRCRAW
|
||||
|
||||
#define LEN_VTMRMODES "\004"
|
||||
#define TR_VTMRMODES "VYP\0""ABS\0""Pln>""Pln%""Pln*"
|
||||
#define TR_VTMRMODES "VYP\0""ZAP\0""Pln>""Pln%""Pln*"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINERMODES "Učitel/Jack\0 ""Žák/Jack\0 ""Master/SBUS Module""Master/CPPM Module""Master/Battery\0"
|
||||
@@ -494,10 +531,30 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#if defined(COLORLCD)
|
||||
#define INDENT "\007"
|
||||
#define LEN_INDENT 1
|
||||
#define INDENT_WIDTH 12
|
||||
#define BREAKSPACE "\036"
|
||||
#else
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
#define INDENT_WIDTH (FW/2)
|
||||
#define BREAKSPACE " "
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_ENTER "[ENTER]"
|
||||
@@ -516,7 +573,7 @@
|
||||
|
||||
#define TR_MENUWHENDONE CENTER "\011" TR_ENTER " > DALŠÍ"
|
||||
#define TR_FREE TR("volné:", "volných")
|
||||
#define TR_DELETEMODEL "SMAZAT MODEL"
|
||||
#define TR_DELETEMODEL "SMAZAT" BREAKSPACE "MODEL"
|
||||
#define TR_COPYINGMODEL "Kopíruji model.."
|
||||
#define TR_MOVINGMODEL "Přesouvám model."
|
||||
#define TR_LOADINGMODEL "Aktivuji model.."
|
||||
@@ -525,7 +582,7 @@
|
||||
#define TR_PHASENAME "Název"
|
||||
#define TR_MIXNAME "Název"
|
||||
#define TR_INPUTNAME "Název"
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(VIRTUALINPUTS)
|
||||
#define TR_EXPONAME "Popis"
|
||||
#else
|
||||
#define TR_EXPONAME "Název"
|
||||
@@ -535,13 +592,17 @@
|
||||
#define TR_ELIMITS TR("Limit +25%", "Kanál +/- 125%")
|
||||
#define TR_ETRIMS TR("širší Trim", "Široký trim")
|
||||
#define TR_TRIMINC TR("Krok Trimu", "Krok trimu")
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_DISPLAY_TRIMS "Zobr.hodnotu trimu"
|
||||
#define TR_TTRACE TR("StopaPlynu", INDENT "Stopa plynu")
|
||||
#define TR_TTRIM TR("TrimVolnob.", INDENT "Trim jen volnoběh")
|
||||
#define TR_BEEPCTR "Středy \221\222"
|
||||
#define TR_BEEPCTR TR("Středy \221\222", "Pípat středy \221\222")
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_PROTO INDENT "Protokol"
|
||||
#if defined(CPUARM)
|
||||
#define TR_PPMFRAME INDENT "PPM frame"
|
||||
#else
|
||||
#define TR_PPMFRAME "PPM frame"
|
||||
#endif
|
||||
#define TR_MS "ms"
|
||||
#define TR_SWITCH "Spínač"
|
||||
#define TR_TRIMS "Trimy"
|
||||
@@ -552,8 +613,8 @@
|
||||
#define OFS_CHECKTRIMS (9*FW)
|
||||
#define TR_SWASHTYPE "Typ cykliky"
|
||||
#define TR_COLLECTIVE "Kolektiv"
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_AILERON "Boční cyklika"
|
||||
#define TR_ELEVATOR "Podélná cykl."
|
||||
#define TR_SWASHRING "Cyklika"
|
||||
#define TR_ELEDIRECTION "Směr:Výškovka"
|
||||
#define TR_AILDIRECTION "\012Křidélka"
|
||||
@@ -617,10 +678,12 @@
|
||||
#define TR_BLOFFBRIGHTNESS INDENT"Jas Vyp."
|
||||
#define TR_BLCOLOR INDENT "Barva"
|
||||
#define TR_SPLASHSCREEN TR("úvodníLogo", "Zobrazit úvodní logo")
|
||||
#define TR_THROTTLEWARNING TR("* Plyn", INDENT "Páka Plynu")
|
||||
#define TR_SWITCHWARNING TR("* Spínače", INDENT "Polohy Spínačů")
|
||||
#define TR_THROTTLEWARNING TR("* Plyn", INDENT "Kontrola plynu")
|
||||
#define TR_SWITCHWARNING TR("* Spínače", INDENT "Polohy spínačů")
|
||||
#define TR_POTWARNING TR("* Potenc.", INDENT "Nastavení Pot.")
|
||||
#define TR_TIMEZONE "časové pásmo"
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("Pořadí kanálů", "Výchozí pořadí kanálů")
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
@@ -632,9 +695,15 @@
|
||||
#define TR_CAL "Kal."
|
||||
#define TR_VTRIM "Trim- +"
|
||||
#define TR_BG "BG:"
|
||||
#define TR_MENUTOSTART CENTER "\011" TR_ENTER " = START"
|
||||
#define TR_SETMIDPOINT CENTER "\004Nastav páky na střed"
|
||||
#define TR_MOVESTICKSPOTS TR(CENTER "\006Hýbej pákami/poty", "\014Hýbej pákami i potenciometry")
|
||||
#if defined(COLORLCD)
|
||||
#define TR_MENUTOSTART TR_ENTER " = START"
|
||||
#define TR_SETMIDPOINT "Nastav páky na střed"
|
||||
#define TR_MOVESTICKSPOTS "Hýbej pákami/poty"
|
||||
#else
|
||||
#define TR_MENUTOSTART CENTER "\011" TR_ENTER " = START"
|
||||
#define TR_SETMIDPOINT CENTER "\004Nastav páky na střed"
|
||||
#define TR_MOVESTICKSPOTS TR(CENTER "\006Hýbej pákami/poty", "\014Hýbej pákami i potenciometry")
|
||||
#endif
|
||||
#define TR_RXBATT "Rx Bat.:"
|
||||
#define TR_TXnRX "Tx:\0Rx:"
|
||||
#define OFS_RX 4
|
||||
@@ -677,7 +746,11 @@
|
||||
#define TR_MENUDIAG "DIAG"
|
||||
#define TR_MENUANA "ANALOGY"
|
||||
#define TR_MENUCALIBRATION "KALIBRACE"
|
||||
#if defined(COLORLCD)
|
||||
#define TR_TRIMS2OFFSETS "\006Trimy => Subtrimy"
|
||||
#else
|
||||
#define TR_TRIMS2OFFSETS "\006Trimy => Subtrimy"
|
||||
#endif
|
||||
#define TR_MENUMODELSEL "MODEL"
|
||||
#define TR_MENUSETUP "NASTAVENÍ"
|
||||
#define TR_MENUFLIGHTPHASE "LETOVÝ REŽIM"
|
||||
@@ -686,15 +759,12 @@
|
||||
|
||||
#define TR_MENULIMITS "SERVA"
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(VIRTUALINPUTS)
|
||||
#define TR_MENUINPUTS "VSTUPY"
|
||||
#else
|
||||
#define TR_MENUINPUTS "DR/EXPO"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#define TR_MENUCURVES "KŘIVKY"
|
||||
#define TR_MENUCURVE "\002K"
|
||||
#define TR_MENULOGICALSWITCH "LOG. SPÍNAč"
|
||||
@@ -706,8 +776,12 @@
|
||||
#define TR_MENUTEMPLATES "ŠABLONY"
|
||||
#define TR_MENUSTAT "STATISTIKA"
|
||||
#define TR_MENUDEBUG "DIAG"
|
||||
#define TR_RXNUM INDENT "Přijímač"
|
||||
#define TR_SYNCMENU "Sync [MENU]"
|
||||
#if defined(CPUARM)
|
||||
#define TR_RXNUM TR(INDENT "RX číslo", INDENT "Číslo přijímače")
|
||||
#else
|
||||
#define TR_RXNUM "RX číslo"
|
||||
#endif
|
||||
#define TR_SYNCMENU "[Sync]"
|
||||
#define TR_LIMIT INDENT"Limit"
|
||||
#define TR_MINRSSI "Min Rssi"
|
||||
#define TR_LATITUDE "Zem. šířka"
|
||||
@@ -717,8 +791,9 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Tón na nule"
|
||||
#define TR_PITCH_AT_MAX INDENT "Tón na maximu"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Opakování na nule"
|
||||
#define TR_SHUTDOWN "VYPÍNÁNí.."
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "Vypínání.."
|
||||
#define TR_SAVEMODEL "Ukládám nastavení modelu"
|
||||
#define TR_BATT_CALIB "Kalib. baterie"
|
||||
#define TR_CURRENT_CALIB " +=\006Proud"
|
||||
#define TR_VOLTAGE INDENT"Napětí"
|
||||
@@ -732,7 +807,7 @@
|
||||
#define TR_RESTORE_MODEL "Obnov model z SD"
|
||||
#define TR_SDCARD_ERROR "Chyba SD karty"
|
||||
#define TR_NO_SDCARD "Není SD karta"
|
||||
#define TR_SDCARD_FULL "SD Card Full"
|
||||
#define TR_SDCARD_FULL "Plná SD karta"
|
||||
#define TR_INCOMPATIBLE "Nekompatibilní"
|
||||
#define TR_WARNING "KONTROLA"
|
||||
#define TR_EEPROMWARN "EEPROM"
|
||||
@@ -740,7 +815,7 @@
|
||||
#define TR_THROTTLEWARN "PLYNU"
|
||||
#define TR_ALARMSWARN "ALARMU"
|
||||
#define TR_SWITCHWARN "POZICE"
|
||||
#define TR_KEYSTUCK "Key stuck"
|
||||
#define TR_KEYSTUCK "Zaseklá klávesa"
|
||||
#define TR_INVERT_THR "Invertovat plyn?"
|
||||
#define TR_SPEAKER_VOLUME INDENT "Hlasitost"
|
||||
#define TR_LCD "LCD"
|
||||
@@ -750,8 +825,8 @@
|
||||
#define TR_CPU_MAH "Spotřeba"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "Tepl. MB \016>"
|
||||
#define TR_CAPAWARNING INDENT "Kapacita"
|
||||
#define TR_TEMPWARNING INDENT "Teplota"
|
||||
#define TR_CAPAWARNING INDENT "Nízká kapacita"
|
||||
#define TR_TEMPWARNING INDENT "Přehřátí"
|
||||
#define TR_FUNC "Fce."
|
||||
#define TR_V1 "V1"
|
||||
#define TR_V2 "V2"
|
||||
@@ -759,10 +834,10 @@
|
||||
#define TR_DELAY "Zdržet"
|
||||
#define TR_SD_CARD "SD"
|
||||
#define TR_SDHC_CARD "SD-HC"
|
||||
#define TR_NO_SOUNDS_ON_SD "žádný zvuk na SD"
|
||||
#define TR_NO_MODELS_ON_SD "žádný model na SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "žádné obrázky na SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "žádný skript na SD"
|
||||
#define TR_NO_SOUNDS_ON_SD "žádný zvuk" BREAKSPACE "na SD"
|
||||
#define TR_NO_MODELS_ON_SD "žádný model" BREAKSPACE "na SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "žádné obrázky" BREAKSPACE "na SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "žádný skript" BREAKSPACE "na SD"
|
||||
#define TR_PLAY_FILE "Přehrát"
|
||||
#define TR_DELETE_FILE "Odstranit"
|
||||
#define TR_COPY_FILE "Kopírovat"
|
||||
@@ -783,7 +858,7 @@
|
||||
#define TR_SD_SPEED "Rychlost:"
|
||||
#define TR_SD_SECTORS "Sektorů :"
|
||||
#define TR_SD_SIZE "Velikost:"
|
||||
#define TR_TYPE TR_SD_TYPE
|
||||
#define TR_TYPE INDENT TR_SD_TYPE
|
||||
#define TR_GLOBAL_VARS "Globální proměnné"
|
||||
#define TR_GLOBAL_V "GLOB.PROM."
|
||||
#define TR_GLOBAL_VAR "Globální proměnná"
|
||||
@@ -792,17 +867,19 @@
|
||||
#define TR_DATE "Datum"
|
||||
#define TR_ROTARY_ENCODER "R.Encs"
|
||||
#define TR_CHANNELS_MONITOR "MONITOR KANÁLU"
|
||||
#define TR_MIXERS_MONITOR "MIXERS MONITOR"
|
||||
#define TR_MIXERS_MONITOR "MONITOR MIXU"
|
||||
#define TR_PATH_TOO_LONG "Cesta je moc dlouhá"
|
||||
#define TR_VIEW_TEXT "Zobrazit text"
|
||||
#define TR_FLASH_BOOTLOADER "Flash BootLoader"
|
||||
#define TR_WRITING "\032Writing..."
|
||||
#define TR_CONFIRM_FORMAT "Confirm Format?"
|
||||
#define TR_FLASH_BOOTLOADER "Flash BootLoaderu"
|
||||
#define TR_FLASH_EXTERNAL_DEVICE "Flash externí krabičky"
|
||||
#define TR_FLASH_INTERNAL_MODULE "Flash vnitřního modulu"
|
||||
#define TR_WRITING "\032Zapisuji.."
|
||||
#define TR_CONFIRM_FORMAT "Provést Formát?"
|
||||
#define TR_INTERNALRF "Vnitřní RF modul"
|
||||
#define TR_EXTERNALRF "Externí RF modul"
|
||||
#define TR_FAILSAFE "Mód Failsafe"
|
||||
#define TR_FAILSAFESET "NASTAVENÍ FAILSAFE"
|
||||
#define TR_MENUSENSOR "SENSOR"
|
||||
#define TR_MENUSENSOR "SENZOR"
|
||||
#define TR_COUNTRYCODE "Kód regionu"
|
||||
#define TR_VOICELANG "Jazyk hlasu"
|
||||
#define TR_UNITSSYSTEM "Jednotky"
|
||||
@@ -836,8 +913,11 @@
|
||||
#define TR_MODELIDUSED TR("ID již použito","ID modelu je již použito")
|
||||
#define TR_MODULE INDENT "Modul"
|
||||
#define TR_TELEMETRY_TYPE TR("Typ", "Typ telemetrie")
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..."
|
||||
#define TR_TELEMETRY_SENSORS "Senzory"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "+ Přidat nový senzor.."
|
||||
#define TR_CHANNELRANGE INDENT "Rozsah kanálů"
|
||||
#define TR_LOWALARM INDENT "Nízký Alarm"
|
||||
#define TR_CRITICALALARM INDENT "Kritický Alarm"
|
||||
@@ -864,6 +944,8 @@
|
||||
#define TR_INPUTS "Vstupy"
|
||||
#define TR_OUTPUTS "Výstupy"
|
||||
#define TR_EEBACKUP "\010[dlouze ENTER] zálohuje EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Příliš mnoho skriptů!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -968,4 +1050,55 @@
|
||||
#define TR_MODS_FORBIDDEN "Změny nejsou povoleny!"
|
||||
#define TR_UNLOCKED "Odemčeno"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_PRECISION "Přesnost"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
@@ -375,7 +375,7 @@
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\012")
|
||||
#define TR_VUNITSSYSTEM TR("Metrik""Imper.", "Metrisch\0 ""Imperial\0 ")
|
||||
#define LEN_VTELEMUNIT "\003"
|
||||
#define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0"
|
||||
#define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz"
|
||||
#else
|
||||
#if defined(IMPERIAL_UNITS)
|
||||
#define LENGTH_UNIT LENGTH_UNIT_IMP
|
||||
@@ -465,7 +465,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "\313Sl""\313Sr""\313Hd""\313Hu""\313Gd""\313Gu""\313Ql""\313Qr"
|
||||
#define TR_TRIMS_SWITCHES TR("tSl""tSr""tHd""tHu""tGd""tGu""tQl""tQr", "\313Sl""\313Sr""\313Hd""\313Hu""\313Gd""\313Gu""\313Ql""\313Qr")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "DGa\0"
|
||||
@@ -481,7 +481,7 @@
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301"
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
@@ -530,6 +530,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#if defined(COLORLCD)
|
||||
#define INDENT "\007"
|
||||
@@ -669,6 +681,8 @@
|
||||
#define TR_SWITCHWARNING TR("Sch. Alarm", INDENT "Schalter-Alarm")
|
||||
#define TR_POTWARNING TR("Pot Warn.", INDENT "Poti-Warnung")
|
||||
#define TR_TIMEZONE TR("Zeitzone", "GPS-Zeitzone +/-Std")
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("Kanalanordnung", "Kanalvoreinstellung")
|
||||
#define TR_STICKS "Knüppel"
|
||||
#define TR_POTS "Potis"
|
||||
@@ -776,6 +790,7 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Niedrigster Ton"
|
||||
#define TR_PITCH_AT_MAX INDENT "Höchster Ton"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Wiederholrate"
|
||||
#define TR_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "Herunterfahren"
|
||||
#define TR_SAVEMODEL "Modelleinstellungen speichern"
|
||||
#define TR_BATT_CALIB "Akku abgleichen"
|
||||
@@ -898,6 +913,9 @@
|
||||
#define TR_MODULE INDENT "Modul-Typ"
|
||||
#define TR_TELEMETRY_TYPE TR("Typ", "Telemetrytyp")
|
||||
#define TR_TELEMETRY_SENSORS "----Sensoren----"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Sensor hinzufügen ..."
|
||||
#define TR_CHANNELRANGE TR(INDENT "Kanäle", INDENT "Ausgangs Kanäle") //wg 9XR-Pro
|
||||
#define TR_LOWALARM INDENT "Vor-Alarm bei"
|
||||
@@ -925,6 +943,8 @@
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
#define TR_EEBACKUP "\002[ENTER Long] Backup EEPROM->SD-Karte"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Zu viele Lua-Scripten!!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -1030,11 +1050,40 @@
|
||||
#define TR_UNLOCKED "Entsperrt"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Prezision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_BATT "Batt"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
|
||||
@@ -375,7 +375,7 @@
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
||||
#define TR_VUNITSSYSTEM TR("Metric""Imper.", "Metric\0 ""Imperial")
|
||||
#define LEN_VTELEMUNIT "\003"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz"
|
||||
#else
|
||||
#if defined(IMPERIAL_UNITS)
|
||||
#define LENGTH_UNIT LENGTH_UNIT_IMP
|
||||
@@ -465,7 +465,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -481,7 +481,7 @@
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301"
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
@@ -530,6 +530,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#if defined(COLORLCD)
|
||||
#define INDENT "\007"
|
||||
@@ -599,9 +611,9 @@
|
||||
#define TR_CHECKTRIMS CENTER "\006Check\012Trims"
|
||||
#define OFS_CHECKTRIMS CENTER_OFS+(9*FW)
|
||||
#define TR_SWASHTYPE "Swash Type"
|
||||
#define TR_COLLECTIVE TR("Collective", "Coll. pitch")
|
||||
#define TR_AILERON "Lateral cyc."
|
||||
#define TR_ELEVATOR "Long. cyc."
|
||||
#define TR_COLLECTIVE TR("Collective", "Coll. pitch source")
|
||||
#define TR_AILERON "Lateral cyc. source"
|
||||
#define TR_ELEVATOR "Long. cyc. source"
|
||||
#define TR_SWASHRING "Swash Ring"
|
||||
#define TR_ELEDIRECTION "ELE Direction"
|
||||
#define TR_AILDIRECTION "AIL Direction"
|
||||
@@ -668,7 +680,9 @@
|
||||
#define TR_THROTTLEWARNING TR(IF_CPUARM(INDENT) "T-Warning", INDENT "Throttle State")
|
||||
#define TR_SWITCHWARNING TR(IF_CPUARM(INDENT) "S-Warning", INDENT "Switch Positions")
|
||||
#define TR_POTWARNING TR(IF_CPUARM(INDENT) "Pot Warn.", INDENT "Pot Positions")
|
||||
#define TR_TIMEZONE TR("Time Zone", "GPS Time zone")
|
||||
#define TR_TIMEZONE TR("Time Zone", INDENT "Time zone")
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("Rx Channel Ord", "Default channel order")
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
@@ -771,11 +785,12 @@
|
||||
#define TR_MINRSSI "Min Rssi"
|
||||
#define TR_LATITUDE "Latitude"
|
||||
#define TR_LONGITUDE "Longitude"
|
||||
#define TR_GPSCOORD TR("GPS Coords", "GPS coordinate format")
|
||||
#define TR_GPSCOORD TR("GPS Coords", INDENT "Coordinate format")
|
||||
#define TR_VARIO TR("Vario", "Variometer")
|
||||
#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_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "SHUTTING DOWN"
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_BATT_CALIB "Battery Calib"
|
||||
@@ -898,6 +913,9 @@
|
||||
#define TR_MODULE INDENT "Module"
|
||||
#define TR_TELEMETRY_TYPE TR("Type", "Telemetry Type")
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..."
|
||||
#define TR_CHANNELRANGE TR(INDENT "Ch. Range", INDENT "Channel Range")
|
||||
#define TR_LOWALARM INDENT "Low Alarm"
|
||||
@@ -925,6 +943,8 @@
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
#define TR_EEBACKUP "\004[ENTER Long] to backup the EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -1030,11 +1050,40 @@
|
||||
#define TR_UNLOCKED "Unlocked"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Curr. sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_BATT "Batt"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
|
||||
@@ -82,6 +82,9 @@
|
||||
#define LEN_UART3MODES "\015"
|
||||
#define TR_UART3MODES "OFF\0 ""S-Port Mirror""Telemetry\0 ""SBUS Trainer\0""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "None\0 ""Pot with detent""Multipos Switch""Pot\0"
|
||||
|
||||
@@ -443,7 +446,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -456,13 +459,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -491,6 +504,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circulo ""Estabilizar ""Entrenamiento""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guiado ""Inicialisando""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
@@ -549,8 +574,8 @@
|
||||
#define OFS_CHECKTRIMS CENTER_OFS+(9*FW)
|
||||
#define TR_SWASHTYPE "Tipo ciclico"
|
||||
#define TR_COLLECTIVE TR("Colectivo", "Fuente Colectivo")
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_AILERON "Lateral cyc. source"
|
||||
#define TR_ELEVATOR "Long. cyc. source"
|
||||
#define TR_SWASHRING "Ciclico"
|
||||
#define TR_ELEDIRECTION TR("ELE Direccion","Largo cyc. direccion")
|
||||
#define TR_AILDIRECTION TR("AIL Direccion","Lateral cyc. direccion")
|
||||
@@ -618,6 +643,8 @@
|
||||
#define TR_SWITCHWARNING TR("Aviso-I", INDENT "Aviso Intrptor")
|
||||
#define TR_POTWARNING TR("Pot Warn.", INDENT "Pot Warning")
|
||||
#define TR_TIMEZONE TR("Zona Hora", "GPS Zona Hora")
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("Rx Orden canal", "Orden habitual canales")
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
@@ -714,6 +741,7 @@
|
||||
#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_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "APAGANDO"
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_BATT_CALIB "Calib.bateria"
|
||||
@@ -780,7 +808,7 @@
|
||||
#define TR_SD_SPEED "Velocidad:"
|
||||
#define TR_SD_SECTORS "Sectores:"
|
||||
#define TR_SD_SIZE "Tamaño:"
|
||||
#define TR_TYPE "Tipo"
|
||||
#define TR_TYPE INDENT "Tipo"
|
||||
#define TR_GLOBAL_VARS "Global Variables"
|
||||
#define TR_GLOBAL_V "GLOBAL V."
|
||||
#define TR_GLOBAL_VAR "Global Variable"
|
||||
@@ -834,6 +862,9 @@
|
||||
#define TR_MODULE INDENT "Modulo"
|
||||
#define TR_TELEMETRY_TYPE TR("Type", "Telemetry Type")
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..."
|
||||
#define TR_CHANNELRANGE INDENT "Gama de canales"
|
||||
#define TR_LOWALARM INDENT "Alarma baja"
|
||||
@@ -861,6 +892,8 @@
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
#define TR_EEBACKUP "\004[ENTER Long] to backup the EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -966,3 +999,54 @@
|
||||
#define TR_UNLOCKED "Unlocked"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
* Authors (alphabetical order)
|
||||
* - Bertrand Songis <bsongis@gmail.com>
|
||||
* - Bernet Andre <bernet.andre@gmail.com>
|
||||
@@ -82,6 +82,9 @@
|
||||
#define LEN_UART3MODES "\015"
|
||||
#define TR_UART3MODES "POIS\0 ""S-Port Pelik\0""Telemetry\0 ""SBUS Trainer\0""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "None\0 ""Pot with detent""Monias. Kytkin\0""Potikka\0"
|
||||
|
||||
@@ -443,7 +446,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313\313d""\313\313u""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -456,13 +459,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -491,6 +504,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
@@ -548,9 +573,9 @@
|
||||
#define TR_CHECKTRIMS CENTER "\006Check\012Trims"
|
||||
#define OFS_CHECKTRIMS CENTER_OFS+(9*FW)
|
||||
#define TR_SWASHTYPE "Swash Type"
|
||||
#define TR_COLLECTIVE TR("Collective","Collective source")
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_COLLECTIVE TR("Collective", "Coll. pitch source")
|
||||
#define TR_AILERON "Lateral cyc. source"
|
||||
#define TR_ELEVATOR "Long. cyc. source"
|
||||
#define TR_SWASHRING "Swash Ring"
|
||||
#define TR_ELEDIRECTION TR("ELE Direction","Long. cyc. direction")
|
||||
#define TR_AILDIRECTION TR("AIL Direction","Lateral cyc. direction")
|
||||
@@ -618,6 +643,8 @@
|
||||
#define TR_SWITCHWARNING TR("S-Warning", INDENT "Switch Warning")
|
||||
#define TR_POTWARNING TR("Pot Warn.", INDENT "Pot Warning")
|
||||
#define TR_TIMEZONE TR("Time Zone","GPS Time zone")
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("Rx Channel Ord","Default channel order")
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
@@ -714,6 +741,7 @@
|
||||
#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_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "SHUTTING DOWN"
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_BATT_CALIB "Battery Calib"
|
||||
@@ -780,7 +808,7 @@
|
||||
#define TR_SD_SPEED "Speed:"
|
||||
#define TR_SD_SECTORS "Sectors:"
|
||||
#define TR_SD_SIZE "Size:"
|
||||
#define TR_TYPE "Type"
|
||||
#define TR_TYPE INDENT "Type"
|
||||
#define TR_GLOBAL_VARS "Global Variables"
|
||||
#define TR_GLOBAL_V "GLOBAL V."
|
||||
#define TR_GLOBAL_VAR "Global Variable"
|
||||
@@ -834,6 +862,9 @@
|
||||
#define TR_MODULE INDENT "Module"
|
||||
#define TR_TELEMETRY_TYPE TR("Type", "Telemetry Type")
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..."
|
||||
#define TR_CHANNELRANGE INDENT "Channel Range"
|
||||
#define TR_LOWALARM INDENT "Low Alarm"
|
||||
@@ -861,6 +892,8 @@
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
#define TR_EEBACKUP "\004[ENTER Long] to backup the EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -966,3 +999,54 @@
|
||||
#define TR_UNLOCKED "Avattu"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
@@ -83,11 +83,7 @@
|
||||
#define TR_UART3MODES "OFF\0 ""Recopie S-Port""Télémétrie\0 ""Ecolage SBUS\0 ""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#if defined(REV9E)
|
||||
#define TR_SWTYPES "Rien\0 ""Défaut""Levier""2-POS\0""3-POS\0"
|
||||
#else
|
||||
#define TR_SWTYPES "Défaut""Levier""2-POS\0""3-POS\0"
|
||||
#endif
|
||||
#define TR_SWTYPES "Rien\0 ""Levier""2-POS\0""3-POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "Rien\0 ""Pot avec centre""Inter multi-pos""Potentiomètre\0"
|
||||
@@ -319,7 +315,7 @@
|
||||
#define TR_FSW_RESET_ROTENC
|
||||
#endif
|
||||
|
||||
#if LCD >= 212
|
||||
#if LCD_W >= 212
|
||||
#define TR_FSW_RESET_TIMERS "Chrono 1\0 ""Chrono 2\0 ""Chrono 3\0 "
|
||||
#elif defined(CPUARM)
|
||||
#define TR_FSW_RESET_TIMERS "Chr1""Chr2""Chr3"
|
||||
@@ -379,7 +375,7 @@
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\012")
|
||||
#define TR_VUNITSSYSTEM TR("Métr.\0""Impér.", "Métriques\0""Impériales")
|
||||
#define LEN_VTELEMUNIT "\003"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz"
|
||||
#else
|
||||
#if defined(IMPERIAL_UNITS)
|
||||
#define LENGTH_UNIT LENGTH_UNIT_IMP
|
||||
@@ -469,7 +465,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "\313Dg""\313Dd""\313Pb""\313Ph""\313Gb""\313Gh""\313Ag""\313Ad"
|
||||
#define TR_TRIMS_SWITCHES TR("tDg""tDd""tPb""tPh""tGb""tGh""tAg""tAd", "\313Dg""\313Dd""\313Pb""\313Ph""\313Gb""\313Gh""\313Ag""\313Ad")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -485,7 +481,7 @@
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301"
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
@@ -534,6 +530,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Perso\0 ""Calculé\0 "
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Addition""Moyenne\0""Min\0 ""Max\0 ""Multipl.""Totalise""Elément\0""Consomm.""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Mini.\0 ""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Maxi.\0 ""Diff.\0 "
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#if defined(COLORLCD)
|
||||
#define INDENT "\007"
|
||||
@@ -603,9 +611,9 @@
|
||||
#define TR_CHECKTRIMS "\006Vérif\012Trims"
|
||||
#define OFS_CHECKTRIMS (9*FW)
|
||||
#define TR_SWASHTYPE TR("Type de Plat.", "Type de plateau")
|
||||
#define TR_COLLECTIVE TR("Collectif", "Voie du pas collectif")
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_COLLECTIVE TR("Collectif", "Source collectif")
|
||||
#define TR_AILERON "Source cyc. lat."
|
||||
#define TR_ELEVATOR "Source cyc. lon."
|
||||
#define TR_SWASHRING TR("Limite Cycl.", "Limite du cyclique")
|
||||
#define TR_ELEDIRECTION TR("Inv. longitud.", "Inversion longitudinal")
|
||||
#define TR_AILDIRECTION TR("Inv. latéral", "Inversion latéral")
|
||||
@@ -673,6 +681,8 @@
|
||||
#define TR_SWITCHWARNING TR(IF_CPUARM(INDENT) "Alerte int", INDENT "Pos. interrupteurs")
|
||||
#define TR_POTWARNING TR(IF_CPUARM(INDENT) "Alerte pot", INDENT "Pos. potentios")
|
||||
#define TR_TIMEZONE "Fuseau horaire"
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("Ordre voies RX","Ordre des voies préféré")
|
||||
#define TR_STICKS "Manches"
|
||||
#define TR_POTS "Potentios"
|
||||
@@ -772,8 +782,9 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Tonalité au zéro"
|
||||
#define TR_PITCH_AT_MAX INDENT "Tonalité au max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Intervalle au zéro"
|
||||
#define TR_POWEROFF "\037\120ARRET..."
|
||||
#define TR_SHUTDOWN "ARRET EN COURS"
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_SAVEMODEL "Sauvegarde modèle..."
|
||||
#define TR_BATT_CALIB "Calib. Batterie"
|
||||
#define TR_CURRENT_CALIB "Calib. Courant"
|
||||
#define TR_VOLTAGE TR(INDENT "Tension",INDENT "Source Tension")
|
||||
@@ -838,7 +849,7 @@
|
||||
#define TR_SD_SPEED "Vitesse:"
|
||||
#define TR_SD_SECTORS "Secteurs:"
|
||||
#define TR_SD_SIZE "Taille:"
|
||||
#define TR_TYPE "Type"
|
||||
#define TR_TYPE INDENT "Type"
|
||||
#define TR_GLOBAL_VARS "Variables Globales"
|
||||
#define TR_GLOBAL_V "V. GLOBALES"
|
||||
#define TR_GLOBAL_VAR "Variable globale"
|
||||
@@ -851,15 +862,15 @@
|
||||
#define TR_PATH_TOO_LONG "Chemin trop long"
|
||||
#define TR_VIEW_TEXT "Voir texte"
|
||||
#define TR_FLASH_BOOTLOADER "Flasher BootLoader"
|
||||
#define TR_FLASH_EXTERNAL_DEVICE "Flash External Device"
|
||||
#define TR_FLASH_INTERNAL_MODULE "Flash Module Interne"
|
||||
#define TR_FLASH_EXTERNAL_DEVICE "Flasher module externe"
|
||||
#define TR_FLASH_INTERNAL_MODULE "Flasher module interne"
|
||||
#define TR_WRITING "\032Ecriture..."
|
||||
#define TR_CONFIRM_FORMAT "Confirmer Formatage?"
|
||||
#define TR_INTERNALRF "HF interne"
|
||||
#define TR_EXTERNALRF "HF externe"
|
||||
#define TR_FAILSAFE TR(INDENT "Failsafe", INDENT "Type failsafe")
|
||||
#define TR_FAILSAFESET "REGLAGES FAILSAFE"
|
||||
#define TR_MENUSENSOR "SENSOR"
|
||||
#define TR_MENUSENSOR "CAPTEUR"
|
||||
#define TR_COUNTRYCODE TR("Zone géo.","Zone géographique")
|
||||
#define TR_VOICELANG TR("Langue voix", "Langue annonces vocales")
|
||||
#define TR_UNITSSYSTEM "Unités"
|
||||
@@ -894,6 +905,9 @@
|
||||
#define TR_MODULE INDENT "Type de module"
|
||||
#define TR_TELEMETRY_TYPE "Type télémesure"
|
||||
#define TR_TELEMETRY_SENSORS "Capteurs"
|
||||
#define TR_VALUE "Valeur"
|
||||
#define TR_TOPLCDTIMER "Timer LCD haut"
|
||||
#define TR_UNIT "Unité"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Ajout d'un nouveau capteur..."
|
||||
#define TR_CHANNELRANGE TR(INDENT "Canaux", INDENT "Plage de canaux")
|
||||
#define TR_LOWALARM INDENT "Alarme basse"
|
||||
@@ -921,6 +935,8 @@
|
||||
#define TR_INPUTS "Entrées"
|
||||
#define TR_OUTPUTS "Sorties"
|
||||
#define TR_EEBACKUP "\004[ENTER Long]: Sauvegarder l'EEPROM"
|
||||
#define TR_FACTORYRESET "\016[MENU Long]: RAZ d'usine"
|
||||
#define TR_CONFIRMRESET "Effacer TOUS modèles/réglages?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -1025,12 +1041,41 @@
|
||||
#define TR_MODS_FORBIDDEN "Modifications désactivées!"
|
||||
#define TR_UNLOCKED "Déverrouillé"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_PRECISION "Précision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formule"
|
||||
#define TR_CELLINDEX "Index élem."
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Capteur Alt"
|
||||
#define TR_CELLSENSOR "Capteur Elém"
|
||||
#define TR_GPSSENSOR "Capteur GPS"
|
||||
#define TR_CURRENTSENSOR "Capt courant"
|
||||
#define TR_AUTOOFFSET "Offset auto"
|
||||
#define TR_FILTER "Filtrage"
|
||||
#define TR_TELEMETRYFULL "Plus de capteurs libres!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Entrées"
|
||||
#define TR_MENU_LUA "\322Scripts Lua"
|
||||
#define TR_MENU_STICKS "\307Manches"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclique"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Inters"
|
||||
#define TR_MENU_TRAINER "\317Ecolage"
|
||||
#define TR_MENU_CHANNELS "\320Canaux"
|
||||
#define TR_MENU_GVARS "\311Vars. glob."
|
||||
#define TR_MENU_TELEMETRY "\321Télémesure"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_BATT "Batt"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "BtRx"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
|
||||
@@ -82,6 +82,9 @@
|
||||
#define LEN_UART3MODES "\016"
|
||||
#define TR_UART3MODES "OFF\0 ""Replica S-Port""Telemetria\0 ""SBUS Trainer\0 ""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "None\0 ""Pot. con centro""Inter. Multipos""Potenziometro\0 "
|
||||
|
||||
@@ -443,7 +446,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313\313d""\313\313u""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -456,13 +459,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -491,6 +504,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Inizializza ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
@@ -532,11 +557,11 @@
|
||||
#define TR_ELIMITS TR("Limiti.E","Limiti Estesi")
|
||||
#define TR_ETRIMS TR("Trim Ext","Trim Estesi")
|
||||
#define TR_TRIMINC "Passo Trim"
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_TTRACE TR("T-Source", INDENT "Sorgente Motore")
|
||||
#define TR_TTRIM TR("T-Trim", INDENT "Trim Motore")
|
||||
#define TR_BEEPCTR TR("Ctr Beep","Beep al centro")
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_PROTO TR(INDENT "Proto", INDENT "Protocollo")
|
||||
#define TR_PPMFRAME TR("PPM frame", INDENT "PPM frame")
|
||||
#define TR_MS "ms"
|
||||
@@ -549,8 +574,8 @@
|
||||
#define OFS_CHECKTRIMS (9*FW)
|
||||
#define TR_SWASHTYPE "Tipo Ciclico"
|
||||
#define TR_COLLECTIVE TR("Collettivo","Origine Collettivo")
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_AILERON "Lateral cyc. source"
|
||||
#define TR_ELEVATOR "Long. cyc. source"
|
||||
#define TR_SWASHRING "Anello Ciclico"
|
||||
#define TR_ELEDIRECTION TR("Direzione ELE","Direzione Long. cyc.")
|
||||
#define TR_AILDIRECTION TR("Direzione AIL","Direzione Lateral cyc.")
|
||||
@@ -618,10 +643,12 @@
|
||||
#define TR_SWITCHWARNING TR("Avv. Int.", INDENT "Avviso Interr.")
|
||||
#define TR_POTWARNING TR("Avv. Pot.", INDENT "Avviso Pot.")
|
||||
#define TR_TIMEZONE "Ora locale"
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD "Ordine ch RX"
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
#define TR_SWITCHES "Switches"
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
#define TR_SWITCHES "Switches"
|
||||
#define TR_SWITCHES_DELAY "Ritardo voce FV"
|
||||
#define TR_SLAVE "Allievo"
|
||||
#define TR_MODESRC "Modo\006% Origine"
|
||||
@@ -714,6 +741,7 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Tono a Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Tono al Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Ripeti a Zero"
|
||||
#define TR_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "ARRESTO.."
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_BATT_CALIB "Calibra batt."
|
||||
@@ -780,7 +808,7 @@
|
||||
#define TR_SD_SPEED "Veloc.:"
|
||||
#define TR_SD_SECTORS "Settori:"
|
||||
#define TR_SD_SIZE "Dimens:"
|
||||
#define TR_TYPE "Tipo"
|
||||
#define TR_TYPE INDENT "Tipo"
|
||||
#define TR_GLOBAL_VARS "Variabili Globali"
|
||||
#define TR_GLOBAL_V "V.GLOBALI"
|
||||
#define TR_GLOBAL_VAR "Variabile globale"
|
||||
@@ -834,6 +862,9 @@
|
||||
#define TR_MODULE INDENT "Modulo"
|
||||
#define TR_TELEMETRY_TYPE "Tipo Telemetria"
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..."
|
||||
#define TR_CHANNELRANGE INDENT "Numero Canali"
|
||||
#define TR_LOWALARM INDENT "Allarme Basso"
|
||||
@@ -861,6 +892,8 @@
|
||||
#define TR_INPUTS "Ingresso"
|
||||
#define TR_OUTPUTS "Uscita"
|
||||
#define TR_EEBACKUP "\004[ENTER Lungo] per copiare la EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Troppi Scripts Lua!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -966,3 +999,54 @@
|
||||
#define TR_UNLOCKED "Sbloccato"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
@@ -82,6 +82,9 @@
|
||||
#define LEN_UART3MODES "\017"
|
||||
#define TR_UART3MODES "Wyłącz\0 ""S-Port Mirror\0 ""Telemetry\0 ""SBUS Trainer\0 ""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "Brak\0 ""Poten z zapadką""Przeł.Wielopoz.""Potencjometr\0"
|
||||
|
||||
@@ -362,7 +365,7 @@
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
||||
#define TR_VUNITSSYSTEM TR("Metr. ""Imper.", "Metryczn""Imperial")
|
||||
#define LEN_VTELEMUNIT "\003"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz"
|
||||
#else
|
||||
#if defined(IMPERIAL_UNITS)
|
||||
#define LENGTH_UNIT LENGTH_UNIT_IMP
|
||||
@@ -441,7 +444,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -454,13 +457,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "GAZ""SK ""SW ""LOT""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "GAZ""SK ""SW ""LOT""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -489,6 +502,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Ręczny ""Koło ""Stabilizacja ""Trening ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Sterowany ""Inicjalizacja""BŁĘDNY "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
@@ -547,8 +572,8 @@
|
||||
#define OFS_CHECKTRIMS CENTER_OFS+(9*FW)
|
||||
#define TR_SWASHTYPE "Typ tarczy"
|
||||
#define TR_COLLECTIVE TR("Kolektyw", "Źródło Kolektywu")
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_AILERON "Lateral cyc. source"
|
||||
#define TR_ELEVATOR "Long. cyc. source"
|
||||
#define TR_SWASHRING "Tarcza "
|
||||
#define TR_ELEDIRECTION TR("Ster Wysokośc","Dług. Kierunku cyklu")
|
||||
#define TR_AILDIRECTION TR("Kierunek Lotk","Lateral cyc. direction")
|
||||
@@ -616,6 +641,8 @@
|
||||
#define TR_SWITCHWARNING TR(IF_CPUARM(INDENT) "OstrzPrzeł", INDENT "PozycjaPrzeł")
|
||||
#define TR_POTWARNING TR(IF_CPUARM(INDENT) "Ostrz.Poten.", INDENT "PozycjaPotencj.")
|
||||
#define TR_TIMEZONE TR("Strefa czasowa" ,"Strefa czasowa GPS")
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("KolejnKan.RX", "Bazowa kolejność kanałów")
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
@@ -712,6 +739,7 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Ton przy Zerze"
|
||||
#define TR_PITCH_AT_MAX INDENT "Ton przy Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Powtórz przy Zerze"
|
||||
#define TR_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "Wyłączanie.."
|
||||
#define TR_SAVEMODEL "Zapisz ustwienia modelu"
|
||||
#define TR_BATT_CALIB "Kalib:Baterii"
|
||||
@@ -778,7 +806,7 @@
|
||||
#define TR_SD_SPEED "Prędkość:"
|
||||
#define TR_SD_SECTORS "Sektory :"
|
||||
#define TR_SD_SIZE "Wielkość:"
|
||||
#define TR_TYPE TR_SD_TYPE
|
||||
#define TR_TYPE INDENT TR_SD_TYPE
|
||||
#define TR_GLOBAL_VARS "Zmienne Globalne"
|
||||
#define TR_GLOBAL_V "Zmien.Glob."
|
||||
#define TR_GLOBAL_VAR "Zmienna Globalna"
|
||||
@@ -832,6 +860,9 @@
|
||||
#define TR_MODULE INDENT "Moduł"
|
||||
#define TR_TELEMETRY_TYPE "Typ Telemetri"
|
||||
#define TR_TELEMETRY_SENSORS "Czujniki"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Dodaj nowy czujnik..."
|
||||
#define TR_CHANNELRANGE TR(INDENT "ZakrKn",INDENT "Zakres kanału")
|
||||
#define TR_LOWALARM INDENT "Alarm niski"
|
||||
@@ -859,6 +890,8 @@
|
||||
#define TR_INPUTS "Wejścia"
|
||||
#define TR_OUTPUTS "Wyjścia"
|
||||
#define TR_EEBACKUP "\004[ENTER Długo] Backupowanie EEPROMu"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Za dużo skryptów Lua!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -964,25 +997,54 @@
|
||||
#define TR_UNLOCKED "Odblokowane"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precyzja "
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_BATT "Bat."
|
||||
#define ZSTR_ALT "Wysok."
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Paliwo"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Natęż"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Kurs"
|
||||
#define ZSTR_CELLS "Cele"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Data"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
+100
-16
@@ -82,6 +82,9 @@
|
||||
#define LEN_UART3MODES "\017"
|
||||
#define TR_UART3MODES "OFF\0 ""S-Port Mirror\0 ""Telemetry\0 ""SBUS Trainer\0 ""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "None\0 ""Pot with detent""Multipos Switch""Pot\0"
|
||||
|
||||
@@ -443,7 +446,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313\313d""\313\313u""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -456,13 +459,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -491,6 +504,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
@@ -532,11 +557,11 @@
|
||||
#define TR_ELIMITS "E.Limits"
|
||||
#define TR_ETRIMS "E.Trims"
|
||||
#define TR_TRIMINC "Trim Step"
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_TTRACE TR("T-Trace", INDENT "T-Trace")
|
||||
#define TR_TTRIM TR("T-Trim", INDENT "T-Trim")
|
||||
#define TR_BEEPCTR "Ctr Beep"
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_PROTO INDENT"Proto"
|
||||
#define TR_PPMFRAME "PPM frame"
|
||||
#define TR_MS "ms"
|
||||
@@ -548,9 +573,9 @@
|
||||
#define TR_CHECKTRIMS "\006Check\012Trims"
|
||||
#define OFS_CHECKTRIMS (9*FW)
|
||||
#define TR_SWASHTYPE "Ciclico Tipo"
|
||||
#define TR_COLLECTIVE "Coletivo"
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_COLLECTIVE "Coletivo"
|
||||
#define TR_AILERON "Lateral cyc. source"
|
||||
#define TR_ELEVATOR "Long. cyc. source"
|
||||
#define TR_SWASHRING "Anel Coletivo"
|
||||
#define TR_ELEDIRECTION "PFD Sentido"
|
||||
#define TR_AILDIRECTION "AIL Sentido"
|
||||
@@ -618,10 +643,12 @@
|
||||
#define TR_SWITCHWARNING TR("Avisa Chav", INDENT "Avisa Chav")
|
||||
#define TR_POTWARNING TR("Pot Warn.", INDENT "Pot Warning")
|
||||
#define TR_TIMEZONE "Time Zone"
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD "Ordem Canal RX"
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
#define TR_SWITCHES "Switches"
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
#define TR_SWITCHES "Switches"
|
||||
#define TR_SWITCHES_DELAY "Switches Delay"
|
||||
#define TR_SLAVE "Escravo"
|
||||
#define TR_MODESRC "Modo\006% Fonte"
|
||||
@@ -714,6 +741,7 @@
|
||||
#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_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "DESLIGANDOo"
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_BATT_CALIB "CALIBRAR BATT"
|
||||
@@ -780,7 +808,7 @@
|
||||
#define TR_SD_SPEED "Velocidade"
|
||||
#define TR_SD_SECTORS "Sectores"
|
||||
#define TR_SD_SIZE "Tamanho"
|
||||
#define TR_TYPE "Tipe"
|
||||
#define TR_TYPE INDENT "Tipe"
|
||||
#define TR_GLOBAL_VARS "Variaveis"
|
||||
#define TR_GLOBAL_V "GLOBAL V."
|
||||
#define TR_GLOBAL_VAR "Global Variable"
|
||||
@@ -834,6 +862,9 @@
|
||||
#define TR_MODULE INDENT "Module"
|
||||
#define TR_TELEMETRY_TYPE TR("Type", "Telemetry Type")
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..."
|
||||
#define TR_CHANNELRANGE INDENT "Channel Range"
|
||||
#define TR_LOWALARM INDENT "Low Alarm"
|
||||
@@ -861,6 +892,8 @@
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
#define TR_EEBACKUP "\004[ENTER Long] to backup the EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -966,3 +999,54 @@
|
||||
#define TR_UNLOCKED "Unlocked"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
@@ -82,6 +82,9 @@
|
||||
#define LEN_UART3MODES "\022"
|
||||
#define TR_UART3MODES "Av\0 ""Spegling av S-Port""Telemetri\0 ""SBUS Trainer\0 ""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\020"
|
||||
#define TR_POTTYPES "Ingen\0 ""Mittläges-pot\0 ""Flerlägesväljare""Potentiometer\0"
|
||||
|
||||
@@ -443,7 +446,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -456,13 +459,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "PÅ\0""En\0"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "PÅ\0""En\0"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "PÅ\0""En\0"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -491,6 +504,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manuell ""Cirkla ""Stabilisera ""Övning ""Fly by Wire A""Fly by Wire A""Automatisk ""Flyg Hem ""Hovra ""Guidad ""Initialiserar""OGILTIG "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
@@ -532,11 +557,11 @@
|
||||
#define TR_ELIMITS TR("Gränser++","Utökade Gränser")
|
||||
#define TR_ETRIMS TR("Trimmar++","Utökade Trimmar")
|
||||
#define TR_TRIMINC TR("Trimning","Trimökning")
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_TTRACE TR("Följ Gas", INDENT "Följ Gas")
|
||||
#define TR_TTRIM TR("Gastrim", INDENT "Gastrim")
|
||||
#define TR_BEEPCTR TR("Cent.pip", "Centerpip")
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_PROTO TR(INDENT "Proto", INDENT "Protokoll")
|
||||
#define TR_PPMFRAME TR(INDENT "PPM-paket", INDENT "PPM-paket")
|
||||
#define TR_MS "ms"
|
||||
@@ -618,10 +643,12 @@
|
||||
#define TR_SWITCHWARNING TR("Bryt.varn.", INDENT "Brytarvarning")
|
||||
#define TR_POTWARNING TR("Rattvarn.", INDENT "Rattvarning")
|
||||
#define TR_TIMEZONE TR("Tidszon", "GPS Tidszon")
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD "Kanaler i RX"
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
#define TR_SWITCHES "Switches"
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
#define TR_SWITCHES "Switches"
|
||||
#define TR_SWITCHES_DELAY "Brytarfördröjning"
|
||||
#define TR_SLAVE "Elev"
|
||||
#define TR_MODESRC " Läge\004% Källa"
|
||||
@@ -714,6 +741,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_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "STÄNGER AV"
|
||||
#define TR_SAVEMODEL "Spara modellinställn."
|
||||
#define TR_BATT_CALIB "Kalib. Batteri"
|
||||
@@ -780,7 +808,7 @@
|
||||
#define TR_SD_SPEED "Hastighet:"
|
||||
#define TR_SD_SECTORS "Sektorer:"
|
||||
#define TR_SD_SIZE "Strl:"
|
||||
#define TR_TYPE "Typ "
|
||||
#define TR_TYPE INDENT "Typ "
|
||||
#define TR_GLOBAL_VARS "Globala Variabler"
|
||||
#define TR_GLOBAL_V "GLOBAL V."
|
||||
#define TR_GLOBAL_VAR "Global Variabel"
|
||||
@@ -834,6 +862,9 @@
|
||||
#define TR_MODULE INDENT "Modul"
|
||||
#define TR_TELEMETRY_TYPE "Telemetrityp"
|
||||
#define TR_TELEMETRY_SENSORS "Sensorer"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Lägg till sensor..."
|
||||
#define TR_CHANNELRANGE INDENT "Kanalområde"
|
||||
#define TR_LOWALARM INDENT "Låg-alarm"
|
||||
@@ -861,6 +892,8 @@
|
||||
#define TR_INPUTS "Input"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
#define TR_EEBACKUP "\004[ENTER Lång] säkerhetskopiera EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "För många Lua-scripts!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -966,3 +999,54 @@
|
||||
#define TR_UNLOCKED "Olåst"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
@@ -56,6 +56,10 @@ enum CzechPrompts {
|
||||
CZ_PROMPT_SECONDS = CZ_PROMPT_UNITS_BASE+(UNIT_SECONDS*4),
|
||||
CZ_PROMPT_RPMS = CZ_PROMPT_UNITS_BASE+(UNIT_RPMS*4),
|
||||
CZ_PROMPT_G = CZ_PROMPT_UNITS_BASE+(UNIT_G*4),
|
||||
#if defined(CPUARM)
|
||||
CZ_PROMPT_MILLILITERS = CZ_PROMPT_UNITS_BASE+(UNIT_MILLILITERS*4),
|
||||
CZ_PROMPT_FLOZ = CZ_PROMPT_UNITS_BASE+(UNIT_FLOZ*4),
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -56,7 +56,11 @@ enum GermanPrompts {
|
||||
DE_PROMPT_MINUTES = DE_PROMPT_UNITS_BASE+UNIT_MINUTES,
|
||||
DE_PROMPT_SECONDS = DE_PROMPT_UNITS_BASE+UNIT_SECONDS,
|
||||
DE_PROMPT_RPMS = DE_PROMPT_UNITS_BASE+UNIT_RPMS,
|
||||
DE_PROMPT_G= DE_PROMPT_UNITS_BASE+UNIT_G,
|
||||
DE_PROMPT_G = DE_PROMPT_UNITS_BASE+UNIT_G,
|
||||
#if defined(CPUARM)
|
||||
DE_PROMPT_MILLILITERS = DE_PROMPT_UNITS_BASE+UNIT_MILLILITERS,
|
||||
DE_PROMPT_FLOZ = DE_PROMPT_UNITS_BASE+UNIT_FLOZ,
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -65,6 +65,10 @@ enum EnglishPrompts {
|
||||
EN_PROMPT_SECONDS = EN_PROMPT_UNITS_BASE+(UNIT_SECONDS*2),
|
||||
EN_PROMPT_RPMS = EN_PROMPT_UNITS_BASE+(UNIT_RPMS*2),
|
||||
EN_PROMPT_G = EN_PROMPT_UNITS_BASE+(UNIT_G*2),
|
||||
#if defined(CPUARM)
|
||||
EN_PROMPT_MILLILITERS = EN_PROMPT_UNITS_BASE+(UNIT_MILLILITERS*2),
|
||||
EN_PROMPT_FLOZ = EN_PROMPT_UNITS_BASE+(UNIT_FLOZ*2),
|
||||
#endif
|
||||
|
||||
EN_PROMPT_POINT_BASE = 160, //.0 - .9
|
||||
|
||||
|
||||
@@ -80,7 +80,11 @@ enum SpanishPrompts {
|
||||
ES_PROMPT_MINUTES = ES_PROMPT_UNITS_BASE+UNIT_MINUTES,
|
||||
ES_PROMPT_SECONDS = ES_PROMPT_UNITS_BASE+UNIT_SECONDS,
|
||||
ES_PROMPT_RPMS = ES_PROMPT_UNITS_BASE+UNIT_RPMS,
|
||||
ES_PROMPT_G= ES_PROMPT_UNITS_BASE+UNIT_G,
|
||||
ES_PROMPT_G = ES_PROMPT_UNITS_BASE+UNIT_G,
|
||||
#if defined(CPUARM)
|
||||
ES_PROMPT_MILLILITERS = ES_PROMPT_UNITS_BASE+UNIT_MILLILITERS,
|
||||
ES_PROMPT_FLOZ = ES_PROMPT_UNITS_BASE+UNIT_FLOZ,
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -62,6 +62,12 @@ enum FrenchPrompts {
|
||||
FR_PROMPT_HEURE = FR_PROMPT_UNITS_BASE+UNIT_HOURS,
|
||||
FR_PROMPT_MINUTE = FR_PROMPT_UNITS_BASE+UNIT_MINUTES,
|
||||
FR_PROMPT_SECONDE = FR_PROMPT_UNITS_BASE+UNIT_SECONDS,
|
||||
FR_PROMPT_RPMS = FR_PROMPT_UNITS_BASE+UNIT_RPMS,
|
||||
FR_PROMPT_G = FR_PROMPT_UNITS_BASE+UNIT_G,
|
||||
#if defined(CPUARM)
|
||||
FR_PROMPT_MILLILITERS = FR_PROMPT_UNITS_BASE+UNIT_MILLILITERS,
|
||||
FR_PROMPT_FLOZ = FR_PROMPT_UNITS_BASE+UNIT_FLOZ,
|
||||
#endif
|
||||
|
||||
FR_PROMPT_VIRGULE_BASE = 180, //,0 - ,9
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user