mathertel / Radio

An Arduino library to control FM radio chips like SI4703, SI4705, RDA5807M, TEA5767.
http://mathertel.github.io/Radio
BSD 3-Clause "New" or "Revised" License
297 stars 89 forks source link

si4703, updaterdstext drawing lines #41

Closed fungreenfox closed 2 years ago

fungreenfox commented 4 years ago

RDS Text output, with textwrap on, and textwrap off immediately after rds text output, makes simple text lead from (ri.rssi) saying tft.print("stereo") to continue drawing the background color out the whole line, overlapping any other text behind. This happens same second, the rds text is recieved from the antenna.

https://www.dropbox.com/s/ydnbwupcb248w2i/rds1.jpg?dl=0 https://www.dropbox.com/s/2ggrwuyvbg6tr4a/rds2.jpg?dl=0

fungreenfox commented 4 years ago

This is some of the code // * Begin detecting of Stereo signal ** // Serial.println(ri.stereo ? 'S' : '-'); Stereo = ri.stereo; // Serial.print(F("RADIO INFO stereo:"));Serial.println(Stereo); if (Stereo == 1)// detected receiving in stereo, then display it { tft.setTextSize(2); tft.setCursor(130, 250); tft.setTextColor(MDGREEN, BLACK); tft.print("Stereo"); } if ((Stereo == 0) && (SStereo == 0)) // SStereo is a preset choice { tft.setTextSize(2); tft.setCursor(130, 250); tft.setTextColor(GREY, BLACK); tft.print(" Mono "); } // * End Stereo signal **

// ***** SNR signal ** unsigned long SNRnow = millis(); static unsigned long SNRnextDispTime = 0; static unsigned long SNRnextFREQTime = 0; if (SNRnow > SNRnextFREQTime) { SNRnextFREQTime = SNRnow + 10; } // update the ri.snr from time to time if (SNRnow > SNRnextDispTime) { SNRnextDispTime = SNRnow + 1000; uint8_t Snr = ri.snr; tft.setTextColor(GREY, BLACK); tft.setTextSize(2); tft.setCursor(330, 250); if (ri.snr > 0) { tft.print(ri.snr); //Serial.print(F("SNR: ")); Serial.print(ri.snr); } else tft.print(" "); //SNRnow = 0; }

fungreenfox commented 4 years ago

I even added code for removing whitespaces after the RDS Text, to minimize the spreading of lines with empty spaces, overlapping next lines of normal text. Later on today, it has also spread to functions related to ri.rssi and STR for signal strength. Picture illustrating how the tft.print("Stereo"); starts overlapping the Softmute text, with background color, which also should have kept staying transparent. It suddenly swaps background to overlay color. This only happens to elements related to rssi. https://www.dropbox.com/s/pk9emsz2x736alj/rds3.jpg?dl=0 Thank You for doing this. I hope, You will look into this issue, soon. This kinda forces me to rearrange the graphics, eventually placing the issues as last elements at a line, so it can spill out of edge instead.