Fixed signalmeter

Was not able to show negative values.
This commit is contained in:
Sjef Verhoeven PE5PVB
2023-06-17 18:37:45 +02:00
parent 3d9d119b5b
commit be09eb8907
+20 -31
View File
@@ -561,22 +561,14 @@ void loop() {
if (SStatus > SStatusold || SStatus < SStatusold) { if (SStatus > SStatusold || SStatus < SStatusold) {
tft.setFreeFont(FONT24); tft.setFreeFont(FONT24);
tft.setTextColor(TFT_BLACK); tft.setTextColor(TFT_BLACK);
tft.drawRightString(String(abs(SStatusold / 10)), 150, 146, GFXFF); if (SStatus / 10 != SStatusold / 10) tft.drawRightString(String(SStatusold / 10), 150, 146, GFXFF);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
if (SStatusold < 0) { tft.drawString("." + String(abs(SStatusold % 10)), 156, 137, GFXFF);
if (SStatusold % 10 == 0) tft.drawString(".0", 156, 137, GFXFF); else tft.drawString("." + String(String (SStatusold % 10, DEC)[1]), 156, 137, GFXFF);
} else {
tft.drawString("." + String(SStatusold % 10), 156, 137, GFXFF);
}
tft.setFreeFont(FONT24); tft.setFreeFont(FONT24);
tft.setTextColor(TFT_SKYBLUE); tft.setTextColor(TFT_SKYBLUE);
tft.drawRightString(String(abs(SStatus / 10)), 150, 146, GFXFF); tft.drawRightString(String(SStatus / 10), 150, 146, GFXFF);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
if (SStatus < 0) { tft.drawString("." + String(abs(SStatus % 10)), 156, 137, GFXFF);
if (SStatus % 10 == 0) tft.drawString(".0", 156, 137, GFXFF); else tft.drawString("." + String(String (SStatus % 10, DEC)[1]), 156, 137, GFXFF);
} else {
tft.drawString("." + String(SStatus % 10), 156, 137, GFXFF);
}
SStatusold = SStatus; SStatusold = SStatus;
} }
} }
@@ -2171,10 +2163,10 @@ void BuildDisplay() {
SStatusold = 2000; SStatusold = 2000;
SStatus = 100; SStatus = 100;
rds_clockold = ""; rds_clockold = "";
strcpy(programTypePrevious, ""); strcpy(programTypePrevious, "0");
strcpy(radioIdPrevious, ""); strcpy(radioIdPrevious, "0");
programServicePrevious = ""; programServicePrevious = "0";
radioTextPrevious = ""; radioTextPrevious = "0";
} }
void ShowFreq(int mode) { void ShowFreq(int mode) {
@@ -2191,9 +2183,8 @@ void ShowFreq(int mode) {
if (band != BAND_FM ) { if (band != BAND_FM ) {
unsigned int freq = frequency_AM; unsigned int freq = frequency_AM;
String count = String(freq, DEC); String count = String(freq, DEC);
if (count.length() != freqoldcount || mode != 0) { if (setupmode == false && count.length() != freqoldcount || mode != 0) {
tft.setTextColor(TFT_BLACK); tft.setTextColor(TFT_BLACK);
tft.drawRightString(String(freqold), 248, 45, 7); tft.drawRightString(String(freqold), 248, 45, 7);
} }
tft.setTextColor(TFT_YELLOW, TFT_BLACK); tft.setTextColor(TFT_YELLOW, TFT_BLACK);
@@ -2203,7 +2194,7 @@ void ShowFreq(int mode) {
} else { } else {
unsigned int freq = frequency + ConverterSet * 100; unsigned int freq = frequency + ConverterSet * 100;
String count = String(freq / 100, DEC); String count = String(freq / 100, DEC);
if (count.length() != freqoldcount || mode != 0) { if (setupmode == false && count.length() != freqoldcount || mode != 0) {
tft.setTextColor(TFT_BLACK); tft.setTextColor(TFT_BLACK);
if (freqoldcount <= 2) tft.setCursor (108, 45); if (freqoldcount <= 2) tft.setCursor (108, 45);
if (freqoldcount == 3) tft.setCursor (76, 45); if (freqoldcount == 3) tft.setCursor (76, 45);
@@ -2244,6 +2235,10 @@ void ShowFreq(int mode) {
attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A), read_encoder, CHANGE); attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A), read_encoder, CHANGE);
attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B), read_encoder, CHANGE); attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B), read_encoder, CHANGE);
} }
strcpy(programTypePrevious, "0");
strcpy(radioIdPrevious, "0");
programServicePrevious = "0";
radioTextPrevious = "0";
} }
void ShowSignalLevel() { void ShowSignalLevel() {
@@ -2290,22 +2285,14 @@ void ShowSignalLevel() {
if (SStatus < -400) SStatus = -400; if (SStatus < -400) SStatus = -400;
tft.setFreeFont(FONT24); tft.setFreeFont(FONT24);
tft.setTextColor(TFT_BLACK); tft.setTextColor(TFT_BLACK);
tft.drawRightString(String(abs(SStatusold / 10)), 290, 106, GFXFF); if (SStatusold / 10 != SStatus / 10) tft.drawRightString(String(SStatusold / 10), 290, 106, GFXFF);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
if (SStatusold < 0) { tft.drawString("." + String(abs(SStatusold % 10)), 296, 97, GFXFF);
if (SStatusold % 10 == 0) tft.drawString(".0", 296, 97, GFXFF); else tft.drawString("." + String(String (SStatusold % 10, DEC)[1]), 296, 97, GFXFF);
} else {
tft.drawString("." + String(SStatusold % 10), 296, 97, GFXFF);
}
tft.setFreeFont(FONT24); tft.setFreeFont(FONT24);
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
tft.drawRightString(String(abs(SStatus / 10)), 290, 106, GFXFF); tft.drawRightString(String(SStatus / 10), 290, 106, GFXFF);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
if (SStatus < 0) { tft.drawString("." + String(abs(SStatus % 10)), 296, 97, GFXFF);
if (SStatus % 10 == 0) tft.drawString(".0", 296, 97, GFXFF); else tft.drawString("." + String(String (SStatus % 10, DEC)[1]), 296, 97, GFXFF);
} else {
tft.drawString("." + String(SStatus % 10), 296, 97, GFXFF);
}
if (band == BAND_FM) segments = (SStatus + 200) / 10; else segments = (SStatus + 200) / 10; if (band == BAND_FM) segments = (SStatus + 200) / 10; else segments = (SStatus + 200) / 10;
@@ -3074,6 +3061,7 @@ void XDRGTKRoutine() {
radio.clearRDS(fullsearchrds); radio.clearRDS(fullsearchrds);
RDSstatus = 0; RDSstatus = 0;
} }
store == true;
break; break;
case 'T': case 'T':
@@ -3120,6 +3108,7 @@ void XDRGTKRoutine() {
ShowFreq(0); ShowFreq(0);
radio.clearRDS(fullsearchrds); radio.clearRDS(fullsearchrds);
RDSstatus = 0; RDSstatus = 0;
store == true;
break; break;
case 'Q': case 'Q':