Merge branch 'main' into New_Model_DP_666
# Conflicts: # src/gui.cpp
This commit is contained in:
+117
-8
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
|
@@ -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
|
||||||
|
|||||||
|
@@ -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
|
||||||
|
|||||||
|
@@ -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
-1
@@ -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
|
||||||
|
|||||||
|
+7
-7
@@ -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
|
||||||
|
|||||||
|
+2
-2
@@ -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
|
||||||
|
|||||||
|
+3
-3
@@ -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
|
||||||
|
|||||||
|
@@ -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
@@ -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
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
Reference in New Issue
Block a user