Moved SNR to API
This commit is contained in:
+13
-16
@@ -129,7 +129,7 @@ byte regionold;
|
|||||||
byte rotarymode;
|
byte rotarymode;
|
||||||
byte showmodulation;
|
byte showmodulation;
|
||||||
byte showSWMIBand = 1;
|
byte showSWMIBand = 1;
|
||||||
byte SNR;
|
uint8_t SNR;
|
||||||
byte SNRold;
|
byte SNRold;
|
||||||
byte specialstepOIRT;
|
byte specialstepOIRT;
|
||||||
byte stepsize;
|
byte stepsize;
|
||||||
@@ -679,7 +679,7 @@ void loop() {
|
|||||||
|
|
||||||
if (millis() >= lowsignaltimer + 300) {
|
if (millis() >= lowsignaltimer + 300) {
|
||||||
lowsignaltimer = millis();
|
lowsignaltimer = millis();
|
||||||
if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus);
|
if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||||
if (screenmute == true) readRds();
|
if (screenmute == true) readRds();
|
||||||
if (menu == false) {
|
if (menu == false) {
|
||||||
doSquelch();
|
doSquelch();
|
||||||
@@ -688,7 +688,7 @@ void loop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus);
|
if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||||
if (menu == false) {
|
if (menu == false) {
|
||||||
doSquelch();
|
doSquelch();
|
||||||
readRds();
|
readRds();
|
||||||
@@ -698,7 +698,7 @@ void loop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (menu == true && menuopen == true && menupage == 1 && menuoption == 110) {
|
if (menu == true && menuopen == true && menupage == 1 && menuoption == 110) {
|
||||||
if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus);
|
if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||||
if (millis() >= lowsignaltimer + 500 || change2 == true) {
|
if (millis() >= lowsignaltimer + 500 || change2 == true) {
|
||||||
lowsignaltimer = millis();
|
lowsignaltimer = millis();
|
||||||
change2 = false;
|
change2 = false;
|
||||||
@@ -1379,7 +1379,7 @@ void SelectBand() {
|
|||||||
LimitAMFrequency();
|
LimitAMFrequency();
|
||||||
radio.SetFreqAM(frequency_AM);
|
radio.SetFreqAM(frequency_AM);
|
||||||
doBW;
|
doBW;
|
||||||
radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus);
|
radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||||
if (screenmute == false) radio.clearRDS(fullsearchrds); BuildDisplay();
|
if (screenmute == false) radio.clearRDS(fullsearchrds); BuildDisplay();
|
||||||
tft.setFreeFont(FONT7);
|
tft.setFreeFont(FONT7);
|
||||||
if (region == 0) tft.drawString("PI:", 216, 191, GFXFF);
|
if (region == 0) tft.drawString("PI:", 216, 191, GFXFF);
|
||||||
@@ -1403,7 +1403,7 @@ void SelectBand() {
|
|||||||
radio.SetFreq(frequency);
|
radio.SetFreq(frequency);
|
||||||
freqold = frequency_AM;
|
freqold = frequency_AM;
|
||||||
doBW;
|
doBW;
|
||||||
radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus);
|
radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||||
if (screenmute == false) radio.clearRDS(fullsearchrds); BuildDisplay();
|
if (screenmute == false) radio.clearRDS(fullsearchrds); BuildDisplay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3274,7 +3274,7 @@ void ShowAdvancedRDS() {
|
|||||||
MSold = radio.rds.MS;
|
MSold = radio.rds.MS;
|
||||||
}
|
}
|
||||||
|
|
||||||
rds_clock = ((hour() < 10 ? "0" : "") + String(hour()) + ":" + (minute() < 10 ? "0" : "") + String(minute()));
|
rds_clock = ((hour() < 10 ? "0" : "") + String(hour()) + ":" + (minute() < 10 ? "0" : "") + String(minute()));
|
||||||
if (radio.rds.hasCT == true && rds_clock != rds_clockold) {
|
if (radio.rds.hasCT == true && rds_clock != rds_clockold) {
|
||||||
tft.setFreeFont(FONT7);
|
tft.setFreeFont(FONT7);
|
||||||
tft.setTextColor(BackgroundColor);
|
tft.setTextColor(BackgroundColor);
|
||||||
@@ -4253,9 +4253,6 @@ void ShowFreq(int mode) {
|
|||||||
|
|
||||||
void ShowSignalLevel() {
|
void ShowSignalLevel() {
|
||||||
if (screenmute == false) {
|
if (screenmute == false) {
|
||||||
if (band == BAND_FM) SNR = int(0.46222375 * (float)(SStatus / 10) - 0.082495118 * (float)(USN / 10)) + 10; else SNR = -((int8_t)(USN / 10));
|
|
||||||
if (band != BAND_FM && SNR > 50) SNR = 0;
|
|
||||||
|
|
||||||
if (millis() >= snrupdatetimer + TIMER_SNR_TIMER) {
|
if (millis() >= snrupdatetimer + TIMER_SNR_TIMER) {
|
||||||
snrupdatetimer = millis();
|
snrupdatetimer = millis();
|
||||||
|
|
||||||
@@ -4263,14 +4260,14 @@ void ShowSignalLevel() {
|
|||||||
if (SNR > (SNRold + 1) || SNR < (SNRold - 1)) {
|
if (SNR > (SNRold + 1) || SNR < (SNRold - 1)) {
|
||||||
tft.setFreeFont(FONT7);
|
tft.setFreeFont(FONT7);
|
||||||
tft.setTextColor(BackgroundColor);
|
tft.setTextColor(BackgroundColor);
|
||||||
if (SNRold == 99) tft.drawRightString("--", 294, 164, GFXFF); else tft.drawRightString(String(SNRold), 294, 164, GFXFF);
|
if (SNRold == 0) tft.drawRightString("--", 294, 164, GFXFF); else tft.drawRightString(String(SNRold), 294, 164, GFXFF);
|
||||||
tft.setTextColor(PrimaryColor, BackgroundColor);
|
tft.setTextColor(PrimaryColor, BackgroundColor);
|
||||||
if (tuned == true) {
|
if (tuned == true) {
|
||||||
tft.drawRightString(String(SNR), 294, 164, GFXFF);
|
if (SNR == 0) tft.drawRightString("--", 294, 164, GFXFF); else tft.drawRightString(String(SNR), 294, 164, GFXFF);
|
||||||
SNRold = SNR;
|
SNRold = SNR;
|
||||||
} else {
|
} else {
|
||||||
tft.drawRightString("--", 294, 164, GFXFF);
|
tft.drawRightString("--", 294, 164, GFXFF);
|
||||||
SNRold = 99;
|
SNRold = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5093,7 +5090,7 @@ void Communication() {
|
|||||||
radio.clearRDS(fullsearchrds);
|
radio.clearRDS(fullsearchrds);
|
||||||
freqold = frequency_AM;
|
freqold = frequency_AM;
|
||||||
doBW;
|
doBW;
|
||||||
radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus);
|
radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||||
if (screenmute == false) radio.clearRDS(fullsearchrds); BuildDisplay();
|
if (screenmute == false) radio.clearRDS(fullsearchrds); BuildDisplay();
|
||||||
}
|
}
|
||||||
ShowFreq(0);
|
ShowFreq(0);
|
||||||
@@ -5405,7 +5402,7 @@ void XDRGTKRoutine() {
|
|||||||
DataPrint(String(freq_scan * 10, DEC));
|
DataPrint(String(freq_scan * 10, DEC));
|
||||||
DataPrint(" = ");
|
DataPrint(" = ");
|
||||||
delay(10);
|
delay(10);
|
||||||
if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus);
|
if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||||
DataPrint(String((SStatus / 10) + 10, DEC));
|
DataPrint(String((SStatus / 10) + 10, DEC));
|
||||||
DataPrint(", ");
|
DataPrint(", ");
|
||||||
}
|
}
|
||||||
@@ -5677,7 +5674,7 @@ void Seek(bool mode) {
|
|||||||
delay(50);
|
delay(50);
|
||||||
ShowFreq(0);
|
ShowFreq(0);
|
||||||
if (XDRGTKUSB == true || XDRGTKTCP == true) if (band == BAND_FM) DataPrint("T" + String(frequency * 10) + "\n"); else DataPrint("T" + String(frequency_AM) + "\n");
|
if (XDRGTKUSB == true || XDRGTKTCP == true) if (band == BAND_FM) DataPrint("T" + String(frequency * 10) + "\n"); else DataPrint("T" + String(frequency_AM) + "\n");
|
||||||
radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus);
|
radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||||
|
|
||||||
if ((USN < 200) && (WAM < 230) && (OStatus < 80 && OStatus > -80) && (Squelch < SStatus || Squelch == 920)) {
|
if ((USN < 200) && (WAM < 230) && (OStatus < 80 && OStatus > -80) && (Squelch < SStatus || Squelch == 920)) {
|
||||||
seek = false;
|
seek = false;
|
||||||
|
|||||||
+6
-4
@@ -206,22 +206,24 @@ bool TEF6686::getProcessing(uint16_t &highcut, uint16_t &stereo, uint16_t &sthib
|
|||||||
return stband_4;
|
return stband_4;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TEF6686::getStatus(int16_t &level, uint16_t &USN, uint16_t &WAM, int16_t &offset, uint16_t &bandwidth, uint16_t &modulation) {
|
bool TEF6686::getStatus(int16_t &level, uint16_t &USN, uint16_t &WAM, int16_t &offset, uint16_t &bandwidth, uint16_t &modulation, uint8_t &snr) {
|
||||||
bool result = devTEF_Radio_Get_Quality_Status(&level, &USN, &WAM, &offset, &bandwidth, &modulation);
|
bool result = devTEF_Radio_Get_Quality_Status(&level, &USN, &WAM, &offset, &bandwidth, &modulation, &snr);
|
||||||
return level;
|
return level;
|
||||||
return USN;
|
return USN;
|
||||||
return WAM;
|
return WAM;
|
||||||
return bandwidth;
|
return bandwidth;
|
||||||
return modulation;
|
return modulation;
|
||||||
|
return snr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TEF6686::getStatusAM(int16_t &level, uint16_t &noise, uint16_t &cochannel, int16_t &offset, uint16_t &bandwidth, uint16_t &modulation) {
|
bool TEF6686::getStatusAM(int16_t &level, uint16_t &noise, uint16_t &cochannel, int16_t &offset, uint16_t &bandwidth, uint16_t &modulation, uint8_t &snr) {
|
||||||
bool result = devTEF_Radio_Get_Quality_Status_AM(&level, &noise, &cochannel, &offset, &bandwidth, &modulation);
|
bool result = devTEF_Radio_Get_Quality_Status_AM(&level, &noise, &cochannel, &offset, &bandwidth, &modulation, &snr);
|
||||||
return level;
|
return level;
|
||||||
return noise;
|
return noise;
|
||||||
return cochannel;
|
return cochannel;
|
||||||
return bandwidth;
|
return bandwidth;
|
||||||
return modulation;
|
return modulation;
|
||||||
|
return snr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TEF6686::readRDS(bool showrdserrors)
|
void TEF6686::readRDS(bool showrdserrors)
|
||||||
|
|||||||
+3
-3
@@ -107,7 +107,7 @@ typedef struct _rds_ {
|
|||||||
String PTYN;
|
String PTYN;
|
||||||
char stationType[18];
|
char stationType[18];
|
||||||
char picode[6];
|
char picode[6];
|
||||||
uint16_t hour, minutes, day, month, year, offsetplusmin, rdsA, rdsB, rdsC, rdsD, rdsErr;
|
uint16_t hour, minute, day, month, year, offsetplusmin, rdsA, rdsB, rdsC, rdsD, rdsErr;
|
||||||
int8_t offset;
|
int8_t offset;
|
||||||
unsigned int ECC;
|
unsigned int ECC;
|
||||||
unsigned int LIC;
|
unsigned int LIC;
|
||||||
@@ -166,8 +166,8 @@ class TEF6686 {
|
|||||||
void SetFreq(uint16_t frequency);
|
void SetFreq(uint16_t frequency);
|
||||||
void SetFreqAM(uint16_t frequency);
|
void SetFreqAM(uint16_t frequency);
|
||||||
bool getProcessing(uint16_t &highcut, uint16_t &stereo, uint16_t &sthiblend, uint8_t &stband_1, uint8_t &stband_2, uint8_t &stband_3, uint8_t &stband_4);
|
bool getProcessing(uint16_t &highcut, uint16_t &stereo, uint16_t &sthiblend, uint8_t &stband_1, uint8_t &stband_2, uint8_t &stband_3, uint8_t &stband_4);
|
||||||
bool getStatus(int16_t &level, uint16_t &USN, uint16_t &WAM, int16_t &offset, uint16_t &bandwidth, uint16_t &modulation);
|
bool getStatus(int16_t &level, uint16_t &USN, uint16_t &WAM, int16_t &offset, uint16_t &bandwidth, uint16_t &modulation, uint8_t &snr);
|
||||||
bool getStatusAM(int16_t &level, uint16_t &noise, uint16_t &cochannel, int16_t &offset, uint16_t &bandwidth, uint16_t &modulation);
|
bool getStatusAM(int16_t &level, uint16_t &noise, uint16_t &cochannel, int16_t &offset, uint16_t &bandwidth, uint16_t &modulation, uint8_t &snr);
|
||||||
bool getIdentification(uint16_t &device, uint16_t &hw_version, uint16_t &sw_version);
|
bool getIdentification(uint16_t &device, uint16_t &hw_version, uint16_t &sw_version);
|
||||||
void setSoftmuteFM(uint8_t mode);
|
void setSoftmuteFM(uint8_t mode);
|
||||||
void setSoftmuteAM(uint8_t mode);
|
void setSoftmuteAM(uint8_t mode);
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ bool devTEF_Radio_Get_Processing_Status (uint16_t *highcut, uint16_t *stereo, ui
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool devTEF_Radio_Get_Quality_Status (int16_t *level, uint16_t *usn, uint16_t *wam, int16_t *offset, uint16_t *bandwidth, uint16_t *mod) {
|
bool devTEF_Radio_Get_Quality_Status (int16_t *level, uint16_t *usn, uint16_t *wam, int16_t *offset, uint16_t *bandwidth, uint16_t *mod, uint8_t *snr) {
|
||||||
uint8_t buf[14];
|
uint8_t buf[14];
|
||||||
uint16_t r = devTEF_Get_Cmd(TEF_FM, Cmd_Get_Quality_Data, buf, sizeof(buf));
|
uint16_t r = devTEF_Get_Cmd(TEF_FM, Cmd_Get_Quality_Data, buf, sizeof(buf));
|
||||||
|
|
||||||
@@ -216,10 +216,11 @@ bool devTEF_Radio_Get_Quality_Status (int16_t *level, uint16_t *usn, uint16_t *w
|
|||||||
*offset = Convert8bto16b(buf + 8);
|
*offset = Convert8bto16b(buf + 8);
|
||||||
*bandwidth = Convert8bto16b(buf + 10) / 10;
|
*bandwidth = Convert8bto16b(buf + 10) / 10;
|
||||||
*mod = Convert8bto16b(buf + 12) / 10;
|
*mod = Convert8bto16b(buf + 12) / 10;
|
||||||
|
*snr = int(0.46222375 * (float)(*level) / 10 - 0.082495118 * (float)(*usn) / 10) + 10;
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool devTEF_Radio_Get_Quality_Status_AM (int16_t *level, uint16_t *noise, uint16_t *cochannel, int16_t *offset, uint16_t *bandwidth, uint16_t *mod) {
|
bool devTEF_Radio_Get_Quality_Status_AM (int16_t *level, uint16_t *noise, uint16_t *cochannel, int16_t *offset, uint16_t *bandwidth, uint16_t *mod, uint8_t *snr) {
|
||||||
uint8_t buf[14];
|
uint8_t buf[14];
|
||||||
uint16_t r = devTEF_Get_Cmd(TEF_AM, Cmd_Get_Quality_Data, buf, sizeof(buf));
|
uint16_t r = devTEF_Get_Cmd(TEF_AM, Cmd_Get_Quality_Data, buf, sizeof(buf));
|
||||||
|
|
||||||
@@ -229,6 +230,7 @@ bool devTEF_Radio_Get_Quality_Status_AM (int16_t *level, uint16_t *noise, uint16
|
|||||||
*offset = Convert8bto16b(buf + 8);
|
*offset = Convert8bto16b(buf + 8);
|
||||||
*bandwidth = Convert8bto16b(buf + 10) / 10;
|
*bandwidth = Convert8bto16b(buf + 10) / 10;
|
||||||
*mod = Convert8bto16b(buf + 12) / 10;
|
*mod = Convert8bto16b(buf + 12) / 10;
|
||||||
|
if (*noise / 10 > 40) *snr = 0; else *snr = -((int8_t)(*noise / 10));
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,9 +64,9 @@ bool devTEF_Set_Cmd(TEF_MODULE module, uint8_t cmd, uint16_t len, ...);
|
|||||||
bool devTEF_Radio_Get_Identification (uint16_t *device, uint16_t *hw_version, uint16_t *sw_version);
|
bool devTEF_Radio_Get_Identification (uint16_t *device, uint16_t *hw_version, uint16_t *sw_version);
|
||||||
bool devTEF_Radio_Tune_To (uint16_t frequency );
|
bool devTEF_Radio_Tune_To (uint16_t frequency );
|
||||||
bool devTEF_Radio_Tune_AM (uint16_t frequency );
|
bool devTEF_Radio_Tune_AM (uint16_t frequency );
|
||||||
bool devTEF_Radio_Get_Quality_Status (int16_t *level, uint16_t *usn, uint16_t *wam, int16_t *offset, uint16_t *bandwidth, uint16_t *mod);
|
bool devTEF_Radio_Get_Quality_Status (int16_t *level, uint16_t *usn, uint16_t *wam, int16_t *offset, uint16_t *bandwidth, uint16_t *mod, uint8_t *snr);
|
||||||
bool devTEF_Radio_Get_Processing_Status (uint16_t *highcut, uint16_t *stereo, uint16_t *sthiblend, uint8_t *stband_1, uint8_t *stband_2, uint8_t *stband_3, uint8_t *stband_4);
|
bool devTEF_Radio_Get_Processing_Status (uint16_t *highcut, uint16_t *stereo, uint16_t *sthiblend, uint8_t *stband_1, uint8_t *stband_2, uint8_t *stband_3, uint8_t *stband_4);
|
||||||
bool devTEF_Radio_Get_Quality_Status_AM (int16_t *level, uint16_t *noise, uint16_t *cochannel, int16_t *offset, uint16_t *bandwidth, uint16_t *mod);
|
bool devTEF_Radio_Get_Quality_Status_AM (int16_t *level, uint16_t *noise, uint16_t *cochannel, int16_t *offset, uint16_t *bandwidth, uint16_t *mod, uint8_t *snr);
|
||||||
bool devTEF_APPL_Get_Operation_Status(uint8_t *bootstatus);
|
bool devTEF_APPL_Get_Operation_Status(uint8_t *bootstatus);
|
||||||
bool devTEF_Audio_Set_Mute(uint8_t mode);
|
bool devTEF_Audio_Set_Mute(uint8_t mode);
|
||||||
bool devTEF_Audio_Set_Volume(int16_t volume);
|
bool devTEF_Audio_Set_Volume(int16_t volume);
|
||||||
|
|||||||
Reference in New Issue
Block a user