Added debug menu for display coordinates
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
#include "esptexthelpers.h"
|
#include "esptexthelpers.h"
|
||||||
#include "accessors/settingsaccessors.h"
|
#include "accessors/settingsaccessors.h"
|
||||||
#include "displays/qrcodedebug.h"
|
#include "displays/qrcodedebug.h"
|
||||||
|
#include "displays/xydebugdisplay.h"
|
||||||
#include "displays/menus/taskmanagermenu.h"
|
#include "displays/menus/taskmanagermenu.h"
|
||||||
#ifdef FEATURE_CAN
|
#ifdef FEATURE_CAN
|
||||||
#include "displays/menus/candebugmenu.h"
|
#include "displays/menus/candebugmenu.h"
|
||||||
@@ -38,6 +39,7 @@ constexpr char TEXT_TASKMANAGER[] = "Taskmanager";
|
|||||||
constexpr char TEXT_CANDEBUG[] = "CAN Debug";
|
constexpr char TEXT_CANDEBUG[] = "CAN Debug";
|
||||||
#endif
|
#endif
|
||||||
constexpr char TEXT_QRCODE_DEBUG[] = "QR Debug";
|
constexpr char TEXT_QRCODE_DEBUG[] = "QR Debug";
|
||||||
|
constexpr char TEXT_XY_DEBUG[] = "XY Debug";
|
||||||
constexpr char TEXT_BATTERYDEBUG[] = "Bat Debug Menu";
|
constexpr char TEXT_BATTERYDEBUG[] = "Bat Debug Menu";
|
||||||
constexpr char TEXT_TOGGLECLOUDDEBUG[] = "Cloud Debug";
|
constexpr char TEXT_TOGGLECLOUDDEBUG[] = "Cloud Debug";
|
||||||
//constexpr char TEXT_FRONTCOMMAND[] = "Front command";
|
//constexpr char TEXT_FRONTCOMMAND[] = "Front command";
|
||||||
@@ -67,6 +69,7 @@ DebugMenu::DebugMenu()
|
|||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CANDEBUG>, PushScreenAction<CanDebugMenu>>>();
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CANDEBUG>, PushScreenAction<CanDebugMenu>>>();
|
||||||
#endif
|
#endif
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_QRCODE_DEBUG>, PushScreenAction<QrCodeDebugDisplay>>>();
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_QRCODE_DEBUG>, PushScreenAction<QrCodeDebugDisplay>>>();
|
||||||
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_XY_DEBUG>, PushScreenAction<XYDebugDisplay>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERYDEBUG>, PushScreenAction<BatteryDebugMenu>, StaticMenuItemIcon<&bobbyicons::battery>>>();
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERYDEBUG>, PushScreenAction<BatteryDebugMenu>, StaticMenuItemIcon<&bobbyicons::battery>>>();
|
||||||
if (configs.feature.udpcloud.isEnabled.value())
|
if (configs.feature.udpcloud.isEnabled.value())
|
||||||
{
|
{
|
||||||
|
77
main/displays/xydebugdisplay.cpp
Normal file
77
main/displays/xydebugdisplay.cpp
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
#include "xydebugdisplay.h"
|
||||||
|
|
||||||
|
// 3rdparty lib includes
|
||||||
|
#include <fmt/core.h>
|
||||||
|
#include <screenmanager.h>
|
||||||
|
#include <tftinstance.h>
|
||||||
|
|
||||||
|
// local includes
|
||||||
|
#include "bobbybuttons.h"
|
||||||
|
|
||||||
|
XYDebugDisplay::XYDebugDisplay() : m_labelCoordinates{5, 5} {}
|
||||||
|
|
||||||
|
void XYDebugDisplay::initScreen()
|
||||||
|
{
|
||||||
|
Base::initScreen();
|
||||||
|
m_labelCoordinates.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void XYDebugDisplay::redraw()
|
||||||
|
{
|
||||||
|
using namespace espgui;
|
||||||
|
|
||||||
|
Base::redraw();
|
||||||
|
m_labelCoordinates.redraw(fmt::format("X: {}, Y: {}", m_current_cursor.x, m_current_cursor.y));
|
||||||
|
|
||||||
|
if (m_current_cursor.x != m_last_cursor.x || m_current_cursor.y != m_last_cursor.y)
|
||||||
|
{
|
||||||
|
tft.fillCircle(m_last_cursor.x, m_last_cursor.y, 2, TFT_BLACK);
|
||||||
|
tft.fillCircle(m_current_cursor.x, m_current_cursor.y, 2, TFT_WHITE);
|
||||||
|
|
||||||
|
m_last_cursor = m_current_cursor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void XYDebugDisplay::buttonPressed(espgui::Button button)
|
||||||
|
{
|
||||||
|
switch (button)
|
||||||
|
{
|
||||||
|
using espgui::Button;
|
||||||
|
case Button::Left:
|
||||||
|
case Button::Right:
|
||||||
|
case Button::Up:
|
||||||
|
case Button::Down:
|
||||||
|
espgui::popScreen();
|
||||||
|
break;
|
||||||
|
default:;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (BobbyButton(button))
|
||||||
|
{
|
||||||
|
case BobbyButton::Left2:
|
||||||
|
if (m_current_cursor.x > 0)
|
||||||
|
{
|
||||||
|
--m_current_cursor.x;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BobbyButton::Right2:
|
||||||
|
if (m_current_cursor.x < espgui::tft.width() - 1)
|
||||||
|
{
|
||||||
|
++m_current_cursor.x;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BobbyButton::Up2:
|
||||||
|
if (m_current_cursor.y > 0)
|
||||||
|
{
|
||||||
|
--m_current_cursor.y;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BobbyButton::Down2:
|
||||||
|
if (m_current_cursor.y < espgui::tft.height() - 1)
|
||||||
|
{
|
||||||
|
++m_current_cursor.y;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:;
|
||||||
|
}
|
||||||
|
}
|
29
main/displays/xydebugdisplay.h
Normal file
29
main/displays/xydebugdisplay.h
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
// 3rdparty lib includes
|
||||||
|
#include <widgets/label.h>
|
||||||
|
|
||||||
|
// local includes
|
||||||
|
#include "bobbydisplay.h"
|
||||||
|
|
||||||
|
class XYDebugDisplay : public BobbyDisplay
|
||||||
|
{
|
||||||
|
using Base = BobbyDisplay;
|
||||||
|
|
||||||
|
public:
|
||||||
|
XYDebugDisplay();
|
||||||
|
void initScreen() override;
|
||||||
|
void redraw() override;
|
||||||
|
|
||||||
|
void buttonPressed(espgui::Button button) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
typedef struct {
|
||||||
|
uint8_t x;
|
||||||
|
uint8_t y;
|
||||||
|
} cursor_pos_t;
|
||||||
|
|
||||||
|
cursor_pos_t m_current_cursor{0, 0};
|
||||||
|
cursor_pos_t m_last_cursor{0, 0};
|
||||||
|
espgui::Label m_labelCoordinates;
|
||||||
|
};
|
Reference in New Issue
Block a user