Page 1 of 1

Old Text Does Not Clear

Posted: Sat Jul 06, 2013 10:30 am
by clw143
How do I fix this overlap of text, it seems it does not always clear the old text out when the mode changes.
2013-07-06 13.18.20.jpg

Code: Select all

void DrawCustomMain()
{
  byte x = 6;
  byte y = 2;
  byte t;
  char text[7];

  ReefAngel.LCD.DrawDate(6, 3);
  ReefAngel.LCD.Clear(COLOR_BLACK, 1, 11, 132, 11);
  pingSerial();

  ReefAngel.LCD.DrawText(0,255,18,14,"Jebao WP40 Mode:");
  if (wp40mode==0) ReefAngel.LCD.DrawLargeText(COLOR_GREEN,255,42,25,"Tide");
  else if(wp40mode==1) ReefAngel.LCD.DrawLargeText(COLOR_RED,255,42,25,"Sine");
  else if (wp40mode==2) ReefAngel.LCD.DrawLargeText(COLOR_ORANGE,255,23,25,"Reef Crest");
  else if (wp40mode==3) ReefAngel.LCD.DrawLargeText(COLOR_CORNFLOWERBLUE,255,23,25,"Short Pulse");
  else if (wp40mode==4) ReefAngel.LCD.DrawLargeText(COLOR_CORNFLOWERBLUE,255,23,25,"Long Pulse");
  else if (wp40mode==5) ReefAngel.LCD.DrawLargeText(COLOR_MAGENTA,255,8,25,"Nutrient Trnsp.");
  else if (wp40mode==6) ReefAngel.LCD.DrawLargeText(COLOR_MAGENTA,255,23,25,"Tidal Swell");
  else if (wp40mode==7) ReefAngel.LCD.DrawLargeText(COLOR_BLUE,255,34,25,"Custom");
  else if (wp40mode==8) ReefAngel.LCD.DrawLargeText(COLOR_BLUE,255,25,25,"1/3 Power");
  else if (wp40mode==9) ReefAngel.LCD.DrawLargeText(COLOR_BLUE,255,23,25,"Full Power");
  pingSerial();

  ReefAngel.LCD.Clear(COLOR_BLACK, 1, 34, 132, 34);
  ReefAngel.LCD.DrawText(0,255,10,37,"Disp");
  ConvertNumToString(text, ReefAngel.Params.Temp[T1_PROBE], 10);
  ReefAngel.LCD.DrawLargeText(COLOR_BLUE, 255, 8, 45, text, Num8x8);
  pingSerial();

  ReefAngel.LCD.DrawText(0,255,53,37,"Room");
  ConvertNumToString(text, ReefAngel.Params.Temp[T2_PROBE], 10);
  ReefAngel.LCD.DrawLargeText(COLOR_BLUE, 255, 50, 45, text, Num8x8);
  pingSerial();

  ReefAngel.LCD.DrawText(0,255,95,37,"Sump");
  ConvertNumToString(text, ReefAngel.Params.Temp[T3_PROBE], 10);
  ReefAngel.LCD.DrawLargeText(COLOR_BLUE, 255, 93, 45, text, Num8x8);
  pingSerial();

  ReefAngel.LCD.Clear(COLOR_BLACK, 1, 53, 132, 53);
  ReefAngel.LCD.DrawText(0,255,10,56,"pH");
  ConvertNumToString(text, ReefAngel.Params.PH, 100);
  ReefAngel.LCD.DrawLargeText(COLOR_BLUE, 255, 27, 56, text, Num8x8);
  pingSerial();

  ReefAngel.LCD.DrawText(0,255,67,56,"WP40");
  ConvertNumToString(text, ReefAngel.PWM.GetDaylightValue(),1);
  ReefAngel.LCD.DrawLargeText(COLOR_BLUE, 255, 95, 56, text, Num8x8);
  ReefAngel.LCD.DrawText(0,255,118,56," %");
  ReefAngel.LCD.Clear(COLOR_BLACK, 1, 65, 132, 65);
  pingSerial();

  ReefAngel.LCD.DrawLargeText(COLOR_BLUE,255,10,77,"Shaun");
  ReefAngel.LCD.DrawHugeText(COLOR_RED, 255, 55, 80,"&");
  ReefAngel.LCD.DrawLargeText(COLOR_GREEN,255,75,90,"Kerri's");
  ReefAngel.LCD.DrawLargeText(0,255,7,105,"90Gal Reef Tank");
  pingSerial();

  byte TempRelay = ReefAngel.Relay.RelayData;
  TempRelay &= ReefAngel.Relay.RelayMaskOff;
  TempRelay |= ReefAngel.Relay.RelayMaskOn;
  ReefAngel.LCD.DrawOutletBox(12, 118, TempRelay);
  pingSerial();

}
void DrawCustomGraph()
{
}

Re: Old Text Does Not Clear

Posted: Sat Jul 06, 2013 11:01 am
by lnevo
You have to use the ReefAngel.LCD.Clear function. You have it in your code already. Just make sure you do it in the area where the text is overlapping before you draw your mode.

Re: Old Text Does Not Clear

Posted: Sat Jul 06, 2013 11:05 am
by rimai
You need to clear anything you want to erase.
You already have something that clears in your code. I just don't know what it clears.
You must do the same thing for the area of concern.

Code: Select all

ReefAngel.LCD.Clear(COLOR_BLACK, 1, 11, 132, 11);

Re: Old Text Does Not Clear

Posted: Sat Jul 06, 2013 11:15 am
by clw143

Code: Select all

ReefAngel.LCD.Clear(COLOR_BLACK, 1, 11, 132, 11);
Those gave me the horizontal black lines. Did I use it incorrectly? How do I use it to clear?

Re: Old Text Does Not Clear

Posted: Sat Jul 06, 2013 11:18 am
by rimai
Use color white and expand the coordinates to go over the text in concern :)