Small AF improvements
Flash optimalisation
Store last stereo state in flash
This commit is contained in:
Sjef Verhoeven PE5PVB
2023-07-16 14:11:07 +02:00
parent 74d87f2686
commit 7369a5ea90
2 changed files with 129 additions and 124 deletions
+113 -109
View File
@@ -41,39 +41,41 @@ TFT_eSPI tft = TFT_eSPI(240, 320);
bool advancedRDS;
bool af;
bool aftest;
bool afpage;
bool afscreen;
bool aftest;
bool artheadold;
bool batterydetect = true;
bool BWreset;
bool change2;
bool compressedold;
bool rdsstereoold;
bool cleanup;
bool compressedold;
bool direction;
bool dropout;
bool dynamicPTYold;
bool edgebeep;
bool errorAold;
bool errorBold;
bool errorCold;
bool errorDold;
bool fullsearchrds;
bool hasafold;
bool haseonold;
bool hasrtplusold;
bool hastmcold;
bool fullsearchrds;
bool hasafold;
bool LowLevelInit;
bool memorystore;
bool menu;
bool menuopen;
bool nobattery;
bool power = true;
bool errorAold;
bool errorBold;
bool errorCold;
bool errorDold;
bool RDSSPYTCP;
bool RDSSPYUSB;
bool RDSstatus;
bool RDSstatusold;
bool rdsstereoold;
bool screenmute;
bool screensavertriggered = false;
bool seek;
bool setupmode;
bool showrdserrors;
@@ -82,7 +84,7 @@ bool softmuteam;
bool softmutefm;
bool SQ;
bool Stereostatusold;
bool StereoToggle = true;
bool StereoToggle;
bool store;
bool TAold;
bool TPold;
@@ -94,7 +96,6 @@ bool XDRGTKdata;
bool XDRGTKTCP;
bool XDRGTKUSB;
bool XDRMute;
bool screensavertriggered = false;
byte af_counterold;
byte afpagenr;
byte amnb;
@@ -102,7 +103,6 @@ byte audiomode;
byte band;
byte battery;
byte batteryold;
int batupdatetimer;
byte BWset;
byte colorinvert;
byte ContrastSet;
@@ -110,6 +110,7 @@ byte CurrentTheme;
byte displayflip;
byte ECCold;
byte EQset;
byte fmdefaultstepsize;
byte fmnb;
byte freqoldcount;
byte HighCutLevel;
@@ -125,57 +126,62 @@ byte menupage = 1;
byte menupagestotal = 4;
byte MSold;
byte optenc;
byte poweroptions;
byte rdsblockold;
byte region;
byte regionold;
byte rotarymode;
byte screensaverOptions[5] = {0, 3, 10, 30, 60};
byte screensaverset;
byte showmodulation;
byte showSWMIBand = 1;
uint8_t SNR;
byte SNRold;
byte specialstepOIRT;
byte stepsize;
byte fmdefaultstepsize;
byte poweroptions;
byte screensaverset;
byte StereoLevel;
byte subnetclient;
byte TEF;
byte theme;
byte tunemode;
byte screensaverOptions[5] = {0, 3, 10, 30, 60};
byte unit;
char buff[16];
char programTypePrevious[18];
char radioIdPrevious[6];
int ActiveColor;
int AGC;
int AMLevelOffset;
int BackgroundColor;
int batupdatetimer;
int BWOld;
int bwupdatetimer;
int charWidth = tft.textWidth("AA");
int DeEmphasis;
int ForceMono;
int FrameColor;
int freqold;
int LevelOffset;
int AMLevelOffset;
int LowLevelSet;
int lowsignaltimer;
int FrequencyColor;
int GreyoutColor;
int menuoption = 30;
int MStatusold;
int offsetupdatetimer;
int OptimizerColor;
int OStatusold;
int peakholdold;
int peakholdtimer;
int PrimaryColor;
int RDSColor;
int rotary;
int rssi;
int rssiold = 200;
int scanner_filter;
int SecondaryColor;
int snrupdatetimer;
int Sqstatusold;
int Squelch;
int Squelchold;
int SStatusold;
int StereoColor;
int Stereostatus;
int VolSet;
int volume;
int XDRBWset;
int XDRBWsetold;
@@ -183,33 +189,25 @@ int xPos = 6;
int xPos2 = 6;
int xPos3 = 6;
int xPos4 = 6;
// Theme Engine Colors
int PrimaryColor;
int SecondaryColor;
int FrameColor;
int FrequencyColor;
int GreyoutColor;
int BackgroundColor;
int ActiveColor;
int OptimizerColor;
int RDSColor;
int StereoColor;
int16_t OStatus;
int16_t SAvg;
int16_t SAvg2;
int16_t SStatus;
int8_t LevelOffset;
int8_t LowLevelSet;
int8_t VolSet;
IPAddress remoteip;
String cryptedpassword;
String CurrentThemeString;
String ECColdtxt;
String eonpsold[11];
String LIColdString;
String PIold;
String pinstringold;
String PIold;
String programServicePrevious;
String PSold;
String PTYold;
String ptynold = " ";
String PTYold;
String rds_clock;
String rds_clockold;
String RDSSPYRDS;
@@ -229,7 +227,7 @@ uint16_t SWMIBandPosold; // Fix Me: Should store this parameter into flash, for
uint16_t USN;
uint16_t WAM;
uint8_t buff_pos;
uint8_t RDSstatus;
uint8_t SNR;
unsigned int change;
unsigned int ConverterSet;
unsigned int freq_scan;
@@ -269,17 +267,17 @@ unsigned int scanner_start;
unsigned int scanner_step;
unsigned int SWHighEdgeSet;
unsigned int SWLowEdgeSet;
unsigned long peakholdmillis;
unsigned long afticker;
unsigned long aftickerhold;
unsigned long aftimer;
unsigned long eonticker;
unsigned long eontickerhold;
unsigned long rtticker;
unsigned long rttickerhold;
unsigned long lowsignaltimer;
unsigned long peakholdmillis;
unsigned long rtplusticker;
unsigned long rtplustickerhold;
unsigned long aftimer;
unsigned long rtticker;
unsigned long rttickerhold;
TEF6686 radio;
TFT_eSprite sprite = TFT_eSprite(&tft);
@@ -296,20 +294,20 @@ void setup() {
EEPROM.begin(EE_TOTAL_CNT);
if (EEPROM.readByte(EE_BYTE_CHECKBYTE) != EE_CHECKBYTE_VALUE) DefaultSettings();
frequency = EEPROM.readUInt(EE_UINT_FREQUENCY_FM);
VolSet = EEPROM.readInt(EE_INT_VOLSET);
ConverterSet = EEPROM.readUInt(EE_UINT_CONVERTERSET);
LowEdgeSet = EEPROM.readUInt(EE_UINT_FMLOWEDGESET);
HighEdgeSet = EEPROM.readUInt(EE_UINT_FMHIGHEDGESET);
frequency = EEPROM.readUInt(EE_UINT16_FREQUENCY_FM);
VolSet = EEPROM.readInt(EE_BYTE_VOLSET);
ConverterSet = EEPROM.readUInt(EE_UINT16_CONVERTERSET);
LowEdgeSet = EEPROM.readUInt(EE_UINT16_FMLOWEDGESET);
HighEdgeSet = EEPROM.readUInt(EE_UINT16_FMHIGHEDGESET);
ContrastSet = EEPROM.readByte(EE_BYTE_CONTRASTSET);
StereoLevel = EEPROM.readByte(EE_BYTE_STEREOLEVEL);
HighCutLevel = EEPROM.readByte(EE_BYTE_HIGHCUTLEVEL);
HighCutOffset = EEPROM.readByte(EE_BYTE_HIGHCUTOFFSET);
LevelOffset = EEPROM.readInt(EE_INT_LEVELOFFSET);
LevelOffset = EEPROM.readByte(EE_BYTE_LEVELOFFSET);
edgebeep = EEPROM.readByte(EE_BYTE_EDGEBEEP);
softmuteam = EEPROM.readByte(EE_BYTE_SOFTMUTEAM);
softmutefm = EEPROM.readByte(EE_BYTE_SOFTMUTEFM);
frequency_AM = EEPROM.readUInt(EE_UINT_FREQUENCY_AM);
frequency_AM = EEPROM.readUInt(EE_UINT16_FREQUENCY_AM);
language = EEPROM.readByte(EE_BYTE_LANGUAGE);
showrdserrors = EEPROM.readByte(EE_BYTE_SHOWRDSERRORS);
TEF = EEPROM.readByte(EE_BYTE_TEF);
@@ -321,7 +319,7 @@ void setup() {
iMSset = EEPROM.readByte(EE_BYTE_IMSSET);
EQset = EEPROM.readByte(EE_BYTE_EQSET);
band = EEPROM.readByte(EE_BYTE_BAND);
LowLevelSet = EEPROM.readInt(EE_INT_LOWLEVELSET);
LowLevelSet = EEPROM.readInt(EE_BYTE_LOWLEVELSET);
memorypos = EEPROM.readByte(EE_BYTE_MEMORYPOS);
region = EEPROM.readByte(EE_BYTE_REGION);
radio.rds.underscore = EEPROM.readByte(EE_BYTE_RDS_UNDERSCORE);
@@ -331,9 +329,9 @@ void setup() {
showSWMIBand = EEPROM.readByte(EE_BYTE_SHOWSWMIBAND);
radio.rds.filter = EEPROM.readByte(EE_BYTE_RDS_FILTER);
radio.rds.pierrors = EEPROM.readByte(EE_BYTE_RDS_PIERRORS);
frequency_LW = EEPROM.readUInt(EE_UINT_FREQUENCY_LW);
frequency_MW = EEPROM.readUInt(EE_UINT_FREQUENCY_MW);
frequency_SW = EEPROM.readUInt(EE_UINT_FREQUENCY_SW);
frequency_LW = EEPROM.readUInt(EE_UINT16_FREQUENCY_LW);
frequency_MW = EEPROM.readUInt(EE_UINT16_FREQUENCY_MW);
frequency_SW = EEPROM.readUInt(EE_UINT16_FREQUENCY_SW);
XDRGTK_key = EEPROM.readString(EE_STRING_XDRGTK_KEY);
showsquelch = EEPROM.readByte(EE_BYTE_SHOWSQUELCH);
showmodulation = EEPROM.readByte(EE_BYTE_SHOWMODULATION);
@@ -341,16 +339,17 @@ void setup() {
fmnb = EEPROM.readByte(EE_BYTE_FM_NB);
audiomode = EEPROM.readByte(EE_BYTE_AUDIOMODE);
specialstepOIRT = EEPROM.readByte(EE_BYTE_OIRT);
LowEdgeOIRTSet = EEPROM.readUInt(EE_UINT_LOWEDGEOIRTSET);
HighEdgeOIRTSet = EEPROM.readUInt(EE_UINT_HIGHEDGEOIRTSET);
LowEdgeOIRTSet = EEPROM.readUInt(EE_UINT16_LOWEDGEOIRTSET);
HighEdgeOIRTSet = EEPROM.readUInt(EE_UINT16_HIGHEDGEOIRTSET);
colorinvert = EEPROM.readByte(EE_BYTE_COLORINVERT);
poweroptions = EEPROM.readByte(EE_BYTE_POWEROPTIONS);
CurrentTheme = EEPROM.readByte(EE_BYTE_CURRENTTHEME);
fmdefaultstepsize = EEPROM.readByte(EE_BYTE_FMDEFAULTSTEPSIZE);
screensaverset = EEPROM.readByte(EE_BYTE_SCREENSAVERSET);
AMLevelOffset = EEPROM.readInt(EE_INT_AMLEVELOFFSET);
AMLevelOffset = EEPROM.readInt(EE_INT16_AMLEVELOFFSET);
unit = EEPROM.readByte(EE_BYTE_UNIT);
af = EEPROM.readByte(EE_BYTE_AF);
StereoToggle = EEPROM.readByte(EE_BYTE_STEREO);
LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash
LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash
@@ -583,6 +582,7 @@ void setup() {
radio.setHighCutOffset(HighCutOffset);
radio.clearRDS(fullsearchrds);
radio.setMute();
if (!StereoToggle) radio.setMono(true);
radio.setSoftmuteFM(softmutefm);
radio.setSoftmuteAM(softmuteam);
radio.setAMNoiseBlanker(amnb);
@@ -621,7 +621,7 @@ void loop() {
Communication();
if (af) {
if (aftest && millis() >= aftimer + 5000) {
if ((aftest && millis() >= aftimer + 3000) || (USN > 250 || WAM > 250)) {
aftimer = millis();
aftest = false;
frequency = radio.TestAF();
@@ -773,12 +773,12 @@ void loop() {
if (change > 200 && store == true) {
detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A));
detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B));
EEPROM.writeUInt(EE_UINT_FREQUENCY_FM, frequency);
EEPROM.writeUInt(EE_UINT_FREQUENCY_AM, frequency_AM);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, frequency_AM);
EEPROM.writeByte(EE_BYTE_BAND, band);
EEPROM.writeUInt(EE_UINT_FREQUENCY_LW, frequency_LW);
EEPROM.writeUInt(EE_UINT_FREQUENCY_MW, frequency_MW);
EEPROM.writeUInt(EE_UINT_FREQUENCY_SW, frequency_SW);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_LW, frequency_LW);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_MW, frequency_MW);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_SW, frequency_SW);
EEPROM.commit();
store = false;
attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A), read_encoder, CHANGE);
@@ -1015,12 +1015,12 @@ void BANDBUTTONPress() {
}
void StoreFrequency() {
EEPROM.writeUInt(EE_UINT_FREQUENCY_FM, frequency);
EEPROM.writeUInt(EE_UINT_FREQUENCY_AM, frequency_AM);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, frequency_AM);
EEPROM.writeByte(EE_BYTE_BAND, band);
EEPROM.writeUInt(EE_UINT_FREQUENCY_LW, frequency_LW);
EEPROM.writeUInt(EE_UINT_FREQUENCY_MW, frequency_MW);
EEPROM.writeUInt(EE_UINT_FREQUENCY_SW, frequency_SW);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_LW, frequency_LW);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_MW, frequency_MW);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_SW, frequency_SW);
EEPROM.commit();
}
@@ -1473,6 +1473,8 @@ void doStereoToggle() {
Stereostatusold = false;
StereoToggle = true;
}
EEPROM.writeByte(EE_BYTE_STEREO, StereoToggle);
EEPROM.commit();
}
void ModeButtonPress() {
@@ -1519,12 +1521,12 @@ void ModeButtonPress() {
SStatusold = 2000;
BWOld = 0;
radio.clearRDS(fullsearchrds);
RDSstatus = 0;
RDSstatus = false;
if (specialstepOIRT) {
if (frequency >= (FREQ_FM_OIRT_START) && frequency <= (FREQ_FM_OIRT_END)) {
if (frequency % 3 != 0) {
Round30K(frequency);
EEPROM.writeUInt(EE_UINT_FREQUENCY_FM, frequency);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
}
} else {
if (fmdefaultstepsize == 1) Round100K(frequency); else Round50K(frequency);
@@ -1532,7 +1534,7 @@ void ModeButtonPress() {
} else {
if (frequency % 10 != 0) {
if (fmdefaultstepsize == 1) Round100K(frequency); else Round50K(frequency);
EEPROM.writeUInt(EE_UINT_FREQUENCY_FM, frequency);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
}
}
radio.clearRDS(fullsearchrds);
@@ -1542,21 +1544,21 @@ void ModeButtonPress() {
menu = false;
menuopen = false;
LowLevelInit = true;
EEPROM.writeInt(EE_INT_VOLSET, VolSet);
EEPROM.writeUInt(EE_UINT_CONVERTERSET, ConverterSet);
EEPROM.writeUInt(EE_UINT_FMLOWEDGESET, LowEdgeSet);
EEPROM.writeUInt(EE_UINT_FMHIGHEDGESET, HighEdgeSet);
EEPROM.writeInt(EE_BYTE_VOLSET, VolSet);
EEPROM.writeUInt(EE_UINT16_CONVERTERSET, ConverterSet);
EEPROM.writeUInt(EE_UINT16_FMLOWEDGESET, LowEdgeSet);
EEPROM.writeUInt(EE_UINT16_FMHIGHEDGESET, HighEdgeSet);
EEPROM.writeByte(EE_BYTE_CONTRASTSET, ContrastSet);
EEPROM.writeByte(EE_BYTE_STEREOLEVEL, StereoLevel);
EEPROM.writeByte(EE_BYTE_HIGHCUTLEVEL, HighCutLevel);
EEPROM.writeByte(EE_BYTE_HIGHCUTOFFSET, HighCutOffset);
EEPROM.writeInt(EE_INT_LEVELOFFSET, LevelOffset);
EEPROM.writeInt(EE_BYTE_LEVELOFFSET, LevelOffset);
EEPROM.writeByte(EE_BYTE_EDGEBEEP, edgebeep);
EEPROM.writeByte(EE_BYTE_SOFTMUTEAM, softmuteam);
EEPROM.writeByte(EE_BYTE_SOFTMUTEFM, softmutefm);
EEPROM.writeByte(EE_BYTE_LANGUAGE, language);
EEPROM.writeByte(EE_BYTE_SHOWRDSERRORS, showrdserrors);
EEPROM.writeInt(EE_INT_LOWLEVELSET, LowLevelSet);
EEPROM.writeInt(EE_BYTE_LOWLEVELSET, LowLevelSet);
EEPROM.writeByte(EE_BYTE_REGION, region);
EEPROM.writeByte(EE_BYTE_RDS_UNDERSCORE, radio.rds.underscore);
EEPROM.writeByte(EE_BYTE_USBMODE, USBmode);
@@ -1571,14 +1573,14 @@ void ModeButtonPress() {
EEPROM.writeByte(EE_BYTE_FM_NB, fmnb);
EEPROM.writeByte(EE_BYTE_AUDIOMODE, audiomode);
EEPROM.writeByte(EE_BYTE_OIRT, specialstepOIRT);
EEPROM.writeUInt(EE_UINT_LOWEDGEOIRTSET, LowEdgeOIRTSet);
EEPROM.writeUInt(EE_UINT_HIGHEDGEOIRTSET, HighEdgeOIRTSet);
EEPROM.writeUInt(EE_UINT16_LOWEDGEOIRTSET, LowEdgeOIRTSet);
EEPROM.writeUInt(EE_UINT16_HIGHEDGEOIRTSET, HighEdgeOIRTSet);
EEPROM.writeByte(EE_BYTE_COLORINVERT, colorinvert);
EEPROM.writeByte(EE_BYTE_POWEROPTIONS, poweroptions);
EEPROM.writeByte(EE_BYTE_CURRENTTHEME, CurrentTheme);
EEPROM.writeByte(EE_BYTE_FMDEFAULTSTEPSIZE, fmdefaultstepsize);
EEPROM.writeByte(EE_BYTE_SCREENSAVERSET, screensaverset);
EEPROM.writeInt(EE_INT_AMLEVELOFFSET, AMLevelOffset);
EEPROM.writeInt(EE_INT16_AMLEVELOFFSET, AMLevelOffset);
EEPROM.writeByte(EE_BYTE_UNIT, unit);
EEPROM.writeByte(EE_BYTE_AF, af);
EEPROM.commit();
@@ -1690,7 +1692,7 @@ void RoundStep() {
while (digitalRead(ROTARY_BUTTON) == LOW) delay(50);
if (band == BAND_FM) EEPROM.writeUInt(EE_UINT_FREQUENCY_FM, frequency); else EEPROM.writeUInt(EE_UINT_FREQUENCY_AM, frequency_AM);
if (band == BAND_FM) EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency); else EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, frequency_AM);
EEPROM.commit();
}
@@ -2275,7 +2277,7 @@ void KeyUp() {
if (CurrentTheme == 7) tft.setTextColor(TFT_WHITE); else tft.setTextColor(TFT_BLACK);
tft.drawRightString(String(LowLevelSet, DEC), 145, 110, GFXFF);
LowLevelSet++;
if (LowLevelSet > 40) LowLevelSet = -10;
if (LowLevelSet > 30) LowLevelSet = -15;
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
tft.drawRightString(String(LowLevelSet, DEC), 145, 110, GFXFF);
break;
@@ -2714,7 +2716,7 @@ void KeyDown() {
if (CurrentTheme == 7) tft.setTextColor(TFT_WHITE); else tft.setTextColor(TFT_BLACK);
tft.drawRightString(String(LowLevelSet, DEC), 145, 110, GFXFF);
LowLevelSet--;
if (LowLevelSet < -10) LowLevelSet = 40;
if (LowLevelSet < -15) LowLevelSet = 30;
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
tft.drawRightString(String(LowLevelSet, DEC), 145, 110, GFXFF);
break;
@@ -3034,7 +3036,7 @@ void readRds() {
RDSstatus = radio.rds.hasRDS;
ShowRDSLogo(RDSstatus);
if (!afscreen) {
if (RDSstatus == 0 && screenmute == false) {
if (!RDSstatus && !screenmute) {
tft.setTextColor(SecondaryColor);
tft.setFreeFont(FONT14);
if (advancedRDS) tft.drawString(PIold, 244, 66, GFXFF); else tft.drawString(PIold, 244, 183, GFXFF);
@@ -3047,6 +3049,7 @@ void readRds() {
tft.setFreeFont(FONT7);
if (!advancedRDS) tft.drawString(RTold, 1, 223, GFXFF);
dropout = true;
aftest = true;
} else {
if (dropout == true && PIold.length() != 0) {
tft.setTextColor(PrimaryColor);
@@ -3062,7 +3065,7 @@ void readRds() {
}
}
if ((RDSstatus == 1 && RDSSPYUSB == true) || (RDSstatus == 1 && RDSSPYTCP == true)) {
if ((RDSstatus && RDSSPYUSB) || (RDSstatus && RDSSPYTCP)) {
RDSSPYRDS = "G:\r\n";
if (radio.rds.rdsAerror) RDSSPYRDS += "----"; else RDSSPYRDS += String(((radio.rds.rdsA >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsA >> 8) & 0xF, HEX) + String(((radio.rds.rdsA) >> 4) & 0xF, HEX) + String((radio.rds.rdsA) & 0xF, HEX);
if (radio.rds.rdsBerror) RDSSPYRDS += "----"; else RDSSPYRDS += String(((radio.rds.rdsB >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsB >> 8) & 0xF, HEX) + String(((radio.rds.rdsB) >> 4) & 0xF, HEX) + String((radio.rds.rdsB) & 0xF, HEX);
@@ -3076,7 +3079,7 @@ void readRds() {
}
}
if ((RDSstatus == 1 && XDRGTKUSB == true) || (RDSstatus == 1 && XDRGTKTCP == true)) {
if ((RDSstatus && XDRGTKUSB) || (RDSstatus && XDRGTKTCP)) {
DataPrint ("P");
DataPrint (String(((radio.rds.rdsA >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsA >> 8) & 0xF, HEX));
DataPrint (String(((radio.rds.rdsA) >> 4) & 0xF, HEX) + String((radio.rds.rdsA) & 0xF, HEX));
@@ -3942,8 +3945,8 @@ void BuildAdvancedRDS() {
tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
if (StereoToggle == false) {
tft.drawCircle(86, 15, 10, PrimaryColor);
tft.drawCircle(86, 15, 9, PrimaryColor);
tft.drawCircle(86, 15, 10, SecondaryColor);
tft.drawCircle(86, 15, 9, SecondaryColor);
}
tft.setFreeFont(FONT7);
@@ -4066,8 +4069,8 @@ void BuildDisplay() {
tft.drawCircle(91, 15, 9, GreyoutColor);
tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
if (StereoToggle == false) {
tft.drawCircle(86, 15, 10, PrimaryColor);
tft.drawCircle(86, 15, 9, PrimaryColor);
tft.drawCircle(86, 15, 10, SecondaryColor);
tft.drawCircle(86, 15, 9, SecondaryColor);
}
tft.setTextColor(SecondaryColor);
tft.setFreeFont(FONT7);
@@ -4399,7 +4402,7 @@ void ShowSignalLevel() {
void ShowRDSLogo(bool RDSstatus) {
if (screenmute == false) {
if (RDSstatus != RDSstatusold) {
if (RDSstatus == true) tft.drawBitmap(110, 5, RDSLogo, 67, 22, RDSColor); else tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
if (RDSstatus) tft.drawBitmap(110, 5, RDSLogo, 67, 22, RDSColor); else tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
RDSstatusold = RDSstatus;
}
}
@@ -5291,7 +5294,7 @@ void XDRGTKRoutine() {
offsetg = atol(buff + 1);
if (offsetg == 0) {
MuteScreen(0);
LowLevelSet = EEPROM.readInt(EE_INT_LOWLEVELSET);
LowLevelSet = EEPROM.readInt(EE_BYTE_LOWLEVELSET);
softmuteam = EEPROM.readByte(EE_BYTE_SOFTMUTEAM);
softmutefm = EEPROM.readByte(EE_BYTE_SOFTMUTEFM);
radio.setSoftmuteFM(softmutefm);
@@ -5300,7 +5303,7 @@ void XDRGTKRoutine() {
}
if (offsetg == 10) {
MuteScreen(1);
LowLevelSet = EEPROM.readInt(EE_INT_LOWLEVELSET);
LowLevelSet = EEPROM.readInt(EE_BYTE_LOWLEVELSET);
softmuteam = EEPROM.readByte(EE_BYTE_SOFTMUTEAM);
softmutefm = EEPROM.readByte(EE_BYTE_SOFTMUTEFM);
radio.setSoftmuteFM(softmutefm);
@@ -5356,7 +5359,7 @@ void XDRGTKRoutine() {
DataPrint("T" + String(frequency * 10) + "\n");
radio.SetFreq(frequency);
radio.clearRDS(fullsearchrds);
RDSstatus = 0;
RDSstatus = false;
}
store == true;
break;
@@ -5404,7 +5407,7 @@ void XDRGTKRoutine() {
if (band == BAND_FM) DataPrint("T" + String(frequency * 10) + "\n"); else DataPrint("T" + String(frequency_AM) + "\n");
ShowFreq(0);
radio.clearRDS(fullsearchrds);
RDSstatus = 0;
RDSstatus = false;
store == true;
break;
@@ -5522,8 +5525,8 @@ void XDRGTKRoutine() {
store = true;
XDRMute = false;
radio.setUnMute();
VolSet = EEPROM.readInt(EE_INT_VOLSET);
LowLevelSet = EEPROM.readInt(EE_INT_LOWLEVELSET);
VolSet = EEPROM.readInt(EE_BYTE_VOLSET);
LowLevelSet = EEPROM.readInt(EE_BYTE_LOWLEVELSET);
softmuteam = EEPROM.readByte(EE_BYTE_SOFTMUTEAM);
softmutefm = EEPROM.readByte(EE_BYTE_SOFTMUTEFM);
radio.setVolume(VolSet);
@@ -5972,20 +5975,20 @@ void passwordcrypt() {
void DefaultSettings() {
EEPROM.writeByte(EE_BYTE_CHECKBYTE, EE_CHECKBYTE_VALUE);
EEPROM.writeUInt(EE_UINT_FREQUENCY_FM, 10000);
EEPROM.writeInt(EE_INT_VOLSET, 0);
EEPROM.writeUInt(EE_UINT_CONVERTERSET, 0);
EEPROM.writeUInt(EE_UINT_FMLOWEDGESET, 875);
EEPROM.writeUInt(EE_UINT_FMHIGHEDGESET, 1080);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, 10000);
EEPROM.writeInt(EE_BYTE_VOLSET, 0);
EEPROM.writeUInt(EE_UINT16_CONVERTERSET, 0);
EEPROM.writeUInt(EE_UINT16_FMLOWEDGESET, 875);
EEPROM.writeUInt(EE_UINT16_FMHIGHEDGESET, 1080);
EEPROM.writeByte(EE_BYTE_CONTRASTSET, 50);
EEPROM.writeByte(EE_BYTE_STEREOLEVEL, 0);
EEPROM.writeByte(EE_BYTE_HIGHCUTLEVEL, 70);
EEPROM.writeByte(EE_BYTE_HIGHCUTOFFSET, 0);
EEPROM.writeInt(EE_INT_LEVELOFFSET, 0);
EEPROM.writeInt(EE_BYTE_LEVELOFFSET, 0);
EEPROM.writeByte(EE_BYTE_EDGEBEEP, 0);
EEPROM.writeByte(EE_BYTE_SOFTMUTEAM, 0);
EEPROM.writeByte(EE_BYTE_SOFTMUTEFM, 0);
EEPROM.writeUInt(EE_UINT_FREQUENCY_AM, 828);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, 828);
EEPROM.writeByte(EE_BYTE_LANGUAGE, 0);
EEPROM.writeByte(EE_BYTE_SHOWRDSERRORS, 1);
EEPROM.writeByte(EE_BYTE_TEF, 0);
@@ -5997,7 +6000,7 @@ void DefaultSettings() {
EEPROM.writeByte(EE_BYTE_IMSSET, 1);
EEPROM.writeByte(EE_BYTE_EQSET, 1);
EEPROM.writeByte(EE_BYTE_BAND, 0);
EEPROM.writeInt(EE_INT_LOWLEVELSET, -10);
EEPROM.writeInt(EE_BYTE_LOWLEVELSET, -10);
EEPROM.writeByte(EE_BYTE_MEMORYPOS, 0);
EEPROM.writeByte(EE_BYTE_REGION, 0);
EEPROM.writeByte(EE_BYTE_RDS_UNDERSCORE, 0);
@@ -6009,9 +6012,9 @@ void DefaultSettings() {
EEPROM.writeByte(EE_BYTE_RDS_PIERRORS, 0);
for (int i = 0; i < EE_PRESETS_CNT; i++) EEPROM.writeByte(i + EE_PRESETS_BAND_START, BAND_FM);
for (int i = 0; i < EE_PRESETS_CNT; i++) EEPROM.writeUInt((i * 4) + EE_PRESETS_START, EE_PRESETS_FREQUENCY);
EEPROM.writeUInt(EE_UINT_FREQUENCY_LW, 180);
EEPROM.writeUInt(EE_UINT_FREQUENCY_MW, 540);
EEPROM.writeUInt(EE_UINT_FREQUENCY_SW, 1800);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_LW, 180);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_MW, 540);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_SW, 1800);
EEPROM.writeString(EE_STRING_XDRGTK_KEY, "password");
EEPROM.writeByte(EE_BYTE_SHOWSQUELCH, 1);
EEPROM.writeByte(EE_BYTE_SHOWMODULATION, 1);
@@ -6019,15 +6022,16 @@ void DefaultSettings() {
EEPROM.writeByte(EE_BYTE_FM_NB, 0);
EEPROM.writeByte(EE_BYTE_AUDIOMODE, 0);
EEPROM.writeByte(EE_BYTE_OIRT, 0);
EEPROM.writeUInt(EE_UINT_LOWEDGEOIRTSET, 0);
EEPROM.writeUInt(EE_UINT_HIGHEDGEOIRTSET, 0);
EEPROM.writeUInt(EE_UINT16_LOWEDGEOIRTSET, 0);
EEPROM.writeUInt(EE_UINT16_HIGHEDGEOIRTSET, 0);
EEPROM.writeByte(EE_BYTE_COLORINVERT, 0);
EEPROM.writeByte(EE_BYTE_POWEROPTIONS, 0);
EEPROM.writeByte(EE_BYTE_CURRENTTHEME, 0);
EEPROM.writeByte(EE_BYTE_FMDEFAULTSTEPSIZE, 0);
EEPROM.writeByte(EE_BYTE_SCREENSAVERSET, 0);
EEPROM.writeInt(EE_INT_AMLEVELOFFSET, 0);
EEPROM.writeInt(EE_INT16_AMLEVELOFFSET, 0);
EEPROM.writeByte(EE_BYTE_UNIT, 0);
EEPROM.writeByte(EE_BYTE_AF, 0);
EEPROM.writeByte(EE_BYTE_STEREO, 1);
EEPROM.commit();
}
+16 -15
View File
@@ -95,23 +95,24 @@
// EEPROM index defines
#define EE_PRESETS_CNT 30
#define EE_CHECKBYTE_VALUE 34 // 0 ~ 255,add new entry, change for new value
#define EE_CHECKBYTE_VALUE 36 // 0 ~ 255,add new entry, change for new value
#define EE_TOTAL_CNT 269
#define EE_UINT_FREQUENCY_FM 0
#define EE_INT_VOLSET 4
#define EE_UINT_CONVERTERSET 8
#define EE_UINT_FMLOWEDGESET 12
#define EE_UINT_FMHIGHEDGESET 16
#define EE_UINT16_FREQUENCY_FM 0
#define EE_BYTE_VOLSET 4
#define EE_BYTE_STEREO 5
#define EE_UINT16_CONVERTERSET 8
#define EE_UINT16_FMLOWEDGESET 12
#define EE_UINT16_FMHIGHEDGESET 16
#define EE_BYTE_CONTRASTSET 20
#define EE_BYTE_STEREOLEVEL 21
#define EE_BYTE_HIGHCUTLEVEL 22
#define EE_BYTE_HIGHCUTOFFSET 23
#define EE_INT_LEVELOFFSET 24
#define EE_BYTE_LEVELOFFSET 24
#define EE_BYTE_EDGEBEEP 28
#define EE_BYTE_SOFTMUTEAM 29
#define EE_BYTE_SOFTMUTEFM 30
#define EE_UINT_FREQUENCY_AM 31
#define EE_UINT16_FREQUENCY_AM 31
#define EE_BYTE_LANGUAGE 35
#define EE_BYTE_SHOWRDSERRORS 36
#define EE_BYTE_TEF 37
@@ -124,7 +125,7 @@
#define EE_BYTE_IMSSET 44
#define EE_BYTE_EQSET 45
#define EE_BYTE_BAND 46
#define EE_INT_LOWLEVELSET 47
#define EE_BYTE_LOWLEVELSET 47
#define EE_BYTE_MEMORYPOS 51
#define EE_BYTE_REGION 52
#define EE_BYTE_RDS_UNDERSCORE 53
@@ -138,9 +139,9 @@
#define EE_PRESETS_START 100
#define EE_PRESETS_FREQUENCY 8750
#define EE_UINT_FREQUENCY_LW 221
#define EE_UINT_FREQUENCY_MW 225
#define EE_UINT_FREQUENCY_SW 229
#define EE_UINT16_FREQUENCY_LW 221
#define EE_UINT16_FREQUENCY_MW 225
#define EE_UINT16_FREQUENCY_SW 229
#define EE_STRING_XDRGTK_KEY 233 // 11 byte
#define EE_BYTE_SHOWSQUELCH 244
#define EE_BYTE_SHOWMODULATION 245
@@ -148,14 +149,14 @@
#define EE_BYTE_FM_NB 247
#define EE_BYTE_AUDIOMODE 248
#define EE_BYTE_OIRT 249
#define EE_UINT_LOWEDGEOIRTSET 250
#define EE_UINT_HIGHEDGEOIRTSET 254
#define EE_UINT16_LOWEDGEOIRTSET 250
#define EE_UINT16_HIGHEDGEOIRTSET 254
#define EE_BYTE_COLORINVERT 258
#define EE_BYTE_POWEROPTIONS 259
#define EE_BYTE_CURRENTTHEME 260
#define EE_BYTE_FMDEFAULTSTEPSIZE 261
#define EE_BYTE_SCREENSAVERSET 262
#define EE_INT_AMLEVELOFFSET 263
#define EE_INT16_AMLEVELOFFSET 263
#define EE_BYTE_UNIT 267
#define EE_BYTE_AF 268
// End of EEPROM index defines