Skip to content

Commit 502b885

Browse files
committed
WIP: Create System>Sensors>VL53L0X menu to modify sensor sensitivity.
Need to: - See if this is acceptable, or there is a better way.
1 parent e3c3689 commit 502b885

File tree

2 files changed

+72
-3
lines changed

2 files changed

+72
-3
lines changed

src/graphics/draw/MenuHandler.cpp

Lines changed: 67 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,6 +1009,59 @@ void menuHandler::textMessageMenu()
10091009
cannedMessageModule->LaunchWithDestination(NODENUM_BROADCAST);
10101010
}
10111011

1012+
void menuHandler::sensorsMenu()
1013+
{
1014+
enum optionsNumbers { Back, VL53L0X };
1015+
static const char *optionsArray[2] = {"Back"};
1016+
static int optionsEnumArray[2] = {Back, VL53L0X};
1017+
int options = 1;
1018+
1019+
optionsArray[options] = "VL53L0X";
1020+
optionsEnumArray[options++] = VL53L0X;
1021+
1022+
BannerOverlayOptions bannerOptions;
1023+
bannerOptions.message = "Sensors";
1024+
bannerOptions.optionsArrayPtr = optionsArray;
1025+
bannerOptions.optionsCount = options;
1026+
bannerOptions.optionsEnumPtr = optionsEnumArray;
1027+
bannerOptions.bannerCallback = [](int selected) -> void {
1028+
if (selected == VL53L0X) {
1029+
menuQueue = SensorsVL53L0XMenu;
1030+
screen->runNow();
1031+
} else {
1032+
menuQueue = SystemBaseMenu;
1033+
screen->runNow();
1034+
}
1035+
};
1036+
screen->showOverlayBanner(bannerOptions);
1037+
1038+
}
1039+
1040+
void menuHandler::sensorsVL53L0XMenu()
1041+
{
1042+
static const char *optionsArray[] = {"Back", "Default", "LongRange", "HighSpeed", "HighAccuracy"};
1043+
enum optionsNumbers { Back = 0, Default = 1, LongRange = 2, HighSpeed = 3, HighAccuracy = 4 };
1044+
BannerOverlayOptions bannerOptions;
1045+
bannerOptions.message = "VL53L0X Sensitivity";
1046+
bannerOptions.optionsArrayPtr = optionsArray;
1047+
bannerOptions.optionsCount = 5;
1048+
bannerOptions.bannerCallback = [](int selected) -> void {
1049+
if (selected == Back) {
1050+
menuQueue = SensorsMenu;
1051+
} else if (selected == Default) {
1052+
// TODO: set Sensitivity
1053+
} else if (selected == LongRange) {
1054+
// TODO: set Sensitivity
1055+
} else if (selected == HighSpeed) {
1056+
// TODO: set Sensitivity
1057+
} else if (selected == HighAccuracy) {
1058+
// TODO: set Sensitivity
1059+
}
1060+
// TODO: call VL50L0x::saveState();
1061+
};
1062+
screen->showOverlayBanner(bannerOptions);
1063+
}
1064+
10121065
void menuHandler::textMessageBaseMenu()
10131066
{
10141067
enum optionsNumbers { Back, Preset, Freetext, enumEnd };
@@ -1040,7 +1093,7 @@ void menuHandler::textMessageBaseMenu()
10401093

10411094
void menuHandler::systemBaseMenu()
10421095
{
1043-
enum optionsNumbers { Back, Notifications, ScreenOptions, Bluetooth, WiFiToggle, PowerMenu, Test, enumEnd };
1096+
enum optionsNumbers { Back, Notifications, ScreenOptions, Bluetooth, WiFiToggle, PowerMenu, Sensors, Test, enumEnd };
10441097
static const char *optionsArray[enumEnd] = {"Back"};
10451098
static int optionsEnumArray[enumEnd] = {Back};
10461099
int options = 1;
@@ -1069,6 +1122,9 @@ void menuHandler::systemBaseMenu()
10691122
}
10701123
optionsEnumArray[options++] = PowerMenu;
10711124

1125+
optionsArray[options] = "Sensors";
1126+
optionsEnumArray[options++] = Sensors;
1127+
10721128
if (test_enabled) {
10731129
optionsArray[options] = "Test Menu";
10741130
optionsEnumArray[options++] = Test;
@@ -1103,6 +1159,9 @@ void menuHandler::systemBaseMenu()
11031159
menuQueue = WifiToggleMenu;
11041160
screen->runNow();
11051161
#endif
1162+
} else if (selected == Sensors) {
1163+
menuHandler::menuQueue = menuHandler::SensorsMenu;
1164+
screen->runNow();
11061165
} else if (selected == Back && !test_enabled) {
11071166
test_count++;
11081167
if (test_count > 4) {
@@ -2799,6 +2858,12 @@ void menuHandler::handleMenuSwitch(OLEDDisplay *display)
27992858
case MessageBubblesMenu:
28002859
messageBubblesMenu();
28012860
break;
2861+
case SensorsMenu:
2862+
sensorsMenu();
2863+
break;
2864+
case SensorsVL53L0XMenu:
2865+
sensorsVL53L0XMenu();
2866+
break;
28022867
}
28032868
menuQueue = MenuNone;
28042869
}
@@ -2810,4 +2875,4 @@ void menuHandler::saveUIConfig()
28102875

28112876
} // namespace graphics
28122877

2813-
#endif
2878+
#endif

src/graphics/draw/MenuHandler.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ class menuHandler
5555
NodeNameLengthMenu,
5656
FrameToggles,
5757
DisplayUnits,
58-
MessageBubblesMenu
58+
MessageBubblesMenu,
59+
SensorsMenu,
60+
SensorsVL53L0XMenu
5961
};
6062
static screenMenus menuQueue;
6163
static uint32_t pickedNodeNum; // node selected by NodePicker for ManageNodeMenu
@@ -111,6 +113,8 @@ class menuHandler
111113
static void displayUnitsMenu();
112114
static void messageBubblesMenu();
113115
static void textMessageMenu();
116+
static void sensorsMenu();
117+
static void sensorsVL53L0XMenu();
114118

115119
private:
116120
static void saveUIConfig();

0 commit comments

Comments
 (0)