Added AF-REG
This commit is contained in:
+6
-3
@@ -45,7 +45,6 @@ TFT_eSPI tft = TFT_eSPI(240, 320);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool advancedRDS;
|
bool advancedRDS;
|
||||||
bool af;
|
|
||||||
bool afmethodBold;
|
bool afmethodBold;
|
||||||
bool afpage;
|
bool afpage;
|
||||||
bool afscreen;
|
bool afscreen;
|
||||||
@@ -108,6 +107,7 @@ bool XDRGTKUSB;
|
|||||||
bool XDRMute;
|
bool XDRMute;
|
||||||
byte af_counterold;
|
byte af_counterold;
|
||||||
byte aid_counterold;
|
byte aid_counterold;
|
||||||
|
byte af;
|
||||||
byte afpagenr;
|
byte afpagenr;
|
||||||
byte amnb;
|
byte amnb;
|
||||||
byte audiomode;
|
byte audiomode;
|
||||||
@@ -716,12 +716,13 @@ void loop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!menu && !afscreen) {
|
if (!menu && !afscreen) {
|
||||||
if (af && dropout && millis() >= aftimer + 1000) {
|
if (af != 0 && dropout && millis() >= aftimer + 1000) {
|
||||||
aftimer = millis();
|
aftimer = millis();
|
||||||
frequency = radio.TestAF();
|
frequency = radio.TestAF();
|
||||||
if (freqold != frequency) {
|
if (freqold != frequency) {
|
||||||
ShowFreq(0);
|
ShowFreq(0);
|
||||||
if (radio.afmethodB) {
|
if (radio.afmethodB) {
|
||||||
|
if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false;
|
||||||
afmethodBold = true;
|
afmethodBold = true;
|
||||||
radio.clearRDS(fullsearchrds);
|
radio.clearRDS(fullsearchrds);
|
||||||
}
|
}
|
||||||
@@ -730,7 +731,7 @@ void loop() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (band == BAND_FM && af && radio.rds.correctPI != 0) {
|
if (band == BAND_FM && af != 0 && radio.rds.correctPI != 0) {
|
||||||
if ((aftest && millis() >= aftimer + 3000) || ((USN > 250 || WAM > 250) && millis() >= aftimer + 1000)) {
|
if ((aftest && millis() >= aftimer + 3000) || ((USN > 250 || WAM > 250) && millis() >= aftimer + 1000)) {
|
||||||
aftimer = millis();
|
aftimer = millis();
|
||||||
aftest = false;
|
aftest = false;
|
||||||
@@ -738,6 +739,7 @@ void loop() {
|
|||||||
if (freqold != frequency) {
|
if (freqold != frequency) {
|
||||||
ShowFreq(0);
|
ShowFreq(0);
|
||||||
if (radio.afmethodB) {
|
if (radio.afmethodB) {
|
||||||
|
if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false;
|
||||||
afmethodBold = true;
|
afmethodBold = true;
|
||||||
radio.clearRDS(fullsearchrds);
|
radio.clearRDS(fullsearchrds);
|
||||||
}
|
}
|
||||||
@@ -753,6 +755,7 @@ void loop() {
|
|||||||
if (freqold != frequency) {
|
if (freqold != frequency) {
|
||||||
ShowFreq(0);
|
ShowFreq(0);
|
||||||
if (radio.afmethodB) {
|
if (radio.afmethodB) {
|
||||||
|
if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false;
|
||||||
afmethodBold = true;
|
afmethodBold = true;
|
||||||
radio.clearRDS(fullsearchrds);
|
radio.clearRDS(fullsearchrds);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -97,7 +97,7 @@ uint16_t TEF6686::TestAF() {
|
|||||||
delay(200);
|
delay(200);
|
||||||
devTEF_Radio_Get_RDS_Status(&rds.rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr);
|
devTEF_Radio_Get_RDS_Status(&rds.rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr);
|
||||||
if (rds.rdsStat & (1 << 9)) {
|
if (rds.rdsStat & (1 << 9)) {
|
||||||
if (rds.rdsA == rds.correctPI && (((rds.rdsErr >> 14) & 0x03) == 0)) {
|
if ((afmethodB && rds.afreg && ((rds.rdsA >> 8) & 0x0F) == (rds.correctPI & 0x0F) || !afmethodB && rds.rdsA == rds.correctPI) && (((rds.rdsErr >> 14) & 0x03) == 0)) {
|
||||||
currentfreq = af[highestIndex].frequency;
|
currentfreq = af[highestIndex].frequency;
|
||||||
for (byte y = 0; y < 50; y++) {
|
for (byte y = 0; y < 50; y++) {
|
||||||
af[y].frequency = 0;
|
af[y].frequency = 0;
|
||||||
|
|||||||
@@ -577,6 +577,7 @@ typedef struct _rds_ {
|
|||||||
bool sortaf;
|
bool sortaf;
|
||||||
bool fastps;
|
bool fastps;
|
||||||
bool rtbuffer = true;
|
bool rtbuffer = true;
|
||||||
|
bool afreg;
|
||||||
} rds_;
|
} rds_;
|
||||||
|
|
||||||
typedef struct _af_ {
|
typedef struct _af_ {
|
||||||
|
|||||||
+38
-8
@@ -474,7 +474,13 @@ void BuildMenu() {
|
|||||||
if (radio.rds.underscore) tftPrint(1, myLanguage[language][42], 310, ITEM3 + 6, PrimaryColor, PrimaryColorSmooth, 16); else tftPrint(1, myLanguage[language][30], 310, ITEM3 + 6, PrimaryColor, PrimaryColorSmooth, 16);
|
if (radio.rds.underscore) tftPrint(1, myLanguage[language][42], 310, ITEM3 + 6, PrimaryColor, PrimaryColorSmooth, 16); else tftPrint(1, myLanguage[language][30], 310, ITEM3 + 6, PrimaryColor, PrimaryColorSmooth, 16);
|
||||||
if (radio.rds.filter) tftPrint(1, myLanguage[language][42], 310, ITEM4 + 6, PrimaryColor, PrimaryColorSmooth, 16); else tftPrint(1, myLanguage[language][30], 310, ITEM4 + 6, PrimaryColor, PrimaryColorSmooth, 16);
|
if (radio.rds.filter) tftPrint(1, myLanguage[language][42], 310, ITEM4 + 6, PrimaryColor, PrimaryColorSmooth, 16); else tftPrint(1, myLanguage[language][30], 310, ITEM4 + 6, PrimaryColor, PrimaryColorSmooth, 16);
|
||||||
if (radio.rds.pierrors) tftPrint(1, myLanguage[language][42], 310, ITEM5 + 6, PrimaryColor, PrimaryColorSmooth, 16); else tftPrint(1, myLanguage[language][30], 310, ITEM5 + 6, PrimaryColor, PrimaryColorSmooth, 16);
|
if (radio.rds.pierrors) tftPrint(1, myLanguage[language][42], 310, ITEM5 + 6, PrimaryColor, PrimaryColorSmooth, 16); else tftPrint(1, myLanguage[language][30], 310, ITEM5 + 6, PrimaryColor, PrimaryColorSmooth, 16);
|
||||||
if (af) tftPrint(1, myLanguage[language][42], 310, ITEM6 + 6, PrimaryColor, PrimaryColorSmooth, 16); else tftPrint(1, myLanguage[language][30], 310, ITEM6 + 6, PrimaryColor, PrimaryColorSmooth, 16);
|
|
||||||
|
switch (af) {
|
||||||
|
case 0: tftPrint(1, myLanguage[language][30], 310, ITEM6 + 6, PrimaryColor, PrimaryColorSmooth, 16); break;
|
||||||
|
case 1: tftPrint(1, myLanguage[language][42], 310, ITEM6 + 6, PrimaryColor, PrimaryColorSmooth, 16); break;
|
||||||
|
case 2: tftPrint(1, "AF REG", 310, ITEM6 + 6, PrimaryColor, PrimaryColorSmooth, 16); break;
|
||||||
|
}
|
||||||
|
|
||||||
if (radio.rds.rtbuffer) tftPrint(1, myLanguage[language][42], 310, ITEM7 + 6, PrimaryColor, PrimaryColorSmooth, 16); else tftPrint(1, myLanguage[language][30], 310, ITEM7 + 6, PrimaryColor, PrimaryColorSmooth, 16);
|
if (radio.rds.rtbuffer) tftPrint(1, myLanguage[language][42], 310, ITEM7 + 6, PrimaryColor, PrimaryColorSmooth, 16); else tftPrint(1, myLanguage[language][30], 310, ITEM7 + 6, PrimaryColor, PrimaryColorSmooth, 16);
|
||||||
if (radio.rds.sortaf) tftPrint(1, myLanguage[language][42], 310, ITEM8 + 6, PrimaryColor, PrimaryColorSmooth, 16); else tftPrint(1, myLanguage[language][30], 310, ITEM8 + 6, PrimaryColor, PrimaryColorSmooth, 16);
|
if (radio.rds.sortaf) tftPrint(1, myLanguage[language][42], 310, ITEM8 + 6, PrimaryColor, PrimaryColorSmooth, 16); else tftPrint(1, myLanguage[language][30], 310, ITEM8 + 6, PrimaryColor, PrimaryColorSmooth, 16);
|
||||||
if (radio.rds.fastps) tftPrint(1, myLanguage[language][42], 310, ITEM9 + 6, PrimaryColor, PrimaryColorSmooth, 16); else tftPrint(1, myLanguage[language][30], 310, ITEM9 + 6, PrimaryColor, PrimaryColorSmooth, 16);
|
if (radio.rds.fastps) tftPrint(1, myLanguage[language][42], 310, ITEM9 + 6, PrimaryColor, PrimaryColorSmooth, 16); else tftPrint(1, myLanguage[language][30], 310, ITEM9 + 6, PrimaryColor, PrimaryColorSmooth, 16);
|
||||||
@@ -1097,9 +1103,19 @@ void MenuUp() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ITEM6:
|
case ITEM6:
|
||||||
if (af) tftPrint(0, myLanguage[language][42], 155, 118, BackgroundColor, BackgroundColor, 28); else tftPrint(0, myLanguage[language][30], 155, 118, BackgroundColor, BackgroundColor, 28);
|
switch (af) {
|
||||||
if (af) af = false; else af = true;
|
case 0: tftPrint(0, myLanguage[language][30], 155, 118, BackgroundColor, BackgroundColor, 28); break;
|
||||||
if (af) tftPrint(0, myLanguage[language][42], 155, 118, PrimaryColor, PrimaryColorSmooth, 28); else tftPrint(0, myLanguage[language][30], 155, 118, PrimaryColor, PrimaryColorSmooth, 28);
|
case 1: tftPrint(0, myLanguage[language][42], 155, 118, BackgroundColor, BackgroundColor, 28); break;
|
||||||
|
case 2: tftPrint(0, "AF REG", 155, 118, BackgroundColor, BackgroundColor, 28); break;
|
||||||
|
}
|
||||||
|
af++;
|
||||||
|
if (af > 2) af = 0;
|
||||||
|
|
||||||
|
switch (af) {
|
||||||
|
case 0: tftPrint(0, myLanguage[language][30], 155, 118, PrimaryColor, PrimaryColorSmooth, 28); break;
|
||||||
|
case 1: tftPrint(0, myLanguage[language][42], 155, 118, PrimaryColor, PrimaryColorSmooth, 28); break;
|
||||||
|
case 2: tftPrint(0, "AF REG", 155, 118, PrimaryColor, PrimaryColorSmooth, 28); break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ITEM7:
|
case ITEM7:
|
||||||
@@ -1625,9 +1641,19 @@ void MenuDown() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ITEM6:
|
case ITEM6:
|
||||||
if (af) tftPrint(0, myLanguage[language][42], 155, 118, BackgroundColor, BackgroundColor, 28); else tftPrint(0, myLanguage[language][30], 155, 118, BackgroundColor, BackgroundColor, 28);
|
switch (af) {
|
||||||
if (af) af = false; else af = true;
|
case 0: tftPrint(0, myLanguage[language][30], 155, 118, BackgroundColor, BackgroundColor, 28); break;
|
||||||
if (af) tftPrint(0, myLanguage[language][42], 155, 118, PrimaryColor, PrimaryColorSmooth, 28); else tftPrint(0, myLanguage[language][30], 155, 118, PrimaryColor, PrimaryColorSmooth, 28);
|
case 1: tftPrint(0, myLanguage[language][42], 155, 118, BackgroundColor, BackgroundColor, 28); break;
|
||||||
|
case 2: tftPrint(0, "AF REG", 155, 118, BackgroundColor, BackgroundColor, 28); break;
|
||||||
|
}
|
||||||
|
af--;
|
||||||
|
if (af > 2) af = 2;
|
||||||
|
|
||||||
|
switch (af) {
|
||||||
|
case 0: tftPrint(0, myLanguage[language][30], 155, 118, PrimaryColor, PrimaryColorSmooth, 28); break;
|
||||||
|
case 1: tftPrint(0, myLanguage[language][42], 155, 118, PrimaryColor, PrimaryColorSmooth, 28); break;
|
||||||
|
case 2: tftPrint(0, "AF REG", 155, 118, PrimaryColor, PrimaryColorSmooth, 28); break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ITEM7:
|
case ITEM7:
|
||||||
@@ -2127,7 +2153,11 @@ void DoMenu() {
|
|||||||
|
|
||||||
case ITEM6:
|
case ITEM6:
|
||||||
tftPrint(0, myLanguage[language][99], 155, 78, ActiveColor, ActiveColorSmooth, 28);
|
tftPrint(0, myLanguage[language][99], 155, 78, ActiveColor, ActiveColorSmooth, 28);
|
||||||
if (af) tftPrint(0, myLanguage[language][42], 155, 118, PrimaryColor, PrimaryColorSmooth, 28); else tftPrint(0, myLanguage[language][30], 155, 118, PrimaryColor, PrimaryColorSmooth, 28);
|
switch (af) {
|
||||||
|
case 0: tftPrint(0, myLanguage[language][30], 155, 118, PrimaryColor, PrimaryColorSmooth, 28); break;
|
||||||
|
case 1: tftPrint(0, myLanguage[language][42], 155, 118, PrimaryColor, PrimaryColorSmooth, 28); break;
|
||||||
|
case 2: tftPrint(0, "AF REG", 155, 118, PrimaryColor, PrimaryColorSmooth, 28); break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ITEM7:
|
case ITEM7:
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ extern byte menuitem;
|
|||||||
extern byte items[8];
|
extern byte items[8];
|
||||||
|
|
||||||
extern bool advancedRDS;
|
extern bool advancedRDS;
|
||||||
extern bool af;
|
|
||||||
extern bool afmethodBold;
|
extern bool afmethodBold;
|
||||||
extern bool afpage;
|
extern bool afpage;
|
||||||
extern bool afscreen;
|
extern bool afscreen;
|
||||||
@@ -61,6 +60,7 @@ extern bool TAold;
|
|||||||
extern bool TPold;
|
extern bool TPold;
|
||||||
extern bool USBmode;
|
extern bool USBmode;
|
||||||
extern bool wifi;
|
extern bool wifi;
|
||||||
|
extern byte af;
|
||||||
extern byte af_counterold;
|
extern byte af_counterold;
|
||||||
extern byte afpagenr;
|
extern byte afpagenr;
|
||||||
extern byte amnb;
|
extern byte amnb;
|
||||||
|
|||||||
Reference in New Issue
Block a user