Added check for double PI in memory scanner
Added sensitivity setting in both DX mode and auto memory menu
This commit is contained in:
+9
-4
@@ -209,9 +209,9 @@
|
||||
#define EE_CHECKBYTE_VALUE 10 // 0 ~ 255,add new entry, change for new value
|
||||
#define EE_PRESETS_FREQUENCY 0 // Default value when memory channel should be skipped!
|
||||
#ifdef HAS_AIR_BAND
|
||||
#define EE_TOTAL_CNT 2235 // Total occupied eeprom bytes
|
||||
#define EE_TOTAL_CNT 2236 // Total occupied eeprom bytes
|
||||
#else
|
||||
#define EE_TOTAL_CNT 2229 // Total occupied eeprom bytes
|
||||
#define EE_TOTAL_CNT 2230 // Total occupied eeprom bytes
|
||||
#endif
|
||||
|
||||
#define EE_PRESETS_BAND_START 0 // 99 * 1 byte
|
||||
@@ -319,9 +319,10 @@
|
||||
#define EE_BYTE_MEMSTARTPOS 2226
|
||||
#define EE_BYTE_MEMSTOPPOS 2227
|
||||
#define EE_BYTE_MEMPIONLY 2228
|
||||
#define EE_BYTE_MEMDOUBLEPI 2229
|
||||
#ifdef HAS_AIR_BAND
|
||||
#define EE_BYTE_AIRSTEPSIZE 2229
|
||||
#define EE_UINT16_FREQUENCY_AIR 2230
|
||||
#define EE_BYTE_AIRSTEPSIZE 2230
|
||||
#define EE_UINT16_FREQUENCY_AIR 2231
|
||||
#endif
|
||||
// End of EEPROM index defines
|
||||
|
||||
@@ -344,6 +345,10 @@ enum LONGBANDBUTTONPRESS {
|
||||
STANDBY = 0, SCREENOFF
|
||||
};
|
||||
|
||||
enum AUTOMEMPIMODES {
|
||||
MEMPI_OFF = 0, MEMPI_RANGE, MEMPI_FULL
|
||||
};
|
||||
|
||||
enum SCAN_CANCEL {
|
||||
SCAN_CANCEL = OFF, CORRECTPI, SIGNAL
|
||||
};
|
||||
|
||||
+119
-3
@@ -8,7 +8,7 @@
|
||||
#include <cstring>
|
||||
|
||||
byte menuitem;
|
||||
byte items[10] = {10, static_cast<byte>(dynamicspi ? 10 : 9), 7, 10, 10, 10, 9, 6, 7, 7};
|
||||
byte items[10] = {10, static_cast<byte>(dynamicspi ? 10 : 9), 7, 10, 10, 10, 9, 6, 8, 9};
|
||||
extern mem presets[];
|
||||
bool setWiFiConnectParam = false;
|
||||
|
||||
@@ -1255,7 +1255,16 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
||||
case AUTOMEM:
|
||||
FullLineSprite.setTextDatum(TL_DATUM);
|
||||
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||
FullLineSprite.drawString(removeNewline(myLanguage[language][276]), 6, 2);
|
||||
FullLineSprite.drawString(removeNewline(myLanguage[language][278]), 6, 2);
|
||||
|
||||
FullLineSprite.setTextDatum(TR_DATUM);
|
||||
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
|
||||
switch (memdoublepi) {
|
||||
case MEMPI_OFF: FullLineSprite.drawString(myLanguage[language][30], 298, 2); break;
|
||||
case MEMPI_RANGE: FullLineSprite.drawString(myLanguage[language][279], 298, 2); break;
|
||||
default: FullLineSprite.drawString(myLanguage[language][280], 298, 2); break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -1356,6 +1365,26 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
||||
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||
FullLineSprite.drawString("kHz", 298, 2);
|
||||
break;
|
||||
|
||||
case DXMODE:
|
||||
FullLineSprite.setTextDatum(TL_DATUM);
|
||||
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||
FullLineSprite.drawString(removeNewline(myLanguage[language][82]), 6, 2);
|
||||
|
||||
FullLineSprite.setTextDatum(TR_DATUM);
|
||||
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
FullLineSprite.drawString(String(fmscansens), 298, 2);
|
||||
break;
|
||||
|
||||
case AUTOMEM:
|
||||
FullLineSprite.setTextDatum(TL_DATUM);
|
||||
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||
FullLineSprite.drawString(removeNewline(myLanguage[language][82]), 6, 2);
|
||||
|
||||
FullLineSprite.setTextDatum(TR_DATUM);
|
||||
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
FullLineSprite.drawString(String(fmscansens), 298, 2);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1423,6 +1452,12 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
||||
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
FullLineSprite.drawString(String(amscansens), 298, 2);
|
||||
break;
|
||||
|
||||
case AUTOMEM:
|
||||
FullLineSprite.setTextDatum(TL_DATUM);
|
||||
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||
FullLineSprite.drawString(removeNewline(myLanguage[language][276]), 6, 2);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -2618,6 +2653,14 @@ void MenuUp() {
|
||||
OneBigLineSprite.drawString((scanmute ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
|
||||
case ITEM8:
|
||||
fmscansens++;
|
||||
if (fmscansens > 30) fmscansens = 1;
|
||||
|
||||
OneBigLineSprite.drawString(String(fmscansens), 135, 0);
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -2669,6 +2712,26 @@ void MenuUp() {
|
||||
OneBigLineSprite.drawString((mempionly ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
|
||||
case ITEM7:
|
||||
memdoublepi++;
|
||||
if (memdoublepi > 2) memdoublepi = 0;
|
||||
|
||||
switch (memdoublepi) {
|
||||
case MEMPI_OFF: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
||||
case MEMPI_RANGE: OneBigLineSprite.drawString(myLanguage[language][279], 135, 0); break;
|
||||
default: OneBigLineSprite.drawString(myLanguage[language][280], 135, 0); break;
|
||||
}
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
|
||||
case ITEM8:
|
||||
fmscansens++;
|
||||
if (fmscansens > 30) fmscansens = 1;
|
||||
|
||||
OneBigLineSprite.drawString(String(fmscansens), 135, 0);
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -3531,6 +3594,14 @@ void MenuDown() {
|
||||
OneBigLineSprite.drawString((scanmute ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
|
||||
case ITEM8:
|
||||
fmscansens--;
|
||||
if (fmscansens == 0) fmscansens = 30;
|
||||
|
||||
OneBigLineSprite.drawString(String(fmscansens), 135, 0);
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -3582,6 +3653,26 @@ void MenuDown() {
|
||||
OneBigLineSprite.drawString((mempionly ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
|
||||
case ITEM7:
|
||||
memdoublepi--;
|
||||
if (memdoublepi > 2) memdoublepi = 2;
|
||||
|
||||
switch (memdoublepi) {
|
||||
case MEMPI_OFF: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
||||
case MEMPI_RANGE: OneBigLineSprite.drawString(myLanguage[language][279], 135, 0); break;
|
||||
default: OneBigLineSprite.drawString(myLanguage[language][280], 135, 0); break;
|
||||
}
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
|
||||
case ITEM8:
|
||||
fmscansens--;
|
||||
if (fmscansens == 0) fmscansens = 30;
|
||||
|
||||
OneBigLineSprite.drawString(String(fmscansens), 135, 0);
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -4473,6 +4564,13 @@ void DoMenu() {
|
||||
OneBigLineSprite.drawString((scanmute ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
|
||||
case ITEM8:
|
||||
Infoboxprint(myLanguage[language][82]);
|
||||
|
||||
OneBigLineSprite.drawString(String(fmscansens), 135, 0);
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -4480,7 +4578,7 @@ void DoMenu() {
|
||||
switch (menuoption) {
|
||||
case ITEM1:
|
||||
Infoboxprint(myLanguage[language][270]);
|
||||
switch (doAutoMemory(memstartfreq, memstopfreq, memstartpos, memstoppos, mempionly)) {
|
||||
switch (doAutoMemory(memstartfreq, memstopfreq, memstartpos, memstoppos, mempionly, memdoublepi)) {
|
||||
case 0:
|
||||
tftPrint(0, myLanguage[language][275], 160, 175, ActiveColor, ActiveColorSmooth, 16);
|
||||
break;
|
||||
@@ -4541,6 +4639,24 @@ void DoMenu() {
|
||||
break;
|
||||
|
||||
case ITEM7:
|
||||
Infoboxprint(myLanguage[language][278]);
|
||||
|
||||
switch (memdoublepi) {
|
||||
case MEMPI_OFF: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
||||
case MEMPI_RANGE: OneBigLineSprite.drawString(myLanguage[language][279], 135, 0); break;
|
||||
default: OneBigLineSprite.drawString(myLanguage[language][280], 135, 0); break;
|
||||
}
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
|
||||
case ITEM8:
|
||||
Infoboxprint(myLanguage[language][82]);
|
||||
|
||||
OneBigLineSprite.drawString(String(fmscansens), 135, 0);
|
||||
OneBigLineSprite.pushSprite(24, 118);
|
||||
break;
|
||||
|
||||
case ITEM9:
|
||||
Infoboxprint(myLanguage[language][276]);
|
||||
|
||||
ClearMemoryRange(memstartpos, memstoppos);
|
||||
|
||||
@@ -103,6 +103,7 @@ extern byte language;
|
||||
extern byte licold;
|
||||
extern byte longbandpress;
|
||||
extern byte memorypos;
|
||||
extern byte memdoublepi;
|
||||
extern byte mempionly;
|
||||
extern byte memstartpos;
|
||||
extern byte memstoppos;
|
||||
@@ -243,6 +244,6 @@ extern void UpdateFonts(byte mode);
|
||||
extern void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int color, int smoothcolor, uint8_t fontsize);
|
||||
extern void setAutoSpeedSPI();
|
||||
extern void showAutoSquelch(bool mode);
|
||||
extern uint8_t doAutoMemory(uint16_t startfreq, uint16_t stopfreq, uint8_t startmem, uint8_t stopmem, bool pisearch);
|
||||
extern uint8_t doAutoMemory(uint16_t startfreq, uint16_t stopfreq, uint8_t startmem, uint8_t stopmem, bool rdsonly, uint8_t doublepi);
|
||||
extern void ClearMemoryRange(uint8_t start, uint8_t stop);
|
||||
#endif
|
||||
+73
-19
@@ -5,7 +5,7 @@
|
||||
|
||||
// [number of languages][number of texts]
|
||||
|
||||
static const char* const myLanguage[18][278] PROGMEM = {
|
||||
static const char* const myLanguage[18][281] PROGMEM = {
|
||||
{ "English", // English
|
||||
"Rotary direction changed", // 1
|
||||
"Please release button", // 2
|
||||
@@ -283,7 +283,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abort! User pressed button", // 274
|
||||
"Scan finished without errors", // 275
|
||||
"Clear memory channels", // 276
|
||||
"cleared" // 277
|
||||
"cleared", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Nederlands", // Dutch
|
||||
@@ -563,7 +566,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Afgebroken! Knop ingedrukt", // 274
|
||||
"Zoeken zonder fouten voltooid", // 275
|
||||
"Wis geheugenkanalen", // 276
|
||||
"gewist" // 277
|
||||
"gewist", // 277
|
||||
"Voorkom dubbele PI", // 278
|
||||
"Bereik", // 279
|
||||
"Volledig" // 280
|
||||
},
|
||||
|
||||
{ "Polski", // Polish
|
||||
@@ -843,7 +849,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abort! User pressed button", // 274
|
||||
"Scan finished without errors", // 275
|
||||
"Clear memory channels", // 276
|
||||
"cleared" // 277
|
||||
"cleared", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Hrvatski", // Croatian
|
||||
@@ -1123,7 +1132,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abort! User pressed button", // 274
|
||||
"Scan finished without errors", // 275
|
||||
"Clear memory channels", // 276
|
||||
"cleared" // 277
|
||||
"cleared", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Ελληνικά", // Greek
|
||||
@@ -1403,7 +1415,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Ματαίωση! Πιέση\nπλήκτρου χρήστη", // 274
|
||||
"Η ανίχνευση ολοκληρώθηκε\nχωρίς σφάλματα", // 275
|
||||
"Εκκαθάριση καναλιών μνήμης", // 276
|
||||
"εγινε εκκαθάριση" // 277
|
||||
"εγινε εκκαθάριση", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Română", // Romanian
|
||||
@@ -1683,7 +1698,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abort! User pressed button", // 274
|
||||
"Scan finished without errors", // 275
|
||||
"Clear memory channels", // 276
|
||||
"cleared" // 277
|
||||
"cleared", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Deutsch", // German
|
||||
@@ -1963,7 +1981,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abort! User pressed button", // 274
|
||||
"Scan finished without errors", // 275
|
||||
"Clear memory channels", // 276
|
||||
"cleared" // 277
|
||||
"cleared", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Český", // Czech
|
||||
@@ -2243,7 +2264,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abort! User pressed button", // 274
|
||||
"Scan finished without errors", // 275
|
||||
"Clear memory channels", // 276
|
||||
"cleared" // 277
|
||||
"cleared", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Magyar", // Hungarian
|
||||
@@ -2523,7 +2547,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abort! User pressed button", // 274
|
||||
"Scan finished without errors", // 275
|
||||
"Clear memory channels", // 276
|
||||
"cleared" // 277
|
||||
"cleared", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Français", // French
|
||||
@@ -2803,7 +2830,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abandonner! Bouton\nappuyé par l'user", // 274
|
||||
"Analyse terminée\nsans erreurs", // 275
|
||||
"Effacer les canaux\nde mémoire", // 276
|
||||
"effacé" // 277
|
||||
"effacé", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Български", // Bulgarian
|
||||
@@ -3083,7 +3113,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abort! User pressed button", // 274
|
||||
"Scan finished without errors", // 275
|
||||
"Clear memory channels", // 276
|
||||
"cleared" // 277
|
||||
"cleared", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Русский", // Russian
|
||||
@@ -3363,7 +3396,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abort! User pressed button", // 274
|
||||
"Scan finished without errors", // 275
|
||||
"Clear memory channels", // 276
|
||||
"cleared" // 277
|
||||
"cleared", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Українська", // Ukranian
|
||||
@@ -3643,7 +3679,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abort! User pressed button", // 274
|
||||
"Scan finished without errors", // 275
|
||||
"Clear memory channels", // 276
|
||||
"cleared" // 277
|
||||
"cleared", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Italiano", // Italian
|
||||
@@ -3923,7 +3962,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abort! User pressed button", // 274
|
||||
"Scan finished without errors", // 275
|
||||
"Clear memory channels", // 276
|
||||
"cleared" // 277
|
||||
"cleared", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Simplified Chinese", // Simplified Chinese
|
||||
@@ -4203,7 +4245,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abort! User pressed button", // 274
|
||||
"Scan finished without errors", // 275
|
||||
"Clear memory channels", // 276
|
||||
"cleared" // 277
|
||||
"cleared", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Norsk", // Norwegian
|
||||
@@ -4483,7 +4528,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abort! User pressed button", // 274
|
||||
"Scan finished without errors", // 275
|
||||
"Clear memory channels", // 276
|
||||
"cleared" // 277
|
||||
"cleared", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Español", // Spanish
|
||||
@@ -4763,7 +4811,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"¡Abortar! Usuario\npresionó el botón", // 274
|
||||
"Escaneo finalizado\nsin errores", // 275
|
||||
"Borrar canales\nde memoria", // 276
|
||||
"borrado" // 277
|
||||
"borrado", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
},
|
||||
|
||||
{ "Português", // Portuguese
|
||||
@@ -5043,7 +5094,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
||||
"Abortar! Usuário\npressionou o botão", // 274
|
||||
"Verificação concluída\nsem erros", // 275
|
||||
"Limpar canais\nde memória", // 276
|
||||
"limpo" // 277
|
||||
"limpo", // 277
|
||||
"Prevent double PI", // 278
|
||||
"Range", // 279
|
||||
"Full" // 280
|
||||
}
|
||||
};
|
||||
#endif
|
||||
Reference in New Issue
Block a user