Merge branch 'main' into New_Model_DP_666

# Conflicts:
#	src/gui.cpp
This commit is contained in:
Leon
2024-09-17 17:02:51 +08:00
14 changed files with 416 additions and 197 deletions
+117 -8
View File
@@ -1,6 +1,7 @@
#include "soc/soc.h" #include "soc/soc.h"
#include "soc/rtc_cntl_reg.h" #include "soc/rtc_cntl_reg.h"
#include <WiFiClient.h> #include <WiFiClient.h>
#include <HTTPClient.h>
#include <EEPROM.h> #include <EEPROM.h>
#include <Wire.h> #include <Wire.h>
#include <math.h> #include <math.h>
@@ -104,6 +105,8 @@ bool RDSstatusold;
bool rdsstereoold; bool rdsstereoold;
bool rtcset; bool rtcset;
bool scandxmode; bool scandxmode;
bool scanholdflag;
bool scanholdonsignal;
bool scanmem; bool scanmem;
bool scanmute; bool scanmute;
bool screenmute; bool screenmute;
@@ -218,6 +221,7 @@ byte spispeed;
char buff[16]; char buff[16];
char eonpicodeold[20][6]; char eonpicodeold[20][6];
char programTypePrevious[18]; char programTypePrevious[18];
char rabbitearstime[100][21];
const uint8_t* currentFont = nullptr; const uint8_t* currentFont = nullptr;
float vPerold; float vPerold;
int ActiveColor; int ActiveColor;
@@ -312,6 +316,8 @@ String PIold;
String PSold; String PSold;
String ptynold = " "; String ptynold = " ";
String PTYold; String PTYold;
String RabbitearsPassword;
String RabbitearsUser;
String rds_clock; String rds_clock;
String rds_clockold; String rds_clockold;
String RDSSPYRDS; String RDSSPYRDS;
@@ -330,6 +336,7 @@ String XDRGTKRDS;
String XDRGTKRDSold; String XDRGTKRDSold;
uint16_t BW; uint16_t BW;
uint16_t MStatus; uint16_t MStatus;
uint16_t rabbitearspi[100]; // first is for 88.1, 2nd 88.3, etc. to 107.9 MHz
uint16_t SWMIBandPos; uint16_t SWMIBandPos;
uint16_t SWMIBandPosold; uint16_t SWMIBandPosold;
uint16_t USN; uint16_t USN;
@@ -485,6 +492,8 @@ void setup() {
frequency_AIR = EEPROM.readUInt(EE_UINT16_FREQUENCY_AIR); frequency_AIR = EEPROM.readUInt(EE_UINT16_FREQUENCY_AIR);
#endif #endif
XDRGTK_key = EEPROM.readString(EE_STRING_XDRGTK_KEY); XDRGTK_key = EEPROM.readString(EE_STRING_XDRGTK_KEY);
RabbitearsUser = EEPROM.readString(EE_STRING_RABBITEARSUSER);
RabbitearsPassword = EEPROM.readString(EE_STRING_RABBITEARSPASSWORD);
usesquelch = EEPROM.readByte(EE_BYTE_USESQUELCH); usesquelch = EEPROM.readByte(EE_BYTE_USESQUELCH);
showmodulation = EEPROM.readByte(EE_BYTE_SHOWMODULATION); showmodulation = EEPROM.readByte(EE_BYTE_SHOWMODULATION);
amnb = EEPROM.readByte(EE_BYTE_AM_NB); amnb = EEPROM.readByte(EE_BYTE_AM_NB);
@@ -542,6 +551,7 @@ void setup() {
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); memdoublepi = EEPROM.readByte(EE_BYTE_MEMDOUBLEPI);
scanholdonsignal = EEPROM.readByte(EE_BYTE_WAITONLYONSIGNAL);
if (spispeed == SPI_SPEED_DEFAULT) { if (spispeed == SPI_SPEED_DEFAULT) {
tft.setSPISpeed(SPI_FREQUENCY / 1000000); tft.setSPISpeed(SPI_FREQUENCY / 1000000);
@@ -867,7 +877,14 @@ void loop() {
} }
if (scandxmode) { if (scandxmode) {
if (millis() >= scantimer + (scanhold == 0 ? 500 : (scanhold * 1000))) { unsigned long waitTime = (scanhold == 0) ? 500 : (scanhold * 1000);
if (!scanholdflag) scanholdflag = (USN < fmscansens * 30) && (WAM < 230) && (OStatus < 80) && (OStatus > -80);
bool bypassMillisCheck = scanholdonsignal && !scanholdflag;
bool shouldScan = bypassMillisCheck || (!bypassMillisCheck && (millis() >= scantimer + waitTime));
if (shouldScan) {
if (scanmute && scanholdonsignal) radio.setMute();
scanholdflag = false;
if (scanmem) { if (scanmem) {
memorypos++; memorypos++;
if (memorypos > scanstop) memorypos = scanstart; if (memorypos > scanstop) memorypos = scanstart;
@@ -887,6 +904,8 @@ void loop() {
} }
scantimer = millis(); scantimer = millis();
initdxscan = false; initdxscan = false;
} else {
if (scanmute && scanholdonsignal) radio.setUnMute();
} }
if (millis() >= flashingtimer + 500) { if (millis() >= flashingtimer + 500) {
@@ -900,12 +919,26 @@ void loop() {
} }
flashingtimer = millis(); flashingtimer = millis();
} }
delay(100);
if (!scanholdflag) delay(100);
radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, CN); radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, CN);
if (RabbitearsUser.length() && RabbitearsPassword.length() && region == REGION_US && radio.rds.correctPI != 0 && frequency >= 8810 && frequency <= 10790 && !(frequency % 10) && ((frequency / 10) % 2)) {
byte i = (frequency / 10 - 881) / 2;
if (!rabbitearspi[i]) {
rabbitearspi[i] = radio.rds.correctPI;
rtc.getTime("%FT%TZ").toCharArray(rabbitearstime[i], 21);
}
}
if (!initdxscan) { if (!initdxscan) {
switch (scancancel) { switch (scancancel) {
case CORRECTPI: if (RDSstatus && radio.rds.correctPI != 0) cancelDXScan(); break; case CORRECTPI:
case SIGNAL: if ((USN < fmscansens * 30) && (WAM < 230) && (OStatus < 80 && OStatus > -80)) cancelDXScan(); break; if (RDSstatus && radio.rds.correctPI != 0) cancelDXScan();
break;
case SIGNAL:
if (scanhold) cancelDXScan();
break;
} }
} }
} }
@@ -1064,7 +1097,7 @@ void loop() {
tftPrint(-1, "PS:", 3, 193, ActiveColor, ActiveColorSmooth, 16); tftPrint(-1, "PS:", 3, 193, ActiveColor, ActiveColorSmooth, 16);
tftPrint(-1, "RT:", 3, 221, ActiveColor, ActiveColorSmooth, 16); tftPrint(-1, "RT:", 3, 221, ActiveColor, ActiveColorSmooth, 16);
tftPrint(-1, "PTY:", 3, 163, ActiveColor, ActiveColorSmooth, 16); tftPrint(-1, "PTY:", 3, 163, ActiveColor, ActiveColorSmooth, 16);
if (!showmodulation) tft.drawLine(20, 143, 204, 143, GreyoutColor); else tft.drawLine(20, 143, 204, 143, TFT_DARKGREY); if (!showmodulation) tft.drawLine(20, 143, 204, 143, GreyoutColor); else tft.drawLine(20, 143, 204, 143, Darkgrey);
} }
LowLevelInit = true; LowLevelInit = true;
} }
@@ -3936,6 +3969,22 @@ void TuneUp() {
if (fmdefaultstepsize == 2 && stepsize == 0 && frequency == 8795) frequency = 8790; if (fmdefaultstepsize == 2 && stepsize == 0 && frequency == 8795) frequency = 8790;
if (frequency >= (HighEdgeSet * 10) + 1) { if (frequency >= (HighEdgeSet * 10) + 1) {
if (scandxmode && RabbitearsUser.length() && RabbitearsPassword.length()) {
byte i = 0;
bool hasreport = false;
for (i = 0; i < 100; i++) {
if (rabbitearspi[i]) {
hasreport = true;
break;
}
}
if (hasreport) {
rabbitearssend();
for (i = 0; i < 100; i++) {
rabbitearspi[i] = 0;
}
}
}
frequency = LowEdgeSet * 10; frequency = LowEdgeSet * 10;
if (fmdefaultstepsize == 2 && stepsize == 0 && frequency == 8750) frequency = 8775; if (fmdefaultstepsize == 2 && stepsize == 0 && frequency == 8750) frequency = 8775;
if (edgebeep) EdgeBeeper(); if (edgebeep) EdgeBeeper();
@@ -4278,6 +4327,8 @@ void DefaultSettings(byte userhardwaremodel) {
EEPROM.writeUInt(EE_UINT16_FREQUENCY_AIR, 135350); EEPROM.writeUInt(EE_UINT16_FREQUENCY_AIR, 135350);
#endif #endif
EEPROM.writeString(EE_STRING_XDRGTK_KEY, "password"); EEPROM.writeString(EE_STRING_XDRGTK_KEY, "password");
EEPROM.writeString(EE_STRING_RABBITEARSUSER, "");
EEPROM.writeString(EE_STRING_RABBITEARSPASSWORD, "");
if (userhardwaremodel == BASE_ILI9341) EEPROM.writeByte(EE_BYTE_USESQUELCH, 1); else EEPROM.writeByte(EE_BYTE_USESQUELCH, 0); if (userhardwaremodel == BASE_ILI9341) EEPROM.writeByte(EE_BYTE_USESQUELCH, 1); else EEPROM.writeByte(EE_BYTE_USESQUELCH, 0);
EEPROM.writeByte(EE_BYTE_SHOWMODULATION, 1); EEPROM.writeByte(EE_BYTE_SHOWMODULATION, 1);
EEPROM.writeByte(EE_BYTE_AM_NB, 0); EEPROM.writeByte(EE_BYTE_AM_NB, 0);
@@ -4336,6 +4387,7 @@ void DefaultSettings(byte userhardwaremodel) {
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); EEPROM.writeByte(EE_BYTE_MEMDOUBLEPI, 0);
EEPROM.writeByte(EE_BYTE_WAITONLYONSIGNAL, 1);
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);
@@ -4572,6 +4624,7 @@ void endMenu() {
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.writeByte(EE_BYTE_MEMDOUBLEPI, memdoublepi);
EEPROM.writeByte(EE_BYTE_WAITONLYONSIGNAL, scanholdonsignal);
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();
@@ -4586,6 +4639,11 @@ void endMenu() {
void startFMDXScan() { void startFMDXScan() {
initdxscan = true; initdxscan = true;
scanholdflag = false;
for (byte i = 0; i < 100; i++) {
rabbitearspi[i] = 0;
rabbitearstime[i][0] = 0;
}
if (menu) endMenu(); if (menu) endMenu();
if (afscreen || advancedRDS) BuildDisplay(); if (afscreen || advancedRDS) BuildDisplay();
@@ -4621,6 +4679,37 @@ void startFMDXScan() {
if (XDRGTKUSB || XDRGTKTCP) DataPrint("J1\n"); if (XDRGTKUSB || XDRGTKTCP) DataPrint("J1\n");
} }
void rabbitearssend () {
if (WiFi.status() != WL_CONNECTED) return;
String RabbitearsURL = "http://rabbitears.info/tvdx/fm_spot";
WiFiClient RabbitearsClient;
HTTPClient http;
byte i;
String json = String("{\"tuner_key\":\"");
json += RabbitearsUser;
json += String("\",\"password\":\"");
json += RabbitearsPassword;
json += String("\",");
json += String("\"signal\":{");
for (i = 0; i < 100; i++) {
if (rabbitearspi[i]) {
json += String("\"");
json += String((i * 2 + 881) * 100000);
json += String("\":{\"time\":\"");
json += String(rabbitearstime[i]);
json += String("\",\"pi_code\":");
json += String(rabbitearspi[i]);
json += String("},");
}
}
json.remove(json.length() - 1); // remove trailing comma
json += String("}}");
http.begin(RabbitearsClient, RabbitearsURL.c_str());
http.addHeader("Content-Type", "application/json");
http.POST(json);
http.end();
}
void setAutoSpeedSPI() { void setAutoSpeedSPI() {
switch (frequency / 10) { switch (frequency / 10) {
case 875 ... 877: tft.setSPISpeed(28); break; case 875 ... 877: tft.setSPISpeed(28); break;
@@ -4709,13 +4798,20 @@ uint8_t doAutoMemory(uint16_t startfreq, uint16_t stopfreq, uint8_t startmem, ui
dostore = true; dostore = true;
if (doublepi != 0) { if (doublepi != 0) {
for (byte x = (doublepi == 1 ? startmem : 0); x <= (doublepi == 1 ? stopmem : EE_PRESETS_CNT - 1); x++) { for (byte x = (doublepi == 1 ? startmem : 0); x <= (doublepi == 1 ? stopmem : EE_PRESETS_CNT - 1); x++) {
if (presets[memorypos].RDSPI[0] != '\0') { if (presets[x].RDSPI[0] != '\0') {
bool allMatch = true;
for (byte i = 0; i < 4; i++) { for (byte i = 0; i < 4; i++) {
if (presets[memorypos].RDSPI[i] != radio.rds.picode[i]) { if (presets[x].RDSPI[i] != radio.rds.picode[i]) {
dostore = false; allMatch = false;
break; break;
} }
} }
if (allMatch) {
dostore = false;
break;
}
} }
} }
} }
@@ -4834,6 +4930,19 @@ void ClearMemoryRange(uint8_t start, uint8_t stop) {
for (uint8_t pos = start; pos <= stop; pos++) { for (uint8_t pos = start; pos <= stop; pos++) {
EEPROM.writeByte(pos + EE_PRESETS_BAND_START, BAND_FM); EEPROM.writeByte(pos + EE_PRESETS_BAND_START, BAND_FM);
EEPROM.writeUInt((pos * 4) + EE_PRESETS_FREQUENCY_START, EE_PRESETS_FREQUENCY); EEPROM.writeUInt((pos * 4) + EE_PRESETS_FREQUENCY_START, EE_PRESETS_FREQUENCY);
EEPROM.writeByte(pos + EE_PRESET_BW_START, 0);
EEPROM.writeByte(pos + EE_PRESET_MS_START, 1);
for (int y = 0; y < 9; y++) {
EEPROM.writeByte((pos * 9) + y + EE_PRESETS_RDSPS_START, '\0');
presets[pos].RDSPS[y] = '\0';
}
for (int y = 0; y < 5; y++) {
EEPROM.writeByte((pos * 5) + y + EE_PRESETS_RDSPI_START, '\0');
presets[pos].RDSPI[y] = '\0';
}
EEPROM.commit(); EEPROM.commit();
presets[pos].band = BAND_FM; presets[pos].band = BAND_FM;
presets[pos].frequency = EE_PRESETS_FREQUENCY; presets[pos].frequency = EE_PRESETS_FREQUENCY;
+4 -4
View File
@@ -674,7 +674,7 @@
54380;10050;K263BC;TX 54380;10050;K263BC;TX
54388;10050;W263DC;NY 54388;10050;W263DC;NY
54422;10050;W263CF;MS 54422;10050;W263CF;MS
54431;10050;W263AL;PA 42541;10050;W263AL;PA
54477;10050;W263BA;NC 54477;10050;W263BA;NC
54488;10050;W263BT;FL 54488;10050;W263BT;FL
54490;10050;W263BI;FL 54490;10050;W263BI;FL
@@ -1584,7 +1584,7 @@
54148;10130;K267AU;UT 54148;10130;K267AU;UT
54149;10130;K267AD;OR 54149;10130;K267AD;OR
54152;10130;K267CM;CO 54152;10130;K267CM;CO
54153;10130;W267BP;NJ 36546;10130;W267BP;NJ
54181;10130;W267BA;VA 54181;10130;W267BA;VA
54188;10130;K267BE;MT 54188;10130;K267BE;MT
54209;10130;W267BV;MN 54209;10130;W267BV;MN
@@ -2314,7 +2314,7 @@
53700;10190;W270AF;TN 53700;10190;W270AF;TN
53711;10190;W270CW;WI 53711;10190;W270CW;WI
53722;10190;W270BH;IN 53722;10190;W270BH;IN
53727;10190;W270DV;NJ 36546;10190;W270DV;NJ
53748;10190;W270DS;NH 53748;10190;W270DS;NH
53769;10190;K270CT;WY 53769;10190;K270CT;WY
53794;10190;W270BY;NY 53794;10190;W270BY;NY
@@ -2380,4 +2380,4 @@
54695;10190;W270DA;VA 54695;10190;W270DA;VA
54759;10190;W270DD;TN 54759;10190;W270DD;TN
54760;10190;K270CW;AZ 54760;10190;K270CW;AZ
54764;10190;K270CX;NV 54764;10190;K270CX;NV
1 4416 10010 K261BT NE
674 54380 10050 K263BC TX
675 54388 10050 W263DC NY
676 54422 10050 W263CF MS
677 54431 42541 10050 W263AL PA
678 54477 10050 W263BA NC
679 54488 10050 W263BT FL
680 54490 10050 W263BI FL
1584 54148 10130 K267AU UT
1585 54149 10130 K267AD OR
1586 54152 10130 K267CM CO
1587 54153 36546 10130 W267BP NJ
1588 54181 10130 W267BA VA
1589 54188 10130 K267BE MT
1590 54209 10130 W267BV MN
2314 53700 10190 W270AF TN
2315 53711 10190 W270CW WI
2316 53722 10190 W270BH IN
2317 53727 36546 10190 W270DV NJ
2318 53748 10190 W270DS NH
2319 53769 10190 K270CT WY
2320 53794 10190 W270BY NY
2380 54695 10190 W270DA VA
2381 54759 10190 W270DD TN
2382 54760 10190 K270CW AZ
2383 54764 10190 K270CX NV
+2 -2
View File
@@ -1379,7 +1379,7 @@
54107;10310;W276BV;CT 54107;10310;W276BV;CT
54130;10310;K276EH;MN 54130;10310;K276EH;MN
54136;10310;K276GE;ID 54136;10310;K276GE;ID
54151;10310;W276DG;PA 29575;10310;W276DG;PA
54172;10310;W276DV;FL 54172;10310;W276DV;FL
54182;10310;K276BL;NV 54182;10310;K276BL;NV
54192;10310;W276BJ;NH 54192;10310;W276BJ;NH
@@ -2367,4 +2367,4 @@
54731;10390;W280FW;KY 54731;10390;W280FW;KY
54737;10390;W280FG;PA 54737;10390;W280FG;PA
54755;10390;W280EM;IL 54755;10390;W280EM;IL
54762;10390;W280FL;OH 54762;10390;W280FL;OH
1 4369 10210 XHAG VE
1379 54107 10310 W276BV CT
1380 54130 10310 K276EH MN
1381 54136 10310 K276GE ID
1382 54151 29575 10310 W276DG PA
1383 54172 10310 W276DV FL
1384 54182 10310 K276BL NV
1385 54192 10310 W276BJ NH
2367 54731 10390 W280FW KY
2368 54737 10390 W280FG PA
2369 54755 10390 W280EM IL
2370 54762 10390 W280FL OH
+4 -4
View File
@@ -98,7 +98,7 @@
30808;10410;WNNK;PA 30808;10410;WNNK;PA
31316;10410;WOGY;TN 31316;10410;WOGY;TN
31686;10410;WOVE;NC 31686;10410;WOVE;NC
31974;10410;W281BH;NJ 42643;10410;W281BH;NJ
32272;10410;WPRS;MD 32272;10410;WPRS;MD
32435;10410;WPXZ;PA 32435;10410;WPXZ;PA
32446;10410;WPYK;OH 32446;10410;WPYK;OH
@@ -1122,7 +1122,7 @@
54241;10490;W285FD;NC 54241;10490;W285FD;NC
54243;10490;K285GL;KS 54243;10490;K285GL;KS
54248;10490;K285FX;MN 54248;10490;K285FX;MN
54291;10490;W285DH;PA 37623;10490;W285DH;PA
54310;10490;K285FU;AK 54310;10490;K285FU;AK
54323;10490;W285EP;GA 54323;10490;W285EP;GA
54329;10490;K285EW;CA 54329;10490;K285EW;CA
@@ -1793,7 +1793,7 @@
53890;10550;W288DJ;OH 53890;10550;W288DJ;OH
53892;10550;K288EM;MT 53892;10550;K288EM;MT
53894;10550;K288GQ;TX 53894;10550;K288GQ;TX
53913;10550;W288DF;PA 25049;10550;W288DF;PA
53944;10550;K288AN;UT 53944;10550;K288AN;UT
53948;10550;W288AI;MN 53948;10550;W288AI;MN
53952;10550;K288HB;SD 53952;10550;K288HB;SD
@@ -2277,4 +2277,4 @@
54506;10590;W290DT;KY 54506;10590;W290DT;KY
54570;10590;W290DR;MI 54570;10590;W290DR;MI
54606;10590;K290CW;LA 54606;10590;K290CW;LA
54724;10590;K290CT;CA 54724;10590;K290CT;CA
1 4453 10410 KANT WY
98 30808 10410 WNNK PA
99 31316 10410 WOGY TN
100 31686 10410 WOVE NC
101 31974 42643 10410 W281BH NJ
102 32272 10410 WPRS MD
103 32435 10410 WPXZ PA
104 32446 10410 WPYK OH
1122 54241 10490 W285FD NC
1123 54243 10490 K285GL KS
1124 54248 10490 K285FX MN
1125 54291 37623 10490 W285DH PA
1126 54310 10490 K285FU AK
1127 54323 10490 W285EP GA
1128 54329 10490 K285EW CA
1793 53890 10550 W288DJ OH
1794 53892 10550 K288EM MT
1795 53894 10550 K288GQ TX
1796 53913 25049 10550 W288DF PA
1797 53944 10550 K288AN UT
1798 53948 10550 W288AI MN
1799 53952 10550 K288HB SD
2277 54506 10590 W290DT KY
2278 54570 10590 W290DR MI
2279 54606 10590 K290CW LA
2280 54724 10590 K290CT CA
+2 -2
View File
@@ -326,7 +326,7 @@
28165;10630;WJPT;FL 28165;10630;WJPT;FL
28173;10630;WGHR;FL 28173;10630;WGHR;FL
28190;10630;W292EX;MS 28190;10630;W292EX;MS
28228;10630;WJSE;NJ 28228;10630;WKOE;NJ
28481;10630;WKBX;GA 28481;10630;WKBX;GA
28754;10630;WKMK;NJ 28754;10630;WKMK;NJ
29634;10630;WLUG;AL 29634;10630;WLUG;AL
@@ -2365,4 +2365,4 @@
54662;10790;W300DS;VA 54662;10790;W300DS;VA
54685;10790;W300ED;KY 54685;10790;W300ED;KY
54687;10790;K300EA;MN 54687;10790;K300EA;MN
54783;10790;W300DQ;PA 54783;10790;W300DQ;PA
1 4193 10610 XHITS NL
326 28165 10630 WJPT FL
327 28173 10630 WGHR FL
328 28190 10630 W292EX MS
329 28228 10630 WJSE WKOE NJ
330 28481 10630 WKBX GA
331 28754 10630 WKMK NJ
332 29634 10630 WLUG AL
2365 54662 10790 W300DS VA
2366 54685 10790 W300ED KY
2367 54687 10790 K300EA MN
2368 54783 10790 W300DQ PA
+1 -1
View File
@@ -796,7 +796,7 @@
21869;8850;WAHP;SC 21869;8850;WAHP;SC
21881;8850;WAIB;NY 21881;8850;WAIB;NY
22004;8850;WAMU;DC 22004;8850;WAMU;DC
22027;8850;WANR;NY 560;8850;WANR;NY
22463;8850;WBEL;IL 22463;8850;WBEL;IL
22554;8850;WBHY;AL 22554;8850;WBHY;AL
22670;8850;WBMK;KY 22670;8850;WBMK;KY
1 54244 8790 K200AA NV
796 21869 8850 WAHP SC
797 21881 8850 WAIB NY
798 22004 8850 WAMU DC
799 22027 560 8850 WANR NY
800 22463 8850 WBEL IL
801 22554 8850 WBHY AL
802 22670 8850 WBMK KY
+7 -7
View File
@@ -188,14 +188,14 @@
53848;9410;K231DC;CA 53848;9410;K231DC;CA
53854;9410;K231CS;NV 53854;9410;K231CS;NV
53859;9410;W231AO;GA 53859;9410;W231AO;GA
53878;9410;W231DJ;CT 29111;9410;W231DJ;CT
53884;9410;W231AK;MA 53884;9410;W231AK;MA
53886;9410;K231CR;CA 53886;9410;K231CR;CA
53899;9410;W231BQ;VT 53899;9410;W231BQ;VT
53918;9410;W231EG;OH 53918;9410;W231EG;OH
53937;9410;W231AS;WI 53937;9410;W231AS;WI
53943;9410;K231BE;TX 53943;9410;K231BE;TX
53952;9410;W231BW;NH 31653;9410;W231BW;NH
53953;9410;W231DF;AL 53953;9410;W231DF;AL
53968;9410;W231AJ;OH 53968;9410;W231AJ;OH
53969;9410;K231BW;WY 53969;9410;K231BW;WY
@@ -491,7 +491,7 @@
54296;9430;W232DB;GA 54296;9430;W232DB;GA
54306;9430;K232FT;AR 54306;9430;K232FT;AR
54318;9430;K232GA;MN 54318;9430;K232GA;MN
54320;9430;W232AM;PA 36076;9430;W232AM;PA
54333;9430;K232AM;CA 54333;9430;K232AM;CA
54344;9430;K262DG;TX 54344;9430;K262DG;TX
54355;9430;W232DR;PR 54355;9430;W232DR;PR
@@ -698,7 +698,7 @@
53740;9450;K233CH;CO 53740;9450;K233CH;CO
53765;9450;K233AN;NE 53765;9450;K233AN;NE
53767;9450;W233BT;IN 53767;9450;W233BT;IN
53801;9450;W233CF;CT 53978;9450;W233CF;CT
53821;9450;W233AN;IN 53821;9450;W233AN;IN
53858;9450;W233AH;NY 53858;9450;W233AH;NY
53917;9450;K233DG;AZ 53917;9450;K233DG;AZ
@@ -937,7 +937,7 @@
54136;9470;K234DA;TX 54136;9470;K234DA;TX
54142;9470;K234DE;TX 54142;9470;K234DE;TX
54177;9470;K234AD;OR 54177;9470;K234AD;OR
54197;9470;W234AX;PA 24503;9470;W234AX;PA
54208;9470;W234CF;NC 54208;9470;W234CF;NC
54227;9470;W234CC;IL 54227;9470;W234CC;IL
54256;9470;K234CG;KS 54256;9470;K234CG;KS
@@ -1396,7 +1396,7 @@
54588;9510;W236DC;TN 54588;9510;W236DC;TN
54603;9510;W236DB;IL 54603;9510;W236DB;IL
54612;9510;K236CT;OK 54612;9510;K236CT;OK
54627;9510;W236CT;NJ 65535;9510;W236CT;NJ
54721;9510;W236DQ;VA 54721;9510;W236DQ;VA
54760;9510;W236DI;MD 54760;9510;W236DI;MD
61441;9510;WQMZ;VA 61441;9510;WQMZ;VA
@@ -2395,4 +2395,4 @@
54703;9590;K240FD;NE 54703;9590;K240FD;NE
54708;9590;W240EJ;MS 54708;9590;W240EJ;MS
54741;9590;W240DS;NC 54741;9590;W240DS;NC
54782;9590;W240DZ;OH 54782;9590;W240DZ;OH
1 4543 9410 K231BH OK
188 53848 9410 K231DC CA
189 53854 9410 K231CS NV
190 53859 9410 W231AO GA
191 53878 29111 9410 W231DJ CT
192 53884 9410 W231AK MA
193 53886 9410 K231CR CA
194 53899 9410 W231BQ VT
195 53918 9410 W231EG OH
196 53937 9410 W231AS WI
197 53943 9410 K231BE TX
198 53952 31653 9410 W231BW NH
199 53953 9410 W231DF AL
200 53968 9410 W231AJ OH
201 53969 9410 K231BW WY
491 54296 9430 W232DB GA
492 54306 9430 K232FT AR
493 54318 9430 K232GA MN
494 54320 36076 9430 W232AM PA
495 54333 9430 K232AM CA
496 54344 9430 K262DG TX
497 54355 9430 W232DR PR
698 53740 9450 K233CH CO
699 53765 9450 K233AN NE
700 53767 9450 W233BT IN
701 53801 53978 9450 W233CF CT
702 53821 9450 W233AN IN
703 53858 9450 W233AH NY
704 53917 9450 K233DG AZ
937 54136 9470 K234DA TX
938 54142 9470 K234DE TX
939 54177 9470 K234AD OR
940 54197 24503 9470 W234AX PA
941 54208 9470 W234CF NC
942 54227 9470 W234CC IL
943 54256 9470 K234CG KS
1396 54588 9510 W236DC TN
1397 54603 9510 W236DB IL
1398 54612 9510 K236CT OK
1399 54627 65535 9510 W236CT NJ
1400 54721 9510 W236DQ VA
1401 54760 9510 W236DI MD
1402 61441 9510 WQMZ VA
2395 54703 9590 K240FD NE
2396 54708 9590 W240EJ MS
2397 54741 9590 W240DS NC
2398 54782 9590 W240DZ OH
+2 -2
View File
@@ -1552,7 +1552,7 @@
53726;9730;W247BL;OH 53726;9730;W247BL;OH
53752;9730;K247BD;UT 53752;9730;K247BD;UT
53753;9730;K247CN;CA 53753;9730;K247CN;CA
53757;9730;W247AE;PA 36272;9730;W247AE;PA
53773;9730;W247AM;MI 53773;9730;W247AM;MI
53774;9730;K247BC;WY 53774;9730;K247BC;WY
53792;9730;W247CQ;VA 53792;9730;W247CQ;VA
@@ -2325,4 +2325,4 @@
54751;9790;W250CR;VA 54751;9790;W250CR;VA
54761;9790;W250CU;WV 54761;9790;W250CU;WV
54782;9790;K250BP;MT 54782;9790;K250BP;MT
65280;9790;W250AZ;NC 65280;9790;W250AZ;NC
1 4452 9610 KANS KS
1552 53726 9730 W247BL OH
1553 53752 9730 K247BD UT
1554 53753 9730 K247CN CA
1555 53757 36272 9730 W247AE PA
1556 53773 9730 W247AM MI
1557 53774 9730 K247BC WY
1558 53792 9730 W247CQ VA
2325 54751 9790 W250CR VA
2326 54761 9790 W250CU WV
2327 54782 9790 K250BP MT
2328 65280 9790 W250AZ NC
+3 -3
View File
@@ -1136,7 +1136,7 @@
54385;9890;W255CZ;WI 54385;9890;W255CZ;WI
54396;9890;K255DG;ND 54396;9890;K255DG;ND
54400;9890;W255BE;NC 54400;9890;W255BE;NC
54408;9890;W255BO;PA 26045;9890;W255BO;PA
54429;9890;W255DR;SC 54429;9890;W255DR;SC
54432;9890;W255BH;IN 54432;9890;W255BH;IN
54444;9890;W255DI;MI 54444;9890;W255DI;MI
@@ -1641,7 +1641,7 @@
54340;9930;W257DS;AL 54340;9930;W257DS;AL
54344;9930;K257ER;AK 54344;9930;K257ER;AK
54348;9930;K256DI;ID 54348;9930;K256DI;ID
54362;9930;W257AI;PA 36076;9930;W257AI;PA
54366;9930;K257AY;UT 54366;9930;K257AY;UT
54381;9930;K257FM;NV 54381;9930;K257FM;NV
54385;9930;K257GM;KS 54385;9930;K257GM;KS
@@ -2356,4 +2356,4 @@
54585;9990;W260DV;PA 54585;9990;W260DV;PA
54661;9990;W260DJ;VA 54661;9990;W260DJ;VA
54685;9990;W260DC;RI 54685;9990;W260DC;RI
54721;9990;W260DS;MA 54721;9990;W260DS;MA
1 4388 9810 KALG AK
1136 54385 9890 W255CZ WI
1137 54396 9890 K255DG ND
1138 54400 9890 W255BE NC
1139 54408 26045 9890 W255BO PA
1140 54429 9890 W255DR SC
1141 54432 9890 W255BH IN
1142 54444 9890 W255DI MI
1641 54340 9930 W257DS AL
1642 54344 9930 K257ER AK
1643 54348 9930 K256DI ID
1644 54362 36076 9930 W257AI PA
1645 54366 9930 K257AY UT
1646 54381 9930 K257FM NV
1647 54385 9930 K257GM KS
2356 54585 9990 W260DV PA
2357 54661 9990 W260DJ VA
2358 54685 9990 W260DC RI
2359 54721 9990 W260DS MA
+7
View File
@@ -24,6 +24,7 @@ void Communication() {
if ((stlfreq.toInt()) / 10000 > (TEF == 205 ? 6400 : 6500) && (stlfreq.toInt()) / 10000 < 10800) { if ((stlfreq.toInt()) / 10000 > (TEF == 205 ? 6400 : 6500) && (stlfreq.toInt()) / 10000 < 10800) {
unsigned int tempfreq = (stlfreq.toInt()) / 10000; unsigned int tempfreq = (stlfreq.toInt()) / 10000;
if (scandxmode) cancelDXScan();
if (tempfreq >= FREQ_FM_OIRT_START && tempfreq <= FREQ_FM_OIRT_END) { if (tempfreq >= FREQ_FM_OIRT_START && tempfreq <= FREQ_FM_OIRT_END) {
if (band != BAND_OIRT) { if (band != BAND_OIRT) {
band = BAND_OIRT; band = BAND_OIRT;
@@ -47,6 +48,7 @@ void Communication() {
} }
if ((stlfreq.toInt()) / 1000 > 144 && (stlfreq.toInt()) / 1000 < 27000) { if ((stlfreq.toInt()) / 1000 > 144 && (stlfreq.toInt()) / 1000 < 27000) {
if (scandxmode) cancelDXScan();
if (afscreen || advancedRDS) { if (afscreen || advancedRDS) {
BuildDisplay(); BuildDisplay();
SelectBand(); SelectBand();
@@ -139,6 +141,7 @@ void Communication() {
String freq = data_str.substring(0, symPos); String freq = data_str.substring(0, symPos);
freq = freq.substring(0, freq.length() - 1); freq = freq.substring(0, freq.length() - 1);
frequency = freq.toInt(); frequency = freq.toInt();
if (scandxmode) cancelDXScan();
radio.SetFreq(frequency); radio.SetFreq(frequency);
radio.clearRDS(fullsearchrds); radio.clearRDS(fullsearchrds);
if (band != BAND_FM) { if (band != BAND_FM) {
@@ -314,6 +317,7 @@ void Communication() {
String freq = data_str.substring(0, symPos); String freq = data_str.substring(0, symPos);
freq = freq.substring(0, freq.length() - 1); freq = freq.substring(0, freq.length() - 1);
frequency = freq.toInt(); frequency = freq.toInt();
if (scandxmode) cancelDXScan();
radio.SetFreq(frequency); radio.SetFreq(frequency);
if (afscreen) BuildAdvancedRDS(); if (afscreen) BuildAdvancedRDS();
radio.clearRDS(fullsearchrds); radio.clearRDS(fullsearchrds);
@@ -527,6 +531,7 @@ void XDRGTKRoutine() {
break; break;
case 'M': case 'M':
if (scandxmode) cancelDXScan();
byte XDRband; byte XDRband;
XDRband = atol(buff + 1); XDRband = atol(buff + 1);
if (XDRband == 0) DataPrint("M0\n"); else DataPrint("M1\n"); if (XDRband == 0) DataPrint("M0\n"); else DataPrint("M1\n");
@@ -567,6 +572,7 @@ void XDRGTKRoutine() {
break; break;
case 'T': case 'T':
if (scandxmode) cancelDXScan();
unsigned int freqtemp; unsigned int freqtemp;
freqtemp = atoi(buff + 1); freqtemp = atoi(buff + 1);
@@ -666,6 +672,7 @@ void XDRGTKRoutine() {
break; break;
case 'S': case 'S':
if (scandxmode) cancelDXScan();
if (buff[1] == 'a') { if (buff[1] == 'a') {
scanner_start = (atol(buff + 2) + 5) / 10; scanner_start = (atol(buff + 2) + 5) / 10;
} else if (buff[1] == 'b') { } else if (buff[1] == 'b') {
+122 -115
View File
@@ -121,20 +121,22 @@
//MAIN COLORS /* RGB 565 CODES */ //MAIN COLORS /* RGB 565 CODES */
#define Black 0x0000 /* 0, 0, 0 */ #define Black 0x0000 /* 0, 0, 0 */
#define BlackOlive 0x39E7 /* 7, 15, 7 */
#define Blue 0x001F /* 0, 0, 31 */ #define Blue 0x001F /* 0, 0, 31 */
#define Cabbage 0x06D0 /* 0, 54, 16 */ #define Cabbage 0x06D0 /* 0, 54, 16 */
#define Coral 0xFBEF /* 31, 31, 15 */ #define Coral 0xFBEF /* 31, 31, 15 */
#define Crimson 0xF8C3 /* 31, 6, 3 */ #define Crimson 0xF8C3 /* 31, 6, 3 */
#define Cyan 0x0F3F /* 1, 57, 31 */ #define Cyan 0x0F3F /* 1, 57, 31 */
#define Cherry 0xF00A /* 30, 0, 10 */ #define Cherry 0xF00A /* 30, 0, 10 */
#define Grey 0x7BEF /* 15, 31, 15 */
#define Darkgrey 0x1082 /* 2, 4, 2 */ #define Darkgrey 0x1082 /* 2, 4, 2 */
#define Deepsky 0x051F /* 0, 40, 31 */ #define Deepsky 0x051F /* 0, 40, 31 */
#define Green 0x07E0 /* 0, 63, 0 */ #define Green 0x07E0 /* 0, 63, 0 */
#define Grey 0x7BEF /* 15, 31, 15 */
#define Indigo 0x881F /* 17, 0, 31 */ #define Indigo 0x881F /* 17, 0, 31 */
#define Maroon 0x5140 /* 10, 10, 0 */ #define Maroon 0x5140 /* 10, 10, 0 */
#define Ocean 0x01FF /* 0, 15, 31 */ #define Ocean 0x01FF /* 0, 15, 31 */
#define Orange 0xFC00 /* 31, 32, 0 */ #define Orange 0xFC00 /* 31, 32, 0 */
#define Pink 0xFDBF /* 31, 45, 31 */
#define Purple 0xAA1C /* 21, 16, 28 */ #define Purple 0xAA1C /* 21, 16, 28 */
#define Red 0xF800 /* 31, 0, 0 */ #define Red 0xF800 /* 31, 0, 0 */
#define Sakura 0xF3D5 /* 30, 30, 21 */ #define Sakura 0xF3D5 /* 30, 30, 21 */
@@ -160,6 +162,7 @@
#define OceanSmooth 0x0006 /* 0, 0, 6 */ #define OceanSmooth 0x0006 /* 0, 0, 6 */
#define MaroonSmooth 0x2001 /* 4, 0, 1 */ #define MaroonSmooth 0x2001 /* 4, 0, 1 */
#define OrangeSmooth 0x3165 /* 6, 11, 5 */ #define OrangeSmooth 0x3165 /* 6, 11, 5 */
#define PinkSmooth 0x620C /* 12, 16, 12 */
#define PurpleSmooth 0x2887 /* 5, 4, 7 */ #define PurpleSmooth 0x2887 /* 5, 4, 7 */
#define RedSmooth 0x2000 /* 4, 0, 0 */ #define RedSmooth 0x2000 /* 4, 0, 0 */
#define SakuraSmooth 0x3008 /* 6, 0, 8 */ #define SakuraSmooth 0x3008 /* 6, 0, 8 */
@@ -187,6 +190,7 @@
#define CyanGrey 0x2A08 /* 5, 16, 8 */ #define CyanGrey 0x2A08 /* 5, 16, 8 */
#define Dallas 0x6A86 /* 13, 20, 6 */ #define Dallas 0x6A86 /* 13, 20, 6 */
#define DallasSmooth 0x3123 /* 6, 9, 3 */ #define DallasSmooth 0x3123 /* 6, 9, 3 */
#define EerieBlack 0x1825 /* 3, 1, 5 */
#define Electric 0x6016 /* 12, 0, 22 */ #define Electric 0x6016 /* 12, 0, 22 */
#define GreenDark 0x0200 /* 0, 16, 0 */ #define GreenDark 0x0200 /* 0, 16, 0 */
#define GreenGrey 0x2965 /* 5, 11, 5 */ #define GreenGrey 0x2965 /* 5, 11, 5 */
@@ -206,130 +210,133 @@
#define Tyrian 0x3845 /* 7, 2, 5 */ #define Tyrian 0x3845 /* 7, 2, 5 */
// EEPROM index defines // EEPROM index defines
#define EE_PRESETS_CNT 99 // When set > 99 change the complete EEPROM adressing! #define EE_PRESETS_CNT 99 // When set > 99 change the complete EEPROM adressing!
#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 2236 // Total occupied eeprom bytes #define EE_TOTAL_CNT 2259 // Total occupied eeprom bytes
#else #else
#define EE_TOTAL_CNT 2230 // Total occupied eeprom bytes #define EE_TOTAL_CNT 2254 // Total occupied eeprom bytes
#endif #endif
#define EE_PRESETS_BAND_START 0 // 99 * 1 byte #define EE_PRESETS_BAND_START 0 // 99 * 1 byte
#define EE_PRESET_BW_START 99 // 99 * 1 byte #define EE_PRESET_BW_START 99 // 99 * 1 byte
#define EE_PRESET_MS_START 198 // 99 * 1 byte #define EE_PRESET_MS_START 198 // 99 * 1 byte
#define EE_PRESETS_FREQUENCY_START 297 // 99 * 4 bytes #define EE_PRESETS_FREQUENCY_START 297 // 99 * 4 bytes
#define EE_PRESETS_RDSPI_START 693 // 99 * 5 bytes #define EE_PRESETS_RDSPI_START 693 // 99 * 5 bytes
#define EE_PRESETS_RDSPS_START 1188 // 99 * 9 bytes #define EE_PRESETS_RDSPS_START 1188 // 99 * 9 bytes
#define EE_UINT16_FREQUENCY_FM 2079 #define EE_UINT16_FREQUENCY_FM 2079
#define EE_BYTE_VOLSET 2083 #define EE_BYTE_VOLSET 2083
#define EE_BYTE_STEREO 2084 #define EE_BYTE_STEREO 2084
#define EE_BYTE_BANDFM 2085 #define EE_BYTE_BANDFM 2085
#define EE_BYTE_BANDAM 2086 #define EE_BYTE_BANDAM 2086
#define EE_UINT16_CONVERTERSET 2087 #define EE_UINT16_CONVERTERSET 2087
#define EE_UINT16_FMLOWEDGESET 2091 #define EE_UINT16_FMLOWEDGESET 2091
#define EE_UINT16_FMHIGHEDGESET 2095 #define EE_UINT16_FMHIGHEDGESET 2095
#define EE_BYTE_CONTRASTSET 2099 #define EE_BYTE_CONTRASTSET 2099
#define EE_BYTE_STEREOLEVEL 2100 #define EE_BYTE_STEREOLEVEL 2100
#define EE_BYTE_HIGHCUTLEVEL 2101 #define EE_BYTE_HIGHCUTLEVEL 2101
#define EE_BYTE_HIGHCUTOFFSET 2102 #define EE_BYTE_HIGHCUTOFFSET 2102
#define EE_BYTE_LEVELOFFSET 2103 #define EE_BYTE_LEVELOFFSET 2103
#define EE_BYTE_RTBUFFER 2104 #define EE_BYTE_RTBUFFER 2104
#define EE_BYTE_SORTAF 2105 #define EE_BYTE_SORTAF 2105
#define EE_BYTE_STATIONLISTID 2106 #define EE_BYTE_STATIONLISTID 2106
#define EE_BYTE_EDGEBEEP 2107 #define EE_BYTE_EDGEBEEP 2107
#define EE_BYTE_SOFTMUTEAM 2108 #define EE_BYTE_SOFTMUTEAM 2108
#define EE_BYTE_SOFTMUTEFM 2109 #define EE_BYTE_SOFTMUTEFM 2109
#define EE_UINT16_FREQUENCY_AM 2110 #define EE_UINT16_FREQUENCY_AM 2110
#define EE_BYTE_LANGUAGE 2114 #define EE_BYTE_LANGUAGE 2114
#define EE_BYTE_SHOWRDSERRORS 2115 #define EE_BYTE_SHOWRDSERRORS 2115
#define EE_BYTE_TEF 2116 #define EE_BYTE_TEF 2116
#define EE_BYTE_DISPLAYFLIP 2117 #define EE_BYTE_DISPLAYFLIP 2117
#define EE_BYTE_ROTARYMODE 2118 #define EE_BYTE_ROTARYMODE 2118
#define EE_BYTE_STEPSIZE 2119 #define EE_BYTE_STEPSIZE 2119
#define EE_BYTE_TUNEMODE 2120 #define EE_BYTE_TUNEMODE 2120
#define EE_BYTE_OPTENC 2121 #define EE_BYTE_OPTENC 2121
#define EE_BYTE_CHECKBYTE 2122 #define EE_BYTE_CHECKBYTE 2122
#define EE_BYTE_IMSSET 2123 #define EE_BYTE_IMSSET 2123
#define EE_BYTE_EQSET 2124 #define EE_BYTE_EQSET 2124
#define EE_BYTE_BAND 2125 #define EE_BYTE_BAND 2125
#define EE_BYTE_LOWLEVELSET 2126 #define EE_BYTE_LOWLEVELSET 2126
#define EE_BYTE_BWSET_FM 2127 #define EE_BYTE_BWSET_FM 2127
#define EE_BYTE_BWSET_AM 2128 #define EE_BYTE_BWSET_AM 2128
#define EE_BYTE_BANDAUTOSW 2129 #define EE_BYTE_BANDAUTOSW 2129
#define EE_BYTE_MEMORYPOS 2130 #define EE_BYTE_MEMORYPOS 2130
#define EE_BYTE_REGION 2131 #define EE_BYTE_REGION 2131
#define EE_BYTE_RDS_UNDERSCORE 2132 #define EE_BYTE_RDS_UNDERSCORE 2132
#define EE_BYTE_USBMODE 2133 #define EE_BYTE_USBMODE 2133
#define EE_BYTE_WIFI 2134 #define EE_BYTE_WIFI 2134
#define EE_BYTE_SUBNETCLIENT 2135 #define EE_BYTE_SUBNETCLIENT 2135
#define EE_BYTE_SHOWSWMIBAND 2136 #define EE_BYTE_SHOWSWMIBAND 2136
#define EE_BYTE_RDS_FILTER 2137 #define EE_BYTE_RDS_FILTER 2137
#define EE_BYTE_RDS_PIERRORS 2138 #define EE_BYTE_RDS_PIERRORS 2138
#define EE_BYTE_USESQUELCH 2139 #define EE_BYTE_USESQUELCH 2139
#define EE_BYTE_SHOWMODULATION 2140 #define EE_BYTE_SHOWMODULATION 2140
#define EE_BYTE_AM_NB 2141 #define EE_BYTE_AM_NB 2141
#define EE_BYTE_FM_NB 2142 #define EE_BYTE_FM_NB 2142
#define EE_BYTE_AUDIOMODE 2143 #define EE_BYTE_AUDIOMODE 2143
#define EE_BYTE_TOUCH_ROTATING 2144 #define EE_BYTE_TOUCH_ROTATING 2144
#define EE_BYTE_HARDWARE_MODEL 2145 #define EE_BYTE_HARDWARE_MODEL 2145
#define EE_BYTE_POWEROPTIONS 2146 #define EE_BYTE_POWEROPTIONS 2146
#define EE_BYTE_CURRENTTHEME 2147 #define EE_BYTE_CURRENTTHEME 2147
#define EE_BYTE_FMDEFAULTSTEPSIZE 2148 #define EE_BYTE_FMDEFAULTSTEPSIZE 2148
#define EE_BYTE_SCREENSAVERSET 2149 #define EE_BYTE_SCREENSAVERSET 2149
#define EE_BYTE_UNIT 2150 #define EE_BYTE_UNIT 2150
#define EE_BYTE_AF 2151 #define EE_BYTE_AF 2151
#define EE_BYTE_BATTERY_OPTIONS 2152 #define EE_BYTE_BATTERY_OPTIONS 2152
#define EE_BYTE_AM_CO_DECT 2153 #define EE_BYTE_AM_CO_DECT 2153
#define EE_BYTE_AM_CO_DECT_COUNT 2154 #define EE_BYTE_AM_CO_DECT_COUNT 2154
#define EE_BYTE_AM_RF_GAIN 2155 #define EE_BYTE_AM_RF_GAIN 2155
#define EE_BYTE_FM_DEEMPHASIS 2156 #define EE_BYTE_FM_DEEMPHASIS 2156
#define EE_UINT16_FREQUENCY_LW 2157 #define EE_UINT16_FREQUENCY_LW 2157
#define EE_UINT16_FREQUENCY_MW 2161 #define EE_UINT16_FREQUENCY_MW 2161
#define EE_UINT16_FREQUENCY_SW 2165 #define EE_UINT16_FREQUENCY_SW 2165
#define EE_UINT16_LOWEDGEOIRTSET 2169 #define EE_UINT16_LOWEDGEOIRTSET 2169
#define EE_UINT16_HIGHEDGEOIRTSET 2173 #define EE_UINT16_HIGHEDGEOIRTSET 2173
#define EE_INT16_AMLEVELOFFSET 2177 #define EE_INT16_AMLEVELOFFSET 2177
#define EE_UINT16_FREQUENCY_OIRT 2181 #define EE_UINT16_FREQUENCY_OIRT 2181
#define EE_STRING_XDRGTK_KEY 2185 // 11 byte #define EE_STRING_XDRGTK_KEY 2185 // 11 byte
#define EE_BYTE_FASTPS 2196 #define EE_BYTE_FASTPS 2196
#define EE_BYTE_TOT 2197 #define EE_BYTE_TOT 2197
#define EE_BYTE_MWREGION 2198 #define EE_BYTE_MWREGION 2198
#define EE_BYTE_SPISPEED 2199 #define EE_BYTE_SPISPEED 2199
#define EE_BYTE_AMSCANSENS 2200 #define EE_BYTE_AMSCANSENS 2200
#define EE_BYTE_FMSCANSENS 2201 #define EE_BYTE_FMSCANSENS 2201
#define EE_BYTE_FREQFONT 2202 #define EE_BYTE_FREQFONT 2202
#define EE_BYTE_SKIN 2203 #define EE_BYTE_SKIN 2203
#define EE_BYTE_XDRGTKMUTE 2204 #define EE_BYTE_XDRGTKMUTE 2204
#define EE_BYTE_FMAGC 2205 #define EE_BYTE_FMAGC 2205
#define EE_BYTE_AMAGC 2206 #define EE_BYTE_AMAGC 2206
#define EE_BYTE_FMSI 2207 #define EE_BYTE_FMSI 2207
#define EE_BYTE_SCANSTART 2208 #define EE_BYTE_SCANSTART 2208
#define EE_BYTE_SCANSTOP 2209 #define EE_BYTE_SCANSTOP 2209
#define EE_BYTE_SCANHOLD 2210 #define EE_BYTE_SCANHOLD 2210
#define EE_BYTE_SCANMEM 2211 #define EE_BYTE_SCANMEM 2211
#define EE_BYTE_SCANCANCEL 2212 #define EE_BYTE_SCANCANCEL 2212
#define EE_BYTE_SCANMUTE 2213 #define EE_BYTE_SCANMUTE 2213
#define EE_BYTE_AUTOSQUELCH 2214 #define EE_BYTE_AUTOSQUELCH 2214
#define EE_BYTE_LONGBANDPRESS 2215 #define EE_BYTE_LONGBANDPRESS 2215
#define EE_BYTE_SHOWCLOCK 2216 #define EE_BYTE_SHOWCLOCK 2216
#define EE_BYTE_SHOWLONGPS 2217 #define EE_BYTE_SHOWLONGPS 2217
#define EE_UINT16_MEMSTARTFREQ 2218 #define EE_UINT16_MEMSTARTFREQ 2218
#define EE_UINT16_MEMSTOPFREQ 2222 #define EE_UINT16_MEMSTOPFREQ 2222
#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 #define EE_BYTE_MEMDOUBLEPI 2229
#define EE_STRING_RABBITEARSUSER 2230
#define EE_STRING_RABBITEARSPASSWORD 2241
#define EE_BYTE_WAITONLYONSIGNAL 2253
#ifdef HAS_AIR_BAND #ifdef HAS_AIR_BAND
#define EE_BYTE_AIRSTEPSIZE 2230 #define EE_BYTE_AIRSTEPSIZE 2254
#define EE_UINT16_FREQUENCY_AIR 2231 #define EE_UINT16_FREQUENCY_AIR 2255
#endif #endif
// End of EEPROM index defines // End of EEPROM index defines
static const char* const unitString[] = {"dBμV", "dBf", "dBm"}; static const char* const unitString[] = {"dBμV", "dBf", "dBm"};
static const char* const FreqFont[] = {"Classic", "Roubenstil", "Motoya", "Aura2", "Comic", "Modern"}; static const char* const FreqFont[] = {"Classic", "Roubenstil", "Motoya", "Aura2", "Comic", "Modern"};
static const char* const Theme[] = {"Essence", "Cyan", "Crimson", "Monochrome", "Volcano", "Dendro", "Sakura", "Whiteout", "Tangerine", "Ocean", "Indigo", "Maroon", "GoldBrite"}; static const char* const Theme[] = {"Essence", "Cyan", "Crimson", "Monochrome", "Volcano", "Dendro", "Sakura", "Whiteout", "Tangerine", "Ocean", "Indigo", "Maroon", "GoldBrite", "Bubblegum"};
static const char* const Skin[] = {"Essential"}; static const char* const Skin[] = {"Essential"};
// Memory channel database // Memory channel database
@@ -347,7 +354,7 @@ enum LONGBANDBUTTONPRESS {
}; };
enum AUTOMEMPIMODES { enum AUTOMEMPIMODES {
MEMPI_OFF = 0, MEMPI_RANGE, MEMPI_FULL MEMPI_OFF = 0, MEMPI_RANGE, MEMPI_FULL
}; };
enum SCAN_CANCEL { enum SCAN_CANCEL {
+103 -27
View File
@@ -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, 8, 9}; byte items[10] = {10, static_cast<byte>(dynamicspi ? 10 : 9), 7, 10, 10, 10, 9, 6, 9, 9};
extern mem presets[]; extern mem presets[];
bool setWiFiConnectParam = false; bool setWiFiConnectParam = false;
@@ -20,8 +20,7 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
SecondaryColor = Skyblue; SecondaryColor = Skyblue;
SecondaryColorSmooth = SkyblueSmooth; SecondaryColorSmooth = SkyblueSmooth;
FrameColor = Blue; FrameColor = Blue;
// GreyoutColor = Darkgrey; GreyoutColor = BlackOlive;
GreyoutColor = Lightgrey;
BackgroundColor = Black; BackgroundColor = Black;
ActiveColor = White; ActiveColor = White;
ActiveColorSmooth = WhiteSmooth; ActiveColorSmooth = WhiteSmooth;
@@ -111,7 +110,6 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
case 3: // Monochrome theme case 3: // Monochrome theme
PrimaryColor = White; PrimaryColor = White;
PrimaryColorSmooth = Black; PrimaryColorSmooth = Black;
// SecondaryColor = PureGrey;
SecondaryColor = White; SecondaryColor = White;
SecondaryColorSmooth = Black; SecondaryColorSmooth = Black;
FrameColor = GreenGrey; FrameColor = GreenGrey;
@@ -129,7 +127,7 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
StereoColorSmooth = Black; StereoColorSmooth = Black;
RDSColor = White; RDSColor = White;
RDSColorSmooth = Black; RDSColorSmooth = Black;
RDSDropoutColor = PureGrey; RDSDropoutColor = PaleGrey;
RDSDropoutColorSmooth = Black; RDSDropoutColorSmooth = Black;
BarSignificantColor = Red; BarSignificantColor = Red;
BarInsignificantColor = Green; BarInsignificantColor = Green;
@@ -397,8 +395,7 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
SecondaryColor = Skyblue; SecondaryColor = Skyblue;
SecondaryColorSmooth = SkyblueSmooth; SecondaryColorSmooth = SkyblueSmooth;
FrameColor = Blue; FrameColor = Blue;
// GreyoutColor = Darkgrey; GreyoutColor = BlackOlive;
GreyoutColor = Lightgrey;
BackgroundColor = Black; BackgroundColor = Black;
ActiveColor = White; ActiveColor = White;
ActiveColorSmooth = WhiteSmooth; ActiveColorSmooth = WhiteSmooth;
@@ -423,6 +420,38 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
BatteryValueColor = Teal; BatteryValueColor = Teal;
BatteryValueColorSmooth = Black; BatteryValueColorSmooth = Black;
break; break;
case 13: // Bubblegum
PrimaryColor = Cyan;
PrimaryColorSmooth = CyanSmooth;
SecondaryColor = Cherry;
SecondaryColorSmooth = CherrySmooth;
FrameColor = Electric;
GreyoutColor = Meteorite;
BackgroundColor = EerieBlack;
ActiveColor = White;
ActiveColorSmooth = WhiteSmooth;
FreqColor = Pink;
FreqColorSmooth = PinkSmooth;
SignificantColor = Purple;
SignificantColorSmooth = PurpleSmooth;
InsignificantColor = Cherry;
InsignificantColorSmooth = CherrySmooth;
StereoColor = Cherry;
StereoColorSmooth = CherrySmooth;
RDSColor = Teal;
RDSColorSmooth = TealSmooth;
RDSDropoutColor = Logan;
RDSDropoutColorSmooth = LoganSmooth;
BarSignificantColor = Coral;
BarInsignificantColor = Teal;
ModBarSignificantColor = Sakura;
ModBarInsignificantColor = Skyblue;
BWAutoColor = Violet;
BWAutoColorSmooth = VioletSmooth;
BatteryValueColor = Turquoise;
BatteryValueColorSmooth = CyanDarkSmooth;
break;
} }
} }
@@ -1456,6 +1485,15 @@ void ShowOneLine(byte position, byte item, bool selected) {
FullLineSprite.drawString(String(amscansens), 298, 2); FullLineSprite.drawString(String(amscansens), 298, 2);
break; break;
case DXMODE:
FullLineSprite.setTextDatum(TL_DATUM);
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
FullLineSprite.drawString(removeNewline(myLanguage[language][281]), 6, 2);
FullLineSprite.setTextDatum(TR_DATUM);
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
FullLineSprite.drawString((scanholdonsignal ? myLanguage[language][42] : myLanguage[language][30]), 298, 2);
break;
case AUTOMEM: case AUTOMEM:
FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextDatum(TL_DATUM);
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
@@ -1706,9 +1744,9 @@ void BuildDisplay() {
tft.drawLine(53, 30, 53, 0, FrameColor); tft.drawLine(53, 30, 53, 0, FrameColor);
tft.drawLine(89, 30, 89, 0, FrameColor); tft.drawLine(89, 30, 89, 0, FrameColor);
tft.drawLine(158, 30, 158, 0, FrameColor); tft.drawLine(158, 30, 158, 0, FrameColor);
tft.drawLine(20, 114, 204, 114, TFT_DARKGREY); tft.drawLine(20, 114, 204, 114, Darkgrey);
if (!showmodulation) tft.drawLine(20, 143, 204, 143, GreyoutColor); else tft.drawLine(20, 143, 204, 143, TFT_DARKGREY); if (!showmodulation) tft.drawLine(20, 143, 204, 143, GreyoutColor); else tft.drawLine(20, 143, 204, 143, Darkgrey);
for (byte segments = 0; segments < 94; segments++) { for (byte segments = 0; segments < 94; segments++) {
if (segments > 54) { if (segments > 54) {
if (((segments - 53) % 10) == 0) { if (((segments - 53) % 10) == 0) {
@@ -2664,6 +2702,13 @@ void MenuUp() {
OneBigLineSprite.drawString(String(fmscansens), 135, 0); OneBigLineSprite.drawString(String(fmscansens), 135, 0);
OneBigLineSprite.pushSprite(24, 118); OneBigLineSprite.pushSprite(24, 118);
break; break;
case ITEM9:
scanholdonsignal = !scanholdonsignal;
OneBigLineSprite.drawString((scanholdonsignal ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
OneBigLineSprite.pushSprite(24, 118);
break;
} }
break; break;
@@ -3605,6 +3650,13 @@ void MenuDown() {
OneBigLineSprite.drawString(String(fmscansens), 135, 0); OneBigLineSprite.drawString(String(fmscansens), 135, 0);
OneBigLineSprite.pushSprite(24, 118); OneBigLineSprite.pushSprite(24, 118);
break; break;
case ITEM9:
scanholdonsignal = !scanholdonsignal;
OneBigLineSprite.drawString((scanholdonsignal ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
OneBigLineSprite.pushSprite(24, 118);
break;
} }
break; break;
@@ -3780,24 +3832,25 @@ void DoMenu() {
tft.drawRoundRect(10, 6, 300, 230, 5, ActiveColor); tft.drawRoundRect(10, 6, 300, 230, 5, ActiveColor);
tft.fillRoundRect(12, 8, 296, 226, 5, BackgroundColor); tft.fillRoundRect(12, 8, 296, 226, 5, BackgroundColor);
tftPrint(0, myLanguage[language][71], 155, 13, ActiveColor, ActiveColorSmooth, 28); tftPrint(0, myLanguage[language][71], 155, 13, ActiveColor, ActiveColorSmooth, 28);
tftPrint(0, myLanguage[language][72], 155, 63, ActiveColor, ActiveColorSmooth, 28); tftPrint(0, myLanguage[language][72], 155, 55, ActiveColor, ActiveColorSmooth, 28);
tftPrint(0, "PE5PVB", 155, 43, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(0, "PE5PVB", 155, 38, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(1, "ohmytime", 145, 93, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(1, "ohmytime", 145, 80, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(1, "HyperDX", 145, 108, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(1, "HyperDX", 145, 95, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(-1, "MCelliotG", 155, 93, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(-1, "MCelliotG", 155, 80, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(-1, "andimik", 155, 108, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(-1, "andimik", 155, 95, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(1, "DXHR05", 145, 123, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(1, "DXHR05", 145, 110, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(1, "NoobishSVK", 145, 138, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(1, "NoobishSVK", 145, 125, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(-1, "yo2ldk", 155, 123, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(-1, "yo2ldk", 155, 110, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(-1, "Justin_Peng(Portable)", 155, 138, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(-1, "Justin_Peng(Portable)", 155, 125, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(1, "Overland DX", 145, 153, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(1, "Overland DX", 145, 140, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(-1, "elektronik232", 155, 153, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(-1, "elektronik232", 155, 140, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(1, "KOTYA8", 145, 168, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(1, "KOTYA8", 145, 155, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(-1, "mrwish7", 155, 168, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(-1, "mrwish7", 155, 155, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(1, "lxsxl", 145, 183, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(1, "lxsxl", 145, 170, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(-1, "leryfm", 155, 183, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(-1, "leryfm", 155, 170, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(1, "marsel90-1", 145, 198, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(1, "marsel90-1", 145, 185, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(-1, "lawendel", 155, 198, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(-1, "lawendel", 155, 185, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(1, "KB8U", 145, 200, PrimaryColor, PrimaryColorSmooth, 16);
tftPrint(0, "github.com/PE5PVB/TEF6686_ESP32", 155, 215, ActiveColor, ActiveColorSmooth, 16); tftPrint(0, "github.com/PE5PVB/TEF6686_ESP32", 155, 215, ActiveColor, ActiveColorSmooth, 16);
break; break;
} }
@@ -4458,17 +4511,33 @@ void DoMenu() {
tftPrint(0, "http://192.168.4.1", 155, 174, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(0, "http://192.168.4.1", 155, 174, PrimaryColor, PrimaryColorSmooth, 16);
char key [9]; char key [9];
XDRGTK_key.toCharArray(key, 9); XDRGTK_key.toCharArray(key, 9);
char rabbitearsuser [9];
RabbitearsUser.toCharArray(rabbitearsuser, 9);
char rabbitearspw [9];
RabbitearsPassword.toCharArray(rabbitearspw, 9);
UpdateFonts(1); UpdateFonts(1);
WiFiConnectParam XDRGTK_key_text("Set XDRGTK Password: (max 8 characters)"); WiFiConnectParam XDRGTK_key_text("Set XDRGTK Password: (max 8 characters)");
WiFiConnectParam XDRGTK_key_input("XDRGTK_key", "Password", key, 9); WiFiConnectParam XDRGTK_key_input("XDRGTK_key", "Password", key, 9);
WiFiConnectParam RabbitearsUser_text("Set rabbitears.info live bandscan user ID");
WiFiConnectParam RabbitearsUser_input("RabbitearsUser", "ID", rabbitearsuser, 9);
WiFiConnectParam RabbitearsPassword_text("Set rabbitears.info password");
WiFiConnectParam RabbitearsPassword_input("RabbitearsPassword", "Password", rabbitearspw, 9);
if (!setWiFiConnectParam) { if (!setWiFiConnectParam) {
wc.addParameter(&XDRGTK_key_text); wc.addParameter(&XDRGTK_key_text);
wc.addParameter(&XDRGTK_key_input); wc.addParameter(&XDRGTK_key_input);
wc.addParameter(&RabbitearsUser_text);
wc.addParameter(&RabbitearsUser_input);
wc.addParameter(&RabbitearsPassword_text);
wc.addParameter(&RabbitearsPassword_input);
setWiFiConnectParam = true; setWiFiConnectParam = true;
} }
wc.startConfigurationPortal(AP_WAIT); wc.startConfigurationPortal(AP_WAIT);
XDRGTK_key = XDRGTK_key_input.getValue(); XDRGTK_key = XDRGTK_key_input.getValue();
RabbitearsUser = RabbitearsUser_input.getValue();
RabbitearsPassword = RabbitearsPassword_input.getValue();
EEPROM.writeString(EE_STRING_XDRGTK_KEY, XDRGTK_key); EEPROM.writeString(EE_STRING_XDRGTK_KEY, XDRGTK_key);
EEPROM.writeString(EE_STRING_RABBITEARSUSER, RabbitearsUser);
EEPROM.writeString(EE_STRING_RABBITEARSPASSWORD, RabbitearsPassword);
EEPROM.commit(); EEPROM.commit();
UpdateFonts(0); UpdateFonts(0);
wifi = true; wifi = true;
@@ -4574,6 +4643,13 @@ void DoMenu() {
OneBigLineSprite.drawString(String(fmscansens), 135, 0); OneBigLineSprite.drawString(String(fmscansens), 135, 0);
OneBigLineSprite.pushSprite(24, 118); OneBigLineSprite.pushSprite(24, 118);
break; break;
case ITEM9:
Infoboxprint(myLanguage[language][281]);
OneBigLineSprite.drawString((scanholdonsignal ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
OneBigLineSprite.pushSprite(24, 118);
break;
} }
break; break;
+3
View File
@@ -57,6 +57,7 @@ extern bool RDSstatusold;
extern bool rdsstereoold; extern bool rdsstereoold;
extern bool usesquelch; extern bool usesquelch;
extern bool scandxmode; extern bool scandxmode;
extern bool scanholdonsignal;
extern bool scanmem; extern bool scanmem;
extern bool scanmute; extern bool scanmute;
extern bool showclock; extern bool showclock;
@@ -196,6 +197,8 @@ extern String rds_clockold;
extern String stationIDold; extern String stationIDold;
extern String stationStateold; extern String stationStateold;
extern String XDRGTK_key; extern String XDRGTK_key;
extern String RabbitearsUser;
extern String RabbitearsPassword;
extern unsigned int ConverterSet; extern unsigned int ConverterSet;
extern unsigned int HighEdgeSet; extern unsigned int HighEdgeSet;
extern unsigned int LowEdgeSet; extern unsigned int LowEdgeSet;
+39 -22
View File
@@ -1,11 +1,11 @@
#ifndef LANGUAGE_H #ifndef LANGUAGE_H
#define LANGUAGE_H #define LANGUAGE_H
#define VERSION "v2.11.3" #define VERSION "v2.11.5"
// [number of languages][number of texts] // [number of languages][number of texts]
static const char* const myLanguage[18][281] PROGMEM = { static const char* const myLanguage[18][282] PROGMEM = {
{ "English", // English { "English", // English
"Rotary direction changed", // 1 "Rotary direction changed", // 1
"Please release button", // 2 "Please release button", // 2
@@ -286,7 +286,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"cleared", // 277 "cleared", // 277
"Prevent double PI", // 278 "Prevent double PI", // 278
"Range", // 279 "Range", // 279
"Full" // 280 "Full", // 280
"Wait time on\nsignal only" // 281
}, },
{ "Nederlands", // Dutch { "Nederlands", // Dutch
@@ -569,7 +570,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"gewist", // 277 "gewist", // 277
"Voorkom dubbele PI", // 278 "Voorkom dubbele PI", // 278
"Bereik", // 279 "Bereik", // 279
"Volledig" // 280 "Volledig", // 280
"Wachttijd alleen\nbij signaal" // 281
}, },
{ "Polski", // Polish { "Polski", // Polish
@@ -852,7 +854,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"wyczyszczono", // 277 "wyczyszczono", // 277
"Unikaj podwójnego PI", // 278 "Unikaj podwójnego PI", // 278
"Zakres", // 279 "Zakres", // 279
"Pełne" // 280 "Pełne", // 280
"Wait time on\nsignal only" // 281
}, },
{ "Hrvatski", // Croatian { "Hrvatski", // Croatian
@@ -1135,7 +1138,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"cleared", // 277 "cleared", // 277
"Prevent double PI", // 278 "Prevent double PI", // 278
"Range", // 279 "Range", // 279
"Full" // 280 "Full", // 280
"Wait time on\nsignal only" // 281
}, },
{ "Ελληνικά", // Greek { "Ελληνικά", // Greek
@@ -1418,7 +1422,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"έγινε εκκαθάριση", // 277 "έγινε εκκαθάριση", // 277
"Αποφυγή διπλού PI", // 278 "Αποφυγή διπλού PI", // 278
"Εύρος", // 279 "Εύρος", // 279
"Πλήρης" // 280 "Πλήρης", // 280
"Αναμονή μόνο σε\nυπάρξη σήματος" // 281
}, },
{ "Română", // Romanian { "Română", // Romanian
@@ -1701,7 +1706,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"cleared", // 277 "cleared", // 277
"Prevent double PI", // 278 "Prevent double PI", // 278
"Range", // 279 "Range", // 279
"Full" // 280 "Full", // 280
"Wait time on\nsignal only" // 281
}, },
{ "Deutsch", // German { "Deutsch", // German
@@ -1984,7 +1990,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"cleared", // 277 "cleared", // 277
"Prevent double PI", // 278 "Prevent double PI", // 278
"Range", // 279 "Range", // 279
"Full" // 280 "Full", // 280
"Wait time on\nsignal only" // 281
}, },
{ "Český", // Czech { "Český", // Czech
@@ -2267,7 +2274,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"cleared", // 277 "cleared", // 277
"Prevent double PI", // 278 "Prevent double PI", // 278
"Range", // 279 "Range", // 279
"Full" // 280 "Full", // 280
"Wait time on\nsignal only" // 281
}, },
{ "Magyar", // Hungarian { "Magyar", // Hungarian
@@ -2550,7 +2558,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"cleared", // 277 "cleared", // 277
"Prevent double PI", // 278 "Prevent double PI", // 278
"Range", // 279 "Range", // 279
"Full" // 280 "Full", // 280
"Wait time on\nsignal only" // 281
}, },
{ "Français", // French { "Français", // French
@@ -2833,7 +2842,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"effacé", // 277 "effacé", // 277
"Prévenir double PI", // 278 "Prévenir double PI", // 278
"Plage", // 279 "Plage", // 279
"Complet" // 280 "Complet", // 280
"Attendre que lorsque\nle signal existe" // 281
}, },
@@ -3117,7 +3127,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"cleared", // 277 "cleared", // 277
"Prevent double PI", // 278 "Prevent double PI", // 278
"Range", // 279 "Range", // 279
"Full" // 280 "Full", // 280
"Wait time on\nsignal only" // 281
}, },
{ "Русский", // Russian { "Русский", // Russian
@@ -3400,7 +3411,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"cleared", // 277 "cleared", // 277
"Prevent double PI", // 278 "Prevent double PI", // 278
"Range", // 279 "Range", // 279
"Full" // 280 "Full", // 280
"Wait time on\nsignal only" // 281
}, },
{ "Українська", // Ukranian { "Українська", // Ukranian
@@ -3683,7 +3695,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"cleared", // 277 "cleared", // 277
"Prevent double PI", // 278 "Prevent double PI", // 278
"Range", // 279 "Range", // 279
"Full" // 280 "Full", // 280
"Wait time on\nsignal only" // 281
}, },
{ "Italiano", // Italian { "Italiano", // Italian
@@ -3966,7 +3979,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"Cancellate", // 277 "Cancellate", // 277
"Evita PI duplicati", // 278 "Evita PI duplicati", // 278
"Intervallo", // 279 "Intervallo", // 279
"Piene" // 280 "Piene", // 280
"Wait time on\nsignal only" // 281
}, },
{ "Simplified Chinese", // Simplified Chinese { "Simplified Chinese", // Simplified Chinese
@@ -4249,7 +4263,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"cleared", // 277 "cleared", // 277
"Prevent double PI", // 278 "Prevent double PI", // 278
"Range", // 279 "Range", // 279
"Full" // 280 "Full", // 280
"Wait time on\nsignal only" // 281
}, },
{ "Norsk", // Norwegian { "Norsk", // Norwegian
@@ -4532,7 +4547,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"cleared", // 277 "cleared", // 277
"Prevent double PI", // 278 "Prevent double PI", // 278
"Range", // 279 "Range", // 279
"Full" // 280 "Full", // 280
"Wait time on\nsignal only" // 281
}, },
{ "Español", // Spanish { "Español", // Spanish
@@ -4815,7 +4831,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"borrado", // 277 "borrado", // 277
"Prevenir doble PI", // 278 "Prevenir doble PI", // 278
"Rango", // 279 "Rango", // 279
"Completo" // 280 "Completo", // 280
"Tiempo de espera\ncuando la señal" // 281
}, },
@@ -5099,8 +5116,8 @@ static const char* const myLanguage[18][281] PROGMEM = {
"limpo", // 277 "limpo", // 277
"Prevenir PI duplo", // 278 "Prevenir PI duplo", // 278
"Intervalo", // 279 "Intervalo", // 279
"Completo" // 280 "Completo", // 280
"Espera tempo apenas\nquando sinal" // 281
} }
}; };
#endif #endif