Merge branch 'main' into New_Model_DP_666

This commit is contained in:
Leon
2024-05-11 11:12:41 +08:00
9 changed files with 16756 additions and 16592 deletions
+131 -76
View File
@@ -66,6 +66,7 @@ bool afpage;
bool afscreen;
bool aftest;
bool artheadold;
bool autosquelch = true;
bool batterydetect = true;
bool beepresetstart;
bool beepresetstop;
@@ -374,6 +375,7 @@ unsigned int SWLowEdgeSet;
unsigned long afticker;
unsigned long aftickerhold;
unsigned long aftimer;
unsigned long autosquelchtimer;
unsigned long eonticker;
unsigned long eontickerhold;
unsigned long flashingtimer;
@@ -515,6 +517,7 @@ void setup() {
scanmem = EEPROM.readByte(EE_BYTE_SCANMEM);
scancancel = EEPROM.readByte(EE_BYTE_SCANCANCEL);
scanmute = EEPROM.readByte(EE_BYTE_SCANMUTE);
autosquelch = EEPROM.readByte(EE_BYTE_AUTOSQUELCH);
if (spispeed == SPI_SPEED_DEFAULT) {
tft.setSPISpeed(SPI_FREQUENCY / 1000000);
@@ -2079,8 +2082,8 @@ void SelectBand() {
case BAND_LW: freqold = frequency_LW; frequency_AM = frequency_LW; break;
case BAND_MW: freqold = frequency_MW; frequency_AM = frequency_MW; break;
case BAND_SW: freqold = frequency_SW; frequency_AM = frequency_SW; break;
#ifdef HAS_AIR_BAND
case BAND_AIR: freqold = frequency_AIR; frequency_AM = frequency_AIR;break;
#ifdef HAS_AIR_BAND
case BAND_AIR: freqold = frequency_AIR; frequency_AM = frequency_AIR; break;
#endif
}
LimitAMFrequency();
@@ -3219,38 +3222,136 @@ void ShowModLevel() {
}
}
void showAutoSquelch(bool mode) {
if (language == LANGUAGE_CHS) SquelchSprite.loadFont(FONT16_CHS); else SquelchSprite.loadFont(FONT16);
if (mode) {
SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
} else {
SquelchSprite.setTextColor(BackgroundColor, BackgroundColor, false);
}
SquelchSprite.fillSprite(BackgroundColor);
SquelchSprite.drawString(String(myLanguage[language][86]), 0, 0);
SquelchSprite.pushSprite(235, 145);
}
void doSquelch() {
if (!XDRGTKUSB && !XDRGTKTCP && usesquelch) Squelch = analogRead(PIN_POT) / 4 - 100;
if (!XDRGTKUSB && !XDRGTKTCP && usesquelch && !autosquelch) Squelch = analogRead(PIN_POT) / 4 - 100;
if (unit == 0) SquelchShow = Squelch / 10;
if (unit == 1) SquelchShow = ((Squelch * 100) + 10875) / 1000;
if (unit == 2) SquelchShow = round((float(Squelch) / 10.0 - 10.0 * log10(75) - 90.0) * 10.0) / 10;
if (Squelch > 920) Squelch = 920;
if (language == LANGUAGE_CHS) SquelchSprite.loadFont(FONT16_CHS); else SquelchSprite.loadFont(FONT16);
if (!XDRGTKUSB && !XDRGTKTCP && usesquelch && (!scandxmode || (scandxmode && !scanmute))) {
if (!screenmute && usesquelch && !advancedRDS && !afscreen) {
if (!menu && (Squelch > Squelchold + 2 || Squelch < Squelchold - 2)) {
SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
SquelchSprite.fillSprite(BackgroundColor);
if (Squelch == -100) {
SquelchSprite.drawString(String(myLanguage[language][33]), 0, 0);
} else if (Squelch == 920) {
SquelchSprite.drawString("ST", 0, 0);
} else {
SquelchSprite.drawString(String(SquelchShow), 0, 0);
if (autosquelch) {
if (band < BAND_GAP) {
if ((USN < fmscansens * 30) && (WAM < 230) && (OStatus < 100 && OStatus > -100) && (!scandxmode || (scandxmode && !scanmute))) {
if (SQ || BWreset) {
if (!seek) radio.setUnMute();
if (!screenmute && !seek) {
tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
}
autosquelchtimer = millis();
SQ = false;
}
if (Squelch != Squelchold) {
SquelchSprite.pushSprite(235, 145);
} else {
if ((!SQ || BWreset) && (millis() >= autosquelchtimer + 1000)) {
radio.setMute();
if (!screenmute && !seek) {
tft.drawBitmap(92, 4, Speaker, 26, 22, PrimaryColor);
}
autosquelchtimer = millis();
SQ = true;
}
}
Squelchold = Squelch;
} else {
if ((USN < amscansens * 30) && (OStatus < 2 && OStatus > -2) && (!scandxmode || (scandxmode && !scanmute))) {
if (!seek) radio.setUnMute();
if (!screenmute && !seek) {
tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
}
SQ = false;
} else {
radio.setMute();
if (!screenmute && !seek) {
tft.drawBitmap(92, 4, Speaker, 26, 22, PrimaryColor);
}
SQ = true;
}
}
}
} else {
if (language == LANGUAGE_CHS) SquelchSprite.loadFont(FONT16_CHS); else SquelchSprite.loadFont(FONT16);
if ((XDRGTKUSB || XDRGTKTCP) && (!scandxmode || (scandxmode && !scanmute))) {
if (!XDRMute) {
if (Squelch != -1) {
if (!XDRGTKUSB && !XDRGTKTCP && usesquelch && (!scandxmode || (scandxmode && !scanmute))) {
if (!screenmute && usesquelch && !advancedRDS && !afscreen) {
if (!menu && (Squelch > Squelchold + 2 || Squelch < Squelchold - 2)) {
SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
SquelchSprite.fillSprite(BackgroundColor);
if (Squelch == -100) {
SquelchSprite.drawString(String(myLanguage[language][33]), 0, 0);
} else if (Squelch == 920) {
SquelchSprite.drawString("ST", 0, 0);
} else {
SquelchSprite.drawString(String(SquelchShow), 0, 0);
}
if (Squelch != Squelchold) {
SquelchSprite.pushSprite(235, 145);
}
}
Squelchold = Squelch;
}
}
if ((XDRGTKUSB || XDRGTKTCP) && (!scandxmode || (scandxmode && !scanmute))) {
if (!XDRMute) {
if (Squelch != -1) {
if (Squelch < SStatus || Squelch == -100 || Squelch == 0) {
if (!seek) radio.setUnMute();
if (!screenmute && !seek) {
tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
}
SQ = false;
} else {
radio.setMute();
if (!screenmute && !seek) {
tft.drawBitmap(92, 4, Speaker, 26, 22, PrimaryColor);
}
SQ = true;
}
} else {
if (Stereostatus) {
radio.setUnMute();
if (!screenmute && !seek) {
tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
}
SQ = false;
} else {
radio.setMute();
if (!screenmute && !seek) {
tft.drawBitmap(92, 4, Speaker, 26, 22, PrimaryColor);
}
SQ = true;
}
}
if (!screenmute && usesquelch && !advancedRDS && !afscreen) {
if (Squelch != Squelchold) {
SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
SquelchSprite.fillSprite(BackgroundColor);
if (Squelch == -1) {
SquelchSprite.drawString("ST", 0, 0);
} else if (Squelch == 0) {
SquelchSprite.drawString(String(myLanguage[language][33]), 0, 0);
} else {
SquelchSprite.drawString(String(SquelchShow), 0, 0);
}
if (Squelch != Squelchold) {
SquelchSprite.pushSprite(235, 145);
}
Squelchold = Squelch;
}
}
}
} else if (usesquelch && (!scandxmode || (scandxmode && !scanmute))) {
if (Squelch != 920) {
if (Squelch < SStatus || Squelch == -100 || Squelch == 0) {
if (!seek) radio.setUnMute();
if (!screenmute && !seek) {
@@ -3266,7 +3367,7 @@ void doSquelch() {
}
} else {
if (Stereostatus) {
radio.setUnMute();
if (!seek) radio.setUnMute();
if (!screenmute && !seek) {
tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
}
@@ -3279,54 +3380,6 @@ void doSquelch() {
SQ = true;
}
}
if (!screenmute && usesquelch && !advancedRDS && !afscreen) {
if (Squelch != Squelchold) {
SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
SquelchSprite.fillSprite(BackgroundColor);
if (Squelch == -1) {
SquelchSprite.drawString("ST", 0, 0);
} else if (Squelch == 0) {
SquelchSprite.drawString(String(myLanguage[language][33]), 0, 0);
} else {
SquelchSprite.drawString(String(SquelchShow), 0, 0);
}
if (Squelch != Squelchold) {
SquelchSprite.pushSprite(235, 145);
}
Squelchold = Squelch;
}
}
}
} else if (usesquelch && (!scandxmode || (scandxmode && !scanmute))) {
if (Squelch != 920) {
if (Squelch < SStatus || Squelch == -100 || Squelch == 0) {
if (!seek) radio.setUnMute();
if (!screenmute && !seek) {
tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
}
SQ = false;
} else {
radio.setMute();
if (!screenmute && !seek) {
tft.drawBitmap(92, 4, Speaker, 26, 22, PrimaryColor);
}
SQ = true;
}
} else {
if (Stereostatus) {
if (!seek) radio.setUnMute();
if (!screenmute && !seek) {
tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
}
SQ = false;
} else {
radio.setMute();
if (!screenmute && !seek) {
tft.drawBitmap(92, 4, Speaker, 26, 22, PrimaryColor);
}
SQ = true;
}
}
}
SquelchSprite.unloadFont();
@@ -3684,7 +3737,7 @@ void TuneUp() {
unsigned int temp = 0;
if (stepsize == 0) {
if (band > BAND_GAP) {
if (frequency_AM < MWHighEdgeSet && frequency_AM > MWLowEdgeSet) {
if (frequency_AM <= MWHighEdgeSet && frequency_AM >= MWLowEdgeSet) {
if (!mwstepsize) {
temp = FREQ_MW_STEP_9K;
frequency_AM = (frequency_AM / FREQ_MW_STEP_9K) * FREQ_MW_STEP_9K;
@@ -3701,7 +3754,7 @@ void TuneUp() {
}
#ifdef HAS_AIR_BAND
else if (frequency_AM < AIRHighEdgeSet && frequency_AM > AIRLowEdgeSet) {
if (airstepsize == 0) temp = FREQ_AIR_STEP_25K;
else temp = FREQ_AIR_STEP_8K33;
}
@@ -3987,7 +4040,7 @@ void MuteScreen(bool setting) {
tft.writecommand(0x11);
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
if (band < BAND_GAP) {
if (afscreen) BuildAFScreen();
if (afscreen) BuildAFScreen();
else if (advancedRDS) BuildAdvancedRDS();
else BuildDisplay();
} else {
@@ -4021,7 +4074,7 @@ void DefaultSettings(byte userhardwaremodel) {
EEPROM.writeByte(EE_BYTE_SOFTMUTEAM, 0);
EEPROM.writeByte(EE_BYTE_SOFTMUTEFM, 0);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, 828);
if (userhardwaremodel == BASE_ILI9341) EEPROM.writeByte(EE_BYTE_LANGUAGE, 0); else EEPROM.writeByte(EE_BYTE_LANGUAGE, LANGUAGE_CHS);
EEPROM.writeByte(EE_BYTE_LANGUAGE, 0);
EEPROM.writeByte(EE_BYTE_SHOWRDSERRORS, 1);
EEPROM.writeByte(EE_BYTE_TEF, 0);
if (userhardwaremodel == BASE_ILI9341) EEPROM.writeByte(EE_BYTE_DISPLAYFLIP, 0); else EEPROM.writeByte(EE_BYTE_DISPLAYFLIP, 1);
@@ -4101,6 +4154,7 @@ void DefaultSettings(byte userhardwaremodel) {
EEPROM.writeByte(EE_BYTE_SCANMEM, 1);
EEPROM.writeByte(EE_BYTE_SCANCANCEL, 0);
EEPROM.writeByte(EE_BYTE_SCANMUTE, 0);
EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, 0);
for (int i = 0; i < EE_PRESETS_CNT; i++) {
EEPROM.writeByte(i + EE_PRESETS_BAND_START, BAND_FM);
@@ -4330,6 +4384,7 @@ void endMenu() {
EEPROM.writeByte(EE_BYTE_SCANMEM, scanmem);
EEPROM.writeByte(EE_BYTE_SCANCANCEL, scancancel);
EEPROM.writeByte(EE_BYTE_SCANMUTE, scanmute);
EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, autosquelch);
EEPROM.commit();
if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false;
Serial.end();