Kinda unified dpads
This commit is contained in:
@ -478,6 +478,8 @@ void send_information()
|
||||
infoObject["tempBack"] = fixBoardTemp(controllers.back.feedback.boardTemp);
|
||||
infoObject["current"] = sumCurrent;
|
||||
|
||||
infoObject["btnCnt"] = bobbydpad::ButtonCount;
|
||||
|
||||
std::string body;
|
||||
serializeJson(doc, body);
|
||||
doc.clear();
|
||||
|
@ -96,6 +96,8 @@ void update()
|
||||
debounceBack = now;
|
||||
}
|
||||
}
|
||||
|
||||
constexpr const uint8_t BUTTON_COUNT = 4;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
} // namespace dpad
|
||||
} // namespace
|
||||
|
@ -111,6 +111,7 @@ void update()
|
||||
debounceBack = now;
|
||||
}
|
||||
}
|
||||
constexpr const uint8_t BUTTON_COUNT = 4;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
} // namespace dpad3wire
|
||||
} // namespace
|
||||
|
@ -1,8 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
// system includes
|
||||
#include <cstdint>
|
||||
|
||||
#ifdef FEATURE_DPAD_5WIRESW
|
||||
namespace dpad5wire {
|
||||
void init();
|
||||
void update();
|
||||
constexpr const uint8_t BUTTON_COUNT = 8;
|
||||
} // namespace dpad5wire
|
||||
#endif
|
||||
|
@ -1,8 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
// system includes
|
||||
#include <cstdint>
|
||||
|
||||
#ifdef FEATURE_DPAD_5WIRESW_2OUT
|
||||
namespace dpad5wire_2out {
|
||||
void init();
|
||||
void update();
|
||||
constexpr const uint8_t BUTTON_COUNT = 12;
|
||||
} // namespace dpad5wire_2out
|
||||
#endif
|
||||
|
@ -1,8 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
// system includes
|
||||
#include <cstdint>
|
||||
|
||||
#ifdef FEATURE_DPAD_6WIRESW
|
||||
namespace dpad6wire {
|
||||
void init();
|
||||
void update();
|
||||
constexpr const uint8_t BUTTON_COUNT = 10;
|
||||
} // namespace dpad6wire
|
||||
#endif
|
||||
|
@ -1,8 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
// system includes
|
||||
#include <cstdint>
|
||||
|
||||
#ifdef DPAD_BOARDCOMPUTER_V2
|
||||
namespace dpad_boardcomputer_v2 {
|
||||
void init();
|
||||
void update();
|
||||
constexpr const uint8_t BUTTON_COUNT = 16;
|
||||
} // namespace dpad_boardcomputer_v2
|
||||
#endif
|
||||
|
@ -10,22 +10,6 @@
|
||||
|
||||
// local includes
|
||||
#include "wifi_bobbycar.h"
|
||||
#include "dpad.h"
|
||||
#ifdef FEATURE_DPAD_3WIRESW
|
||||
#include "dpad3wire.h"
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_5WIRESW
|
||||
#include "dpad5wire.h"
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_5WIRESW_2OUT
|
||||
#include "dpad5wire_2out.h"
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_6WIRESW
|
||||
#include "dpad6wire.h"
|
||||
#endif
|
||||
#ifdef DPAD_BOARDCOMPUTER_V2
|
||||
#include "dpad_boardcomputer_v2.h"
|
||||
#endif
|
||||
#ifdef FEATURE_ROTARY
|
||||
#include "rotary.h"
|
||||
#endif
|
||||
@ -58,6 +42,7 @@
|
||||
#include "drivingstatistics.h"
|
||||
#include "dnsannounce.h"
|
||||
#include "screens.h"
|
||||
#include "utils.h"
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
@ -68,23 +53,8 @@ void not_needed() {}
|
||||
|
||||
BobbySchedulerTask schedulerTasksArr[] {
|
||||
BobbySchedulerTask { "wifi", wifi_begin, wifi_update, 100ms },
|
||||
#ifdef FEATURE_DPAD
|
||||
BobbySchedulerTask { "dpad", dpad::init, dpad::update, 20ms },
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_3WIRESW
|
||||
BobbySchedulerTask { "dpad3wire", dpad3wire::init, dpad3wire::update, 20ms },
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_5WIRESW
|
||||
BobbySchedulerTask { "dpad5wire", dpad5wire::init, dpad5wire::update, 20ms },
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_5WIRESW_2OUT
|
||||
BobbySchedulerTask { "dpad5wire_2out", dpad5wire_2out::init, dpad5wire_2out::update, 20ms },
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_6WIRESW
|
||||
BobbySchedulerTask { "dpad6wire", dpad6wire::init, dpad6wire::update, 20ms },
|
||||
#endif
|
||||
#ifdef DPAD_BOARDCOMPUTER_V2
|
||||
BobbySchedulerTask { "dpad_boardcomputer_v2", dpad_boardcomputer_v2::init, dpad_boardcomputer_v2::update, 20ms },
|
||||
#if defined(FEATURE_DPAD) || defined(FEATURE_DPAD_3WIRESW) || defined(FEATURE_DPAD_5WIRESW) || defined(FEATURE_DPAD_5WIRESW_2OUT) || defined(FEATURE_DPAD_6WIRESW) || defined(DPAD_BOARDCOMPUTER_V2)
|
||||
BobbySchedulerTask { bobbydpad::dpad_name, bobbydpad::dpad_init, bobbydpad::dpad_update, 20ms },
|
||||
#endif
|
||||
#ifdef FEATURE_ROTARY
|
||||
BobbySchedulerTask { "rotary", initRotary, updateRotary, 20ms },
|
||||
|
58
main/utils.h
58
main/utils.h
@ -28,6 +28,25 @@
|
||||
#include "can.h"
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_DPAD
|
||||
#include "dpad.h"
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_3WIRESW
|
||||
#include "dpad3wire.h"
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_5WIRESW
|
||||
#include "dpad5wire.h"
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_5WIRESW_2OUT
|
||||
#include "dpad5wire_2out.h"
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_6WIRESW
|
||||
#include "dpad6wire.h"
|
||||
#endif
|
||||
#ifdef DPAD_BOARDCOMPUTER_V2
|
||||
#include "dpad_boardcomputer_v2.h"
|
||||
#endif
|
||||
|
||||
extern bool currentlyReverseBeeping;
|
||||
extern bool reverseBeepToggle;
|
||||
extern espchrono::millis_clock::time_point lastReverseBeepToggle;
|
||||
@ -80,3 +99,42 @@ inline CRGB UINT32_TO_CRGB(uint32_t color)
|
||||
std::string get_wifi_security_string(wifi_auth_mode_t authMode);
|
||||
float float_map(float x, float in_min, float in_max, float out_min, float out_max);
|
||||
bool is_valid_timestamp(espchrono::utc_clock::time_point timestamp);
|
||||
|
||||
namespace bobbydpad {
|
||||
#ifdef FEATURE_DPAD
|
||||
static constexpr const auto ButtonCount = dpad::BUTTON_COUNT;
|
||||
static constexpr const auto &dpad_init = dpad::init;
|
||||
static constexpr const auto &dpad_update = dpad::update;
|
||||
static constexpr const char * const dpad_name = "dpad";
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_3WIRESW
|
||||
static constexpr const auto ButtonCount = dpad3wire::BUTTON_COUNT;
|
||||
static constexpr const auto &dpad_init = dpad3wire::init;
|
||||
static constexpr const auto &dpad_update = dpad3wire::update;
|
||||
static constexpr const char * const dpad_name = "dpad3wire";
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_5WIRESW
|
||||
static constexpr const auto ButtonCount = dpad5wire::BUTTON_COUNT;
|
||||
static constexpr const auto &dpad_init = dpad5wire::init;
|
||||
static constexpr const auto &dpad_update = dpad5wire::update;
|
||||
static constexpr const char * const dpad_name = "dpad5wire";
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_5WIRESW_2OUT
|
||||
static constexpr const auto ButtonCount = dpad5wire_2out::BUTTON_COUNT;
|
||||
static constexpr const auto &dpad_init = dpad5wire_2out::init;
|
||||
static constexpr const auto &dpad_update = dpad5wire_2out::update;
|
||||
static constexpr const char * const dpad_name = "dpad5wire_2out";
|
||||
#endif
|
||||
#ifdef FEATURE_DPAD_6WIRESW
|
||||
static constexpr const auto ButtonCount = dpad6wire::BUTTON_COUNT;
|
||||
static constexpr const auto &dpad_init = dpad6wire::init;
|
||||
static constexpr const auto &dpad_update = dpad6wire::update;
|
||||
static constexpr const char * const dpad_name = "dpad6wire";
|
||||
#endif
|
||||
#ifdef DPAD_BOARDCOMPUTER_V2
|
||||
static constexpr const auto ButtonCount = dpad_boardcomputer_v2::BUTTON_COUNT;
|
||||
static constexpr const auto &dpad_init = dpad_boardcomputer_v2::init;
|
||||
static constexpr const auto &dpad_update = dpad_boardcomputer_v2::update;
|
||||
static constexpr const char * const dpad_name = "dpad_boardcomputer_v2";
|
||||
#endif
|
||||
} // namespace bobbydpad
|
||||
|
@ -190,7 +190,11 @@ esp_err_t webserver_root_handler(httpd_req_t *req)
|
||||
"<a href=\"/triggerRawButton?button=8\">Button8</a> "
|
||||
"<a href=\"/triggerRawButton?button=9\">Button9</a> "
|
||||
"<a href=\"/triggerRawButton?button=10\">Button10</a> "
|
||||
"<a href=\"/triggerRawButton?button=11\">Button11</a>";
|
||||
"<a href=\"/triggerRawButton?button=11\">Button11</a> "
|
||||
"<a href=\"/triggerRawButton?button=12\">Button12</a> "
|
||||
"<a href=\"/triggerRawButton?button=13\">Button13</a> "
|
||||
"<a href=\"/triggerRawButton?button=14\">Button14</a> "
|
||||
"<a href=\"/triggerRawButton?button=15\">Button15</a>";
|
||||
}
|
||||
|
||||
{
|
||||
@ -207,7 +211,11 @@ esp_err_t webserver_root_handler(httpd_req_t *req)
|
||||
"<a href=\"/triggerButton?button={}\">Left2</a> "
|
||||
"<a href=\"/triggerButton?button={}\">Right2</a> "
|
||||
"<a href=\"/triggerButton?button={}\">Up2</a> "
|
||||
"<a href=\"/triggerButton?button={}\">Down2</a>",
|
||||
"<a href=\"/triggerButton?button={}\">Down2</a>"
|
||||
"<a href=\"/triggerButton?button={}\">Extra1</a>"
|
||||
"<a href=\"/triggerButton?button={}\">Extra2</a>"
|
||||
"<a href=\"/triggerButton?button={}\">Extra3</a>"
|
||||
"<a href=\"/triggerButton?button={}\">Extra4</a>",
|
||||
std::to_underlying(espgui::Button::Left),
|
||||
std::to_underlying(espgui::Button::Right),
|
||||
std::to_underlying(espgui::Button::Up),
|
||||
@ -219,7 +227,11 @@ esp_err_t webserver_root_handler(httpd_req_t *req)
|
||||
std::to_underlying(BobbyButton::Left2),
|
||||
std::to_underlying(BobbyButton::Right2),
|
||||
std::to_underlying(BobbyButton::Up2),
|
||||
std::to_underlying(BobbyButton::Down2));
|
||||
std::to_underlying(BobbyButton::Down2),
|
||||
std::to_underlying(BobbyButton::Extra1),
|
||||
std::to_underlying(BobbyButton::Extra2),
|
||||
std::to_underlying(BobbyButton::Extra3),
|
||||
std::to_underlying(BobbyButton::Extra4));
|
||||
}
|
||||
|
||||
if (auto currentDisplay = static_cast<const espgui::Display *>(espgui::currentDisplay.get()))
|
||||
|
Reference in New Issue
Block a user