#pragma once #include "display.hpp" //--- menuState_t --- // modes the menu can be in typedef enum { MAIN_MENU = 0, SET_VALUE } menuState_t; //--- menuItem_t --- // struct describes one menu element (all defined in menu.cpp) typedef struct { void (*action)(display_task_parameters_t * objects, SSD1306_t * display, int value); // pointer to function run when confirmed int (*currentValue)(display_task_parameters_t * objects); // pointer to function to get currently configured value int (*defaultValue)(display_task_parameters_t * objects); // pointer to function to get currently configured value int valueMin; // min allowed value int valueMax; // max allowed value int valueIncrement; // amount changed at one encoder tick (+/-) const char title[17]; // shown in list const char line1[17]; // above value const char line2[17]; // above value const char line4[17]; // below value * const char line5[17]; // below value * const char line6[17]; // below value const char line7[17]; // below value } menuItem_t; //controls menu for changing settings with encoder input and displays the text on oled display (has to be repeatedly called by display task) void handleMenu_settings(display_task_parameters_t * objects, SSD1306_t *display); //controls menu for selecting the control mode with encoder input and displays the text on oled display (has to be repeatedly called by display task) void handleMenu_modeSelect(display_task_parameters_t * objects, SSD1306_t *display);