Reef Angel Graphs

Do you have a question on how to do something.
Ask in here.
Post Reply
williet
Posts: 7
Joined: Sun Sep 16, 2012 9:36 am

Reef Angel Graphs

Post by williet »

Hi All

Has anyone played with the graph on Reefangel ?

Can you add a scale to it ? Also What does the default on display?
I think mine does PH at the moment could I like add temperature as well ?
rimai
Posts: 12857
Joined: Fri Mar 18, 2011 6:47 pm

Re: Reef Angel Graphs

Post by rimai »

Which graphs?
Portal or head unit LCD screen?
Roberto.
williet
Posts: 7
Joined: Sun Sep 16, 2012 9:36 am

Re: Reef Angel Graphs

Post by williet »

Hi Roberto

The HeadUnit LCD Screen?
rimai
Posts: 12857
Joined: Fri Mar 18, 2011 6:47 pm

Re: Reef Angel Graphs

Post by rimai »

You will need to draw up your own graph if you want to change anything.
There is no much you can do with it :(
But it should display all 3 temps and pH on the same graph. Each one is color coded by the same color the numbers are displaying too.
Have you tried using the Portal charts?
This is mine: http://forum.reefangel.com/status/chart ... =reefangel
Roberto.
User avatar
jsclownfish
Posts: 375
Joined: Mon Oct 24, 2011 7:52 pm
Location: Saint Louis

Re: Reef Angel Graphs

Post by jsclownfish »

I have added custom menu's to move the graphs off the main screen. In that case I have a "pH Details" and a "Temp Details" screen which seperates out the two graphs. I have thought about making graphs for my flow meters as well on a detail menu option, but I don't really understand how the pointers work for that data.

Here is my custom menu code if you want to try something like that...

Code: Select all

void MenuEntry4()  //pH detail screen with 24 hr. max/min, time stamps, and graph
{
ReefAngel.ClearScreen(DefaultBGColor);
ReefAngel.LCD.DrawText(PHColor,DefaultBGColor, 5, 13,"PH:");
ReefAngel.LCD.DrawSingleMonitor(ReefAngel.Params.PH, 0, 36, 13, 100);
ReefAngel.LCD.DrawText(PHColor,DefaultBGColor,5, 23,"HI:");
ReefAngel.LCD.DrawSingleMonitor(maxPH, 0, 23, 23, 100);
ReefAngel.LCD.DrawText(PHColor,DefaultBGColor, 48, 23,"at");
ReefAngel.LCD.DrawText(PHColor,DefaultBGColor, 5, 33,"LO:"); 
ReefAngel.LCD.DrawSingleMonitor(minPH, 0, 23, 33, 100);
ReefAngel.LCD.DrawText(PHColor,DefaultBGColor, 48, 33,"at");
DrawTime(60,23,0, COLOR_WHITE,PHmax);
DrawTime(60,33,0,COLOR_WHITE, PHmin);
ReefAngel.LCD.Clear(DefaultBGColor,0,75,131,125);
ReefAngel.LCD.Clear(DefaultFGColor,1,75,1,125);
    for (byte i=6; i<=131; i+=3)
    {
        ReefAngel.LCD.PutPixel(GraphDotLineColor, i, 100);
    }
ReefAngel.LCD.DrawSingleGraph(PHColor,1,75,InternalMemory.T1Pointer_read()+360);
pingSerial();
bool bDone = false;
do
{
// wait indefinitely for a button press
wdt_reset();
delay(200);
if ( ReefAngel.Joystick.IsButtonPressed() )
{
bDone = true;
}
} while ( ! bDone );
ReefAngel.DisplayedMenu = ALT_SCREEN_MODE;

}
void MenuEntry5()  //Temperature detail screen with sump and room temp, 24 hr. max/min, time stamps, and graph
{
ReefAngel.ClearScreen(DefaultBGColor);
ReefAngel.LCD.DrawText(T1TempColor,DefaultBGColor,5,13,"TANK:");
ReefAngel.LCD.DrawSingleMonitor(ReefAngel.Params.Temp[T1_PROBE], COLOR_BLACK, 36, 13, 10);
ReefAngel.LCD.DrawText(T1TempColor,DefaultBGColor,5,23,"HI:");
ReefAngel.LCD.DrawSingleMonitor(maxTemp, 0, 23, 23, 10);
ReefAngel.LCD.DrawText(T1TempColor,DefaultBGColor,48,23,"at");
ReefAngel.LCD.DrawText(T1TempColor,DefaultBGColor,5,33,"LO:");
ReefAngel.LCD.DrawSingleMonitor(minTemp, 0, 23, 33, 10);
ReefAngel.LCD.DrawText(T1TempColor,DefaultBGColor,48,33,"at");
ReefAngel.LCD.DrawText(T2TempColor,DefaultBGColor, 5 ,43,"R00M:");
ReefAngel.LCD.DrawSingleMonitor(ReefAngel.Params.Temp[T2_PROBE], COLOR_BLACK, 36, 43, 10);
ReefAngel.LCD.DrawText(T3TempColor,DefaultBGColor, 5, 53,"SUMP:");
ReefAngel.LCD.DrawSingleMonitor(ReefAngel.Params.Temp[T3_PROBE], COLOR_BLACK, 36, 53, 10);
DrawTime(60,23,0, COLOR_WHITE,tsmax);
DrawTime(60,33,0,COLOR_WHITE, tsmin);
    ReefAngel.LCD.Clear(DefaultBGColor,0,75,131,125);
    ReefAngel.LCD.Clear(DefaultFGColor,1,75,1,125);
    for (byte i=6; i<=131; i+=3)
    {
        ReefAngel.LCD.PutPixel(GraphDotLineColor, i, 100);
    }
ReefAngel.LCD.DrawSingleGraph(T1TempColor,1,75,InternalMemory.T1Pointer_read());
ReefAngel.LCD.DrawSingleGraph(T2TempColor,1,75,InternalMemory.T1Pointer_read()+120);
ReefAngel.LCD.DrawSingleGraph(T3TempColor,1,75,InternalMemory.T1Pointer_read()+240);
pingSerial();
bool bDone = false;
do
{
// wait indefinitely for a button press
wdt_reset();
delay(200);
if ( ReefAngel.Joystick.IsButtonPressed() )
{
bDone = true;
}
} while ( ! bDone );
ReefAngel.DisplayedMenu = ALT_SCREEN_MODE;
}
There is also some stuff about timestamoing the max and min readings if you would like me to post that code as well.

-Jon
Post Reply