introduced a lot of new tasks in the taskmanager

This commit is contained in:
2021-12-05 01:17:13 +01:00
parent 13d35d50a1
commit 02aae7120c
8 changed files with 90 additions and 85 deletions

View File

@ -167,6 +167,7 @@ set(headers
modes/motortestmode.h
modes/remotecontrolmode.h
modes/tempomatmode.h
mosfets.h
newsettings.h
ota.h
presets.h
@ -368,6 +369,7 @@ set(sources
modes/motortestmode.cpp
modes/remotecontrolmode.cpp
modes/tempomatmode.cpp
mosfets.cpp
newsettings.cpp
ota.cpp
presets.cpp

View File

@ -16,6 +16,11 @@ int upPressRepeat{};
std::optional<espchrono::millis_clock::time_point> downPressedSince;
int downPressRepeat{};
void InputDispatcher::init()
{
}
void InputDispatcher::update()
{
if (upPressedSince && espchrono::ago(*upPressedSince) > (upPressRepeat > 2 ? 50ms : 400ms))

View File

@ -32,6 +32,8 @@ extern int downPressRepeat;
class InputDispatcher
{
public:
static void init();
static void update();
static void rotate(int offset);

View File

@ -8,7 +8,6 @@ constexpr const char * const TAG = "BOBBY";
#include <cstdio>
// esp-idf includes
#include <esp_wifi_types.h>
#include <esp_log.h>
// Arduino includes
@ -26,22 +25,6 @@ using namespace std::chrono_literals;
#include "macros_bobbycar.h"
#include "globals.h"
#include "screens.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 FEATURE_ROTARY
#include "rotary.h"
#endif
#include "serialhandler.h"
#ifdef FEATURE_OTA
#include "ota.h"
@ -152,59 +135,12 @@ extern "C" void app_main()
else
ESP_LOGE("MAIN", "get_default_mac_addr() failed: %.*s", result.error().size(), result.error().data());
for (const auto &task : schedulerTasks)
{
bootLabel.redraw(task.name());
task.setup();
}
#ifdef FEATURE_DPAD
bootLabel.redraw("dpad");
dpad::init();
#endif
#ifdef FEATURE_DPAD_3WIRESW
bootLabel.redraw("dpad3wire");
dpad3wire::init();
#endif
#ifdef FEATURE_DPAD_5WIRESW
bootLabel.redraw("dpad5wire");
dpad5wire::init();
#endif
#ifdef FEATURE_DPAD_5WIRESW_2OUT
bootLabel.redraw("dpad5wire_2out");
dpad5wire_2out::init();
#endif
#ifdef FEATURE_DPAD_6WIRESW
bootLabel.redraw("dpad6wire");
dpad6wire::init();
#endif
#ifdef FEATURE_ROTARY
bootLabel.redraw("rotary");
initRotary();
#endif
#ifdef FEATURE_MOSFETS
bootLabel.redraw("mosfets");
pinMode(PINS_MOSFET0, OUTPUT);
pinMode(PINS_MOSFET1, OUTPUT);
pinMode(PINS_MOSFET2, OUTPUT);
digitalWrite(PINS_MOSFET0, LOW);
digitalWrite(PINS_MOSFET1, LOW);
digitalWrite(PINS_MOSFET2, LOW);
#endif
#ifdef FEATURE_SERIAL
bootLabel.redraw("swap front back");
updateSwapFrontBack();
#endif
#ifdef FEATURE_BLUETOOTH
if (settings.bluetoothSettings.autoBluetoothMode == BluetoothMode::Master)
{
@ -236,6 +172,9 @@ extern "C" void app_main()
bootLabel.redraw("back Serial begin");
controllers.back.serial.get().begin(38400, SERIAL_8N1, PINS_RX2, PINS_TX2);
bootLabel.redraw("swap front back");
updateSwapFrontBack();
#endif
#ifdef FEATURE_LEDSTRIP
@ -307,26 +246,6 @@ extern "C" void app_main()
}
InputDispatcher::update();
#ifdef FEATURE_DPAD
dpad::update();
#endif
#ifdef FEATURE_DPAD_3WIRESW
dpad3wire::update();
#endif
#ifdef FEATURE_DPAD_5WIRESW
dpad5wire::update();
#endif
#ifdef FEATURE_DPAD_5WIRESW_2OUT
dpad5wire_2out::update();
#endif
#ifdef FEATURE_DPAD_6WIRESW
dpad6wire::update();
#endif
if (!lastPotiRead || now - *lastPotiRead >= 1000ms/settings.boardcomputerHardware.timersSettings.potiReadRate)
{
readPotis();

22
main/mosfets.cpp Normal file
View File

@ -0,0 +1,22 @@
#include "mosfets.h"
// Arduino includes
#include <Arduino.h>
#ifdef FEATURE_MOSFETS
void init_mosfets()
{
pinMode(PINS_MOSFET0, OUTPUT);
pinMode(PINS_MOSFET1, OUTPUT);
pinMode(PINS_MOSFET2, OUTPUT);
digitalWrite(PINS_MOSFET0, LOW);
digitalWrite(PINS_MOSFET1, LOW);
digitalWrite(PINS_MOSFET2, LOW);
}
void update_mosfets()
{
}
#endif

6
main/mosfets.h Normal file
View File

@ -0,0 +1,6 @@
#pragma once
#ifdef FEATURE_MOSFETS
void init_mosfets();
void update_mosfets();
#endif

View File

@ -84,5 +84,10 @@ void initRotary()
attachInterrupt(decltype(rotary)::ClkPin, updateRotate, CHANGE);
attachInterrupt(decltype(rotary)::SwPin, updateSwitch, CHANGE);
}
void updateRotary()
{
}
#endif
}

View File

@ -1,5 +1,7 @@
#include "taskmanager.h"
#include "sdkconfig.h"
// system includes
#include <iterator>
#include <chrono>
@ -12,6 +14,26 @@
// local includes
#include "wifi_bobbycar.h"
#include "buttons.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 FEATURE_ROTARY
#include "rotary.h"
#endif
#ifdef FEATURE_MOSFETS
#include "mosfets.h"
#endif
using namespace std::chrono_literals;
@ -19,7 +41,29 @@ namespace {
constexpr const char * const TAG = "TASKS";
espcpputils::SchedulerTask schedulerTasksArr[] {
espcpputils::SchedulerTask { "wifi", wifi_begin, wifi_update, 100ms },
espcpputils::SchedulerTask { "wifi", wifi_begin, wifi_update, 100ms },
espcpputils::SchedulerTask { "input", InputDispatcher::init, InputDispatcher::update, {} },
#ifdef FEATURE_DPAD
espcpputils::SchedulerTask { "dpad", dpad::init, dpad::update, {} },
#endif
#ifdef FEATURE_DPAD_3WIRESW
espcpputils::SchedulerTask { "dpad3wire", dpad3wire::init, dpad3wire::update, {} },
#endif
#ifdef FEATURE_DPAD_5WIRESW
espcpputils::SchedulerTask { "dpad5wire", dpad5wire::init, dpad5wire::update, {} },
#endif
#ifdef FEATURE_DPAD_5WIRESW_2OUT
espcpputils::SchedulerTask { "dpad5wire_2out", dpad5wire_2out::init, dpad5wire_2out::update, {} },
#endif
#ifdef FEATURE_DPAD_6WIRESW
espcpputils::SchedulerTask { "dpad6wire", dpad6wire::init, dpad6wire::update, {} },
#endif
#ifdef FEATURE_ROTARY
espcpputils::SchedulerTask { "rotary", initRotary, updateRotary, {} },
#endif
#ifdef FEATURE_MOSFETS
espcpputils::SchedulerTask { "mosfets", init_mosfets, update_mosfets, {} },
#endif
};
} // namespace