2015-07-10 06:01:56 -07:00
|
|
|
/**
|
|
|
|
* @file lcd_menu_tree.h
|
|
|
|
*
|
|
|
|
* @date Jan 6, 2015
|
2017-01-03 03:05:22 -08:00
|
|
|
* @author Andrey Belomutskiy, (c) 2012-2017
|
2015-07-10 06:01:56 -07:00
|
|
|
*/
|
|
|
|
#ifndef CONTROLLERS_ALGO_LCD_MENU_TREE_H_
|
|
|
|
#define CONTROLLERS_ALGO_LCD_MENU_TREE_H_
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
LL_STRING,
|
|
|
|
LL_VERSION,
|
|
|
|
LL_CONFIG,
|
|
|
|
LL_ALGORITHM,
|
|
|
|
LL_INJECTION,
|
|
|
|
LL_IGNITION,
|
|
|
|
LL_ING_FLOW,
|
|
|
|
|
|
|
|
LL_RPM,
|
|
|
|
LL_TRIGGER_ERRORS,
|
|
|
|
LL_TRIGGER_DUTY,
|
|
|
|
|
|
|
|
LL_CLT_TEMPERATURE,
|
|
|
|
LL_IAT_TEMPERATURE,
|
|
|
|
LL_AFR,
|
|
|
|
LL_TPS,
|
|
|
|
LL_VBATT,
|
|
|
|
LL_MAF,
|
|
|
|
LL_MAP,
|
|
|
|
LL_MAF_V,
|
|
|
|
LL_MAF_KG_HR,
|
|
|
|
LL_EGO,
|
|
|
|
LL_BARO,
|
|
|
|
LL_KNOCK,
|
|
|
|
|
|
|
|
LL_BASE_FUEL,
|
|
|
|
LL_TOTAL_FUEL,
|
|
|
|
LL_CLT_FUEL_CORR,
|
|
|
|
LL_IAT_FUEL_CORR,
|
|
|
|
} lcd_line_e;
|
|
|
|
|
|
|
|
typedef void (*VoidCallback)(void);
|
|
|
|
|
|
|
|
class MenuItem {
|
|
|
|
public:
|
|
|
|
void baseConstructor(MenuItem * parent, lcd_line_e lcdLine, const char *text, VoidCallback callback);
|
|
|
|
MenuItem(MenuItem * parent, const char *text, VoidCallback callback);
|
|
|
|
MenuItem(MenuItem * parent, const char *text);
|
|
|
|
MenuItem(MenuItem * parent, lcd_line_e lcdLine);
|
|
|
|
const char *text;
|
|
|
|
lcd_line_e lcdLine;
|
|
|
|
int index;
|
|
|
|
// that's upper level menu item
|
|
|
|
MenuItem *parent;
|
|
|
|
MenuItem *topOfTheList;
|
|
|
|
MenuItem *firstChild;
|
|
|
|
MenuItem *lastChild;
|
|
|
|
MenuItem *next;
|
|
|
|
VoidCallback callback;
|
|
|
|
};
|
|
|
|
|
|
|
|
class MenuTree {
|
|
|
|
public:
|
|
|
|
MenuTree(MenuItem *root);
|
|
|
|
void nextItem(void);
|
|
|
|
void back(void);
|
|
|
|
void enterSubMenu(void);
|
|
|
|
void init(MenuItem *first, int linesCount);
|
|
|
|
MenuItem *root;
|
|
|
|
|
|
|
|
int linesCount;
|
|
|
|
MenuItem *current;
|
|
|
|
MenuItem *topVisible;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* CONTROLLERS_ALGO_LCD_MENU_TREE_H_ */
|