Advertisement
Ariser

menu.cpp

Sep 20th, 2015
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.75 KB | None | 0 0
  1. #include "menu.h"
  2.  
  3.  
  4. uint8_t Menu::menustate[MENUDEPTH];
  5. uint8_t Menu::curmen=0;
  6. bool Menu::bupr=false;
  7. int Menu::rot=0;
  8. uint8_t Menu::curmendepth=0;
  9.  
  10. void Menu::setup()
  11. {
  12.     for (uint8_t i=0; i<MENUDEPTH; ++i)
  13.     {
  14.         menustate[i]=DEF_MENUSTATE;
  15.     }
  16. }
  17.  
  18. void Menu::service()
  19. {
  20.     Serial.print("#M");
  21.     switch (curmen)
  22.     {
  23.     case 0:
  24.         mWelcome(); // anzeigen des Welcomescreens bei Push gehen wir ins hauptmenü.
  25.         break;
  26.     case 1:
  27.         mMen();
  28.         break;
  29.     case 2:
  30.         dTemp(); // Anzeigen der Temperaturen
  31.         break;
  32.     default:
  33.         return;
  34.     }  
  35. }
  36.  
  37. void Menu::mWelcome()   // menu 0
  38. {
  39.     Serial.print("W");
  40.     Display::DOG.clear_display();
  41.     Display::DOG.position(1,1);
  42.     Display::DOG.cursor_onoff(false);
  43.     Display::DOG.string("Krautlight");
  44.     Display::DOG.position(1,2);
  45.     Display::DOG.string("KL-ctr 0.1");
  46.     Display::DOG.position(1,3);
  47.     Display::DOG.string("Speak friend....");
  48.     if (bupr==true)
  49.     {
  50.         curmen=1;
  51.         curmendepth=1;
  52.         bupr=false;
  53.         rot=0;
  54.     }
  55. }
  56.  
  57. void Menu::mMen()   // menu 1
  58. {
  59.     Serial.print("M");
  60.     Display::DOG.clear_display();
  61.     Display::DOG.position(1,1);
  62.     Display::DOG.string("Main Menu");
  63.     const uint8_t maxmenst=3;
  64.     if (bupr==true) // der button wurde gedrueckt. also machen wir was.
  65.     {
  66.         rot=0;
  67.         bupr=false;
  68.         switch (menustate[curmendepth]) // wir arbeiten je nach gewaehlter Option.
  69.         {
  70.         case 0: // return
  71.             curmen=0;
  72.             curmendepth=0;
  73.             break;
  74.         case 1: // save ist sinnlos, wir sollten allerdings sicherstellen, dass wir hier nie hinkommen.
  75.                
  76.         case 2: // cancel ist sinnlos
  77.             menustate[curmendepth]=3;
  78.         case 3: // 1. menuepunkt.
  79.             curmen=2;
  80.             curmendepth=1;
  81.             Display::DOG.clear_display();
  82.             break;
  83.         }
  84.         return;
  85.     }
  86.     while (rot > 0)
  87.     {
  88.         switch (menustate[curmendepth]) // wir arbeiten je nach gewaehlter Option.
  89.         {
  90.         case 0:
  91.         case 1:
  92.             case 2:
  93.             menustate[curmendepth]=3;
  94.             --rot;
  95.             break;
  96.         default:
  97.             menustate[curmendepth]=0;      
  98.         }
  99.     }
  100.     while (rot < 0)
  101.     {
  102.         switch (menustate[curmendepth]) // wir arbeiten je nach gewaehlter Option.
  103.         {
  104.             case 0:
  105.             case 1:
  106.                 case 2:
  107.                 menustate[curmendepth]=3;
  108.                 ++rot;
  109.                 break;
  110.             default:
  111.                 menustate[curmendepth]=0;      
  112.         }
  113.     }
  114.     switch ( menustate[curmendepth])
  115.     {
  116.         case 0:
  117.         case 1:
  118.         case 2:
  119.             Display::DOG.position(2,1);
  120.             Display::DOG.string("Temperatures");
  121.             Display::DOG.position(3,1);
  122.             Display::DOG.string("enter?");
  123.             break;
  124.         case 3:
  125.             break;
  126.         default:
  127.             break;
  128.            
  129.     }  
  130. }
  131.  
  132. void Menu::dTemp()
  133. {
  134.     Display::DOG.clear_display();
  135.     Display::DOG.position(1,1);
  136.     Display::DOG.string("Temperatures");
  137.     const uint8_t maxmenst=3;
  138.     if (bupr==true) // der button wurde gedrueckt. also machen wir was.
  139.     {
  140.         curmen=1;
  141.         curmendepth=1;
  142.         Display::DOG.clear_display();
  143.         bupr=false;
  144.         return;
  145.     }
  146.  
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement