Custom Menu

Related to the development libraries, released by Curt Binder
Would you like the ability to create a custom menu on the controller?

Yes, I would like to create my own menu
53
87%
Maybe, if it will give me more memory I would
3
5%
No, I like the default menu
0
No votes
Don't care, I don't really use the menu
3
5%
There's a menu on the controller?
2
3%
 
Total votes : 61


Posts: 30
Joined: Tue Jul 12, 2011 1:35 pm
Location: São Paulo - Brazil
PostPosted: Mon Aug 22, 2011 5:49 am
When the tutorial is ready?

tanks

Marcelo
User avatar
Posts: 2748
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
PostPosted: Mon Aug 22, 2011 6:33 am
mbertalha wrote:When the tutorial is ready?

tanks

Marcelo

There is no tutorial for creating a custom menu. The ability to create a custom menu does not exist yet. The only thing that you can do is utilize the simple menu.

curt
User avatar
Posts: 2748
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
PostPosted: Tue Sep 06, 2011 7:50 pm
Well, I must say that I have a preliminary working (yes, I did say working) version of the custom menu. It can be defined and all contained within the PDE file. You can create your own menu entries and have it perform all the tasks that you want. This will open up all sorts of possibilities and possibly some confusion as well with the menu events but that's just how it goes when you want lots of customizing opportunities.

Some stuff will have to be repeated unless I create custom functions for them (like displaying a setup menu and stuff like that). I haven't created those functions because they increase code size. However, at the expense of increasing the code size a little for simplicity of the menus I think it would be manageable.

In this working example I have so far, you cannot display any of the setup screens. I'm thinking that some people would want to have access to some specific setup screens, like maybe an ATO or Lights or something. Although this is not necessary now that we have the memory page on the Client Suite and also my Status application.

Another limitation is that you an only have 1 menu screen with a max of 9 entries. This should be more than adequate for everybody.

Anyways, here's a sample screenshot that I created of all 9 entries in use. I still have more testing to make sure things work as expected. If anybody would like to help me test out, keep an eye on my github account for the "custom_menu" branch.

P9060957.JPG
custom menu
P9060957.JPG (46.4 KiB) Viewed 3082 times


Feedback (comments and suggestions) are always welcomed.

curt

Posts: 12288
Joined: Fri Mar 18, 2011 6:47 pm
PostPosted: Tue Sep 06, 2011 8:05 pm
Cool
Roberto.
User avatar
Posts: 105
Joined: Sun Mar 20, 2011 12:38 am
Location: France
PostPosted: Tue Sep 06, 2011 11:26 pm
Cool Thanks curt !
I will test it I guess for all stuff I need in my fresh Water ;-)
Fresh Water Aquarium 180*60*80
Salt Water Aquarium 60*60*60
Click Here to see the Video of my Fresh Water Aquarium
Image
User avatar
Posts: 2748
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
PostPosted: Wed Sep 07, 2011 5:11 am
Xender wrote:Cool Thanks curt !
I will test it I guess for all stuff I need in my fresh Water ;-)

There is most likely some finishing touches that I need to add with it though. It will most likely require a guide on how to use it with examples, otherwise people would get confused. I'll be working on this through the week and into the weekend. We shall see what all I come up with.

curt

Posts: 30
Joined: Tue Jul 12, 2011 1:35 pm
Location: São Paulo - Brazil
PostPosted: Wed Sep 14, 2011 3:37 pm
Very cool, Curt.
Thanks for your contribution...

Marcelo

Posts: 241
Joined: Sun Sep 04, 2011 9:59 am
Location: Pittsburgh, PA
PostPosted: Wed Sep 14, 2011 5:13 pm
I modified the simple menu to remove the ATO and add in an option to turn on my moon lights since I don't run them all the time. If I wake up early before the mains come on sometimes I would like to turn on the moon.

So far I can get them to turn on but can't figure out how to get them to turn back off. I either get everything to turn off/on.
John
ReefAngel and ReefAngel-HD developer
If the RA iOS app has helped please consider a donation
Image
User avatar
Posts: 2748
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
PostPosted: Fri Sep 16, 2011 4:47 am
wolfador wrote:I modified the simple menu to remove the ATO and add in an option to turn on my moon lights since I don't run them all the time. If I wake up early before the mains come on sometimes I would like to turn on the moon.

So far I can get them to turn on but can't figure out how to get them to turn back off. I either get everything to turn off/on.

What code are you using to turn them on?

curt

Posts: 241
Joined: Sun Sep 04, 2011 9:59 am
Location: Pittsburgh, PA
PostPosted: Sat Sep 17, 2011 4:57 pm
binder wrote:What code are you using to turn them on?

curt


Code: Select all
void ReefAngelClass::MoonLightStart()
{
   // turn off ports
   
#ifdef SaveRelayState
   // TODO Test SaveRelayState
   byte CurrentRelayState = Relay.RelayData;
#endif  // SaveRelayState
   Relay.RelayMaskOn = MoonLightPorts;
   Relay.Write();
   LCD.DrawText(ModeScreenColor, DefaultBGColor, 30, 10, "Moon Mode");
}



In the .PDE file I have

Code: Select all
ReefAngel.MoonLightPorts = B10000000;


For the button press to turn off

Code: Select all
            case MOONLIGHT_MODE:
         {
            LastStart = now();  // Set the time normal mode is started
            if ( Joystick.IsButtonPressed() )
            {
               // we're finished, so let's clear the screen and return
               ClearScreen(DefaultBGColor);
               Timer[LCD_TIMER].Start();  // start LCD shutoff timer

#ifdef SaveRelayState
               Relay.RelayData = CurrentRelayState;
#endif  // SaveRelayState

               // turn on ports
               Relay.RelayMaskOn = ~MoonLightPorts;

               // Compare the delayed on ports with the previous port states
               Relay.RelayData &= ~(MoonLightPorts & DelayedOnPorts);
               Relay.Write();

               // Draw main screen
               SelectedMenuItem = DEFAULT_MENU_ITEM;
               DisplayedMenu = DEFAULT_MENU;



Currently that switches the moon lights off and the all other ports on.
John
ReefAngel and ReefAngel-HD developer
If the RA iOS app has helped please consider a donation
Image
PreviousNext

Return to Development Libraries

Who is online

Users browsing this forum: No registered users and 1 guest

cron