Merge branch 'main' into New_Model_DP_666
This commit is contained in:
+53
-32
@@ -179,6 +179,7 @@ byte iMSset;
|
|||||||
byte language;
|
byte language;
|
||||||
byte licold;
|
byte licold;
|
||||||
byte longbandpress;
|
byte longbandpress;
|
||||||
|
byte memdoublepi;
|
||||||
byte memorypos;
|
byte memorypos;
|
||||||
byte memoryposold;
|
byte memoryposold;
|
||||||
byte memoryposstatus;
|
byte memoryposstatus;
|
||||||
@@ -540,6 +541,7 @@ void setup() {
|
|||||||
memstartpos = EEPROM.readByte(EE_BYTE_MEMSTARTPOS);
|
memstartpos = EEPROM.readByte(EE_BYTE_MEMSTARTPOS);
|
||||||
memstoppos = EEPROM.readByte(EE_BYTE_MEMSTOPPOS);
|
memstoppos = EEPROM.readByte(EE_BYTE_MEMSTOPPOS);
|
||||||
mempionly = EEPROM.readByte(EE_BYTE_MEMPIONLY);
|
mempionly = EEPROM.readByte(EE_BYTE_MEMPIONLY);
|
||||||
|
memdoublepi = EEPROM.readByte(EE_BYTE_MEMDOUBLEPI);
|
||||||
|
|
||||||
if (spispeed == SPI_SPEED_DEFAULT) {
|
if (spispeed == SPI_SPEED_DEFAULT) {
|
||||||
tft.setSPISpeed(SPI_FREQUENCY / 1000000);
|
tft.setSPISpeed(SPI_FREQUENCY / 1000000);
|
||||||
@@ -890,10 +892,10 @@ void loop() {
|
|||||||
if (millis() >= flashingtimer + 500) {
|
if (millis() >= flashingtimer + 500) {
|
||||||
flashing = !flashing;
|
flashing = !flashing;
|
||||||
if (flashing) {
|
if (flashing) {
|
||||||
tft.fillRoundRect(1, 79, 42, 20, 5, SecondaryColor);
|
tft.fillRoundRect(2, 80, 40, 18, 2, SecondaryColor);
|
||||||
tftPrint(0, "MEM", 22, 82, BackgroundColor, SecondaryColor, 16);
|
tftPrint(0, "MEM", 22, 82, BackgroundColor, SecondaryColor, 16);
|
||||||
} else {
|
} else {
|
||||||
tft.fillRoundRect(1, 79, 42, 20, 5, GreyoutColor);
|
tft.fillRoundRect(2, 80, 40, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "MEM", 22, 82, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "MEM", 22, 82, BackgroundColor, GreyoutColor, 16);
|
||||||
}
|
}
|
||||||
flashingtimer = millis();
|
flashingtimer = millis();
|
||||||
@@ -930,8 +932,8 @@ void loop() {
|
|||||||
SQ = true;
|
SQ = true;
|
||||||
if (!screenmute) {
|
if (!screenmute) {
|
||||||
if (advancedRDS) {
|
if (advancedRDS) {
|
||||||
tft.drawRoundRect(10, 30, 300, 170, 5, ActiveColor);
|
tft.drawRoundRect(10, 30, 300, 170, 2, ActiveColor);
|
||||||
tft.fillRoundRect(12, 32, 296, 166, 5, BackgroundColor);
|
tft.fillRoundRect(12, 32, 296, 166, 2, BackgroundColor);
|
||||||
tftPrint(0, myLanguage[language][34], 160, 100, ActiveColor, ActiveColorSmooth, 28);
|
tftPrint(0, myLanguage[language][34], 160, 100, ActiveColor, ActiveColorSmooth, 28);
|
||||||
} else {
|
} else {
|
||||||
ShowFreq(1);
|
ShowFreq(1);
|
||||||
@@ -2238,10 +2240,10 @@ void SelectBand() {
|
|||||||
tftPrint(-1, "RT:", 3, 221, GreyoutColor, BackgroundColor, 16);
|
tftPrint(-1, "RT:", 3, 221, GreyoutColor, BackgroundColor, 16);
|
||||||
tftPrint(-1, "PTY:", 3, 163, GreyoutColor, BackgroundColor, 16);
|
tftPrint(-1, "PTY:", 3, 163, GreyoutColor, BackgroundColor, 16);
|
||||||
tft.drawBitmap(122, 5, RDSLogo, 35, 22, GreyoutColor);
|
tft.drawBitmap(122, 5, RDSLogo, 35, 22, GreyoutColor);
|
||||||
tft.fillRoundRect(248, 56, 32, 20, 5, GreyoutColor);
|
tft.fillRoundRect(249, 57, 30, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "iMS", 265, 59, BackgroundColor, BackgroundColor, 16);
|
tftPrint(0, "iMS", 265, 59, BackgroundColor, GreyoutColor, 16);
|
||||||
tft.fillRoundRect(286, 56, 32, 20, 5, GreyoutColor);
|
tft.fillRoundRect(287, 57, 30, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "EQ", 301, 59, BackgroundColor, BackgroundColor, 16);
|
tftPrint(0, "EQ", 301, 59, BackgroundColor, GreyoutColor, 16);
|
||||||
tftReplace(-1, "MHz", "kHz", 258, 76, ActiveColor, ActiveColorSmooth, BackgroundColor, 28);
|
tftReplace(-1, "MHz", "kHz", 258, 76, ActiveColor, ActiveColorSmooth, BackgroundColor, 28);
|
||||||
// todo
|
// todo
|
||||||
// if (band == AM_BAND_AIR) tftPrint(-1, "MHz", 258, 76, ActiveColor, ActiveColorSmooth, 28);
|
// if (band == AM_BAND_AIR) tftPrint(-1, "MHz", 258, 76, ActiveColor, ActiveColorSmooth, 28);
|
||||||
@@ -3543,13 +3545,13 @@ void doSquelch() {
|
|||||||
void updateBW() {//todo air
|
void updateBW() {//todo air
|
||||||
if (BWset == 0) {
|
if (BWset == 0) {
|
||||||
if (!screenmute && !advancedRDS && !afscreen) {
|
if (!screenmute && !advancedRDS && !afscreen) {
|
||||||
tft.fillRoundRect(247, 35, 71, 20, 5, SecondaryColor);
|
tft.fillRoundRect(248, 36, 69, 18, 2, SecondaryColor);
|
||||||
tftPrint(0, "AUTO BW", 282, 38, BackgroundColor, SecondaryColor, 16);
|
tftPrint(0, "AUTO BW", 282, 38, BackgroundColor, SecondaryColor, 16);
|
||||||
}
|
}
|
||||||
radio.setFMABandw();
|
radio.setFMABandw();
|
||||||
} else {
|
} else {
|
||||||
if (!screenmute && !advancedRDS && !afscreen) {
|
if (!screenmute && !advancedRDS && !afscreen) {
|
||||||
tft.fillRoundRect(247, 35, 71, 20, 5, GreyoutColor);
|
tft.fillRoundRect(248, 36, 69, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "AUTO BW", 282, 38, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "AUTO BW", 282, 38, BackgroundColor, GreyoutColor, 16);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3559,13 +3561,13 @@ void updateiMS() {
|
|||||||
if (band < BAND_GAP) {
|
if (band < BAND_GAP) {
|
||||||
if (iMSset == 0) {
|
if (iMSset == 0) {
|
||||||
if (!screenmute && !advancedRDS && !afscreen) {
|
if (!screenmute && !advancedRDS && !afscreen) {
|
||||||
tft.fillRoundRect(248, 56, 32, 20, 5, SecondaryColor);
|
tft.fillRoundRect(249, 57, 30, 18, 2, SecondaryColor);
|
||||||
tftPrint(0, "iMS", 265, 59, BackgroundColor, SecondaryColor, 16);
|
tftPrint(0, "iMS", 265, 59, BackgroundColor, SecondaryColor, 16);
|
||||||
}
|
}
|
||||||
radio.setiMS(1);
|
radio.setiMS(1);
|
||||||
} else {
|
} else {
|
||||||
if (!screenmute && !advancedRDS && !afscreen) {
|
if (!screenmute && !advancedRDS && !afscreen) {
|
||||||
tft.fillRoundRect(248, 56, 32, 20, 5, GreyoutColor);
|
tft.fillRoundRect(249, 57, 30, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "iMS", 265, 59, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "iMS", 265, 59, BackgroundColor, GreyoutColor, 16);
|
||||||
}
|
}
|
||||||
radio.setiMS(0);
|
radio.setiMS(0);
|
||||||
@@ -3577,13 +3579,13 @@ void updateEQ() {
|
|||||||
if (band < BAND_GAP) {
|
if (band < BAND_GAP) {
|
||||||
if (EQset == 0) {
|
if (EQset == 0) {
|
||||||
if (!screenmute && !advancedRDS && !afscreen) {
|
if (!screenmute && !advancedRDS && !afscreen) {
|
||||||
tft.fillRoundRect(286, 56, 32, 20, 5, SecondaryColor);
|
tft.fillRoundRect(287, 57, 30, 18, 2, SecondaryColor);
|
||||||
tftPrint(0, "EQ", 301, 59, BackgroundColor, SecondaryColor, 16);
|
tftPrint(0, "EQ", 301, 59, BackgroundColor, SecondaryColor, 16);
|
||||||
}
|
}
|
||||||
radio.setEQ(1);
|
radio.setEQ(1);
|
||||||
} else {
|
} else {
|
||||||
if (!screenmute && !advancedRDS && !afscreen) {
|
if (!screenmute && !advancedRDS && !afscreen) {
|
||||||
tft.fillRoundRect(286, 56, 32, 20, 5, GreyoutColor);
|
tft.fillRoundRect(287, 57, 30, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "EQ", 301, 59, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "EQ", 301, 59, BackgroundColor, GreyoutColor, 16);
|
||||||
}
|
}
|
||||||
radio.setEQ(0);
|
radio.setEQ(0);
|
||||||
@@ -3737,29 +3739,29 @@ void ShowTuneMode() {
|
|||||||
case TUNE_MAN:
|
case TUNE_MAN:
|
||||||
if (band == BAND_SW && nowToggleSWMIBand) {
|
if (band == BAND_SW && nowToggleSWMIBand) {
|
||||||
tftPrint(0, "AUTO", 22, 60, GreyoutColor, GreyoutColor, 16);
|
tftPrint(0, "AUTO", 22, 60, GreyoutColor, GreyoutColor, 16);
|
||||||
tft.fillRoundRect(1, 57, 42, 20, 5, GreyoutColor);
|
tft.fillRoundRect(2, 58, 40, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "BAND", 22, 60, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "BAND", 22, 60, BackgroundColor, GreyoutColor, 16);
|
||||||
} else {
|
} else {
|
||||||
tftPrint(0, "BAND", 22, 60, GreyoutColor, GreyoutColor, 16);
|
tftPrint(0, "BAND", 22, 60, GreyoutColor, GreyoutColor, 16);
|
||||||
tft.fillRoundRect(1, 57, 42, 20, 5, GreyoutColor);
|
tft.fillRoundRect(2, 58, 40, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "AUTO", 22, 60, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "AUTO", 22, 60, BackgroundColor, GreyoutColor, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
tft.fillRoundRect(1, 35, 42, 20, 5, SecondaryColor);
|
tft.fillRoundRect(2, 36, 40, 18, 2, SecondaryColor);
|
||||||
tftPrint(0, "MAN", 22, 38, BackgroundColor, SecondaryColor, 16);
|
tftPrint(0, "MAN", 22, 38, BackgroundColor, SecondaryColor, 16);
|
||||||
|
|
||||||
tft.fillRoundRect(1, 79, 42, 20, 5, GreyoutColor);
|
tft.fillRoundRect(2, 80, 40, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "MEM", 22, 82, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "MEM", 22, 82, BackgroundColor, GreyoutColor, 16);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TUNE_AUTO:
|
case TUNE_AUTO:
|
||||||
tft.fillRoundRect(1, 57, 42, 20, 5, SecondaryColor);
|
tft.fillRoundRect(2, 58, 40, 18, 2, SecondaryColor);
|
||||||
tftPrint(0, "AUTO", 22, 60, BackgroundColor, SecondaryColor, 16);
|
tftPrint(0, "AUTO", 22, 60, BackgroundColor, SecondaryColor, 16);
|
||||||
|
|
||||||
tft.fillRoundRect(1, 35, 42, 20, 5, GreyoutColor);
|
tft.fillRoundRect(2, 36, 40, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "MAN", 22, 38, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "MAN", 22, 38, BackgroundColor, GreyoutColor, 16);
|
||||||
|
|
||||||
tft.fillRoundRect(1, 79, 42, 20, 5, GreyoutColor);
|
tft.fillRoundRect(2, 80, 40, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "MEM", 22, 82, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "MEM", 22, 82, BackgroundColor, GreyoutColor, 16);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -3767,35 +3769,35 @@ void ShowTuneMode() {
|
|||||||
if (band == BAND_SW && nowToggleSWMIBand) {
|
if (band == BAND_SW && nowToggleSWMIBand) {
|
||||||
tftPrint(0, "AUTO", 22, 60, GreyoutColor, GreyoutColor, 16);
|
tftPrint(0, "AUTO", 22, 60, GreyoutColor, GreyoutColor, 16);
|
||||||
|
|
||||||
tft.fillRoundRect(1, 57, 42, 20, 5, GreyoutColor);
|
tft.fillRoundRect(2, 58, 40, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "BAND", 22, 60, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "BAND", 22, 60, BackgroundColor, GreyoutColor, 16);
|
||||||
} else {
|
} else {
|
||||||
tftPrint(0, "BAND", 22, 60, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "BAND", 22, 60, BackgroundColor, GreyoutColor, 16);
|
||||||
|
|
||||||
tft.fillRoundRect(1, 57, 42, 20, 5, GreyoutColor);
|
tft.fillRoundRect(2, 58, 40, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "AUTO", 22, 60, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "AUTO", 22, 60, BackgroundColor, GreyoutColor, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
tft.fillRoundRect(1, 35, 42, 20, 5, GreyoutColor);
|
tft.fillRoundRect(2, 36, 40, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "MAN", 22, 38, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "MAN", 22, 38, BackgroundColor, GreyoutColor, 16);
|
||||||
|
|
||||||
if (memorystore) {
|
if (memorystore) {
|
||||||
tft.fillRoundRect(1, 79, 42, 20, 5, SignificantColor);
|
tft.fillRoundRect(2, 80, 40, 18, 2, SignificantColor);
|
||||||
tftPrint(0, "MEM", 22, 82, BackgroundColor, SignificantColor, 16);
|
tftPrint(0, "MEM", 22, 82, BackgroundColor, SignificantColor, 16);
|
||||||
} else {
|
} else {
|
||||||
tft.fillRoundRect(1, 79, 42, 20, 5, SecondaryColor);
|
tft.fillRoundRect(2, 80, 40, 18, 2, SecondaryColor);
|
||||||
tftPrint(0, "MEM", 22, 82, BackgroundColor, SecondaryColor, 16);
|
tftPrint(0, "MEM", 22, 82, BackgroundColor, SecondaryColor, 16);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TUNE_MI_BAND:
|
case TUNE_MI_BAND:
|
||||||
tft.fillRoundRect(1, 57, 42, 20, 5, SecondaryColor);
|
tft.fillRoundRect(2, 58, 40, 18, 2, SecondaryColor);
|
||||||
tftPrint(0, "BAND", 22, 60, BackgroundColor, SecondaryColor, 16);
|
tftPrint(0, "BAND", 22, 60, BackgroundColor, SecondaryColor, 16);
|
||||||
|
|
||||||
tft.fillRoundRect(1, 35, 42, 20, 5, GreyoutColor);
|
tft.fillRoundRect(2, 36, 40, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "MAN", 22, 38, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "MAN", 22, 38, BackgroundColor, GreyoutColor, 16);
|
||||||
|
|
||||||
tft.fillRoundRect(1, 79, 42, 20, 5, GreyoutColor);
|
tft.fillRoundRect(2, 80, 40, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "MEM", 22, 82, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "MEM", 22, 82, BackgroundColor, GreyoutColor, 16);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -4333,6 +4335,7 @@ void DefaultSettings(byte userhardwaremodel) {
|
|||||||
EEPROM.writeByte(EE_BYTE_MEMSTARTPOS, 1);
|
EEPROM.writeByte(EE_BYTE_MEMSTARTPOS, 1);
|
||||||
EEPROM.writeByte(EE_BYTE_MEMSTOPPOS, 10);
|
EEPROM.writeByte(EE_BYTE_MEMSTOPPOS, 10);
|
||||||
EEPROM.writeByte(EE_BYTE_MEMPIONLY, 1);
|
EEPROM.writeByte(EE_BYTE_MEMPIONLY, 1);
|
||||||
|
EEPROM.writeByte(EE_BYTE_MEMDOUBLEPI, 0);
|
||||||
|
|
||||||
for (int i = 0; i < EE_PRESETS_CNT; i++) {
|
for (int i = 0; i < EE_PRESETS_CNT; i++) {
|
||||||
EEPROM.writeByte(i + EE_PRESETS_BAND_START, BAND_FM);
|
EEPROM.writeByte(i + EE_PRESETS_BAND_START, BAND_FM);
|
||||||
@@ -4466,7 +4469,7 @@ void cancelDXScan() {
|
|||||||
tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
|
tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
|
||||||
|
|
||||||
if (!flashing) {
|
if (!flashing) {
|
||||||
tft.fillRoundRect(1, 79, 42, 20, 5, SecondaryColor);
|
tft.fillRoundRect(2, 80, 40, 18, 2, SecondaryColor);
|
||||||
tftPrint(0, "MEM", 22, 82, BackgroundColor, SecondaryColor, 16);
|
tftPrint(0, "MEM", 22, 82, BackgroundColor, SecondaryColor, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4568,6 +4571,7 @@ void endMenu() {
|
|||||||
EEPROM.writeByte(EE_BYTE_MEMSTARTPOS, memstartpos);
|
EEPROM.writeByte(EE_BYTE_MEMSTARTPOS, memstartpos);
|
||||||
EEPROM.writeByte(EE_BYTE_MEMSTOPPOS, memstoppos);
|
EEPROM.writeByte(EE_BYTE_MEMSTOPPOS, memstoppos);
|
||||||
EEPROM.writeByte(EE_BYTE_MEMPIONLY, mempionly);
|
EEPROM.writeByte(EE_BYTE_MEMPIONLY, mempionly);
|
||||||
|
EEPROM.writeByte(EE_BYTE_MEMDOUBLEPI, memdoublepi);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false;
|
if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false;
|
||||||
Serial.end();
|
Serial.end();
|
||||||
@@ -4664,7 +4668,7 @@ void setAutoSpeedSPI() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t doAutoMemory(uint16_t startfreq, uint16_t stopfreq, uint8_t startmem, uint8_t stopmem, bool rdsonly) {
|
uint8_t doAutoMemory(uint16_t startfreq, uint16_t stopfreq, uint8_t startmem, uint8_t stopmem, bool rdsonly, uint8_t doublepi) {
|
||||||
uint8_t error = 0;
|
uint8_t error = 0;
|
||||||
uint8_t counter = 0;
|
uint8_t counter = 0;
|
||||||
uint16_t _current = frequency;
|
uint16_t _current = frequency;
|
||||||
@@ -4673,6 +4677,7 @@ uint8_t doAutoMemory(uint16_t startfreq, uint16_t stopfreq, uint8_t startmem, ui
|
|||||||
uint8_t percent = 0;
|
uint8_t percent = 0;
|
||||||
uint8_t percentold = 0;
|
uint8_t percentold = 0;
|
||||||
bool stopScanning = false;
|
bool stopScanning = false;
|
||||||
|
bool dostore = false;
|
||||||
|
|
||||||
radio.setMute();
|
radio.setMute();
|
||||||
radio.power(0);
|
radio.power(0);
|
||||||
@@ -4700,7 +4705,22 @@ uint8_t doAutoMemory(uint16_t startfreq, uint16_t stopfreq, uint8_t startmem, ui
|
|||||||
delay(50);
|
delay(50);
|
||||||
radio.readRDS(showrdserrors);
|
radio.readRDS(showrdserrors);
|
||||||
}
|
}
|
||||||
if ((rdsonly && radio.rds.hasRDS) || !rdsonly) {
|
|
||||||
|
dostore = true;
|
||||||
|
if (doublepi != 0) {
|
||||||
|
for (byte x = (doublepi == 1 ? startmem : 0); x <= (doublepi == 1 ? stopmem : EE_PRESETS_CNT - 1); x++) {
|
||||||
|
if (presets[memorypos].RDSPI[0] != '\0') {
|
||||||
|
for (byte i = 0; i < 4; i++) {
|
||||||
|
if (presets[memorypos].RDSPI[i] != radio.rds.picode[i]) {
|
||||||
|
dostore = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((rdsonly && radio.rds.hasRDS) || !rdsonly) && dostore) {
|
||||||
StoreMemoryPos(startmem);
|
StoreMemoryPos(startmem);
|
||||||
counter ++;
|
counter ++;
|
||||||
startmem++;
|
startmem++;
|
||||||
@@ -4709,6 +4729,7 @@ uint8_t doAutoMemory(uint16_t startfreq, uint16_t stopfreq, uint8_t startmem, ui
|
|||||||
stopScanning = true;
|
stopScanning = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
dostore = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+9
-4
@@ -209,9 +209,9 @@
|
|||||||
#define EE_CHECKBYTE_VALUE 10 // 0 ~ 255,add new entry, change for new value
|
#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!
|
#define EE_PRESETS_FREQUENCY 0 // Default value when memory channel should be skipped!
|
||||||
#ifdef HAS_AIR_BAND
|
#ifdef HAS_AIR_BAND
|
||||||
#define EE_TOTAL_CNT 2235 // Total occupied eeprom bytes
|
#define EE_TOTAL_CNT 2236 // Total occupied eeprom bytes
|
||||||
#else
|
#else
|
||||||
#define EE_TOTAL_CNT 2229 // Total occupied eeprom bytes
|
#define EE_TOTAL_CNT 2230 // Total occupied eeprom bytes
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define EE_PRESETS_BAND_START 0 // 99 * 1 byte
|
#define EE_PRESETS_BAND_START 0 // 99 * 1 byte
|
||||||
@@ -319,9 +319,10 @@
|
|||||||
#define EE_BYTE_MEMSTARTPOS 2226
|
#define EE_BYTE_MEMSTARTPOS 2226
|
||||||
#define EE_BYTE_MEMSTOPPOS 2227
|
#define EE_BYTE_MEMSTOPPOS 2227
|
||||||
#define EE_BYTE_MEMPIONLY 2228
|
#define EE_BYTE_MEMPIONLY 2228
|
||||||
|
#define EE_BYTE_MEMDOUBLEPI 2229
|
||||||
#ifdef HAS_AIR_BAND
|
#ifdef HAS_AIR_BAND
|
||||||
#define EE_BYTE_AIRSTEPSIZE 2229
|
#define EE_BYTE_AIRSTEPSIZE 2230
|
||||||
#define EE_UINT16_FREQUENCY_AIR 2230
|
#define EE_UINT16_FREQUENCY_AIR 2231
|
||||||
#endif
|
#endif
|
||||||
// End of EEPROM index defines
|
// End of EEPROM index defines
|
||||||
|
|
||||||
@@ -344,6 +345,10 @@ enum LONGBANDBUTTONPRESS {
|
|||||||
STANDBY = 0, SCREENOFF
|
STANDBY = 0, SCREENOFF
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum AUTOMEMPIMODES {
|
||||||
|
MEMPI_OFF = 0, MEMPI_RANGE, MEMPI_FULL
|
||||||
|
};
|
||||||
|
|
||||||
enum SCAN_CANCEL {
|
enum SCAN_CANCEL {
|
||||||
SCAN_CANCEL = OFF, CORRECTPI, SIGNAL
|
SCAN_CANCEL = OFF, CORRECTPI, SIGNAL
|
||||||
};
|
};
|
||||||
|
|||||||
+119
-3
@@ -8,7 +8,7 @@
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
byte menuitem;
|
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[];
|
extern mem presets[];
|
||||||
bool setWiFiConnectParam = false;
|
bool setWiFiConnectParam = false;
|
||||||
|
|
||||||
@@ -1255,7 +1255,16 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
case AUTOMEM:
|
case AUTOMEM:
|
||||||
FullLineSprite.setTextDatum(TL_DATUM);
|
FullLineSprite.setTextDatum(TL_DATUM);
|
||||||
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
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;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1356,6 +1365,26 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||||
FullLineSprite.drawString("kHz", 298, 2);
|
FullLineSprite.drawString("kHz", 298, 2);
|
||||||
break;
|
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;
|
break;
|
||||||
|
|
||||||
@@ -1423,6 +1452,12 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
FullLineSprite.drawString(String(amscansens), 298, 2);
|
FullLineSprite.drawString(String(amscansens), 298, 2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case AUTOMEM:
|
||||||
|
FullLineSprite.setTextDatum(TL_DATUM);
|
||||||
|
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||||
|
FullLineSprite.drawString(removeNewline(myLanguage[language][276]), 6, 2);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -2618,6 +2653,14 @@ void MenuUp() {
|
|||||||
OneBigLineSprite.drawString((scanmute ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
OneBigLineSprite.drawString((scanmute ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ITEM8:
|
||||||
|
fmscansens++;
|
||||||
|
if (fmscansens > 30) fmscansens = 1;
|
||||||
|
|
||||||
|
OneBigLineSprite.drawString(String(fmscansens), 135, 0);
|
||||||
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -2669,6 +2712,26 @@ void MenuUp() {
|
|||||||
OneBigLineSprite.drawString((mempionly ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
OneBigLineSprite.drawString((mempionly ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
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;
|
break;
|
||||||
}
|
}
|
||||||
@@ -3531,6 +3594,14 @@ void MenuDown() {
|
|||||||
OneBigLineSprite.drawString((scanmute ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
OneBigLineSprite.drawString((scanmute ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ITEM8:
|
||||||
|
fmscansens--;
|
||||||
|
if (fmscansens == 0) fmscansens = 30;
|
||||||
|
|
||||||
|
OneBigLineSprite.drawString(String(fmscansens), 135, 0);
|
||||||
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -3582,6 +3653,26 @@ void MenuDown() {
|
|||||||
OneBigLineSprite.drawString((mempionly ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
OneBigLineSprite.drawString((mempionly ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
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;
|
break;
|
||||||
}
|
}
|
||||||
@@ -4473,6 +4564,13 @@ void DoMenu() {
|
|||||||
OneBigLineSprite.drawString((scanmute ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
OneBigLineSprite.drawString((scanmute ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ITEM8:
|
||||||
|
Infoboxprint(myLanguage[language][82]);
|
||||||
|
|
||||||
|
OneBigLineSprite.drawString(String(fmscansens), 135, 0);
|
||||||
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -4480,7 +4578,7 @@ void DoMenu() {
|
|||||||
switch (menuoption) {
|
switch (menuoption) {
|
||||||
case ITEM1:
|
case ITEM1:
|
||||||
Infoboxprint(myLanguage[language][270]);
|
Infoboxprint(myLanguage[language][270]);
|
||||||
switch (doAutoMemory(memstartfreq, memstopfreq, memstartpos, memstoppos, mempionly)) {
|
switch (doAutoMemory(memstartfreq, memstopfreq, memstartpos, memstoppos, mempionly, memdoublepi)) {
|
||||||
case 0:
|
case 0:
|
||||||
tftPrint(0, myLanguage[language][275], 160, 175, ActiveColor, ActiveColorSmooth, 16);
|
tftPrint(0, myLanguage[language][275], 160, 175, ActiveColor, ActiveColorSmooth, 16);
|
||||||
break;
|
break;
|
||||||
@@ -4541,6 +4639,24 @@ void DoMenu() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ITEM7:
|
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]);
|
Infoboxprint(myLanguage[language][276]);
|
||||||
|
|
||||||
ClearMemoryRange(memstartpos, memstoppos);
|
ClearMemoryRange(memstartpos, memstoppos);
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ extern byte language;
|
|||||||
extern byte licold;
|
extern byte licold;
|
||||||
extern byte longbandpress;
|
extern byte longbandpress;
|
||||||
extern byte memorypos;
|
extern byte memorypos;
|
||||||
|
extern byte memdoublepi;
|
||||||
extern byte mempionly;
|
extern byte mempionly;
|
||||||
extern byte memstartpos;
|
extern byte memstartpos;
|
||||||
extern byte memstoppos;
|
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 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 setAutoSpeedSPI();
|
||||||
extern void showAutoSquelch(bool mode);
|
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);
|
extern void ClearMemoryRange(uint8_t start, uint8_t stop);
|
||||||
#endif
|
#endif
|
||||||
+76
-19
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
// [number of languages][number of texts]
|
// [number of languages][number of texts]
|
||||||
|
|
||||||
static const char* const myLanguage[18][278] PROGMEM = {
|
static const char* const myLanguage[18][281] PROGMEM = {
|
||||||
{ "English", // English
|
{ "English", // English
|
||||||
"Rotary direction changed", // 1
|
"Rotary direction changed", // 1
|
||||||
"Please release button", // 2
|
"Please release button", // 2
|
||||||
@@ -283,7 +283,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abort! User pressed button", // 274
|
"Abort! User pressed button", // 274
|
||||||
"Scan finished without errors", // 275
|
"Scan finished without errors", // 275
|
||||||
"Clear memory channels", // 276
|
"Clear memory channels", // 276
|
||||||
"cleared" // 277
|
"cleared", // 277
|
||||||
|
"Prevent double PI", // 278
|
||||||
|
"Range", // 279
|
||||||
|
"Full" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Nederlands", // Dutch
|
{ "Nederlands", // Dutch
|
||||||
@@ -563,7 +566,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Afgebroken! Knop ingedrukt", // 274
|
"Afgebroken! Knop ingedrukt", // 274
|
||||||
"Zoeken zonder fouten voltooid", // 275
|
"Zoeken zonder fouten voltooid", // 275
|
||||||
"Wis geheugenkanalen", // 276
|
"Wis geheugenkanalen", // 276
|
||||||
"gewist" // 277
|
"gewist", // 277
|
||||||
|
"Voorkom dubbele PI", // 278
|
||||||
|
"Bereik", // 279
|
||||||
|
"Volledig" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Polski", // Polish
|
{ "Polski", // Polish
|
||||||
@@ -843,7 +849,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abort! User pressed button", // 274
|
"Abort! User pressed button", // 274
|
||||||
"Scan finished without errors", // 275
|
"Scan finished without errors", // 275
|
||||||
"Clear memory channels", // 276
|
"Clear memory channels", // 276
|
||||||
"cleared" // 277
|
"cleared", // 277
|
||||||
|
"Prevent double PI", // 278
|
||||||
|
"Range", // 279
|
||||||
|
"Full" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Hrvatski", // Croatian
|
{ "Hrvatski", // Croatian
|
||||||
@@ -1123,7 +1132,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abort! User pressed button", // 274
|
"Abort! User pressed button", // 274
|
||||||
"Scan finished without errors", // 275
|
"Scan finished without errors", // 275
|
||||||
"Clear memory channels", // 276
|
"Clear memory channels", // 276
|
||||||
"cleared" // 277
|
"cleared", // 277
|
||||||
|
"Prevent double PI", // 278
|
||||||
|
"Range", // 279
|
||||||
|
"Full" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Ελληνικά", // Greek
|
{ "Ελληνικά", // Greek
|
||||||
@@ -1403,7 +1415,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Ματαίωση! Πιέση\nπλήκτρου χρήστη", // 274
|
"Ματαίωση! Πιέση\nπλήκτρου χρήστη", // 274
|
||||||
"Η ανίχνευση ολοκληρώθηκε\nχωρίς σφάλματα", // 275
|
"Η ανίχνευση ολοκληρώθηκε\nχωρίς σφάλματα", // 275
|
||||||
"Εκκαθάριση καναλιών μνήμης", // 276
|
"Εκκαθάριση καναλιών μνήμης", // 276
|
||||||
"εγινε εκκαθάριση" // 277
|
"έγινε εκκαθάριση", // 277
|
||||||
|
"Αποφυγή διπλού PI", // 278
|
||||||
|
"Εύρος", // 279
|
||||||
|
"Πλήρης" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Română", // Romanian
|
{ "Română", // Romanian
|
||||||
@@ -1683,7 +1698,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abort! User pressed button", // 274
|
"Abort! User pressed button", // 274
|
||||||
"Scan finished without errors", // 275
|
"Scan finished without errors", // 275
|
||||||
"Clear memory channels", // 276
|
"Clear memory channels", // 276
|
||||||
"cleared" // 277
|
"cleared", // 277
|
||||||
|
"Prevent double PI", // 278
|
||||||
|
"Range", // 279
|
||||||
|
"Full" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Deutsch", // German
|
{ "Deutsch", // German
|
||||||
@@ -1963,7 +1981,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abort! User pressed button", // 274
|
"Abort! User pressed button", // 274
|
||||||
"Scan finished without errors", // 275
|
"Scan finished without errors", // 275
|
||||||
"Clear memory channels", // 276
|
"Clear memory channels", // 276
|
||||||
"cleared" // 277
|
"cleared", // 277
|
||||||
|
"Prevent double PI", // 278
|
||||||
|
"Range", // 279
|
||||||
|
"Full" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Český", // Czech
|
{ "Český", // Czech
|
||||||
@@ -2243,7 +2264,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abort! User pressed button", // 274
|
"Abort! User pressed button", // 274
|
||||||
"Scan finished without errors", // 275
|
"Scan finished without errors", // 275
|
||||||
"Clear memory channels", // 276
|
"Clear memory channels", // 276
|
||||||
"cleared" // 277
|
"cleared", // 277
|
||||||
|
"Prevent double PI", // 278
|
||||||
|
"Range", // 279
|
||||||
|
"Full" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Magyar", // Hungarian
|
{ "Magyar", // Hungarian
|
||||||
@@ -2523,7 +2547,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abort! User pressed button", // 274
|
"Abort! User pressed button", // 274
|
||||||
"Scan finished without errors", // 275
|
"Scan finished without errors", // 275
|
||||||
"Clear memory channels", // 276
|
"Clear memory channels", // 276
|
||||||
"cleared" // 277
|
"cleared", // 277
|
||||||
|
"Prevent double PI", // 278
|
||||||
|
"Range", // 279
|
||||||
|
"Full" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Français", // French
|
{ "Français", // French
|
||||||
@@ -2803,7 +2830,11 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abandonner! Bouton\nappuyé par l'user", // 274
|
"Abandonner! Bouton\nappuyé par l'user", // 274
|
||||||
"Analyse terminée\nsans erreurs", // 275
|
"Analyse terminée\nsans erreurs", // 275
|
||||||
"Effacer les canaux\nde mémoire", // 276
|
"Effacer les canaux\nde mémoire", // 276
|
||||||
"effacé" // 277
|
"effacé", // 277
|
||||||
|
"Prévenir double PI", // 278
|
||||||
|
"Plage", // 279
|
||||||
|
"Complet" // 280
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Български", // Bulgarian
|
{ "Български", // Bulgarian
|
||||||
@@ -3083,7 +3114,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abort! User pressed button", // 274
|
"Abort! User pressed button", // 274
|
||||||
"Scan finished without errors", // 275
|
"Scan finished without errors", // 275
|
||||||
"Clear memory channels", // 276
|
"Clear memory channels", // 276
|
||||||
"cleared" // 277
|
"cleared", // 277
|
||||||
|
"Prevent double PI", // 278
|
||||||
|
"Range", // 279
|
||||||
|
"Full" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Русский", // Russian
|
{ "Русский", // Russian
|
||||||
@@ -3363,7 +3397,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abort! User pressed button", // 274
|
"Abort! User pressed button", // 274
|
||||||
"Scan finished without errors", // 275
|
"Scan finished without errors", // 275
|
||||||
"Clear memory channels", // 276
|
"Clear memory channels", // 276
|
||||||
"cleared" // 277
|
"cleared", // 277
|
||||||
|
"Prevent double PI", // 278
|
||||||
|
"Range", // 279
|
||||||
|
"Full" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Українська", // Ukranian
|
{ "Українська", // Ukranian
|
||||||
@@ -3643,7 +3680,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abort! User pressed button", // 274
|
"Abort! User pressed button", // 274
|
||||||
"Scan finished without errors", // 275
|
"Scan finished without errors", // 275
|
||||||
"Clear memory channels", // 276
|
"Clear memory channels", // 276
|
||||||
"cleared" // 277
|
"cleared", // 277
|
||||||
|
"Prevent double PI", // 278
|
||||||
|
"Range", // 279
|
||||||
|
"Full" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Italiano", // Italian
|
{ "Italiano", // Italian
|
||||||
@@ -3923,7 +3963,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abort! User pressed button", // 274
|
"Abort! User pressed button", // 274
|
||||||
"Scan finished without errors", // 275
|
"Scan finished without errors", // 275
|
||||||
"Clear memory channels", // 276
|
"Clear memory channels", // 276
|
||||||
"cleared" // 277
|
"cleared", // 277
|
||||||
|
"Prevent double PI", // 278
|
||||||
|
"Range", // 279
|
||||||
|
"Full" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Simplified Chinese", // Simplified Chinese
|
{ "Simplified Chinese", // Simplified Chinese
|
||||||
@@ -4203,7 +4246,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abort! User pressed button", // 274
|
"Abort! User pressed button", // 274
|
||||||
"Scan finished without errors", // 275
|
"Scan finished without errors", // 275
|
||||||
"Clear memory channels", // 276
|
"Clear memory channels", // 276
|
||||||
"cleared" // 277
|
"cleared", // 277
|
||||||
|
"Prevent double PI", // 278
|
||||||
|
"Range", // 279
|
||||||
|
"Full" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Norsk", // Norwegian
|
{ "Norsk", // Norwegian
|
||||||
@@ -4483,7 +4529,10 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abort! User pressed button", // 274
|
"Abort! User pressed button", // 274
|
||||||
"Scan finished without errors", // 275
|
"Scan finished without errors", // 275
|
||||||
"Clear memory channels", // 276
|
"Clear memory channels", // 276
|
||||||
"cleared" // 277
|
"cleared", // 277
|
||||||
|
"Prevent double PI", // 278
|
||||||
|
"Range", // 279
|
||||||
|
"Full" // 280
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Español", // Spanish
|
{ "Español", // Spanish
|
||||||
@@ -4763,7 +4812,11 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"¡Abortar! Usuario\npresionó el botón", // 274
|
"¡Abortar! Usuario\npresionó el botón", // 274
|
||||||
"Escaneo finalizado\nsin errores", // 275
|
"Escaneo finalizado\nsin errores", // 275
|
||||||
"Borrar canales\nde memoria", // 276
|
"Borrar canales\nde memoria", // 276
|
||||||
"borrado" // 277
|
"borrado", // 277
|
||||||
|
"Prevenir doble PI", // 278
|
||||||
|
"Rango", // 279
|
||||||
|
"Completo" // 280
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Português", // Portuguese
|
{ "Português", // Portuguese
|
||||||
@@ -5043,7 +5096,11 @@ static const char* const myLanguage[18][278] PROGMEM = {
|
|||||||
"Abortar! Usuário\npressionou o botão", // 274
|
"Abortar! Usuário\npressionou o botão", // 274
|
||||||
"Verificação concluída\nsem erros", // 275
|
"Verificação concluída\nsem erros", // 275
|
||||||
"Limpar canais\nde memória", // 276
|
"Limpar canais\nde memória", // 276
|
||||||
"limpo" // 277
|
"limpo", // 277
|
||||||
|
"Prevenir PI duplo", // 278
|
||||||
|
"Intervalo", // 279
|
||||||
|
"Completo" // 280
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
Reference in New Issue
Block a user