Advertisement
Guest User

Untitled

a guest
Feb 25th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 17.14 KB | None | 0 0
  1. #include <EEPROMex.h>
  2. #include <EEPROMVar.h>
  3.  
  4. #include "U8glib.h"
  5. #include "RTClib.h"
  6. #include <OneWire.h>
  7. #include <Wire.h>
  8. #include <DallasTemperature.h>
  9. #define ONE_WIRE_BUS 2
  10. #define led 13
  11. #define rst 7
  12. #define buzzer 9
  13. OneWire oneWire(ONE_WIRE_BUS);
  14. DallasTemperature sensors(&oneWire);
  15. RTC_DS1307 RTC;
  16. U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);
  17. #define LEAP_YEAR(Y) ( (Y>0) && !(Y%4) && ( (Y%100) || !(Y%400) ))
  18. int tempC=0;
  19. uint8_t encoderA = 5;
  20. uint8_t encoderB = 4;
  21. uint8_t button = 3;
  22. uint8_t buttonB = 6;
  23. int Last = LOW;
  24. bool up=false;
  25. bool down=false;
  26. bool sel=false;
  27. byte n = LOW;
  28. int selectie;
  29. int val;
  30. byte a=1;
  31. bool interr=1 ;
  32. int s=0;
  33. int *data[]={0, 0, 0, 0, 0, 0, 0,0};
  34. byte offset=0
  35. int *oraz[]={0, 0, 0, 0};
  36. char serviceUlei=NULL;
  37. #define main_menuitems 5
  38. #define sub_menu20items 4
  39. #define sub_menu0items 4
  40. #define sub_menu2items 3
  41. #define sub_menu3items 3
  42. #define sub_menu4items 4
  43.  
  44. char const *main_menu[main_menuitems] = { "Data/Ora", "Interval refresh", "Calibrare B+GPL", "Service ulei", "Iesire" };
  45. char const *submenu20 [sub_menu20items] = { "Calibrare Max", "Calibrare Min", "Resetare", "Inapoi" };
  46. char const *submenu2 [sub_menu2items] = { "Benzina", "GPL", "Inapoi" };
  47. char const  *submenu3 [sub_menu3items] = {serviceUlei, "Setati", "Inapoi" };
  48. char const *submenu0 [sub_menu0items] = {String(data), String(oraz), "Setati", "Inapoi" };
  49.  
  50. bool MainMenuToggle=0;
  51. const char *menu_item[5];
  52. uint8_t menu_current = 0;
  53. uint8_t menu_redraw_required = 0;
  54.  
  55. const unsigned char splash [] PROGMEM = {
  56. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  57. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  58. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  59. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  60. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  61. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  62. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  63. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  64. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  65. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  66. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  67. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  68. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  69. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00,
  70. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00,
  71. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x00,
  72. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00,
  73. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x00,
  74. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00,
  75. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFC,
  76. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
  77. 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E,
  78. 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C,
  79. 0x00, 0x00, 0x3F, 0xFC, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
  80. 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x80,
  81. 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
  82. 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
  83. 0x03, 0xC1, 0xFC, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00,
  84. 0x0F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
  85. 0x3C, 0x1C, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  86. 0x70, 0x38, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  87. 0xE0, 0x70, 0x00, 0x00, 0xF8, 0x01, 0x80, 0x3E, 0x38, 0x38, 0x07, 0x03, 0x8C, 0x01, 0xF0, 0x00,
  88. 0xC0, 0x60, 0x00, 0x00, 0xFF, 0x03, 0xC0, 0xFF, 0x38, 0x38, 0x07, 0x03, 0x9C, 0x03, 0xF8, 0x00,
  89. 0xC0, 0xC0, 0x00, 0x00, 0xFF, 0x83, 0xC1, 0xFF, 0x38, 0x7C, 0x03, 0x87, 0x7C, 0x07, 0xBC, 0x00,
  90. 0xC0, 0xC0, 0x00, 0x00, 0xE3, 0x87, 0xE1, 0xC0, 0x38, 0x7C, 0x03, 0x87, 0x7C, 0x07, 0x1C, 0x00,
  91. 0xC0, 0xC0, 0x00, 0x00, 0xE1, 0xC7, 0xE3, 0x80, 0x38, 0xEC, 0x01, 0xCE, 0x5C, 0x06, 0x0C, 0x00,
  92. 0xC0, 0x80, 0x00, 0x00, 0xE1, 0xCE, 0x63, 0x80, 0x38, 0xEE, 0x01, 0xCE, 0x1C, 0x0E, 0x0C, 0x00,
  93. 0xC0, 0x80, 0x00, 0x00, 0xE1, 0xCE, 0x73, 0x80, 0x39, 0xCE, 0x00, 0xCC, 0x1C, 0x0E, 0x0C, 0x00,
  94. 0xC0, 0xC0, 0x00, 0x00, 0xE1, 0xCF, 0x73, 0x80, 0x39, 0xDF, 0x00, 0xFC, 0x1C, 0x06, 0x0C, 0x00,
  95. 0x60, 0xC0, 0x00, 0x00, 0xE3, 0x9F, 0xF9, 0xC0, 0x39, 0xFF, 0x00, 0xFC, 0x1C, 0x07, 0x1C, 0x00,
  96. 0x60, 0xC0, 0x00, 0x00, 0xEF, 0x9F, 0xF9, 0xF3, 0x3B, 0xFF, 0x80, 0x78, 0x1C, 0xE7, 0x1C, 0x00,
  97. 0x7E, 0xC0, 0x00, 0x00, 0xFF, 0x38, 0x1C, 0xFF, 0x3B, 0x83, 0x80, 0x78, 0x1C, 0xE3, 0xF8, 0x00,
  98. 0x3F, 0xE0, 0x00, 0x00, 0xFC, 0x38, 0x1C, 0x3F, 0x3F, 0x03, 0x80, 0x30, 0x1C, 0xE1, 0xF0, 0x00,
  99. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  100. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  101. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  102. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  103. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  104. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  105. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  106. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  107. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  108. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  109. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  110. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  111. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  112. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  113. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  114. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  115. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  116. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  117. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  118. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  119. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
  120.  
  121. const unsigned char benzina [] PROGMEM = {
  122. 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x0F, 0xF8, 0x08, 0x18, 0x08, 0x1E, 0x08, 0x1E, 0x0D, 0xDA,
  123. 0x0F, 0xFA, 0x0F, 0xF9, 0x0F, 0xF9, 0x0F, 0xF9, 0x0F, 0xFF, 0x0F, 0xFB, 0x0F, 0xFB, 0x0F, 0xFB,
  124. 0x0F, 0xF8, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x72,
  125. 0x2F, 0x00,
  126. };
  127.  
  128. const unsigned char gpl [] PROGMEM = {
  129. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x73, 0x7E, 0xFB, 0x66, 0xDB, 0x66, 0xDB,
  130. 0x60, 0xDB, 0x60, 0xFB, 0x6E, 0xF3, 0x6E, 0xC3, 0x66, 0xC3, 0x66, 0xC3, 0x7E, 0xC3, 0x3C, 0xC3,
  131. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00,
  132. 0x2F, 0x00,
  133. };
  134.  
  135. void drawMenu( const char *label[], int nr) {
  136.   uint8_t h;
  137.   u8g_uint_t d;
  138.  
  139.   u8g.setFont(u8g_font_7x14);
  140.   u8g.setFontRefHeightText();
  141.   u8g.setFontPosTop();
  142.  
  143.   h = u8g.getFontAscent()-u8g.getFontDescent();
  144.  
  145.   for( i = offset; i < nr; i++ ) {
  146.     d = (128-u8g.getStrWidth(label[i]))/2;
  147.     u8g.setDefaultForegroundColor();
  148.     if ( i == menu_current ) {
  149.       u8g.drawBox(0, i*h+1, 128, h);
  150.       u8g.setDefaultBackgroundColor();
  151.     }
  152.     u8g.drawStr(d, i*h, label[i]);
  153.   }
  154.  
  155. }
  156.  
  157. void updateMenu(int nr)
  158. {
  159.  if ( up ) {
  160.       menu_current++;
  161.       if ( menu_current >= nr )
  162.         menu_current = 0;
  163.       menu_redraw_required = 1;
  164.    
  165.  }
  166.  else if ( down ) {
  167.       if ( menu_current == 0 )
  168.         menu_current = nr;
  169.       menu_current--;
  170.       menu_redraw_required = 1;
  171.  
  172.  }
  173.      
  174. }
  175.  
  176. void uiSetup(void) {
  177.   pinMode(encoderA, INPUT);        
  178.   digitalWrite(encoderA, HIGH);    
  179.   pinMode(encoderB, INPUT);        
  180.   digitalWrite(encoderB, HIGH);      
  181.   pinMode(button, INPUT);          
  182.   digitalWrite(button, HIGH);      
  183.   pinMode(buttonB, INPUT);          
  184.   digitalWrite(buttonB, HIGH);
  185.   pinMode(rst, OUTPUT);    
  186. }
  187.  
  188.  
  189. int dayOfWeek(uint16_t year, uint8_t month, uint8_t day)
  190. {
  191.   uint16_t months[] =
  192.   {
  193.     0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 // days until 1st of month
  194.   };  
  195.  
  196.   uint32_t days = year * 365;  
  197.   for (uint16_t i = 4; i < year; i+=4)
  198.   {
  199.     if (LEAP_YEAR(i)) days++;
  200.   }
  201.  
  202.   days += months[month-1] + day;
  203.   if ((month > 2) && LEAP_YEAR(year)) days++;
  204.   return days % 7;
  205. }
  206.  
  207.  
  208.  
  209. void drawdate(void){
  210.  DateTime now = RTC.now();
  211.  u8g.setFont(u8g_font_7x14);
  212.  u8g.setPrintPos(32, 58);
  213.  u8g.println(String(now.day(), DEC) + "/"+String(now.month(), DEC)+"/"+ String(now.year() , DEC));
  214. }
  215.  
  216. void drawday(void){
  217.   String zi="";
  218.  DateTime now = RTC.now();
  219.   u8g.setFont(u8g_font_7x14);
  220.  switch(dayOfWeek(now.year(), now.month(), now.day())){
  221.   case 0: zi="Duminica"; break;
  222.    case 1: zi="Luni"; break;
  223.   case 2: zi="Marti"; break;
  224.    case 3: zi="Miercuri"; break;
  225.     case 4: zi="Joi"; break;
  226.  case 5: zi="Vineri"; break;
  227.    case 6: zi="Sambata"; break;
  228.     default: zi="Eroare!"; break;}
  229.  u8g.setPrintPos(20, 58);
  230.   u8g.println(zi);
  231.  
  232.   }
  233.  
  234.  
  235. void f(void){if(interr){
  236.   MainMenuToggle=0;
  237.   digitalWrite(led, HIGH);
  238. delay(100);
  239. digitalWrite(led, LOW);
  240.   tone(buzzer, 2000, 50);
  241.     menu_redraw_required = 1;
  242.     menu_current=0;
  243.    
  244.     a=0;
  245.     interr=0;}
  246.     }
  247.  
  248.  
  249.  
  250. void setup(void) {
  251. Wire.begin();
  252. uiSetup();
  253. attachInterrupt(1, f, LOW);
  254. menu_redraw_required = 1;
  255. pinMode(led, OUTPUT);
  256. Serial.begin(9600);
  257. tone(buzzer, 1000, 50);
  258. //SplashScreen Date  
  259.   u8g.firstPage();  
  260.   do {
  261.     u8g.drawBitmapP( 0, 0, 16, 64, splash);
  262.  drawdate();
  263.   } while( u8g.nextPage());
  264. delay(2000);
  265. //SplashScreen Day  
  266.  
  267.   u8g.firstPage();
  268.   do {
  269.     u8g.drawBitmapP( 0, 0, 16, 64, splash);
  270.  drawday();
  271.   } while( u8g.nextPage());
  272.  
  273. delay(2000);
  274. tone(buzzer, 1000, 50);
  275. }
  276.  
  277.  
  278. void mainScreen(void){
  279.   u8g.setFont(u8g_font_helvR14);
  280.   DateTime now = RTC.now();
  281.  unsigned int ora=0, minut=0;
  282.  String oras="", minuts="";
  283.  ora=now.hour();
  284.  minut=now.minute();
  285.  if(ora<10)oras="0"+String(now.hour());
  286.  else oras=String(now.hour());
  287.  if(minut<10)minuts="0"+String(now.minute());
  288. else minuts=String(now.minute());
  289.  u8g.setPrintPos(84, 14);
  290.  u8g.println(oras + ":" + minuts);
  291. u8g.drawLine(0, 16, 128, 16);
  292. u8g.drawLine(82, 0, 82, 15);
  293. u8g.setPrintPos(0, 14);
  294. u8g.println("12.2v");
  295. u8g.drawLine(46, 0, 46, 15);
  296. if(tempC<9)u8g.setPrintPos(49, 14);
  297. else u8g.setPrintPos(56, 14);
  298. u8g.println(tempC);
  299. u8g.drawCircle(78, 2, 2);
  300.  
  301. u8g.drawBitmapP( 0, 20, 2, 20, benzina);
  302. u8g.drawBitmapP( 0, 42, 2, 20, gpl );
  303.  
  304. u8g.drawFrame(22, 20, 60, 20);
  305. u8g.drawFrame(22, 42, 60, 20);
  306.  
  307. u8g.drawBox(24, 22, 40, 16);
  308. u8g.drawBox(24, 44, 20, 16);
  309.  
  310. u8g.setPrintPos(120, 37);
  311. u8g.println("L");
  312. u8g.setPrintPos(120, 57);
  313. u8g.println("L");
  314.  
  315. u8g.setPrintPos(84, 37);
  316. u8g.println("~30");
  317. u8g.setPrintPos(84, 57);
  318. u8g.println("~15");
  319.  
  320.  
  321.  
  322.  
  323. }
  324. void SUBMENIU1(){MainMenuToggle=1;
  325.  
  326.     menu_redraw_required = 1;
  327.     selectie=sub_menu0items;
  328.    for(int x=0;x<selectie;x++){
  329.     menu_item[x]=submenu0[x];
  330.  
  331.   }
  332.   }
  333. void SUBMENIU2(){
  334.   MainMenuToggle=1;
  335.  
  336.     menu_redraw_required = 1;
  337.     selectie=sub_menu3items;
  338.    for(int x=0;x<selectie;x++){
  339.     menu_item[x]=submenu3[x];
  340.  
  341.   }
  342.   }
  343. void SUBMENIU3()
  344.     {MainMenuToggle=1;
  345.     menu_redraw_required = 1;
  346.     selectie=sub_menu2items;
  347.    for(int x=0;x<selectie;x++){
  348.     menu_item[x]=submenu2[x];
  349.  }
  350.   }
  351. void SUBMENIU4(){
  352.   MainMenuToggle=1;
  353.     menu_redraw_required = 1;
  354.     selectie=sub_menu3items;
  355.    for(int x=0;x<selectie;x++){
  356.     menu_item[x]=submenu3[x];
  357.   }
  358.   }
  359.  
  360.   void SUBMENIU20(){
  361.   MainMenuToggle=1;
  362.     menu_redraw_required = 1;
  363.     selectie=sub_menu20items;
  364.    for(int x=0;x<selectie;x++){
  365.     menu_item[x]=submenu20[x];
  366.     }
  367.   }
  368.  
  369.   void SUBMENIU21(){
  370.   MainMenuToggle=1;
  371.     menu_redraw_required = 1;
  372.     selectie=sub_menu20items;
  373.    for(int x=0;x<selectie;x++){
  374.     menu_item[x]=submenu20[x];
  375.    }
  376.   }
  377.  
  378. void MENIU(void){
  379.   selectie=main_menuitems;
  380.     menu_redraw_required = 1;
  381.     for(int x=0;x<selectie;x++)
  382.     menu_item[x]=main_menu[x];
  383.     MainMenuToggle=1;
  384.  
  385. }
  386.  
  387. /*void data_meniu(void){
  388.   DateTime now = RTC.now();
  389. (String(now.day(), DEC) + "/"+String(now.month(), DEC)+"/"+ String(now.year() , DEC)).toCharArray(data, 10);
  390.  unsigned int ora=0, minut=0;
  391.  String oras="", minuts="";
  392.  ora=now.hour();
  393.  minut=now.minute();
  394.  if(ora<10)oras="0"+String(now.hour());
  395.  else oras=String(now.hour());
  396.  if(minut<10)minuts="0"+String(now.minute());
  397. else minuts=String(now.minute());
  398.  u8g.setPrintPos(84, 14);
  399. (String(oras + ":" + minuts)).toCharArray(oraz, 10, 0);
  400.   }
  401.   */
  402.  
  403.  
  404. void loop(void) {  
  405.  
  406.   if(a){inceput:
  407.     interr=1;
  408.     a=1;
  409.    
  410.     sensors.requestTemperatures();
  411.   tempC = sensors.getTempCByIndex(0);
  412.     u8g.firstPage();
  413.     do {
  414.    
  415.     mainScreen();
  416.   } while( u8g.nextPage());
  417.  
  418.   }
  419.  
  420.   else{
  421.  
  422.   up=false;
  423.   down=false;
  424.    n = digitalRead(encoderA);
  425.    if ((Last == LOW) && (n == HIGH)) {
  426.      if (digitalRead(encoderB) == LOW) {
  427.        down = true; tone(buzzer, 1000, 50);}
  428.      else
  429.        {up = true;tone(buzzer, 1200, 50);}
  430.      }
  431.    Last = n;
  432.    
  433.    
  434.    
  435.    
  436.    
  437.    if (digitalRead(button) == LOW){
  438.       tone(buzzer, 2000, 50);
  439.       if (s==0){
  440.      
  441.       switch(menu_current)
  442.       {
  443.              case 0: {s=1; /*data_meniu();*/SUBMENIU1();menu_current=3;} break;
  444.              case 1: {s=2; SUBMENIU2();menu_current=2;} break;
  445.              case 2: {s=3;SUBMENIU3();menu_current=2;} break;
  446.              case 3: {s=4; (String(EEPROM.readLong(0))).toCharArray(serviceUlei, 6);
  447.              Serial.print("Long ");
  448.              Serial.print(EEPROM.readLong(0));
  449.              Serial.print(" String ");
  450.              
  451.              Serial.print(String(EEPROM.readLong(0)));
  452.              Serial.print(" Char ");
  453.              Serial.print(serviceUlei);
  454.              
  455.              SUBMENIU4();menu_current=2;} break;
  456.              case 4: {MainMenuToggle=1;u8g.setDefaultForegroundColor(); a=1; interr=1; goto inceput;} break;
  457.              }}
  458.    
  459.     // Logic for Submenu 1
  460.     else if (s==1){
  461.  
  462.       switch (menu_current)
  463.       {
  464.         case 0: break;
  465.         case 1: break;
  466.         case 2: break;
  467.         case 3:{MENIU();s=0;MainMenuToggle=0;menu_current=0;} break;
  468.        
  469.       }}
  470.     // Logic for Submenu 2
  471.     else if (s==2)
  472.       switch (menu_current)
  473.       {
  474.         case 0: break;
  475.         case 1: break;
  476.         case 2:{MENIU();s=0;MainMenuToggle=0;menu_current=1;}; break;
  477.       }
  478.     // Logic for Submenu 3
  479.     else if (s==3)
  480.       switch (menu_current)
  481.       {
  482.         case 0:{SUBMENIU20(); s=5; menu_current=3;} break;
  483.         case 1:{SUBMENIU21(); s=6; menu_current=3;} break;
  484.         case 2:{MENIU();s=0;MainMenuToggle=0;menu_current=2;} break;
  485.       }
  486.        else if (s==4)
  487.       switch (menu_current)
  488.       {
  489.         case 0: break;
  490.         case 1:menu_current=3;  break;
  491.         case 2:{MENIU(); s=0;MainMenuToggle=0;menu_current=3;} break;
  492.       }
  493.       else if (s==5)
  494.       switch (menu_current)
  495.       {
  496.         case 0: break;
  497.         case 1: break;
  498.         case 2: break;
  499.         case 3:{SUBMENIU3(); s=3;MainMenuToggle=0;menu_current=2;} break;
  500.      
  501.       }
  502.       else if (s==6)
  503.       switch (menu_current)
  504.       {
  505.         case 0: break;
  506.         case 1: break;
  507.         case 2: break;
  508.         case 3:{SUBMENIU3(); s=3;MainMenuToggle=0;menu_current=2;} break;
  509.       }
  510.    }
  511.  
  512.  else if (MainMenuToggle==0&&s==0) MENIU();
  513.  
  514.    
  515.  
  516.      
  517.    
  518.    
  519.  
  520.  
  521.  
  522.    
  523.   if (  menu_redraw_required != 0 ) {
  524.     u8g.firstPage();
  525.     do  {
  526.       drawMenu( menu_item, selectie);
  527.     } while( u8g.nextPage() );
  528.     menu_redraw_required = 0;
  529.   }
  530.  updateMenu(selectie);  
  531.  
  532.  }
  533. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement