#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>
//
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
//
int progs = 0;
int annTime = 11000;
float sensor1 = 24.5;
float sensor2 = 81.1;
float sensor3 = 48.1;
float sensor4 = 12.56;
int systemState = 1;
int menuPos = 2;
int menuLevel = 1;
unsigned long startTime;
unsigned long targetTime;
//
const char string_0[] PROGMEM = "START";
const char string_1[] PROGMEM = "SET";
const char string_2[] PROGMEM = "STATUS";
const char *const menuLevelOne[] PROGMEM = {string_0, string_1, string_2};
//
const char string_3[] PROGMEM = "TIME";
const char string_4[] PROGMEM = "EXIT";
const char *const menuLevelTwo[] PROGMEM = {string_3, string_4};
//
char buffer[8];
//
//
void setup(void) {
u8g2.begin(); // start the u8g2 library
startTime = millis();
targetTime = annTime + startTime;
}
//
void loop(void) {
u8g2.clearBuffer(); // clear the internal memory
// draw header
u8g2.setDrawColor(1);
u8g2.setFont(u8g2_font_helvR08_tr);
u8g2.setCursor(45,9);
u8g2.print(F("MENU"));
// draw split line
u8g2.drawLine(66, 12, 66, 64);
// draw menu pos
for (int i = 0; i < 3; i++) {
strcpy_P(buffer, (char *)pgm_read_ptr(&(menuLevelOne[i])));
u8g2.setCursor(10,22 + (i * 10));
u8g2.print(buffer);
}
// print coursor
u8g2.setCursor(0,12 + (menuPos * 10) );
u8g2.print(F(">"));
// print sensors
u8g2.setCursor(68,22);
u8g2.print(F("COIL"));
u8g2.setCursor(108,22);
u8g2.print(sensor1, 1);
u8g2.setCursor(68,36);
u8g2.print(F("CAPS"));
u8g2.setCursor(108,36);
u8g2.print(sensor2, 1);
u8g2.setCursor(68,50);
u8g2.print(F("RADS"));
u8g2.setCursor(108,50);
u8g2.print(sensor3, 1);
u8g2.setCursor(68,64);
u8g2.print(F("CURR"));
u8g2.setCursor(108,64);
u8g2.print(sensor4, 1);
u8g2.sendBuffer();
}