mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-23 16:25:31 +03:00
Overlooked menu separation from osd.c
This was overlooked (cms_menu_osd.h was already there). Now the element position editing capability is absolutely gone.
This commit is contained in:
parent
941c3abb12
commit
3bce0fb5f1
3 changed files with 114 additions and 103 deletions
1
Makefile
1
Makefile
|
@ -556,6 +556,7 @@ HIGHEND_SRC = \
|
||||||
cms/cms_menu_builtin.c \
|
cms/cms_menu_builtin.c \
|
||||||
cms/cms_menu_imu.c \
|
cms/cms_menu_imu.c \
|
||||||
cms/cms_menu_ledstrip.c \
|
cms/cms_menu_ledstrip.c \
|
||||||
|
cms/cms_menu_osd.c \
|
||||||
cms/cms_menu_vtx.c \
|
cms/cms_menu_vtx.c \
|
||||||
common/colorconversion.c \
|
common/colorconversion.c \
|
||||||
drivers/display_ug2864hsweg01.c \
|
drivers/display_ug2864hsweg01.c \
|
||||||
|
|
113
src/main/cms/cms_menu_osd.c
Normal file
113
src/main/cms/cms_menu_osd.c
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
/*
|
||||||
|
* This file is part of Cleanflight.
|
||||||
|
*
|
||||||
|
* Cleanflight is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Cleanflight is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Cleanflight. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
|
#include "platform.h"
|
||||||
|
|
||||||
|
#include "build/version.h"
|
||||||
|
|
||||||
|
#include "cms/cms.h"
|
||||||
|
#include "cms/cms_types.h"
|
||||||
|
#include "cms/cms_menu_osd.h"
|
||||||
|
|
||||||
|
#include "config/config_profile.h"
|
||||||
|
#include "config/config_master.h"
|
||||||
|
#include "config/feature.h"
|
||||||
|
|
||||||
|
#ifdef CMS
|
||||||
|
|
||||||
|
OSD_UINT8_t entryAlarmRssi = {&masterConfig.osdProfile.rssi_alarm, 5, 90, 5};
|
||||||
|
OSD_UINT16_t entryAlarmCapacity = {&masterConfig.osdProfile.cap_alarm, 50, 30000, 50};
|
||||||
|
OSD_UINT16_t enryAlarmFlyTime = {&masterConfig.osdProfile.time_alarm, 1, 200, 1};
|
||||||
|
OSD_UINT16_t entryAlarmAltitude = {&masterConfig.osdProfile.alt_alarm, 1, 200, 1};
|
||||||
|
|
||||||
|
OSD_Entry cmsx_menuAlarmsEntries[] =
|
||||||
|
{
|
||||||
|
{"--- ALARMS ---", OME_Label, NULL, NULL, 0},
|
||||||
|
{"RSSI", OME_UINT8, NULL, &entryAlarmRssi, 0},
|
||||||
|
{"MAIN BAT", OME_UINT16, NULL, &entryAlarmCapacity, 0},
|
||||||
|
{"FLY TIME", OME_UINT16, NULL, &enryAlarmFlyTime, 0},
|
||||||
|
{"MAX ALT", OME_UINT16, NULL, &entryAlarmAltitude, 0},
|
||||||
|
{"BACK", OME_Back, NULL, NULL, 0},
|
||||||
|
{NULL, OME_END, NULL, NULL, 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
CMS_Menu cmsx_menuAlarms = {
|
||||||
|
"MENUALARMS",
|
||||||
|
OME_MENU,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
cmsx_menuAlarmsEntries,
|
||||||
|
};
|
||||||
|
|
||||||
|
OSD_Entry menuOsdActiveElemsEntries[] =
|
||||||
|
{
|
||||||
|
{"--- ACTIV ELEM ---", OME_Label, NULL, NULL, 0},
|
||||||
|
{"RSSI", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_RSSI_VALUE], 0},
|
||||||
|
{"MAIN BATTERY", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_MAIN_BATT_VOLTAGE], 0},
|
||||||
|
{"HORIZON", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_ARTIFICIAL_HORIZON], 0},
|
||||||
|
{"HORIZON SIDEBARS", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_HORIZON_SIDEBARS], 0},
|
||||||
|
{"UPTIME", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_ONTIME], 0},
|
||||||
|
{"FLY TIME", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_FLYTIME], 0},
|
||||||
|
{"FLY MODE", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_FLYMODE], 0},
|
||||||
|
{"NAME", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_CRAFT_NAME], 0},
|
||||||
|
{"THROTTLE", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_THROTTLE_POS], 0},
|
||||||
|
#ifdef VTX
|
||||||
|
{"VTX CHAN", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_VTX_CHANNEL]},
|
||||||
|
#endif // VTX
|
||||||
|
{"CURRENT (A)", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_CURRENT_DRAW], 0},
|
||||||
|
{"USED MAH", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_MAH_DRAWN], 0},
|
||||||
|
#ifdef GPS
|
||||||
|
{"GPS SPEED", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_GPS_SPEED], 0},
|
||||||
|
{"GPS SATS.", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_GPS_SATS], 0},
|
||||||
|
#endif // GPS
|
||||||
|
{"ALTITUDE", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_ALTITUDE], 0},
|
||||||
|
{"BACK", OME_Back, NULL, NULL, 0},
|
||||||
|
{NULL, OME_END, NULL, NULL, 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
CMS_Menu menuOsdActiveElems = {
|
||||||
|
"MENUOSDACT",
|
||||||
|
OME_MENU,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
menuOsdActiveElemsEntries,
|
||||||
|
};
|
||||||
|
|
||||||
|
OSD_Entry cmsx_menuOsdLayoutEntries[] =
|
||||||
|
{
|
||||||
|
{"---SCREEN LAYOUT---", OME_Label, NULL, NULL, 0},
|
||||||
|
{"ACTIVE ELEM", OME_Submenu, cmsMenuChange, &menuOsdActiveElems, 0},
|
||||||
|
{"BACK", OME_Back, NULL, NULL, 0},
|
||||||
|
{NULL, OME_END, NULL, NULL, 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
CMS_Menu cmsx_menuOsdLayout = {
|
||||||
|
"MENULAYOUT",
|
||||||
|
OME_MENU,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
cmsx_menuOsdLayoutEntries,
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CMS
|
|
@ -657,107 +657,4 @@ void osdUpdate(uint32_t currentTime)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef EDIT_ELEMENT_SUPPORT
|
|
||||||
void osdEditElement(void *ptr)
|
|
||||||
{
|
|
||||||
uint32_t address = (uint32_t)ptr;
|
|
||||||
|
|
||||||
// zsave position on menu stack
|
|
||||||
menuStack[menuStackIdx] = currentMenu;
|
|
||||||
menuStackHistory[menuStackIdx] = currentMenuPos;
|
|
||||||
menuStackIdx++;
|
|
||||||
|
|
||||||
currentElement = (uint16_t *)address;
|
|
||||||
|
|
||||||
*currentElement |= BLINK_FLAG;
|
|
||||||
max7456ClearScreen();
|
|
||||||
}
|
|
||||||
|
|
||||||
void osdDrawElementPositioningHelp(void)
|
|
||||||
{
|
|
||||||
max7456Write(OSD_X(masterConfig.osdProfile.item_pos[OSD_ARTIFICIAL_HORIZON]), OSD_Y(masterConfig.osdProfile.item_pos[OSD_ARTIFICIAL_HORIZON]), "--- HELP --- ");
|
|
||||||
max7456Write(OSD_X(masterConfig.osdProfile.item_pos[OSD_ARTIFICIAL_HORIZON]), OSD_Y(masterConfig.osdProfile.item_pos[OSD_ARTIFICIAL_HORIZON]) + 1, "USE ROLL/PITCH");
|
|
||||||
max7456Write(OSD_X(masterConfig.osdProfile.item_pos[OSD_ARTIFICIAL_HORIZON]), OSD_Y(masterConfig.osdProfile.item_pos[OSD_ARTIFICIAL_HORIZON]) + 2, "TO MOVE ELEM. ");
|
|
||||||
max7456Write(OSD_X(masterConfig.osdProfile.item_pos[OSD_ARTIFICIAL_HORIZON]), OSD_Y(masterConfig.osdProfile.item_pos[OSD_ARTIFICIAL_HORIZON]) + 3, " ");
|
|
||||||
max7456Write(OSD_X(masterConfig.osdProfile.item_pos[OSD_ARTIFICIAL_HORIZON]), OSD_Y(masterConfig.osdProfile.item_pos[OSD_ARTIFICIAL_HORIZON]) + 4, "YAW - EXIT ");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
OSD_UINT8_t entryAlarmRssi = {&masterConfig.osdProfile.rssi_alarm, 5, 90, 5};
|
|
||||||
OSD_UINT16_t entryAlarmCapacity = {&masterConfig.osdProfile.cap_alarm, 50, 30000, 50};
|
|
||||||
OSD_UINT16_t enryAlarmFlyTime = {&masterConfig.osdProfile.time_alarm, 1, 200, 1};
|
|
||||||
OSD_UINT16_t entryAlarmAltitude = {&masterConfig.osdProfile.alt_alarm, 1, 200, 1};
|
|
||||||
|
|
||||||
OSD_Entry cmsx_menuAlarmsEntries[] =
|
|
||||||
{
|
|
||||||
{"--- ALARMS ---", OME_Label, NULL, NULL, 0},
|
|
||||||
{"RSSI", OME_UINT8, NULL, &entryAlarmRssi, 0},
|
|
||||||
{"MAIN BAT", OME_UINT16, NULL, &entryAlarmCapacity, 0},
|
|
||||||
{"FLY TIME", OME_UINT16, NULL, &enryAlarmFlyTime, 0},
|
|
||||||
{"MAX ALT", OME_UINT16, NULL, &entryAlarmAltitude, 0},
|
|
||||||
{"BACK", OME_Back, NULL, NULL, 0},
|
|
||||||
{NULL, OME_END, NULL, NULL, 0}
|
|
||||||
};
|
|
||||||
|
|
||||||
CMS_Menu cmsx_menuAlarms = {
|
|
||||||
"MENUALARMS",
|
|
||||||
OME_MENU,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
cmsx_menuAlarmsEntries,
|
|
||||||
};
|
|
||||||
|
|
||||||
OSD_Entry menuOsdActiveElemsEntries[] =
|
|
||||||
{
|
|
||||||
{"--- ACTIV ELEM ---", OME_Label, NULL, NULL, 0},
|
|
||||||
{"RSSI", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_RSSI_VALUE], 0},
|
|
||||||
{"MAIN BATTERY", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_MAIN_BATT_VOLTAGE], 0},
|
|
||||||
{"HORIZON", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_ARTIFICIAL_HORIZON], 0},
|
|
||||||
{"HORIZON SIDEBARS", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_HORIZON_SIDEBARS], 0},
|
|
||||||
{"UPTIME", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_ONTIME], 0},
|
|
||||||
{"FLY TIME", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_FLYTIME], 0},
|
|
||||||
{"FLY MODE", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_FLYMODE], 0},
|
|
||||||
{"NAME", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_CRAFT_NAME], 0},
|
|
||||||
{"THROTTLE", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_THROTTLE_POS], 0},
|
|
||||||
#ifdef VTX
|
|
||||||
{"VTX CHAN", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_VTX_CHANNEL]},
|
|
||||||
#endif // VTX
|
|
||||||
{"CURRENT (A)", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_CURRENT_DRAW], 0},
|
|
||||||
{"USED MAH", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_MAH_DRAWN], 0},
|
|
||||||
#ifdef GPS
|
|
||||||
{"GPS SPEED", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_GPS_SPEED], 0},
|
|
||||||
{"GPS SATS.", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_GPS_SATS], 0},
|
|
||||||
#endif // GPS
|
|
||||||
{"ALTITUDE", OME_VISIBLE, NULL, &masterConfig.osdProfile.item_pos[OSD_ALTITUDE], 0},
|
|
||||||
{"BACK", OME_Back, NULL, NULL, 0},
|
|
||||||
{NULL, OME_END, NULL, NULL, 0}
|
|
||||||
};
|
|
||||||
|
|
||||||
CMS_Menu menuOsdActiveElems = {
|
|
||||||
"MENUOSDACT",
|
|
||||||
OME_MENU,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
menuOsdActiveElemsEntries,
|
|
||||||
};
|
|
||||||
|
|
||||||
OSD_Entry cmsx_menuOsdLayoutEntries[] =
|
|
||||||
{
|
|
||||||
{"---SCREEN LAYOUT---", OME_Label, NULL, NULL, 0},
|
|
||||||
{"ACTIVE ELEM", OME_Submenu, cmsMenuChange, &menuOsdActiveElems, 0},
|
|
||||||
{"BACK", OME_Back, NULL, NULL, 0},
|
|
||||||
{NULL, OME_END, NULL, NULL, 0}
|
|
||||||
};
|
|
||||||
|
|
||||||
CMS_Menu cmsx_menuOsdLayout = {
|
|
||||||
"MENULAYOUT",
|
|
||||||
OME_MENU,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
cmsx_menuOsdLayoutEntries,
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // OSD
|
#endif // OSD
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue