diff --git a/src/eeprom_avr.cpp b/src/eeprom_avr.cpp index d0adf0cb6..baf7c3208 100644 --- a/src/eeprom_avr.cpp +++ b/src/eeprom_avr.cpp @@ -526,8 +526,8 @@ bool RlcFile::copy(uint8_t i_fileDst, uint8_t i_fileSrc) return true; } -#ifdef SDCARD -const pm_char * eeArchiveModel(uint8_t i_fileSrc) +#if defined(SDCARD) +const pm_char * eeBackupModel(uint8_t i_fileSrc) { char *buf = reusableBuffer.model_name; FIL archiveFile; @@ -626,6 +626,10 @@ const pm_char * eeRestoreModel(uint8_t i_fileDst, char *model_name) // TODO } + if (EFile::exists(FILE_MODEL(i_fileDst))) { + eeDeleteModel(i_fileDst); + } + theFile.create(FILE_MODEL(i_fileDst), FILE_TYP_MODEL, true); do { @@ -652,8 +656,6 @@ const pm_char * eeRestoreModel(uint8_t i_fileDst, char *model_name) eeFs.files[FILE_TMP].size = theFile.m_pos; EFile::swap(theFile.m_fileId, FILE_TMP); // s_sync_write is set to false in swap(); - assert(!theFile.m_write_step); - f_close(&restoreFile); return NULL; } diff --git a/src/eeprom_avr.h b/src/eeprom_avr.h index 012b600d3..f184b0757 100644 --- a/src/eeprom_avr.h +++ b/src/eeprom_avr.h @@ -215,7 +215,7 @@ uint16_t evalChkSum(); #define eeSwapModels(id1, id2) EFile::swap(FILE_MODEL(id1), FILE_MODEL(id2)) #ifdef SDCARD -const pm_char * eeArchiveModel(uint8_t i_fileSrc); +const pm_char * eeBackupModel(uint8_t i_fileSrc); const pm_char * eeRestoreModel(uint8_t i_fileDst, char *model_name); #endif diff --git a/src/frsky.cpp b/src/frsky.cpp index de1974508..7184a9697 100644 --- a/src/frsky.cpp +++ b/src/frsky.cpp @@ -612,7 +612,7 @@ inline void FRSKY10mspoll(void) void check_frsky() { #if defined(PCBARM) - rxPdcUsart(processSerialData); // Send serial data here + rxPdcUsart(processSerialData); // Receive serial data here #endif // Attempt to transmit any waiting Fr-Sky alarm set packets every 50ms (subject to packet buffer availability) @@ -644,10 +644,10 @@ void check_frsky() if (isFunctionActive(FUNC_VARIO)) { #if defined(AUDIO) int16_t verticalSpeed = 0; - //TODO: get negative values in Up Speed to shift zero, i.e. get positive sound on small negative speeds - // positive values in g_model.varioSpeedUpMin must works same as now - // negative must make an offset in sounds - // also changes need in model_menus.cpp + // TODO: get negative values in Up Speed to shift zero, i.e. get positive sound on small negative speeds + // positive values in g_model.varioSpeedUpMin must works same as now + // negative must make an offset in sounds + // also changes need in model_menus.cpp verticalSpeed = limit((int16_t)(-VARIO_SPEED_LIMIT*100), (int16_t)frskyHubData.varioSpeed, (int16_t)(+VARIO_SPEED_LIMIT*100)); uint8_t SoundAltBeepNextFreq = 0; diff --git a/src/haptic.cpp b/src/haptic.cpp index 2eacfe533..8e092e97c 100644 --- a/src/haptic.cpp +++ b/src/haptic.cpp @@ -107,20 +107,14 @@ void hapticQueue::play(uint8_t tLen, uint8_t tPause, uint8_t tFlags) void hapticQueue::event(uint8_t e) { if (g_eeGeneral.hapticMode>0 || (g_eeGeneral.hapticMode==0 && e>=AU_WARNING1) || (g_eeGeneral.hapticMode>=-1 && e<=AU_ERROR)) { - switch (e) { - case 0: // very little buzz for keys / trims - play(5, 0, PLAY_NOW); - break; - case AU_TIMER_20: // two buzz - play(10,2,1); - break; - case AU_TIMER_30: // three buzz - play(10,2,2); - break; - default: - play(10,2,0); - break; - } + if (e <= AU_ERROR) + play(15, 3, PLAY_NOW); + else if (e <= AU_TRIM_MOVE) + play(5, 0, PLAY_NOW); + else if (e <= AU_TIMER_LT3) + play(15, 3, PLAY_NOW); + else if (e < AU_FRSKY_FIRST) + play(15, 3, (e-AU_TIMER_10)|PLAY_NOW); } } diff --git a/src/model_menus.cpp b/src/model_menus.cpp index 2393203a9..a50eb2346 100644 --- a/src/model_menus.cpp +++ b/src/model_menus.cpp @@ -296,26 +296,32 @@ void menuProcModelSelect(uint8_t event) #endif s_copyMode = 0; killEvents(event); - if (g_eeGeneral.currModel != sub) { #if defined(SDCARD) + if (g_eeGeneral.currModel != sub) { if (eeModelExists(sub)) { s_menu[s_menu_count++] = STR_LOAD_MODEL; - s_menu[s_menu_count++] = STR_ARCHIVE_MODEL; + s_menu[s_menu_count++] = STR_BACKUP_MODEL; s_menu[s_menu_count++] = STR_DELETE_MODEL;; } else { s_menu[s_menu_count++] = STR_CREATE_MODEL; s_menu[s_menu_count++] = STR_RESTORE_MODEL;; } + } + else { + s_menu[s_menu_count++] = STR_BACKUP_MODEL; + s_menu[s_menu_count++] = STR_RESTORE_MODEL;; + } #else + if (g_eeGeneral.currModel != sub) { displayPopup(STR_LOADINGMODEL); eeCheck(true); // force writing of current model data before this is changed g_eeGeneral.currModel = sub; STORE_GENERALVARS; eeLoadModel(sub); return; -#endif } +#endif } else if (eeModelExists(sub)) { s_copyMode = (s_copyMode == COPY_MODE ? MOVE_MODE : COPY_MODE); @@ -440,10 +446,8 @@ void menuProcModelSelect(uint8_t event) eeLoadModel(sub); } } - else if (result == STR_ARCHIVE_MODEL) { - s_sdcard_error = eeArchiveModel(sub); - if (!s_sdcard_error) - eeDeleteModel(sub); // delete the model, it's archived! + else if (result == STR_BACKUP_MODEL) { + s_sdcard_error = eeBackupModel(sub); } else if (result == STR_RESTORE_MODEL || result == STR_UPDATE_LIST) { if (!listSDcardModels()) { diff --git a/src/o9xstrings.cpp b/src/o9xstrings.cpp index 014731d6b..dd947f24f 100644 --- a/src/o9xstrings.cpp +++ b/src/o9xstrings.cpp @@ -314,7 +314,7 @@ const pm_char STR_CURRENT[] PROGMEM = TR_CURRENT; #if defined(SDCARD) const pm_char STR_LOAD_MODEL[] PROGMEM = TR_LOAD_MODEL; const pm_char STR_CREATE_MODEL[] PROGMEM = TR_CREATE_MODEL; -const pm_char STR_ARCHIVE_MODEL[] PROGMEM = TR_ARCHIVE_MODEL; +const pm_char STR_BACKUP_MODEL[] PROGMEM = TR_BACKUP_MODEL; const pm_char STR_DELETE_MODEL[] PROGMEM = TR_DELETE_MODEL; const pm_char STR_RESTORE_MODEL[] PROGMEM = TR_RESTORE_MODEL; const pm_char STR_SDCARD_ERROR[] PROGMEM = TR_SDCARD_ERROR; diff --git a/src/o9xstrings.h b/src/o9xstrings.h index 7f703a286..4e29873e3 100644 --- a/src/o9xstrings.h +++ b/src/o9xstrings.h @@ -381,7 +381,7 @@ extern const pm_char STR_CURRENT[]; #if defined(SDCARD) extern const pm_char STR_LOAD_MODEL[]; extern const pm_char STR_CREATE_MODEL[]; -extern const pm_char STR_ARCHIVE_MODEL[]; +extern const pm_char STR_BACKUP_MODEL[]; extern const pm_char STR_DELETE_MODEL[]; extern const pm_char STR_RESTORE_MODEL[]; extern const pm_char STR_SDCARD_ERROR[]; diff --git a/src/open9x.h b/src/open9x.h index 68aab5746..666ed1e8d 100644 --- a/src/open9x.h +++ b/src/open9x.h @@ -845,10 +845,10 @@ enum AUDIO_SOUNDS { AU_MIX_WARNING_1, AU_MIX_WARNING_2, AU_MIX_WARNING_3, - AU_TIMER_30, - AU_TIMER_20, - AU_TIMER_10, AU_TIMER_LT3, + AU_TIMER_10, + AU_TIMER_20, + AU_TIMER_30, AU_FRSKY_FIRST, AU_FRSKY_WARN1 = AU_FRSKY_FIRST, AU_FRSKY_WARN2, @@ -866,8 +866,6 @@ enum AUDIO_SOUNDS { AU_FRSKY_LAST, }; #if defined(AUDIO) -//audio settungs are external to keep out clutter! -// TODO english learning for me... what does mean "keep out clutter"? #include "audio.h" #else #include "beeper.h" diff --git a/src/stock/audio.cpp b/src/stock/audio.cpp index 2ff64a8e4..5a509f054 100644 --- a/src/stock/audio.cpp +++ b/src/stock/audio.cpp @@ -61,6 +61,7 @@ void audioQueue::heartbeat() #endif toneTimeLeft--; //time gets counted down toneFreq += toneFreqIncr; + // TODO tone2TimeLeft = 0? } else { if (tonePause > 0) { diff --git a/src/translations/en.h b/src/translations/en.h index e92c7739c..2da982145 100644 --- a/src/translations/en.h +++ b/src/translations/en.h @@ -115,7 +115,7 @@ #define TR_VFSWRESET "Timer1""Timer2""All ""Telem." #define LEN_FUNCSOUNDS "\006" -#define TR_FUNCSOUNDS "Warn1 ""Warn2 ""Cheep ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""Siren ""AlmClk""Ratata""Tick ""Haptc1""Haptc2""Haptc3" +#define TR_FUNCSOUNDS "Warn1 ""Warn2 ""Cheep ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""Siren ""AlmClk""Ratata""Tick " #define LEN_VTELEMCHNS "\004" #define TR_VTELEMCHNS "---\0""Tmr1""Tmr2""A1\0 ""A2\0 ""Tx\0 ""Rx\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""AccX""AccY""AccZ""Hdg\0""VSpd""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Acc\0""Time" @@ -372,7 +372,7 @@ #define TR_CURRENT "Current" #define TR_LOAD_MODEL "Load Model" #define TR_CREATE_MODEL "Create Model" -#define TR_ARCHIVE_MODEL "Archive Model" +#define TR_BACKUP_MODEL "Backup Model" #define TR_DELETE_MODEL "Delete Model" // TODO merged into DELETEMODEL? #define TR_RESTORE_MODEL "Restore Model" #define TR_SDCARD_ERROR "SDCARD Error" diff --git a/src/translations/fr.h b/src/translations/fr.h index 26b6e8d55..94070081a 100644 --- a/src/translations/fr.h +++ b/src/translations/fr.h @@ -115,7 +115,7 @@ #define TR_VFSWRESET "Timer1""Timer2""All ""Telem." #define LEN_FUNCSOUNDS "\006" -#define TR_FUNCSOUNDS "Warn1 ""Warn2 ""Cheep ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""Siren ""AlmClk""Ratata""Tick ""Haptc1""Haptc2""Haptc3" +#define TR_FUNCSOUNDS "Warn1 ""Warn2 ""Cheep ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""Siren ""AlmClk""Ratata""Tick " #define LEN_VTELEMCHNS "\004" #define TR_VTELEMCHNS "---\0""Tmr1""Tmr2""A1\0 ""A2\0 ""Tx\0 ""Rx\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""AccX""AccY""AccZ""Hdg\0""VSpd""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Acc\0""Time" @@ -376,7 +376,7 @@ #define TR_CURRENT "Courant" #define TR_LOAD_MODEL "Charger Modele" #define TR_CREATE_MODEL "Creer Modele" -#define TR_ARCHIVE_MODEL "Archiver Modele" +#define TR_BACKUP_MODEL "Archiver Modele" #define TR_DELETE_MODEL "Supprimer Modele" #define TR_RESTORE_MODEL "Restorer Modele" #define TR_SDCARD_ERROR "SDCARD Error" diff --git a/src/translations/se.h b/src/translations/se.h index 1d24da160..fab2250e1 100644 --- a/src/translations/se.h +++ b/src/translations/se.h @@ -115,7 +115,7 @@ #define TR_VFSWRESET "Timer1""Timer2""All ""Telem." #define LEN_FUNCSOUNDS "\006" -#define TR_FUNCSOUNDS "Varn1 ""Varn2 ""F\200r ""Ring ""SciFi ""Robot ""Pip ""Tada ""Syrsa ""Siren ""Alarm ""Ratata""Tick ""Vibr1 ""Vibr2 ""Vibr3 " +#define TR_FUNCSOUNDS "Varn1 ""Varn2 ""F\200r ""Ring ""SciFi ""Robot ""Pip ""Tada ""Syrsa ""Siren ""Alarm ""Ratata""Tick " #define LEN_VTELEMCHNS "\004" #define TR_VTELEMCHNS "---\0""Tmr1""Tmr2""A1\0 ""A2\0 ""Tx\0 ""Rx\0 ""Alt\0""Rpm\0""Tank""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""AccX""AccY""AccZ""Hdg\0""VSpd""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Acc\0""Tid\0" @@ -376,7 +376,7 @@ #define TR_CURRENT "Sp\201nning" #define TR_LOAD_MODEL "Load Model" #define TR_CREATE_MODEL "Create Model" -#define TR_ARCHIVE_MODEL "Archive Model" +#define TR_BACKUP_MODEL "Backup Model" #define TR_DELETE_MODEL "Delete Model" #define TR_RESTORE_MODEL "Restore Model" #define TR_SDCARD_ERROR "SDCARD Error"