Factory reset function (manual EEPROM format)

This commit is contained in:
Andre Bernet
2015-03-18 20:23:20 +04:00
parent ce2a278862
commit 827e1e2b43
15 changed files with 54 additions and 15 deletions
+1
View File
@@ -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
View File
@@ -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();
+12 -1
View File
@@ -88,12 +88,23 @@ void backupEeprom()
void menuGeneralVersion(uint8_t event)
{
if (s_warning_result) {
s_warning_result = 0;
displayPopup(STR_EEPROMFORMATTING);
eeErase(false);
NVIC_SystemReset();
}
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);
}
}
+2
View File
@@ -499,6 +499,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;
+2
View File
@@ -669,6 +669,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[];
+2
View File
@@ -926,6 +926,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)
+2
View File
@@ -925,6 +925,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)
+2
View File
@@ -925,6 +925,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)
+2
View File
@@ -861,6 +861,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)
+3 -1
View File
@@ -1,4 +1,4 @@
/*
/*
* Authors (alphabetical order)
* - Bertrand Songis <bsongis@gmail.com>
* - Bernet Andre <bernet.andre@gmail.com>
@@ -861,6 +861,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)
+2
View File
@@ -921,6 +921,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)
+2
View File
@@ -861,6 +861,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)
+2
View File
@@ -859,6 +859,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)
+2
View File
@@ -861,6 +861,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)
+2
View File
@@ -861,6 +861,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)