feat(bw): add 'Set Screen' special function to B&W radios (#5589)

This commit is contained in:
philmoz
2024-10-17 15:58:34 +10:00
committed by GitHub
parent 200518cc9a
commit e8224b8f08
46 changed files with 183 additions and 43 deletions
+20 -5
View File
@@ -53,7 +53,7 @@ void menuViewTelemetry(event_t event)
{
enum NavigationDirection direction = NAVIGATION_DIRECTION_NONE;
if (event == EVT_KEY_BREAK(KEY_EXIT) && TELEMETRY_SCREEN_TYPE(s_frsky_view) != TELEMETRY_SCREEN_TYPE_SCRIPT) {
if (event == EVT_KEY_BREAK(KEY_EXIT) && TELEMETRY_SCREEN_TYPE(selectedTelemView) != TELEMETRY_SCREEN_TYPE_SCRIPT) {
chainMenu(menuMainView);
}
#if defined(LUA)
@@ -75,12 +75,12 @@ void menuViewTelemetry(event_t event)
for (int i=0; i<=TELEMETRY_SCREEN_TYPE_MAX; i++) {
if (direction == NAVIGATION_DIRECTION_UP) {
if (s_frsky_view-- == 0)
s_frsky_view = TELEMETRY_VIEW_MAX;
if (selectedTelemView-- == 0)
selectedTelemView = TELEMETRY_VIEW_MAX;
}
else if (direction == NAVIGATION_DIRECTION_DOWN) {
if (s_frsky_view++ == TELEMETRY_VIEW_MAX)
s_frsky_view = 0;
if (selectedTelemView++ == TELEMETRY_VIEW_MAX)
selectedTelemView = 0;
}
else {
direction = NAVIGATION_DIRECTION_DOWN;
@@ -95,5 +95,20 @@ void menuViewTelemetry(event_t event)
displayRssiLine();
}
void showTelemScreen(uint8_t index)
{
if (menuHandlers[menuLevel] == menuViewTelemetry || menuHandlers[menuLevel] == menuMainView) {
if (index == 0) {
chainMenu(menuMainView);
} else {
index -= 1;
if ((index >= 0 && index <= TELEMETRY_SCREEN_TYPE_MAX) && (TELEMETRY_SCREEN_TYPE(index) != TELEMETRY_SCREEN_TYPE_NONE)) {
selectedTelemView = index;
chainMenu(menuViewTelemetry);
}
}
}
}
#undef EVT_KEY_PREVIOUS_VIEW
#undef EVT_KEY_NEXT_VIEW