mirror of
https://github.com/opentx/opentx.git
synced 2025-07-25 17:25:13 +03:00
[Taranis] EEPROM savings
This commit is contained in:
parent
2e57549982
commit
44d4e93ad1
7 changed files with 83 additions and 53 deletions
|
@ -3375,8 +3375,9 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, BoardEnum bo
|
|||
internalField.Append(new SignedField<8>(generalData.txVoltageCalibration));
|
||||
internalField.Append(new SignedField<8>(generalData.backlightMode));
|
||||
|
||||
for (int i=0; i<NUM_STICKS; i++)
|
||||
for (int i=0; i<NUM_STICKS; i++) {
|
||||
internalField.Append(new SignedField<16>(generalData.trainer.calib[i]));
|
||||
}
|
||||
for (int i=0; i<NUM_STICKS; i++) {
|
||||
internalField.Append(new UnsignedField<6>(generalData.trainer.mix[i].src));
|
||||
internalField.Append(new UnsignedField<2>(generalData.trainer.mix[i].mode));
|
||||
|
@ -3385,7 +3386,7 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, BoardEnum bo
|
|||
|
||||
internalField.Append(new UnsignedField<8>(generalData.view, 0, MAX_VIEWS(board)-1));
|
||||
|
||||
internalField.Append(new SpareBitsField<2>());
|
||||
internalField.Append(new SpareBitsField<2>()); // TODO buzzerMode?
|
||||
internalField.Append(new BoolField<1>(generalData.fai));
|
||||
internalField.Append(new SignedField<2>((int &)generalData.beeperMode));
|
||||
internalField.Append(new BoolField<1>(generalData.flashBeep));
|
||||
|
@ -3402,7 +3403,8 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, BoardEnum bo
|
|||
}
|
||||
|
||||
internalField.Append(new UnsignedField<8>(generalData.inactivityTimer));
|
||||
if (IS_9X(board) && version >= 215) {
|
||||
if (IS_9X(board)) {
|
||||
if (version >= 215) {
|
||||
internalField.Append(new UnsignedField<3>(generalData.mavbaud));
|
||||
}
|
||||
else {
|
||||
|
@ -3410,6 +3412,10 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, BoardEnum bo
|
|||
internalField.Append(new BoolField<1>(generalData.minuteBeep));
|
||||
internalField.Append(new BoolField<1>(generalData.preBeep));
|
||||
}
|
||||
}
|
||||
else {
|
||||
internalField.Append(new SpareBitsField<3>());
|
||||
}
|
||||
if (version >= 216 && IS_TARANIS(board))
|
||||
internalField.Append(new SignedField<3>(generalData.splashDuration));
|
||||
else if (version >= 213 || (!IS_ARM(board) && version >= 212))
|
||||
|
@ -3421,20 +3427,19 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, BoardEnum bo
|
|||
if (IS_ARM(board))
|
||||
internalField.Append(new SignedField<8>(generalData.switchesDelay));
|
||||
else
|
||||
internalField.Append(new SpareBitsField<8>());
|
||||
internalField.Append(new SpareBitsField<8>()); // TODO blOffBright + blOnBright
|
||||
|
||||
internalField.Append(new UnsignedField<8>(generalData.backlightDelay));
|
||||
internalField.Append(new UnsignedField<8>(generalData.templateSetup));
|
||||
internalField.Append(new SignedField<8>(generalData.PPM_Multiplier));
|
||||
internalField.Append(new SignedField<8>(generalData.hapticLength));
|
||||
|
||||
if (version < 216 || !IS_9X(board)) {
|
||||
if (version < 216 || (version < 218 && !IS_9X(board)) || (!IS_9X(board) && !IS_TARANIS(board))) {
|
||||
internalField.Append(new UnsignedField<8>(generalData.reNavigation));
|
||||
}
|
||||
|
||||
if (version >= 216 && !IS_TARANIS(board)) {
|
||||
internalField.Append(new UnsignedField<4>(generalData.stickReverse));
|
||||
internalField.Append(new SpareBitsField<4>());
|
||||
internalField.Append(new UnsignedField<8>(generalData.stickReverse));
|
||||
}
|
||||
|
||||
internalField.Append(new SignedField<3>(generalData.beeperLength));
|
||||
|
@ -3456,33 +3461,46 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, BoardEnum bo
|
|||
|
||||
if (IS_ARM(board)) {
|
||||
internalField.Append(new UnsignedField<8>(generalData.backlightBright));
|
||||
internalField.Append(new SignedField<8>(generalData.txCurrentCalibration));
|
||||
if (version < 218) internalField.Append(new SignedField<8>(generalData.txCurrentCalibration));
|
||||
if (version >= 213) {
|
||||
internalField.Append(new SignedField<8>(generalData.temperatureWarn)); // TODO
|
||||
internalField.Append(new UnsignedField<8>(generalData.mAhWarn));
|
||||
internalField.Append(new UnsignedField<16>(generalData.mAhUsed));
|
||||
if (version < 218) internalField.Append(new SignedField<8>(generalData.temperatureWarn)); // TODO
|
||||
if (version < 218) internalField.Append(new UnsignedField<8>(generalData.mAhWarn));
|
||||
if (version < 218) internalField.Append(new UnsignedField<16>(generalData.mAhUsed));
|
||||
internalField.Append(new UnsignedField<32>(generalData.globalTimer));
|
||||
internalField.Append(new SignedField<8>(generalData.temperatureCalib)); // TODO
|
||||
if (version < 218) internalField.Append(new SignedField<8>(generalData.temperatureCalib)); // TODO
|
||||
internalField.Append(new UnsignedField<8>(generalData.btBaudrate)); // TODO
|
||||
internalField.Append(new BoolField<8>(generalData.optrexDisplay)); //TODO
|
||||
internalField.Append(new UnsignedField<8>(generalData.sticksGain)); // TODO
|
||||
if (version < 218) internalField.Append(new BoolField<8>(generalData.optrexDisplay)); //TODO
|
||||
if (version < 218) internalField.Append(new UnsignedField<8>(generalData.sticksGain)); // TODO
|
||||
}
|
||||
if (version >= 214) {
|
||||
internalField.Append(new UnsignedField<8>(generalData.rotarySteps)); // TODO
|
||||
if (version < 218) internalField.Append(new UnsignedField<8>(generalData.rotarySteps)); // TODO
|
||||
internalField.Append(new UnsignedField<8>(generalData.countryCode));
|
||||
internalField.Append(new UnsignedField<8>(generalData.imperial));
|
||||
}
|
||||
if (version >= 215) {
|
||||
internalField.Append(new CharField<2>(generalData.ttsLanguage));
|
||||
if (version < 218) {
|
||||
internalField.Append(new SignedField<8>(generalData.beepVolume));
|
||||
internalField.Append(new SignedField<8>(generalData.wavVolume));
|
||||
internalField.Append(new SignedField<8>(generalData.varioVolume));
|
||||
}
|
||||
else {
|
||||
internalField.Append(new SignedField<4>(generalData.beepVolume));
|
||||
internalField.Append(new SignedField<4>(generalData.wavVolume));
|
||||
internalField.Append(new SignedField<4>(generalData.varioVolume));
|
||||
internalField.Append(new SignedField<4>(generalData.backgroundVolume));
|
||||
}
|
||||
if (version >= 216) {
|
||||
internalField.Append(new SignedField<8>(generalData.varioPitch));
|
||||
internalField.Append(new SignedField<8>(generalData.varioRange));
|
||||
internalField.Append(new SignedField<8>(generalData.varioRepeat));
|
||||
}
|
||||
internalField.Append(new SignedField<8>(generalData.backgroundVolume));
|
||||
if (version < 218) internalField.Append(new SignedField<8>(generalData.backgroundVolume));
|
||||
}
|
||||
if (version >= 218) {
|
||||
for (int i=0; i<MAX_CUSTOM_FUNCTIONS(board, version); i++) {
|
||||
internalField.Append(new ArmCustomFunctionField(generalData.customFn[i], board, version, variant));
|
||||
}
|
||||
}
|
||||
if (IS_TARANIS(board) && version >= 216) {
|
||||
if (version >= 217) {
|
||||
|
@ -3508,11 +3526,11 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, BoardEnum bo
|
|||
}
|
||||
|
||||
if (IS_TARANIS_X9E(board))
|
||||
internalField.Append(new SpareBitsField<64>());
|
||||
internalField.Append(new SpareBitsField<64>()); // switchUnlockStates
|
||||
else if (IS_TARANIS(board))
|
||||
internalField.Append(new SpareBitsField<16>());
|
||||
internalField.Append(new SpareBitsField<16>()); // switchUnlockStates
|
||||
|
||||
if (version >= 217) {
|
||||
if (version == 217) {
|
||||
for (int i=0; i<MAX_CUSTOM_FUNCTIONS(board, version); i++) {
|
||||
internalField.Append(new ArmCustomFunctionField(generalData.customFn[i], board, version, variant));
|
||||
}
|
||||
|
|
|
@ -52,6 +52,14 @@
|
|||
#define TARANIS_REV9E_FIELD(x)
|
||||
#endif
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
#define N_HORUS_FIELD(x)
|
||||
#define HORUS_FIELD(x) x;
|
||||
#else
|
||||
#define N_HORUS_FIELD(x) x;
|
||||
#define HORUS_FIELD(x)
|
||||
#endif
|
||||
|
||||
#if defined(BACKUP)
|
||||
#define NOBACKUP(...)
|
||||
#else
|
||||
|
@ -872,16 +880,8 @@ PACK(struct TrainerData {
|
|||
#if defined(CPUARM)
|
||||
#define EXTRA_GENERAL_FIELDS_ARM \
|
||||
NOBACKUP(uint8_t backlightBright); \
|
||||
/* TODO remove */ NOBACKUP(int8_t txCurrentCalibration); \
|
||||
/* TODO remove */ NOBACKUP(int8_t temperatureWarn); \
|
||||
/* TODO remove */ NOBACKUP(uint8_t mAhWarn); \
|
||||
/* TODO remove */ NOBACKUP(uint16_t mAhUsed); \
|
||||
NOBACKUP(uint32_t globalTimer); \
|
||||
/* TODO remove */ NOBACKUP(int8_t temperatureCalib); \
|
||||
NOBACKUP(uint8_t btBaudrate); \
|
||||
/* TODO remove */ NOBACKUP(uint8_t optrexDisplay); \
|
||||
/* TODO remove */ uint8_t sticksGain; \
|
||||
/* TODO remove */ NOBACKUP(uint8_t rotarySteps); \
|
||||
NOBACKUP(uint8_t countryCode); \
|
||||
NOBACKUP(uint8_t imperial); \
|
||||
NOBACKUP(char ttsLanguage[2]); \
|
||||
|
@ -891,7 +891,8 @@ PACK(struct TrainerData {
|
|||
NOBACKUP(int8_t backgroundVolume:4); \
|
||||
NOBACKUP(int8_t varioPitch); \
|
||||
NOBACKUP(int8_t varioRange); \
|
||||
NOBACKUP(int8_t varioRepeat);
|
||||
NOBACKUP(int8_t varioRepeat); \
|
||||
CustomFunctionData customFn[NUM_CFN];
|
||||
#endif
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
|
@ -899,7 +900,6 @@ PACK(struct TrainerData {
|
|||
EXTRA_GENERAL_FIELDS_ARM \
|
||||
NOBACKUP(uint8_t serial2Mode:6); \
|
||||
uint8_t slidersConfig:2; \
|
||||
CustomFunctionData customFn[NUM_CFN]; \
|
||||
uint32_t switchConfig; \
|
||||
uint8_t potsConfig; /* two bits per pot */ \
|
||||
NOBACKUP(char switchNames[NUM_SWITCHES][LEN_SWITCH_NAME]); \
|
||||
|
@ -912,7 +912,6 @@ PACK(struct TrainerData {
|
|||
EXTRA_GENERAL_FIELDS_ARM \
|
||||
uint8_t serial2Mode:6; \
|
||||
uint8_t spare:2; \
|
||||
CustomFunctionData customFn[NUM_CFN]; \
|
||||
uint32_t switchConfig; \
|
||||
uint8_t potsType; /*two bits for every pot*/\
|
||||
char switchNames[NUM_SWITCHES][LEN_SWITCH_NAME]; \
|
||||
|
@ -932,15 +931,23 @@ PACK(struct TrainerData {
|
|||
uint8_t potsConfig; /* two bits per pot */\
|
||||
uint8_t backlightColor; \
|
||||
swarnstate_t switchUnlockStates; \
|
||||
CustomFunctionData customFn[NUM_CFN]; \
|
||||
swconfig_t switchConfig; \
|
||||
char switchNames[NUM_SWITCHES][LEN_SWITCH_NAME]; \
|
||||
char anaNames[NUM_STICKS+NUM_POTS][LEN_ANA_NAME]; \
|
||||
BLUETOOTH_FIELDS
|
||||
#elif defined(CPUARM)
|
||||
#elif defined(PCBSKY9X)
|
||||
#define EXTRA_GENERAL_FIELDS \
|
||||
EXTRA_GENERAL_FIELDS_ARM \
|
||||
CustomFunctionData customFn[NUM_CFN];
|
||||
int8_t txCurrentCalibration; \
|
||||
int8_t temperatureWarn; \
|
||||
uint8_t mAhWarn; \
|
||||
uint16_t mAhUsed; \
|
||||
int8_t temperatureCalib; \
|
||||
uint8_t optrexDisplay; \
|
||||
uint8_t sticksGain; \
|
||||
uint8_t rotarySteps;
|
||||
#elif defined(CPUARM)
|
||||
#define EXTRA_GENERAL_FIELDS EXTRA_GENERAL_FIELDS_ARM
|
||||
#elif defined(PXX)
|
||||
#define EXTRA_GENERAL_FIELDS uint8_t countryCode;
|
||||
#else
|
||||
|
@ -961,8 +968,8 @@ PACK(struct RadioData {
|
|||
NOBACKUP(uint16_t variant);
|
||||
CalibData calib[NUM_STICKS+NUM_POTS];
|
||||
NOBACKUP(uint16_t chkSum);
|
||||
/* TODO not horus */ NOBACKUP(int8_t currModel);
|
||||
NOBACKUP(uint8_t contrast);
|
||||
N_HORUS_FIELD(int8_t currModel);
|
||||
N_HORUS_FIELD(uint8_t contrast);
|
||||
NOBACKUP(uint8_t vBatWarn);
|
||||
NOBACKUP(int8_t txVoltageCalibration);
|
||||
NOBACKUP(int8_t backlightMode);
|
||||
|
@ -988,8 +995,8 @@ PACK(struct RadioData {
|
|||
NOBACKUP(uint8_t templateSetup); // RETA order for receiver channels
|
||||
NOBACKUP(int8_t PPM_Multiplier);
|
||||
NOBACKUP(int8_t hapticLength);
|
||||
/* TODO remove */ N_PCBSTD_FIELD(uint8_t reNavigation)
|
||||
/* TODO not on horus */ N_TARANIS_FIELD(uint8_t stickReverse)
|
||||
N_HORUS_FIELD(N_TARANIS_FIELD(N_PCBSTD_FIELD(uint8_t reNavigation)));
|
||||
N_HORUS_FIELD(N_TARANIS_FIELD(uint8_t stickReverse));
|
||||
NOBACKUP(int8_t beepLength:3);
|
||||
NOBACKUP(int8_t hapticStrength:3);
|
||||
NOBACKUP(uint8_t gpsFormat:1);
|
||||
|
|
|
@ -84,7 +84,6 @@ bool menuStatisticsDebug(evt_t event)
|
|||
switch(event)
|
||||
{
|
||||
case EVT_KEY_LONG(KEY_ENTER):
|
||||
g_eeGeneral.mAhUsed = 0;
|
||||
g_eeGeneral.globalTimer = 0;
|
||||
storageDirty(EE_GENERAL);
|
||||
sessionTimer = 0;
|
||||
|
|
|
@ -116,7 +116,6 @@ void menuStatisticsDebug(uint8_t event)
|
|||
switch(event)
|
||||
{
|
||||
case EVT_KEY_LONG(KEY_ENTER):
|
||||
g_eeGeneral.mAhUsed = 0;
|
||||
g_eeGeneral.globalTimer = 0;
|
||||
storageDirty(EE_GENERAL);
|
||||
sessionTimer = 0;
|
||||
|
|
|
@ -71,7 +71,12 @@ const pm_char * openLogs()
|
|||
}
|
||||
|
||||
if (len == 0) {
|
||||
#if defined(EEPROM)
|
||||
uint8_t num = g_eeGeneral.currModel + 1;
|
||||
#else
|
||||
// TODO
|
||||
uint8_t num = 1;
|
||||
#endif
|
||||
strcpy_P(&filename[sizeof(LOGS_PATH)], STR_MODEL);
|
||||
filename[sizeof(LOGS_PATH) + PSIZE(TR_MODEL)] = (char)((num / 10) + '0');
|
||||
filename[sizeof(LOGS_PATH) + PSIZE(TR_MODEL) + 1] = (char)((num % 10) + '0');
|
||||
|
|
|
@ -822,7 +822,7 @@ int getTrimValue(uint8_t phase, uint8_t idx);
|
|||
|
||||
#if defined(PCBGRUVIN9X) || defined(PCBMEGA2560)
|
||||
#define ROTARY_ENCODER_GRANULARITY (1)
|
||||
#elif defined(CPUARM)
|
||||
#elif defined(PCBSKY9X)
|
||||
#define ROTARY_ENCODER_GRANULARITY (2 << g_eeGeneral.rotarySteps)
|
||||
#else
|
||||
#define ROTARY_ENCODER_GRANULARITY (2)
|
||||
|
|
|
@ -1080,7 +1080,9 @@ bool eeConvert()
|
|||
int conversionVersionStart = g_eeGeneral.version;
|
||||
|
||||
// Information to the user and wait for key press
|
||||
#if defined(PCBSKY9X)
|
||||
g_eeGeneral.optrexDisplay = 0;
|
||||
#endif
|
||||
g_eeGeneral.backlightMode = e_backlight_mode_on;
|
||||
g_eeGeneral.backlightBright = 0;
|
||||
g_eeGeneral.contrast = 25;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue