From 8210c57dffc1d5bf6c0cabd1d229d5d454892b09 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Sun, 19 Dec 2021 03:33:51 +0100 Subject: [PATCH 1/6] Moved can into task manager --- main/accessors/settingsaccessors.h | 5 ----- main/displays/menus/timersmenu.cpp | 13 ------------- main/main.cpp | 21 --------------------- main/potis.cpp | 1 - main/presets.h | 3 --- main/settings.h | 6 ------ main/taskmanager.cpp | 24 +++++++++++++++--------- main/texts.cpp | 3 --- main/texts.h | 3 --- 9 files changed, 15 insertions(+), 64 deletions(-) diff --git a/main/accessors/settingsaccessors.h b/main/accessors/settingsaccessors.h index 654b9e4..17d7103 100644 --- a/main/accessors/settingsaccessors.h +++ b/main/accessors/settingsaccessors.h @@ -130,11 +130,6 @@ struct StatsUpdateRateAccessor : public RefAccessorSaveSettings { int16 struct DisplayUpdateRateAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.timersSettings.displayUpdateRate; } }; struct DisplayRedrawRateAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.timersSettings.displayRedrawRate; } }; -// CAN -#ifdef FEATURE_CAN -struct CanReceiveRateAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.timersSettings.canReceiveRate; } }; -#endif - // Cloud #ifdef FEATURE_CLOUD struct CloudCollectRateAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.timersSettings.cloudCollectRate; } }; diff --git a/main/displays/menus/timersmenu.cpp b/main/displays/menus/timersmenu.cpp index 7d72040..5b60650 100644 --- a/main/displays/menus/timersmenu.cpp +++ b/main/displays/menus/timersmenu.cpp @@ -42,16 +42,6 @@ using DisplayRedrawRateChangeDisplay = makeComponent< BackActionInterface>, SwitchScreenAction >; - -#ifdef FEATURE_CAN -using CanReceiveRateChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - CanReceiveRateAccessor, - BackActionInterface>, - SwitchScreenAction ->; -#endif } TimersMenu::TimersMenu() @@ -60,9 +50,6 @@ TimersMenu::TimersMenu() constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); -#ifdef FEATURE_CAN - constructMenuItem, SwitchScreenAction>>(); -#endif constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } diff --git a/main/main.cpp b/main/main.cpp index b1823d3..3bd9b84 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -38,9 +38,6 @@ using namespace std::chrono_literals; #ifdef FEATURE_WEBSERVER #include "webserver.h" #endif -#ifdef FEATURE_CAN -#include "can.h" -#endif #ifdef FEATURE_CLOUD #include "cloud.h" #include "udpcloud.h" @@ -68,9 +65,6 @@ std::optional lastModeUpdate; std::optional lastStatsUpdate; std::optional lastDisplayUpdate; std::optional lastDisplayRedraw; -#ifdef FEATURE_CAN -std::optional lastCanParse; -#endif #ifdef FEATURE_BLE std::optional lastBleUpdate; #endif @@ -133,11 +127,6 @@ extern "C" void app_main() task.setup(); } -#ifdef FEATURE_CAN - bootLabel.redraw("can"); - can::initCan(); -#endif - #ifdef FEATURE_SERIAL bootLabel.redraw("front Serial begin"); controllers.front.serial.get().begin(38400, SERIAL_8N1, PINS_RX1, PINS_TX1); @@ -266,16 +255,6 @@ extern "C" void app_main() performance.lastTime = now; } -#ifdef FEATURE_CAN - if (!lastCanParse || now - *lastCanParse >= 1000ms/settings.boardcomputerHardware.timersSettings.canReceiveRate) - { - //can::tryParseCanInput(); - can::parseCanInput(); - - lastCanParse = now; - } -#endif - #ifdef FEATURE_SERIAL for (Controller &controller : controllers) controller.parser.update(); diff --git a/main/potis.cpp b/main/potis.cpp index 4a0ed5c..5b2dc07 100644 --- a/main/potis.cpp +++ b/main/potis.cpp @@ -6,7 +6,6 @@ // local includes #include "globals.h" - #ifdef FEATURE_CAN #include "can.h" #endif diff --git a/main/presets.h b/main/presets.h index 7310782..d1a799a 100644 --- a/main/presets.h +++ b/main/presets.h @@ -140,9 +140,6 @@ constexpr Settings::BoardcomputerHardware::TimersSettings defaultTimersSettings .statsUpdateRate = 50, .displayUpdateRate = 50, .displayRedrawRate = 50, -#ifdef FEATURE_CAN - .canReceiveRate = 100, -#endif #ifdef FEATURE_CLOUD .cloudCollectRate = 100, .cloudSendRate = 1, diff --git a/main/settings.h b/main/settings.h index a37096e..b7916f6 100644 --- a/main/settings.h +++ b/main/settings.h @@ -107,9 +107,6 @@ struct Settings int16_t statsUpdateRate; int16_t displayUpdateRate; int16_t displayRedrawRate; -#ifdef FEATURE_CAN - int16_t canReceiveRate; -#endif #ifdef FEATURE_CLOUD int16_t cloudCollectRate; int16_t cloudSendRate; @@ -303,9 +300,6 @@ void Settings::executeForEveryCommonSetting(T &&callable) callable("statsUpdateRate", boardcomputerHardware.timersSettings.statsUpdateRate); callable("displayUpdateRa", boardcomputerHardware.timersSettings.displayUpdateRate); callable("displayRedrawRa", boardcomputerHardware.timersSettings.displayRedrawRate); -#ifdef FEATURE_CAN - callable("canReceiveRate", boardcomputerHardware.timersSettings.canReceiveRate); -#endif #ifdef FEATURE_CLOUD callable("cloudCollectRat", boardcomputerHardware.timersSettings.cloudCollectRate); callable("cloudSendRate", boardcomputerHardware.timersSettings.cloudSendRate); diff --git a/main/taskmanager.cpp b/main/taskmanager.cpp index 45d672f..f99325d 100644 --- a/main/taskmanager.cpp +++ b/main/taskmanager.cpp @@ -41,6 +41,9 @@ #ifdef FEATURE_BLUETOOTH #include "bluetooth_bobby.h" #endif +#ifdef FEATURE_CAN +#include "can.h" +#endif using namespace std::chrono_literals; @@ -49,36 +52,39 @@ constexpr const char * const TAG = "TASKS"; espcpputils::SchedulerTask schedulerTasksArr[] { espcpputils::SchedulerTask { "wifi", wifi_begin, wifi_update, 100ms }, - espcpputils::SchedulerTask { "input", InputDispatcher::init, InputDispatcher::update, {} }, + espcpputils::SchedulerTask { "input", InputDispatcher::init, InputDispatcher::update, 20ms }, #ifdef FEATURE_DPAD - espcpputils::SchedulerTask { "dpad", dpad::init, dpad::update, {} }, + espcpputils::SchedulerTask { "dpad", dpad::init, dpad::update, 20ms }, #endif #ifdef FEATURE_DPAD_3WIRESW - espcpputils::SchedulerTask { "dpad3wire", dpad3wire::init, dpad3wire::update, {} }, + espcpputils::SchedulerTask { "dpad3wire", dpad3wire::init, dpad3wire::update, 20ms }, #endif #ifdef FEATURE_DPAD_5WIRESW - espcpputils::SchedulerTask { "dpad5wire", dpad5wire::init, dpad5wire::update, {} }, + espcpputils::SchedulerTask { "dpad5wire", dpad5wire::init, dpad5wire::update, 20ms }, #endif #ifdef FEATURE_DPAD_5WIRESW_2OUT - espcpputils::SchedulerTask { "dpad5wire_2out", dpad5wire_2out::init, dpad5wire_2out::update, {} }, + espcpputils::SchedulerTask { "dpad5wire_2out", dpad5wire_2out::init, dpad5wire_2out::update, 20ms }, #endif #ifdef FEATURE_DPAD_6WIRESW - espcpputils::SchedulerTask { "dpad6wire", dpad6wire::init, dpad6wire::update, {} }, + espcpputils::SchedulerTask { "dpad6wire", dpad6wire::init, dpad6wire::update, 20ms }, #endif #ifdef FEATURE_ROTARY - espcpputils::SchedulerTask { "rotary", initRotary, updateRotary, {} }, + espcpputils::SchedulerTask { "rotary", initRotary, updateRotary, 20ms }, #endif #ifdef FEATURE_MOSFETS - espcpputils::SchedulerTask { "mosfets", init_mosfets, update_mosfets, {} }, + espcpputils::SchedulerTask { "mosfets", init_mosfets, update_mosfets, 100ms }, #endif espcpputils::SchedulerTask { "wifi", wifi_begin, wifi_update, 100ms }, #ifdef FEATURE_NTP espcpputils::SchedulerTask { "time", initTime, updateTime, 100ms }, #endif - espcpputils::SchedulerTask { "potis", initPotis, readPotis, 20ms }, + espcpputils::SchedulerTask { "potis", initPotis, readPotis, 20ms }, #ifdef FEATURE_BLUETOOTH espcpputils::SchedulerTask { "bluetooth", bluetooth_init, bluetooth_update, 100ms }, #endif +#ifdef FEATURE_CAN + espcpputils::SchedulerTask { "can", can::initCan, can::parseCanInput, 50ms }, +#endif }; } // namespace diff --git a/main/texts.cpp b/main/texts.cpp index 9f58ec6..770bf1e 100644 --- a/main/texts.cpp +++ b/main/texts.cpp @@ -428,9 +428,6 @@ char TEXT_MODEUPDATERATE[] = "Mode update rate"; char TEXT_STATSUPDATERATE[] = "Stats update rate"; char TEXT_DISPLAYUPDATERATE[] = "Display update rate"; char TEXT_DISPLAYREDRAWRATE[] = "Display redraw rate"; -#ifdef FEATURE_CAN -char TEXT_CANRECEIVERATE[] = "CAN receive rate"; -#endif //char TEXT_BACK[] = "Back"; //TimeSettingsMenu diff --git a/main/texts.h b/main/texts.h index 92f706f..8c4f188 100644 --- a/main/texts.h +++ b/main/texts.h @@ -428,9 +428,6 @@ extern char TEXT_MODEUPDATERATE[]; extern char TEXT_STATSUPDATERATE[]; extern char TEXT_DISPLAYUPDATERATE[]; extern char TEXT_DISPLAYREDRAWRATE[]; -#ifdef FEATURE_CAN -extern char TEXT_CANRECEIVERATE[]; -#endif //extern char TEXT_BACK[]; //TimeSettingsMenu From 3ae672140209cc0632c1a5dda4739db2d46e6593 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Sun, 19 Dec 2021 04:23:47 +0100 Subject: [PATCH 2/6] debuginput task in taskmanager --- main/CMakeLists.txt | 4 +- main/debuginputhandler.cpp | 127 ++++++++++++++++++ main/{serialhandler.h => debuginputhandler.h} | 3 +- main/main.cpp | 7 - main/taskmanager.cpp | 2 + 5 files changed, 133 insertions(+), 10 deletions(-) create mode 100644 main/debuginputhandler.cpp rename main/{serialhandler.h => debuginputhandler.h} (61%) diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 6a2efba..ef94533 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -49,6 +49,7 @@ set(headers cloudtexthelpers.h controller.h debugcolorhelpers.h + debuginputhandler.h debugtexthelpers.h displays/bmsdisplay.h displays/calibratedisplay.h @@ -186,7 +187,6 @@ set(headers rotary.h screens.h serial.h - serialhandler.h settings.h settingspersister.h settingsutils.h @@ -264,6 +264,7 @@ set(sources cloudtexthelpers.cpp controller.cpp debugcolorhelpers.cpp + debuginputhandler.cpp debugtexthelpers.cpp displays/bmsdisplay.cpp displays/calibratedisplay.cpp @@ -402,7 +403,6 @@ set(sources rotary.cpp screens.cpp serial.cpp - serialhandler.cpp settings.cpp settingspersister.cpp settingsutils.cpp diff --git a/main/debuginputhandler.cpp b/main/debuginputhandler.cpp new file mode 100644 index 0000000..6a54445 --- /dev/null +++ b/main/debuginputhandler.cpp @@ -0,0 +1,127 @@ +#include "debuginputhandler.h" + +// Arduino includes +#include + +// 3rdparty lib includes +#include + +// local includes +#include "globals.h" +#include "utils.h" +#include "screens.h" +#include "buttons.h" + +using namespace espgui; + +//wl_status_t last_status; +//IPAddress last_ip; + +void initDebugInput() +{ + Serial.begin(115200); + //Serial.setDebugOutput(true); +} + +void handleDebugInput() +{ + //const auto status = WiFi.status(); + //if (last_status != status) + //{ + //Serial.print("Status changed to: "); + //Serial.println(to_string(status).c_str()); + //last_status = status; + //} + + //const auto ip = WiFi.localIP(); + //if (last_ip != ip) + //{ + //Serial.print("IP changed to: "); + //Serial.println(to_string(ip).c_str()); + //last_ip = ip; + //} + + while(Serial.available()) + { + const auto c = Serial.read(); + + switch (c) + { + case 'i': + case 'I': + tft.init(); + break; + case 'p': + case 'P': + { + const auto firstPower = controllers.front.command.poweroff; + for (Controller &controller : controllers) + controller.command.poweroff = !firstPower; + break; + } + case 'l': + case 'L': + { + const auto firstLed = controllers.front.command.led; + for (Controller &controller : controllers) + controller.command.led = !firstLed; + break; + } + case 'r': + case 'R': + loadSettings(); + break; + case 's': + case 'S': + saveSettings(); + break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + for (Controller &controller : controllers) + controller.command.buzzer.freq = c-'0'; + break; + case 'A': + InputDispatcher::rotate(-1); + break; + case 'B': + InputDispatcher::rotate(1); + break; + case 'C': + InputDispatcher::confirmButton(true); + InputDispatcher::confirmButton(false); + break; + case 'D': + InputDispatcher::backButton(true); + InputDispatcher::backButton(false); + break; + case 'z': + case 'Z': +#ifndef LEDSTRIP_WRONG_DIRECTION + InputDispatcher::blinkLeftButton(true); + InputDispatcher::blinkLeftButton(false); +#else + InputDispatcher::blinkRightButton(true); + InputDispatcher::blinkRightButton(false); +#endif + break; + case 'u': + case 'U': +#ifndef LEDSTRIP_WRONG_DIRECTION + InputDispatcher::blinkRightButton(true); + InputDispatcher::blinkRightButton(false); +#else + InputDispatcher::blinkLeftButton(true); + InputDispatcher::blinkLeftButton(false); +#endif + break; + } + } +} diff --git a/main/serialhandler.h b/main/debuginputhandler.h similarity index 61% rename from main/serialhandler.h rename to main/debuginputhandler.h index 87e8aff..8d44fcf 100644 --- a/main/serialhandler.h +++ b/main/debuginputhandler.h @@ -3,4 +3,5 @@ //extern wl_status_t last_status; //extern IPAddress last_ip; -void handleSerial(); +void initDebugInput(); +void handleDebugInput(); diff --git a/main/main.cpp b/main/main.cpp index 3bd9b84..3b17cff 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -25,7 +25,6 @@ using namespace std::chrono_literals; #include "macros_bobbycar.h" #include "globals.h" #include "screens.h" -#include "serialhandler.h" #ifdef FEATURE_OTA #include "ota.h" #include "displays/menus/selectbuildservermenu.h" @@ -79,10 +78,6 @@ std::optional lastLedstripUpdate; extern "C" void app_main() { - Serial.begin(115200); - //Serial.setDebugOutput(true); - //Serial.println("setup()"); - #ifdef FEATURE_LEDBACKLIGHT pinMode(PINS_LEDBACKLIGHT, OUTPUT); digitalWrite(PINS_LEDBACKLIGHT, ledBacklightInverted ? LOW : HIGH); @@ -260,8 +255,6 @@ extern "C" void app_main() controller.parser.update(); #endif - handleSerial(); - #ifdef FEATURE_OTA handleOta(); #endif diff --git a/main/taskmanager.cpp b/main/taskmanager.cpp index f99325d..e8ce310 100644 --- a/main/taskmanager.cpp +++ b/main/taskmanager.cpp @@ -44,6 +44,7 @@ #ifdef FEATURE_CAN #include "can.h" #endif +#include "debuginputhandler.h" using namespace std::chrono_literals; @@ -85,6 +86,7 @@ espcpputils::SchedulerTask schedulerTasksArr[] { #ifdef FEATURE_CAN espcpputils::SchedulerTask { "can", can::initCan, can::parseCanInput, 50ms }, #endif + espcpputils::SchedulerTask { "debuginput", initDebugInput, handleDebugInput, 50ms }, }; } // namespace From a1946e2e02b74604db85aab9a860eddf7d0fabb0 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Sun, 19 Dec 2021 04:35:37 +0100 Subject: [PATCH 3/6] Moved serial controller comm to taskmanager --- main/CMakeLists.txt | 4 ++-- main/main.cpp | 16 ---------------- main/serial.cpp | 0 main/serial.h | 0 main/serial_bobby.cpp | 27 +++++++++++++++++++++++++++ main/serial_bobby.h | 8 ++++++++ main/taskmanager.cpp | 6 ++++++ 7 files changed, 43 insertions(+), 18 deletions(-) delete mode 100644 main/serial.cpp delete mode 100644 main/serial.h create mode 100644 main/serial_bobby.cpp create mode 100644 main/serial_bobby.h diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index ef94533..a76809c 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -186,7 +186,7 @@ set(headers qrimport.h rotary.h screens.h - serial.h + serial_bobby.h settings.h settingspersister.h settingsutils.h @@ -402,7 +402,7 @@ set(sources qrimport.cpp rotary.cpp screens.cpp - serial.cpp + serial_bobby.cpp settings.cpp settingspersister.cpp settingsutils.cpp diff --git a/main/main.cpp b/main/main.cpp index 3b17cff..b079924 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -122,17 +122,6 @@ extern "C" void app_main() task.setup(); } -#ifdef FEATURE_SERIAL - bootLabel.redraw("front Serial begin"); - controllers.front.serial.get().begin(38400, SERIAL_8N1, PINS_RX1, PINS_TX1); - - 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 bootLabel.redraw("LED strip"); initLedStrip(); @@ -250,11 +239,6 @@ extern "C" void app_main() performance.lastTime = now; } -#ifdef FEATURE_SERIAL - for (Controller &controller : controllers) - controller.parser.update(); -#endif - #ifdef FEATURE_OTA handleOta(); #endif diff --git a/main/serial.cpp b/main/serial.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/serial.h b/main/serial.h deleted file mode 100644 index e69de29..0000000 diff --git a/main/serial_bobby.cpp b/main/serial_bobby.cpp new file mode 100644 index 0000000..088dd0a --- /dev/null +++ b/main/serial_bobby.cpp @@ -0,0 +1,27 @@ +#include "serial_bobby.h" + +// local includes +#include "globals.h" +#include "screens.h" + +#ifdef FEATURE_SERIAL + +void initSerial() +{ + bootLabel.redraw("front Serial begin"); + controllers.front.serial.get().begin(38400, SERIAL_8N1, PINS_RX1, PINS_TX1); + + bootLabel.redraw("back Serial begin"); + controllers.back.serial.get().begin(38400, SERIAL_8N1, PINS_RX2, PINS_TX2); + + bootLabel.redraw("swap front back"); + updateSwapFrontBack(); +} + +void updateSerial() +{ + for (Controller &controller : controllers) + controller.parser.update(); +} + +#endif diff --git a/main/serial_bobby.h b/main/serial_bobby.h new file mode 100644 index 0000000..9436c59 --- /dev/null +++ b/main/serial_bobby.h @@ -0,0 +1,8 @@ +#pragma once + +#ifdef FEATURE_SERIAL + +void initSerial(); +void updateSerial(); + +#endif diff --git a/main/taskmanager.cpp b/main/taskmanager.cpp index e8ce310..7b4afcd 100644 --- a/main/taskmanager.cpp +++ b/main/taskmanager.cpp @@ -45,6 +45,9 @@ #include "can.h" #endif #include "debuginputhandler.h" +#ifdef FEATURE_SERIAL +#include "serial_bobby.h" +#endif using namespace std::chrono_literals; @@ -87,6 +90,9 @@ espcpputils::SchedulerTask schedulerTasksArr[] { espcpputils::SchedulerTask { "can", can::initCan, can::parseCanInput, 50ms }, #endif espcpputils::SchedulerTask { "debuginput", initDebugInput, handleDebugInput, 50ms }, +#ifdef FEATURE_SERIAL + espcpputils::SchedulerTask { "serial", initSerial, updateSerial, 50ms }, +#endif }; } // namespace From 04515eecb58840cc1ec7c41decb09c1ae81c9db0 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Sun, 19 Dec 2021 04:42:01 +0100 Subject: [PATCH 4/6] Moved ota to taskmanager --- main/main.cpp | 13 ------------- main/taskmanager.cpp | 6 ++++++ 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/main/main.cpp b/main/main.cpp index b079924..7d3d52e 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -25,10 +25,6 @@ using namespace std::chrono_literals; #include "macros_bobbycar.h" #include "globals.h" #include "screens.h" -#ifdef FEATURE_OTA -#include "ota.h" -#include "displays/menus/selectbuildservermenu.h" -#endif #include "presets.h" #include "statistics.h" #ifdef FEATURE_BLE @@ -132,11 +128,6 @@ extern "C" void app_main() currentMode = &modes::defaultMode; -#ifdef FEATURE_OTA - bootLabel.redraw("ota"); - initOta(); -#endif - #ifdef FEATURE_BLE bootLabel.redraw("ble"); initBle(); @@ -239,10 +230,6 @@ extern "C" void app_main() performance.lastTime = now; } -#ifdef FEATURE_OTA - handleOta(); -#endif - #ifdef FEATURE_BLE if (!lastBleUpdate || now - *lastBleUpdate >= 250ms) { diff --git a/main/taskmanager.cpp b/main/taskmanager.cpp index 7b4afcd..801881c 100644 --- a/main/taskmanager.cpp +++ b/main/taskmanager.cpp @@ -48,6 +48,9 @@ #ifdef FEATURE_SERIAL #include "serial_bobby.h" #endif +#ifdef FEATURE_OTA +#include "ota.h" +#endif using namespace std::chrono_literals; @@ -93,6 +96,9 @@ espcpputils::SchedulerTask schedulerTasksArr[] { #ifdef FEATURE_SERIAL espcpputils::SchedulerTask { "serial", initSerial, updateSerial, 50ms }, #endif +#ifdef FEATURE_OTA + espcpputils::SchedulerTask { "ota", initOta, handleOta, 50ms }, +#endif }; } // namespace From be53c39ebf50fedaf027a0fc3f27f83c6519cb96 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Sun, 19 Dec 2021 04:48:12 +0100 Subject: [PATCH 5/6] moved ble to taskmanager --- main/main.cpp | 20 -------------------- main/taskmanager.cpp | 6 ++++++ 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/main/main.cpp b/main/main.cpp index 7d3d52e..2eb9eb5 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -27,9 +27,6 @@ using namespace std::chrono_literals; #include "screens.h" #include "presets.h" #include "statistics.h" -#ifdef FEATURE_BLE -#include "ble_bobby.h" -#endif #ifdef FEATURE_WEBSERVER #include "webserver.h" #endif @@ -60,9 +57,6 @@ std::optional lastModeUpdate; std::optional lastStatsUpdate; std::optional lastDisplayUpdate; std::optional lastDisplayRedraw; -#ifdef FEATURE_BLE -std::optional lastBleUpdate; -#endif #ifdef FEATURE_CLOUD std::optional lastCloudCollect; std::optional lastCloudSend; @@ -128,11 +122,6 @@ extern "C" void app_main() currentMode = &modes::defaultMode; -#ifdef FEATURE_BLE - bootLabel.redraw("ble"); - initBle(); -#endif - #ifdef FEATURE_WEBSERVER bootLabel.redraw("webserver"); initWebserver(); @@ -230,15 +219,6 @@ extern "C" void app_main() performance.lastTime = now; } -#ifdef FEATURE_BLE - if (!lastBleUpdate || now - *lastBleUpdate >= 250ms) - { - handleBle(); - - lastBleUpdate = now; - } -#endif - #ifdef FEATURE_ESPNOW espnow::handle(); #endif diff --git a/main/taskmanager.cpp b/main/taskmanager.cpp index 801881c..0cfd15e 100644 --- a/main/taskmanager.cpp +++ b/main/taskmanager.cpp @@ -51,6 +51,9 @@ #ifdef FEATURE_OTA #include "ota.h" #endif +#ifdef FEATURE_BLE +#include "ble_bobby.h" +#endif using namespace std::chrono_literals; @@ -99,6 +102,9 @@ espcpputils::SchedulerTask schedulerTasksArr[] { #ifdef FEATURE_OTA espcpputils::SchedulerTask { "ota", initOta, handleOta, 50ms }, #endif +#ifdef FEATURE_BLE + espcpputils::SchedulerTask { "ble", initBle, handleBle, 100ms }, +#endif }; } // namespace From b55b649b10a0b2a7ee0c5804fdb7cdc149cbca36 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Sun, 19 Dec 2021 04:56:24 +0100 Subject: [PATCH 6/6] Moved webserver into taskmanager --- main/main.cpp | 15 --------------- main/potis.cpp | 2 ++ main/taskmanager.cpp | 6 ++++++ 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/main/main.cpp b/main/main.cpp index 2eb9eb5..5674eca 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -27,9 +27,6 @@ using namespace std::chrono_literals; #include "screens.h" #include "presets.h" #include "statistics.h" -#ifdef FEATURE_WEBSERVER -#include "webserver.h" -#endif #ifdef FEATURE_CLOUD #include "cloud.h" #include "udpcloud.h" @@ -122,14 +119,6 @@ extern "C" void app_main() currentMode = &modes::defaultMode; -#ifdef FEATURE_WEBSERVER - bootLabel.redraw("webserver"); - initWebserver(); -#endif - - bootLabel.redraw("potis"); - readPotis(); - #ifdef FEATURE_CLOUD bootLabel.redraw("cloud"); initCloud(); @@ -239,10 +228,6 @@ extern "C" void app_main() } #endif -#ifdef FEATURE_WEBSERVER - handleWebserver(); -#endif - #ifdef FEATURE_BMS bms::update(); #endif diff --git a/main/potis.cpp b/main/potis.cpp index 5b2dc07..bc20584 100644 --- a/main/potis.cpp +++ b/main/potis.cpp @@ -18,6 +18,8 @@ void initPotis() raw_brems = std::nullopt; gas = std::nullopt; brems = std::nullopt; + + readPotis(); } void readPotis() diff --git a/main/taskmanager.cpp b/main/taskmanager.cpp index 0cfd15e..2a185f8 100644 --- a/main/taskmanager.cpp +++ b/main/taskmanager.cpp @@ -54,6 +54,9 @@ #ifdef FEATURE_BLE #include "ble_bobby.h" #endif +#ifdef FEATURE_WEBSERVER +#include "webserver.h" +#endif using namespace std::chrono_literals; @@ -105,6 +108,9 @@ espcpputils::SchedulerTask schedulerTasksArr[] { #ifdef FEATURE_BLE espcpputils::SchedulerTask { "ble", initBle, handleBle, 100ms }, #endif +#ifdef FEATURE_WEBSERVER + espcpputils::SchedulerTask { "webserver", initWebserver, handleWebserver, 100ms }, +#endif }; } // namespace