From e4a482e202f9ea4f2ac8a57e40c54e0234e507e0 Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Sun, 25 Dec 2022 03:22:28 +0100 Subject: [PATCH 1/9] Massive 12 hour rebase --- components/esp-gui-lib | 2 +- main/CMakeLists.txt | 486 ++++++++---------- main/actions/bluetoothbeginmasteraction.cpp | 0 main/actions/bluetoothconnectbmsaction.cpp | 0 main/actions/bluetoothdisconnectaction.cpp | 0 main/actions/bluetoothendaction.cpp | 0 main/actions/bluetoothflushaction.cpp | 0 main/actions/bmsturnoffchargeaction.cpp | 0 main/actions/bmsturnoffdischargeaction.cpp | 0 main/actions/bmsturnonchargeaction.cpp | 0 main/actions/bmsturnondischargeaction.cpp | 0 main/actions/erasenvsaction.cpp | 0 main/actions/ledstripanimationactions.cpp | 7 - main/actions/ledstripanimationactions.h | 12 +- main/actions/loadsettingsaction.cpp | 0 main/actions/modesettingsaction.cpp | 17 +- main/actions/modesettingsaction.h | 6 +- main/actions/qraction.h | 18 +- main/actions/rebootaction.cpp | 22 - main/actions/rebootaction.h | 10 - main/actions/resetnvsaction.cpp | 0 main/actions/resetnvsaction.h | 24 +- main/actions/savesettingsaction.cpp | 0 main/actions/setupactions.cpp | 9 +- main/actions/setupactions.h | 3 + main/actions/switchprofileaction.cpp | 0 .../tempomatmodeapplycurrentpeedaction.cpp | 0 main/actions/updateswapfrontbackaction.cpp | 0 main/actions/wifiscanaction.cpp | 0 main/ble_bobby.cpp | 4 +- main/bletexthelpers.cpp | 0 main/bluetoothmode.cpp | 0 main/bluetoothtexthelpers.cpp | 0 main/bmsutils.cpp | 0 main/bobbyerrorhandler.cpp | 14 - main/changevaluedisplay_bluetoothmode.cpp | 0 main/cloud.cpp | 8 +- main/debugcolorhelpers.cpp | 0 main/debugcolorhelpers.h | 8 +- main/debuginputhandler.cpp | 12 +- main/debugtexthelpers.cpp | 0 main/displays/batterygraphdisplay.h | 20 - main/displays/gametrakcalibratedisplay.cpp | 0 main/displays/ledstripcolorsdisplay.h | 30 -- main/displays/menudisplaywithtime.cpp | 26 - main/displays/menus/batterymenu.h | 26 - main/displays/menus/bluetoothsettingsmenu.cpp | 0 main/displays/menus/commanddebugmenu.cpp | 0 main/displays/menus/featureflagsmenu.h | 16 - main/displays/menus/feedbackdebugmenu.cpp | 0 .../menus/gametrakmodesettingsmenu.cpp | 0 main/displays/menus/gitmenu.h | 14 - main/displays/menus/ledstripmenu.h | 14 - .../displays/menus/motorfeedbackdebugmenu.cpp | 0 main/displays/menus/motorstatedebugmenu.cpp | 0 main/displays/menus/settingsmenu.h | 14 - main/displays/menus/statisticsmenu.h | 14 - main/displays/menus/timesettingsmenu.h | 14 - main/displays/metersdisplay.cpp | 72 --- main/displays/potiscalibratedisplay.cpp | 324 ------------ main/displays/potiscalibratedisplay.h | 94 ---- main/displays/qrcodedebug.cpp | 50 -- main/displays/qrimportdisplay.h | 35 -- main/displays/speedinfodisplay.cpp | 93 ---- main/displays/statusdisplay.cpp | 352 ------------- main/displays/updatedisplay.cpp | 116 ----- main/dpad.cpp | 0 main/dpad3wire.cpp | 0 main/drivingstatistics.cpp | 2 +- main/esptexthelpers.cpp | 0 main/feedbackparser.cpp | 0 main/globals.h | 2 - .../bobbychangevaluedisplay.cpp | 0 .../bobbychangevaluedisplay.h | 10 +- main/{ => guihelpers}/bobbycheckbox.h | 8 +- .../{displays => guihelpers}/bobbydisplay.cpp | 4 + main/{displays => guihelpers}/bobbydisplay.h | 6 +- .../bobbydisplaywithtitle.cpp | 4 + .../bobbydisplaywithtitle.h | 6 +- main/guihelpers/bobbyerrorhandler.cpp | 20 + main/{ => guihelpers}/bobbyerrorhandler.h | 4 + .../bobbygraphdisplay.cpp | 0 .../bobbygraphdisplay.h | 4 + .../bobbymenudisplay.cpp | 3 + .../bobbymenudisplay.h | 6 +- .../bobbypopupdisplay.cpp | 4 + .../bobbypopupdisplay.h | 6 +- .../bobbysplitgraphdisplay.cpp | 0 .../bobbysplitgraphdisplay.h | 3 + main/guihelpers/menudisplaywithtime.cpp | 26 + .../menudisplaywithtime.h | 12 +- main/ledstripdefines.cpp | 0 main/macros_bobbycar.cpp | 0 main/macros_bobbycar.h | 5 - main/main.cpp | 45 +- main/modeinterface.cpp | 0 main/newsettings.h | 7 +- main/profilesettings.cpp | 0 main/rotary.cpp | 0 main/screens.cpp | 60 ++- main/screens.h | 11 + .../{displays/menus => screens}/aboutmenu.cpp | 22 +- main/{displays/menus => screens}/aboutmenu.h | 6 +- .../menus => screens}/batterydebugmenu.cpp | 14 +- .../menus => screens}/batterydebugmenu.h | 6 +- .../batterygraphdisplay.cpp | 39 +- main/screens/batterygraphdisplay.h | 28 + .../batteryinfodisplay.cpp | 26 +- .../batteryinfodisplay.h | 13 +- .../menus => screens}/batterymenu.cpp | 59 +-- main/screens/batterymenu.h | 33 ++ .../menus => screens}/blesettingsmenu.cpp | 15 +- .../menus => screens}/blesettingsmenu.h | 6 +- .../menus => screens}/bluetoothsettingsmenu.h | 4 +- main/{displays => screens}/bmsdisplay.cpp | 8 +- main/{displays => screens}/bmsdisplay.h | 0 main/{displays/menus => screens}/bmsmenu.cpp | 0 main/{displays/menus => screens}/bmsmenu.h | 2 +- .../boardcomputerhardwaresettingsmenu.cpp | 25 +- .../boardcomputerhardwaresettingsmenu.h | 6 +- .../menus => screens}/buzzermenu.cpp | 9 +- main/{displays/menus => screens}/buzzermenu.h | 6 +- .../calibratevoltagedisplay.cpp | 9 +- .../calibratevoltagedisplay.h | 6 +- .../menus => screens}/candebugmenu.cpp | 19 +- .../menus => screens}/candebugmenu.h | 10 +- .../menus => screens}/cloudsettingsmenu.cpp | 28 +- .../menus => screens}/cloudsettingsmenu.h | 6 +- .../menus => screens}/commanddebugmenu.h | 8 +- .../confiscationdisplay.cpp | 47 +- .../confiscationdisplay.h | 13 +- .../controllerhardwaresettingsmenu.cpp | 14 +- .../controllerhardwaresettingsmenu.h | 6 +- .../{displays/menus => screens}/crashmenu.cpp | 4 + main/{displays/menus => screens}/crashmenu.h | 6 +- .../{displays/menus => screens}/debugmenu.cpp | 60 ++- main/{displays/menus => screens}/debugmenu.h | 6 +- .../defaultmodesettingsmenu.cpp | 21 +- .../defaultmodesettingsmenu.h | 6 +- .../{displays/menus => screens}/demosmenu.cpp | 19 +- main/{displays/menus => screens}/demosmenu.h | 6 +- .../menus => screens}/dynamicdebugmenu.cpp | 32 +- .../menus => screens}/dynamicdebugmenu.h | 6 +- .../menus => screens}/enablemenu.cpp | 6 +- main/{displays/menus => screens}/enablemenu.h | 6 +- .../menus => screens}/espnowmenu.cpp | 17 +- main/{displays/menus => screens}/espnowmenu.h | 6 +- .../menus => screens}/espnowsettingsmenu.cpp | 8 +- .../menus => screens}/espnowsettingsmenu.h | 6 +- .../extrabuttoncalibratemenu.cpp | 23 +- .../extrabuttoncalibratemenu.h | 6 +- .../menus => screens}/featureflagsmenu.cpp | 10 +- main/screens/featureflagsmenu.h | 20 + .../menus => screens}/feedbackdebugmenu.h | 28 +- .../gameoflifedisplay.cpp | 30 +- .../{displays => screens}/gameoflifedisplay.h | 15 +- .../gametrakcalibratedisplay.h | 2 +- .../gametrakmodesettingsmenu.h | 2 +- .../menus => screens}/garagemenu.cpp | 14 +- main/{displays/menus => screens}/garagemenu.h | 6 +- main/{displays/menus => screens}/gitmenu.cpp | 14 +- main/screens/gitmenu.h | 18 + .../menus => screens}/graphsmenu.cpp | 19 +- main/{displays/menus => screens}/graphsmenu.h | 6 +- .../menus => screens}/greenpassmenu.cpp | 15 +- .../menus => screens}/greenpassmenu.h | 6 +- .../handbremssettingsmenu.cpp | 10 +- .../menus => screens}/handbremssettingsmenu.h | 6 +- .../menus => screens}/invertmenu.cpp | 10 +- main/{displays/menus => screens}/invertmenu.h | 6 +- .../joystickdebugdisplay.cpp | 6 +- .../joystickdebugdisplay.h | 2 +- .../larsmmodesettingsmenu.cpp | 20 +- .../menus => screens}/larsmmodesettingsmenu.h | 6 +- .../ledstripcolorsdisplay.cpp | 145 +++--- main/screens/ledstripcolorsdisplay.h | 28 + .../menus => screens}/ledstripmenu.cpp | 18 +- main/screens/ledstripmenu.h | 18 + .../ledstripselectblinkmenu.cpp | 12 +- .../ledstripselectblinkmenu.h | 6 +- .../ledstripselectotamode.cpp | 9 +- .../menus => screens}/ledstripselectotamode.h | 6 +- .../menus => screens}/limitssettingsmenu.cpp | 14 +- .../menus => screens}/limitssettingsmenu.h | 6 +- main/{displays => screens}/lockscreen.cpp | 69 ++- main/{displays => screens}/lockscreen.h | 12 +- .../lockscreensettingsmenu.cpp | 7 +- .../lockscreensettingsmenu.h | 5 +- main/{displays/menus => screens}/mainmenu.cpp | 50 +- main/{displays/menus => screens}/mainmenu.h | 12 +- .../menus => screens}/manageprofilesmenu.cpp | 21 +- .../menus => screens}/manageprofilesmenu.h | 7 +- main/screens/metersdisplay.cpp | 72 +++ main/{displays => screens}/metersdisplay.h | 11 +- .../mickmodesettingsmenu.cpp | 5 +- .../menus => screens}/mickmodesettingsmenu.h | 5 +- .../menus => screens}/modessettingsmenu.cpp | 13 +- .../menus => screens}/modessettingsmenu.h | 6 +- .../menus => screens}/mosfetsmenu.cpp | 0 .../{displays/menus => screens}/mosfetsmenu.h | 2 +- .../motorfeedbackdebugmenu.h | 37 +- .../menus => screens}/motorstatedebugmenu.h | 16 +- .../motortestmodesettingsmenu.cpp | 17 +- .../motortestmodesettingsmenu.h | 5 +- .../menus => screens}/networksettingsmenu.cpp | 5 +- .../menus => screens}/networksettingsmenu.h | 6 +- main/{displays/menus => screens}/otamenu.cpp | 21 +- main/{displays/menus => screens}/otamenu.h | 5 +- .../{displays => screens}/pingpongdisplay.cpp | 66 +-- main/{displays => screens}/pingpongdisplay.h | 21 +- .../{displays => screens}/poweroffdisplay.cpp | 25 +- main/{displays => screens}/poweroffdisplay.h | 7 +- .../powersupplydisplay.cpp | 2 +- .../powersupplydisplay.h | 2 +- .../menus => screens}/profilesmenu.cpp | 11 +- .../menus => screens}/profilesmenu.h | 5 +- main/screens/qrcodedebug.cpp | 56 ++ main/{displays => screens}/qrcodedebug.h | 14 +- main/{displays => screens}/qrdisplay.cpp | 2 + main/{displays => screens}/qrdisplay.h | 16 +- .../{displays => screens}/qrimportdisplay.cpp | 27 +- main/screens/qrimportdisplay.h | 48 ++ main/screens/rebootscreen.cpp | 27 + main/screens/rebootscreen.h | 22 + .../menus => screens}/recoverymenu.cpp | 16 +- .../menus => screens}/recoverymenu.h | 5 +- .../remotecontrolmodesettingsmenu.cpp | 5 +- .../remotecontrolmodesettingsmenu.h | 6 +- main/screens/resetnvsscreen.cpp | 33 ++ main/screens/resetnvsscreen.h | 22 + .../selectbatterytypemenu.cpp | 15 +- .../selectbuildserverbranch.cpp | 21 +- .../selectbuildserverbranch.h | 5 +- .../selectbuildservermenu.cpp | 11 +- .../menus => screens}/selectbuildservermenu.h | 7 +- .../menus => screens}/selectmodemenu.cpp | 3 + .../menus => screens}/selectmodemenu.h | 5 +- .../menus => screens}/selectotabuildmenu.cpp | 30 +- .../menus => screens}/selectotabuildmenu.h | 6 +- .../menus => screens}/settingsmenu.cpp | 42 +- main/screens/settingsmenu.h | 17 + .../setup/ask_calibrate_other_buttons.cpp | 13 +- .../setup/ask_calibrate_other_buttons.h | 7 +- .../setup/ask_setup_clouds.cpp | 13 +- .../setup/ask_setup_clouds.h | 7 +- .../setup/basic_buttons.cpp | 62 ++- .../setup/basic_buttons.h | 16 +- .../setup/calibrate_potis.cpp | 85 ++- .../setup/calibrate_potis.h | 10 +- .../setup/final_information.cpp | 13 +- .../setup/final_information.h | 7 +- .../setup/information.cpp | 27 +- .../{displays => screens}/setup/information.h | 14 +- .../setup/setup_cloud.cpp | 10 +- .../{displays => screens}/setup/setup_cloud.h | 5 +- .../setupquickactionsmenu.cpp | 11 +- .../menus => screens}/setupquickactionsmenu.h | 5 +- main/screens/speedinfodisplay.cpp | 97 ++++ main/{displays => screens}/speedinfodisplay.h | 16 +- main/{displays => screens}/spirodisplay.cpp | 22 +- main/{displays => screens}/spirodisplay.h | 9 +- .../starfielddisplay.cpp | 27 +- main/{displays => screens}/starfielddisplay.h | 13 +- .../menus => screens}/statisticsmenu.cpp | 21 +- main/screens/statisticsmenu.h | 17 + main/screens/statusdisplay.cpp | 319 ++++++++++++ main/{displays => screens}/statusdisplay.h | 17 +- .../menus => screens}/taskmanagermenu.cpp | 9 +- .../menus => screens}/taskmanagermenu.h | 6 +- .../tempomatmodesettingsmenu.cpp | 17 +- .../tempomatmodesettingsmenu.h | 5 +- .../menus => screens}/timersmenu.cpp | 16 +- main/{displays/menus => screens}/timersmenu.h | 6 +- .../menus => screens}/timesettingsmenu.cpp | 29 +- main/screens/timesettingsmenu.h | 17 + .../typesafeenumchangemenu.cpp | 0 .../typesafeenumchangemenu.h | 14 +- .../udpcloudsettingsmenu.cpp | 19 +- .../menus => screens}/udpcloudsettingsmenu.h | 5 +- main/screens/updatedisplay.cpp | 112 ++++ main/{displays => screens}/updatedisplay.h | 15 +- .../menus => screens}/wifiapclientsmenu.cpp | 15 +- .../menus => screens}/wifiapclientsmenu.h | 5 +- .../menus => screens}/wifiapsettingsmenu.cpp | 28 +- .../menus => screens}/wifiapsettingsmenu.h | 5 +- .../wifistaconfigentrymenu.cpp | 20 +- .../wifistaconfigentrymenu.h | 6 +- .../menus => screens}/wifistaconfigsmenu.cpp | 19 +- .../menus => screens}/wifistaconfigsmenu.h | 6 +- .../wifistascanentrymenu.cpp | 19 +- .../menus => screens}/wifistascanentrymenu.h | 7 +- .../menus => screens}/wifistascanmenu.cpp | 15 +- .../menus => screens}/wifistascanmenu.h | 5 +- .../menus => screens}/wifistasettingsmenu.cpp | 19 +- .../menus => screens}/wifistasettingsmenu.h | 5 +- main/{displays => screens}/xydebugdisplay.cpp | 29 +- main/{displays => screens}/xydebugdisplay.h | 13 +- main/statustexthelper.cpp | 0 main/taskmanager.cpp | 4 +- main/{ => texthelpers}/bletexthelpers.h | 0 main/{ => texthelpers}/bluetoothtexthelpers.h | 2 +- main/{ => texthelpers}/cloudtexthelpers.cpp | 2 +- main/{ => texthelpers}/cloudtexthelpers.h | 0 main/{ => texthelpers}/debugtexthelpers.h | 2 +- main/{ => texthelpers}/esptexthelpers.h | 10 +- main/{ => texthelpers}/statustexthelper.h | 0 main/types.cpp | 0 main/utils.cpp | 12 +- main/utils.h | 2 +- main/widgets/doubleprogressbar.cpp | 19 +- main/widgets/doubleprogressbar.h | 11 +- 311 files changed, 3113 insertions(+), 2823 deletions(-) delete mode 100644 main/actions/bluetoothbeginmasteraction.cpp delete mode 100644 main/actions/bluetoothconnectbmsaction.cpp delete mode 100644 main/actions/bluetoothdisconnectaction.cpp delete mode 100644 main/actions/bluetoothendaction.cpp delete mode 100644 main/actions/bluetoothflushaction.cpp delete mode 100644 main/actions/bmsturnoffchargeaction.cpp delete mode 100644 main/actions/bmsturnoffdischargeaction.cpp delete mode 100644 main/actions/bmsturnonchargeaction.cpp delete mode 100644 main/actions/bmsturnondischargeaction.cpp delete mode 100644 main/actions/erasenvsaction.cpp delete mode 100644 main/actions/loadsettingsaction.cpp delete mode 100644 main/actions/rebootaction.cpp delete mode 100644 main/actions/rebootaction.h delete mode 100644 main/actions/resetnvsaction.cpp delete mode 100644 main/actions/savesettingsaction.cpp delete mode 100644 main/actions/switchprofileaction.cpp delete mode 100644 main/actions/tempomatmodeapplycurrentpeedaction.cpp delete mode 100644 main/actions/updateswapfrontbackaction.cpp delete mode 100644 main/actions/wifiscanaction.cpp delete mode 100644 main/bletexthelpers.cpp delete mode 100644 main/bluetoothmode.cpp delete mode 100644 main/bluetoothtexthelpers.cpp delete mode 100644 main/bmsutils.cpp delete mode 100644 main/bobbyerrorhandler.cpp delete mode 100644 main/changevaluedisplay_bluetoothmode.cpp delete mode 100644 main/debugcolorhelpers.cpp delete mode 100644 main/debugtexthelpers.cpp delete mode 100644 main/displays/batterygraphdisplay.h delete mode 100644 main/displays/gametrakcalibratedisplay.cpp delete mode 100644 main/displays/ledstripcolorsdisplay.h delete mode 100644 main/displays/menudisplaywithtime.cpp delete mode 100644 main/displays/menus/batterymenu.h delete mode 100644 main/displays/menus/bluetoothsettingsmenu.cpp delete mode 100644 main/displays/menus/commanddebugmenu.cpp delete mode 100644 main/displays/menus/featureflagsmenu.h delete mode 100644 main/displays/menus/feedbackdebugmenu.cpp delete mode 100644 main/displays/menus/gametrakmodesettingsmenu.cpp delete mode 100644 main/displays/menus/gitmenu.h delete mode 100644 main/displays/menus/ledstripmenu.h delete mode 100644 main/displays/menus/motorfeedbackdebugmenu.cpp delete mode 100644 main/displays/menus/motorstatedebugmenu.cpp delete mode 100644 main/displays/menus/settingsmenu.h delete mode 100644 main/displays/menus/statisticsmenu.h delete mode 100644 main/displays/menus/timesettingsmenu.h delete mode 100644 main/displays/metersdisplay.cpp delete mode 100644 main/displays/potiscalibratedisplay.cpp delete mode 100644 main/displays/potiscalibratedisplay.h delete mode 100644 main/displays/qrcodedebug.cpp delete mode 100644 main/displays/qrimportdisplay.h delete mode 100644 main/displays/speedinfodisplay.cpp delete mode 100644 main/displays/statusdisplay.cpp delete mode 100644 main/displays/updatedisplay.cpp delete mode 100644 main/dpad.cpp delete mode 100644 main/dpad3wire.cpp delete mode 100644 main/esptexthelpers.cpp delete mode 100644 main/feedbackparser.cpp rename main/{displays => guihelpers}/bobbychangevaluedisplay.cpp (100%) rename main/{displays => guihelpers}/bobbychangevaluedisplay.h (90%) rename main/{ => guihelpers}/bobbycheckbox.h (58%) rename main/{displays => guihelpers}/bobbydisplay.cpp (94%) rename main/{displays => guihelpers}/bobbydisplay.h (84%) rename main/{displays => guihelpers}/bobbydisplaywithtitle.cpp (94%) rename main/{displays => guihelpers}/bobbydisplaywithtitle.h (84%) create mode 100644 main/guihelpers/bobbyerrorhandler.cpp rename main/{ => guihelpers}/bobbyerrorhandler.h (83%) rename main/{displays => guihelpers}/bobbygraphdisplay.cpp (100%) rename main/{displays => guihelpers}/bobbygraphdisplay.h (96%) rename main/{displays => guihelpers}/bobbymenudisplay.cpp (94%) rename main/{displays => guihelpers}/bobbymenudisplay.h (84%) rename main/{displays => guihelpers}/bobbypopupdisplay.cpp (94%) rename main/{displays => guihelpers}/bobbypopupdisplay.h (84%) rename main/{displays => guihelpers}/bobbysplitgraphdisplay.cpp (100%) rename main/{displays => guihelpers}/bobbysplitgraphdisplay.h (97%) create mode 100644 main/guihelpers/menudisplaywithtime.cpp rename main/{displays => guihelpers}/menudisplaywithtime.h (64%) delete mode 100644 main/ledstripdefines.cpp delete mode 100644 main/macros_bobbycar.cpp delete mode 100644 main/macros_bobbycar.h delete mode 100644 main/modeinterface.cpp delete mode 100644 main/profilesettings.cpp delete mode 100644 main/rotary.cpp rename main/{displays/menus => screens}/aboutmenu.cpp (93%) rename main/{displays/menus => screens}/aboutmenu.h (67%) rename main/{displays/menus => screens}/batterydebugmenu.cpp (94%) rename main/{displays/menus => screens}/batterydebugmenu.h (69%) rename main/{displays => screens}/batterygraphdisplay.cpp (77%) create mode 100644 main/screens/batterygraphdisplay.h rename main/{displays => screens}/batteryinfodisplay.cpp (79%) rename main/{displays => screens}/batteryinfodisplay.h (52%) rename main/{displays/menus => screens}/batterymenu.cpp (80%) create mode 100644 main/screens/batterymenu.h rename main/{displays/menus => screens}/blesettingsmenu.cpp (90%) rename main/{displays/menus => screens}/blesettingsmenu.h (69%) rename main/{displays/menus => screens}/bluetoothsettingsmenu.h (97%) rename main/{displays => screens}/bmsdisplay.cpp (95%) rename main/{displays => screens}/bmsdisplay.h (100%) rename main/{displays/menus => screens}/bmsmenu.cpp (100%) rename main/{displays/menus => screens}/bmsmenu.h (85%) rename main/{displays/menus => screens}/boardcomputerhardwaresettingsmenu.cpp (97%) rename main/{displays/menus => screens}/boardcomputerhardwaresettingsmenu.h (72%) rename main/{displays/menus => screens}/buzzermenu.cpp (97%) rename main/{displays/menus => screens}/buzzermenu.h (67%) rename main/{displays => screens}/calibratevoltagedisplay.cpp (97%) rename main/{displays => screens}/calibratevoltagedisplay.h (70%) rename main/{displays/menus => screens}/candebugmenu.cpp (97%) rename main/{displays/menus => screens}/candebugmenu.h (74%) rename main/{displays/menus => screens}/cloudsettingsmenu.cpp (90%) rename main/{displays/menus => screens}/cloudsettingsmenu.h (69%) rename main/{displays/menus => screens}/commanddebugmenu.h (91%) rename main/{displays => screens}/confiscationdisplay.cpp (64%) rename main/{displays => screens}/confiscationdisplay.h (78%) rename main/{displays/menus => screens}/controllerhardwaresettingsmenu.cpp (95%) rename main/{displays/menus => screens}/controllerhardwaresettingsmenu.h (72%) rename main/{displays/menus => screens}/crashmenu.cpp (95%) rename main/{displays/menus => screens}/crashmenu.h (67%) rename main/{displays/menus => screens}/debugmenu.cpp (88%) rename main/{displays/menus => screens}/debugmenu.h (67%) rename main/{displays/menus => screens}/defaultmodesettingsmenu.cpp (98%) rename main/{displays/menus => screens}/defaultmodesettingsmenu.h (70%) rename main/{displays/menus => screens}/demosmenu.cpp (78%) rename main/{displays/menus => screens}/demosmenu.h (67%) rename main/{displays/menus => screens}/dynamicdebugmenu.cpp (93%) rename main/{displays/menus => screens}/dynamicdebugmenu.h (86%) rename main/{displays/menus => screens}/enablemenu.cpp (94%) rename main/{displays/menus => screens}/enablemenu.h (67%) rename main/{displays/menus => screens}/espnowmenu.cpp (91%) rename main/{displays/menus => screens}/espnowmenu.h (67%) rename main/{displays/menus => screens}/espnowsettingsmenu.cpp (92%) rename main/{displays/menus => screens}/espnowsettingsmenu.h (69%) rename main/{displays/menus => screens}/extrabuttoncalibratemenu.cpp (95%) rename main/{displays/menus => screens}/extrabuttoncalibratemenu.h (92%) rename main/{displays/menus => screens}/featureflagsmenu.cpp (95%) create mode 100644 main/screens/featureflagsmenu.h rename main/{displays/menus => screens}/feedbackdebugmenu.h (71%) rename main/{displays => screens}/gameoflifedisplay.cpp (85%) rename main/{displays => screens}/gameoflifedisplay.h (83%) rename main/{displays => screens}/gametrakcalibratedisplay.h (98%) rename main/{displays/menus => screens}/gametrakmodesettingsmenu.h (93%) rename main/{displays/menus => screens}/garagemenu.cpp (91%) rename main/{displays/menus => screens}/garagemenu.h (67%) rename main/{displays/menus => screens}/gitmenu.cpp (88%) create mode 100644 main/screens/gitmenu.h rename main/{displays/menus => screens}/graphsmenu.cpp (97%) rename main/{displays/menus => screens}/graphsmenu.h (67%) rename main/{displays/menus => screens}/greenpassmenu.cpp (94%) rename main/{displays/menus => screens}/greenpassmenu.h (68%) rename main/{displays/menus => screens}/handbremssettingsmenu.cpp (92%) rename main/{displays/menus => screens}/handbremssettingsmenu.h (70%) rename main/{displays/menus => screens}/invertmenu.cpp (91%) rename main/{displays/menus => screens}/invertmenu.h (67%) rename main/{displays => screens}/joystickdebugdisplay.cpp (93%) rename main/{displays => screens}/joystickdebugdisplay.h (93%) rename main/{displays/menus => screens}/larsmmodesettingsmenu.cpp (89%) rename main/{displays/menus => screens}/larsmmodesettingsmenu.h (70%) rename main/{displays => screens}/ledstripcolorsdisplay.cpp (53%) create mode 100644 main/screens/ledstripcolorsdisplay.h rename main/{displays/menus => screens}/ledstripmenu.cpp (96%) create mode 100644 main/screens/ledstripmenu.h rename main/{displays/menus => screens}/ledstripselectblinkmenu.cpp (94%) rename main/{displays/menus => screens}/ledstripselectblinkmenu.h (70%) rename main/{displays/menus => screens}/ledstripselectotamode.cpp (91%) rename main/{displays/menus => screens}/ledstripselectotamode.h (72%) rename main/{displays/menus => screens}/limitssettingsmenu.cpp (97%) rename main/{displays/menus => screens}/limitssettingsmenu.h (69%) rename main/{displays => screens}/lockscreen.cpp (67%) rename main/{displays => screens}/lockscreen.h (81%) rename main/{displays/menus => screens}/lockscreensettingsmenu.cpp (96%) rename main/{displays/menus => screens}/lockscreensettingsmenu.h (70%) rename main/{displays/menus => screens}/mainmenu.cpp (85%) rename main/{displays/menus => screens}/mainmenu.h (62%) rename main/{displays/menus => screens}/manageprofilesmenu.cpp (95%) rename main/{displays/menus => screens}/manageprofilesmenu.h (89%) create mode 100644 main/screens/metersdisplay.cpp rename main/{displays => screens}/metersdisplay.h (85%) rename main/{displays/menus => screens}/mickmodesettingsmenu.cpp (95%) rename main/{displays/menus => screens}/mickmodesettingsmenu.h (70%) rename main/{displays/menus => screens}/modessettingsmenu.cpp (86%) rename main/{displays/menus => screens}/modessettingsmenu.h (69%) rename main/{displays/menus => screens}/mosfetsmenu.cpp (100%) rename main/{displays/menus => screens}/mosfetsmenu.h (83%) rename main/{displays/menus => screens}/motorfeedbackdebugmenu.h (74%) rename main/{displays/menus => screens}/motorstatedebugmenu.h (91%) rename main/{displays/menus => screens}/motortestmodesettingsmenu.cpp (87%) rename main/{displays/menus => screens}/motortestmodesettingsmenu.h (71%) rename main/{displays/menus => screens}/networksettingsmenu.cpp (96%) rename main/{displays/menus => screens}/networksettingsmenu.h (79%) rename main/{displays/menus => screens}/otamenu.cpp (79%) rename main/{displays/menus => screens}/otamenu.h (67%) rename main/{displays => screens}/pingpongdisplay.cpp (70%) rename main/{displays => screens}/pingpongdisplay.h (75%) rename main/{displays => screens}/poweroffdisplay.cpp (51%) rename main/{displays => screens}/poweroffdisplay.h (70%) rename main/{displays => screens}/powersupplydisplay.cpp (97%) rename main/{displays => screens}/powersupplydisplay.h (92%) rename main/{displays/menus => screens}/profilesmenu.cpp (87%) rename main/{displays/menus => screens}/profilesmenu.h (68%) create mode 100644 main/screens/qrcodedebug.cpp rename main/{displays => screens}/qrcodedebug.h (54%) rename main/{displays => screens}/qrdisplay.cpp (98%) rename main/{displays => screens}/qrdisplay.h (81%) rename main/{displays => screens}/qrimportdisplay.cpp (77%) create mode 100644 main/screens/qrimportdisplay.h create mode 100644 main/screens/rebootscreen.cpp create mode 100644 main/screens/rebootscreen.h rename main/{displays/menus => screens}/recoverymenu.cpp (78%) rename main/{displays/menus => screens}/recoverymenu.h (72%) rename main/{displays/menus => screens}/remotecontrolmodesettingsmenu.cpp (94%) rename main/{displays/menus => screens}/remotecontrolmodesettingsmenu.h (72%) create mode 100644 main/screens/resetnvsscreen.cpp create mode 100644 main/screens/resetnvsscreen.h rename main/{displays/menus => screens}/selectbatterytypemenu.cpp (96%) rename main/{displays/menus => screens}/selectbuildserverbranch.cpp (91%) rename main/{displays/menus => screens}/selectbuildserverbranch.h (77%) rename main/{displays/menus => screens}/selectbuildservermenu.cpp (93%) rename main/{displays/menus => screens}/selectbuildservermenu.h (71%) rename main/{displays/menus => screens}/selectmodemenu.cpp (99%) rename main/{displays/menus => screens}/selectmodemenu.h (75%) rename main/{displays/menus => screens}/selectotabuildmenu.cpp (88%) rename main/{displays/menus => screens}/selectotabuildmenu.h (77%) rename main/{displays/menus => screens}/settingsmenu.cpp (89%) create mode 100644 main/screens/settingsmenu.h rename main/{displays => screens}/setup/ask_calibrate_other_buttons.cpp (78%) rename main/{displays => screens}/setup/ask_calibrate_other_buttons.h (70%) rename main/{displays => screens}/setup/ask_setup_clouds.cpp (81%) rename main/{displays => screens}/setup/ask_setup_clouds.h (67%) rename main/{displays => screens}/setup/basic_buttons.cpp (74%) rename main/{displays => screens}/setup/basic_buttons.h (74%) rename main/{displays => screens}/setup/calibrate_potis.cpp (74%) rename main/{displays => screens}/setup/calibrate_potis.h (89%) rename main/{displays => screens}/setup/final_information.cpp (79%) rename main/{displays => screens}/setup/final_information.h (72%) rename main/{displays => screens}/setup/information.cpp (65%) rename main/{displays => screens}/setup/information.h (58%) rename main/{displays => screens}/setup/setup_cloud.cpp (94%) rename main/{displays => screens}/setup/setup_cloud.h (82%) rename main/{displays/menus => screens}/setupquickactionsmenu.cpp (94%) rename main/{displays/menus => screens}/setupquickactionsmenu.h (70%) create mode 100644 main/screens/speedinfodisplay.cpp rename main/{displays => screens}/speedinfodisplay.h (60%) rename main/{displays => screens}/spirodisplay.cpp (84%) rename main/{displays => screens}/spirodisplay.h (71%) rename main/{displays => screens}/starfielddisplay.cpp (82%) rename main/{displays => screens}/starfielddisplay.h (64%) rename main/{displays/menus => screens}/statisticsmenu.cpp (97%) create mode 100644 main/screens/statisticsmenu.h create mode 100644 main/screens/statusdisplay.cpp rename main/{displays => screens}/statusdisplay.h (83%) rename main/{displays/menus => screens}/taskmanagermenu.cpp (96%) rename main/{displays/menus => screens}/taskmanagermenu.h (69%) rename main/{displays/menus => screens}/tempomatmodesettingsmenu.cpp (96%) rename main/{displays/menus => screens}/tempomatmodesettingsmenu.h (71%) rename main/{displays/menus => screens}/timersmenu.cpp (79%) rename main/{displays/menus => screens}/timersmenu.h (67%) rename main/{displays/menus => screens}/timesettingsmenu.cpp (91%) create mode 100644 main/screens/timesettingsmenu.h rename main/{displays/menus => screens}/typesafeenumchangemenu.cpp (100%) rename main/{displays/menus => screens}/typesafeenumchangemenu.h (96%) rename main/{displays/menus => screens}/udpcloudsettingsmenu.cpp (88%) rename main/{displays/menus => screens}/udpcloudsettingsmenu.h (70%) create mode 100644 main/screens/updatedisplay.cpp rename main/{displays => screens}/updatedisplay.h (59%) rename main/{displays/menus => screens}/wifiapclientsmenu.cpp (97%) rename main/{displays/menus => screens}/wifiapclientsmenu.h (84%) rename main/{displays/menus => screens}/wifiapsettingsmenu.cpp (97%) rename main/{displays/menus => screens}/wifiapsettingsmenu.h (70%) rename main/{displays/menus => screens}/wifistaconfigentrymenu.cpp (98%) rename main/{displays/menus => screens}/wifistaconfigentrymenu.h (74%) rename main/{displays/menus => screens}/wifistaconfigsmenu.cpp (98%) rename main/{displays/menus => screens}/wifistaconfigsmenu.h (69%) rename main/{displays/menus => screens}/wifistascanentrymenu.cpp (99%) rename main/{displays/menus => screens}/wifistascanentrymenu.h (72%) rename main/{displays/menus => screens}/wifistascanmenu.cpp (99%) rename main/{displays/menus => screens}/wifistascanmenu.h (79%) rename main/{displays/menus => screens}/wifistasettingsmenu.cpp (96%) rename main/{displays/menus => screens}/wifistasettingsmenu.h (70%) rename main/{displays => screens}/xydebugdisplay.cpp (64%) rename main/{displays => screens}/xydebugdisplay.h (63%) delete mode 100644 main/statustexthelper.cpp rename main/{ => texthelpers}/bletexthelpers.h (100%) rename main/{ => texthelpers}/bluetoothtexthelpers.h (98%) rename main/{ => texthelpers}/cloudtexthelpers.cpp (96%) rename main/{ => texthelpers}/cloudtexthelpers.h (100%) rename main/{ => texthelpers}/debugtexthelpers.h (99%) rename main/{ => texthelpers}/esptexthelpers.h (97%) rename main/{ => texthelpers}/statustexthelper.h (100%) delete mode 100644 main/types.cpp diff --git a/components/esp-gui-lib b/components/esp-gui-lib index 0f89f6c..cc95378 160000 --- a/components/esp-gui-lib +++ b/components/esp-gui-lib @@ -1 +1 @@ -Subproject commit 0f89f6c994d8b43d5c7759f4ac109baf80bbec7f +Subproject commit cc95378d7a9a06a39d65c71bd3b0d07e4f4d2248 diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index ffb26d6..595a78d 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -23,7 +23,6 @@ set(BOBBY_HEADERS actions/loadsettingsaction.h actions/modesettingsaction.h actions/qraction.h - actions/rebootaction.h actions/resetnvsaction.h actions/savesettingsaction.h actions/setupactions.h @@ -35,15 +34,11 @@ set(BOBBY_HEADERS actions/wifistascanclearaction.h battery.h ble_bobby.h - bletexthelpers.h bluetooth_bobby.h bluetoothmode.h - bluetoothtexthelpers.h bmsutils.h bobbyblinker.h bobbybuttons.h - bobbycheckbox.h - bobbyerrorhandler.h bobbyhupe.h bobbyquickactions.h bobbyschedulertask.h @@ -57,121 +52,10 @@ set(BOBBY_HEADERS changevaluedisplay_larsmmode_mode.h changevaluedisplay_unifiedmodelmode.h cloud.h - cloudtexthelpers.h configutils_bobby.h controller.h debugcolorhelpers.h debuginputhandler.h - debugtexthelpers.h - displays/batterygraphdisplay.h - displays/batteryinfodisplay.h - displays/bmsdisplay.h - displays/bobbychangevaluedisplay.h - displays/bobbydisplay.h - displays/bobbydisplaywithtitle.h - displays/bobbygraphdisplay.h - displays/bobbymenudisplay.h - displays/bobbypopupdisplay.h - displays/bobbysplitgraphdisplay.h - displays/calibratevoltagedisplay.h - displays/confiscationdisplay.h - displays/gameoflifedisplay.h - displays/gametrakcalibratedisplay.h - displays/joystickdebugdisplay.h - displays/ledstripcolorsdisplay.h - displays/lockscreen.h - displays/menudisplaywithtime.cpp - displays/menudisplaywithtime.h - displays/menus/aboutmenu.h - displays/menus/batterydebugmenu.h - displays/menus/batterymenu.h - displays/menus/blesettingsmenu.h - displays/menus/bluetoothsettingsmenu.h - displays/menus/bmsmenu.h - displays/menus/boardcomputerhardwaresettingsmenu.h - displays/menus/buzzermenu.h - displays/menus/candebugmenu.h - displays/menus/cloudsettingsmenu.h - displays/menus/commanddebugmenu.h - displays/menus/controllerhardwaresettingsmenu.h - displays/menus/crashmenu.h - displays/menus/debugmenu.h - displays/menus/defaultmodesettingsmenu.h - displays/menus/demosmenu.h - displays/menus/dynamicdebugmenu.h - displays/menus/enablemenu.h - displays/menus/espnowmenu.h - displays/menus/espnowsettingsmenu.h - displays/menus/extrabuttoncalibratemenu.h - displays/menus/featureflagsmenu.h - displays/menus/feedbackdebugmenu.h - displays/menus/gametrakmodesettingsmenu.h - displays/menus/garagemenu.h - displays/menus/gitmenu.h - displays/menus/graphsmenu.h - displays/menus/greenpassmenu.h - displays/menus/handbremssettingsmenu.h - displays/menus/invertmenu.h - displays/menus/larsmmodesettingsmenu.h - displays/menus/ledstripmenu.h - displays/menus/ledstripselectblinkmenu.h - displays/menus/ledstripselectotamode.h - displays/menus/limitssettingsmenu.h - displays/menus/lockscreensettingsmenu.h - displays/menus/mainmenu.h - displays/menus/manageprofilesmenu.h - displays/menus/mickmodesettingsmenu.h - displays/menus/modessettingsmenu.h - displays/menus/mosfetsmenu.h - displays/menus/motorfeedbackdebugmenu.h - displays/menus/motorstatedebugmenu.h - displays/menus/motortestmodesettingsmenu.h - displays/menus/networksettingsmenu.h - displays/menus/otamenu.h - displays/menus/profilesmenu.h - displays/menus/recoverymenu.h - displays/menus/remotecontrolmodesettingsmenu.h - displays/menus/selectbuildserverbranch.h - displays/menus/selectbuildservermenu.h - displays/menus/selectmodemenu.h - displays/menus/selectotabuildmenu.h - displays/menus/settingsmenu.h - displays/menus/setupquickactionsmenu.h - displays/menus/statisticsmenu.h - displays/menus/taskmanagermenu.h - displays/menus/tempomatmodesettingsmenu.h - displays/menus/timersmenu.h - displays/menus/timesettingsmenu.h - displays/menus/typesafeenumchangemenu.h - displays/menus/udpcloudsettingsmenu.h - displays/menus/wifiapclientsmenu.h - displays/menus/wifiapsettingsmenu.h - displays/menus/wifistaconfigentrymenu.h - displays/menus/wifistaconfigsmenu.h - displays/menus/wifistascanentrymenu.h - displays/menus/wifistascanmenu.h - displays/menus/wifistasettingsmenu.h - displays/metersdisplay.h - displays/pingpongdisplay.h - displays/potiscalibratedisplay.h - displays/poweroffdisplay.h - displays/powersupplydisplay.h - displays/qrcodedebug.h - displays/qrdisplay.h - displays/qrimportdisplay.h - displays/setup/ask_calibrate_other_buttons.h - displays/setup/ask_setup_clouds.h - displays/setup/basic_buttons.h - displays/setup/calibrate_potis.h - displays/setup/final_information.h - displays/setup/information.h - displays/setup/setup_cloud.h - displays/speedinfodisplay.h - displays/spirodisplay.h - displays/starfielddisplay.h - displays/statusdisplay.h - displays/updatedisplay.h - displays/xydebugdisplay.h dnsannounce.h dpad.h dpad3wire.h @@ -181,10 +65,16 @@ set(BOBBY_HEADERS dpad_boardcomputer_v2.h drivingstatistics.h espnowfunctions.h - esptexthelpers.h feedbackemulator.h feedbackparser.h globals.h + guihelpers/bobbychangevaluedisplay.h + guihelpers/bobbycheckbox.h + guihelpers/bobbydisplay.h + guihelpers/bobbydisplaywithtitle.h + guihelpers/bobbyerrorhandler.h + guihelpers/bobbymenudisplay.h + guihelpers/bobbypopupdisplay.h handbremse.h icons/alert.h icons/battery.h @@ -215,7 +105,6 @@ set(BOBBY_HEADERS icons/wifi.h ledstrip.h ledstripdefines.h - macros_bobbycar.h modeinterface.h modes.h modes/defaultmode.h @@ -237,16 +126,126 @@ set(BOBBY_HEADERS qrimport.h rotary.h screens.h + screens/aboutmenu.h + screens/batterydebugmenu.h + screens/batterygraphdisplay.h + screens/batteryinfodisplay.h + screens/batterymenu.h + screens/blesettingsmenu.h + screens/bluetoothsettingsmenu.h + screens/bmsdisplay.h + screens/bmsmenu.h + screens/boardcomputerhardwaresettingsmenu.h + guihelpers/bobbygraphdisplay.h + guihelpers/bobbysplitgraphdisplay.h + screens/buzzermenu.h + screens/calibratevoltagedisplay.h + screens/candebugmenu.h + screens/cloudsettingsmenu.h + screens/commanddebugmenu.h + screens/confiscationdisplay.h + screens/controllerhardwaresettingsmenu.h + screens/crashmenu.h + screens/debugmenu.h + screens/defaultmodesettingsmenu.h + screens/demosmenu.h + screens/dynamicdebugmenu.h + screens/enablemenu.h + screens/espnowmenu.h + screens/espnowsettingsmenu.h + screens/extrabuttoncalibratemenu.h + screens/featureflagsmenu.h + screens/feedbackdebugmenu.h + screens/gameoflifedisplay.h + screens/gametrakcalibratedisplay.h + screens/gametrakmodesettingsmenu.h + screens/garagemenu.h + screens/gitmenu.h + screens/graphsmenu.h + screens/greenpassmenu.h + screens/handbremssettingsmenu.h + screens/invertmenu.h + screens/joystickdebugdisplay.h + screens/larsmmodesettingsmenu.h + screens/ledstripcolorsdisplay.h + screens/ledstripmenu.h + screens/ledstripselectblinkmenu.h + screens/ledstripselectotamode.h + screens/limitssettingsmenu.h + screens/lockscreen.h + screens/lockscreensettingsmenu.h + screens/mainmenu.h + screens/manageprofilesmenu.h + guihelpers/menudisplaywithtime.cpp + guihelpers/menudisplaywithtime.h + screens/metersdisplay.h + screens/mickmodesettingsmenu.h + screens/modessettingsmenu.h + screens/mosfetsmenu.h + screens/motorfeedbackdebugmenu.h + screens/motorstatedebugmenu.h + screens/motortestmodesettingsmenu.h + screens/networksettingsmenu.h + screens/otamenu.h + screens/pingpongdisplay.h + screens/poweroffdisplay.h + screens/powersupplydisplay.h + screens/profilesmenu.h + screens/qrcodedebug.h + screens/qrdisplay.h + screens/qrimportdisplay.h + screens/rebootscreen.h + screens/recoverymenu.h + screens/remotecontrolmodesettingsmenu.h + screens/resetnvsscreen.h + screens/selectbuildserverbranch.h + screens/selectbuildservermenu.h + screens/selectmodemenu.h + screens/selectotabuildmenu.h + screens/settingsmenu.h + screens/setup/ask_calibrate_other_buttons.h + screens/setup/ask_setup_clouds.h + screens/setup/basic_buttons.h + screens/setup/calibrate_potis.h + screens/setup/final_information.h + screens/setup/information.h + screens/setup/setup_cloud.h + screens/setupquickactionsmenu.h + screens/speedinfodisplay.h + screens/spirodisplay.h + screens/starfielddisplay.h + screens/statisticsmenu.h + screens/statusdisplay.h + screens/taskmanagermenu.h + screens/tempomatmodesettingsmenu.h + screens/timersmenu.h + screens/timesettingsmenu.h + screens/typesafeenumchangemenu.h + screens/udpcloudsettingsmenu.h + screens/updatedisplay.h + screens/wifiapclientsmenu.h + screens/wifiapsettingsmenu.h + screens/wifistaconfigentrymenu.h + screens/wifistaconfigsmenu.h + screens/wifistascanentrymenu.h + screens/wifistascanmenu.h + screens/wifistasettingsmenu.h + screens/xydebugdisplay.h serial_bobby.h settingspersister.h settingsutils.h setup.h softpwmlimiter.h statistics.h - statustexthelper.h taskmanager.h tempomat.h + texthelpers/bletexthelpers.h + texthelpers/bluetoothtexthelpers.h + texthelpers/cloudtexthelpers.h + texthelpers/debugtexthelpers.h + texthelpers/esptexthelpers.h texthelpers/networktexthelpers.h + texthelpers/statustexthelper.h texthelpers/wifiaptexthelpers.h texthelpers/wifistatexthelpers.h time_bobbycar.h @@ -270,180 +269,47 @@ set(BOBBY_HEADERS set(BOBBY_SOURCES accessors/wifistaconfigaccessors.cpp actions/assertaction.cpp - actions/bluetoothbeginaction.cpp - actions/bluetoothbeginmasteraction.cpp - actions/bluetoothconnectbmsaction.cpp - actions/bluetoothdisconnectaction.cpp - actions/bluetoothendaction.cpp - actions/bluetoothflushaction.cpp - actions/bmsturnoffchargeaction.cpp - actions/bmsturnoffdischargeaction.cpp - actions/bmsturnonchargeaction.cpp - actions/bmsturnondischargeaction.cpp actions/dividebyzeroaction.cpp - actions/erasenvsaction.cpp actions/ledstripanimationactions.cpp actions/ledstripblinkactions.cpp - actions/loadsettingsaction.cpp actions/modesettingsaction.cpp actions/qraction.cpp - actions/rebootaction.cpp - actions/resetnvsaction.cpp - actions/savesettingsaction.cpp actions/setupactions.cpp - actions/switchprofileaction.cpp - actions/tempomatmodeapplycurrentpeedaction.cpp - actions/updateswapfrontbackaction.cpp - actions/wifiscanaction.cpp actions/wifistascanaction.cpp actions/wifistascanclearaction.cpp battery.cpp ble_bobby.cpp - bletexthelpers.cpp bluetooth_bobby.cpp - bluetoothmode.cpp - bluetoothtexthelpers.cpp - bmsutils.cpp bobbyblinker.cpp bobbybuttons.cpp - bobbyerrorhandler.cpp bobbyhupe.cpp bobbyquickactions.cpp buildserver.cpp can.cpp - changevaluedisplay_bluetoothmode.cpp changevaluedisplay_bobbyquickactions.cpp changevaluedisplay_controlmode.cpp changevaluedisplay_controltype.cpp changevaluedisplay_larsmmode_mode.cpp changevaluedisplay_unifiedmodelmode.cpp cloud.cpp - cloudtexthelpers.cpp configwrapper_bobby.cpp controller.cpp - debugcolorhelpers.cpp debuginputhandler.cpp - debugtexthelpers.cpp - displays/batterygraphdisplay.cpp - displays/batteryinfodisplay.cpp - displays/bmsdisplay.cpp - displays/bobbychangevaluedisplay.cpp - displays/bobbydisplay.cpp - displays/bobbydisplaywithtitle.cpp - displays/bobbygraphdisplay.cpp - displays/bobbymenudisplay.cpp - displays/bobbypopupdisplay.cpp - displays/bobbysplitgraphdisplay.cpp - displays/calibratevoltagedisplay.cpp - displays/confiscationdisplay.cpp - displays/gameoflifedisplay.cpp - displays/gametrakcalibratedisplay.cpp - displays/joystickdebugdisplay.cpp - displays/ledstripcolorsdisplay.cpp - displays/lockscreen.cpp - displays/menus/aboutmenu.cpp - displays/menus/batterydebugmenu.cpp - displays/menus/batterymenu.cpp - displays/menus/blesettingsmenu.cpp - displays/menus/bluetoothsettingsmenu.cpp - displays/menus/bmsmenu.cpp - displays/menus/boardcomputerhardwaresettingsmenu.cpp - displays/menus/buzzermenu.cpp - displays/menus/candebugmenu.cpp - displays/menus/cloudsettingsmenu.cpp - displays/menus/commanddebugmenu.cpp - displays/menus/controllerhardwaresettingsmenu.cpp - displays/menus/crashmenu.cpp - displays/menus/debugmenu.cpp - displays/menus/defaultmodesettingsmenu.cpp - displays/menus/demosmenu.cpp - displays/menus/dynamicdebugmenu.cpp - displays/menus/enablemenu.cpp - displays/menus/espnowmenu.cpp - displays/menus/espnowsettingsmenu.cpp - displays/menus/extrabuttoncalibratemenu.cpp - displays/menus/featureflagsmenu.cpp - displays/menus/feedbackdebugmenu.cpp - displays/menus/gametrakmodesettingsmenu.cpp - displays/menus/garagemenu.cpp - displays/menus/gitmenu.cpp - displays/menus/graphsmenu.cpp - displays/menus/greenpassmenu.cpp - displays/menus/handbremssettingsmenu.cpp - displays/menus/invertmenu.cpp - displays/menus/larsmmodesettingsmenu.cpp - displays/menus/ledstripmenu.cpp - displays/menus/ledstripselectblinkmenu.cpp - displays/menus/ledstripselectotamode.cpp - displays/menus/limitssettingsmenu.cpp - displays/menus/lockscreensettingsmenu.cpp - displays/menus/mainmenu.cpp - displays/menus/manageprofilesmenu.cpp - displays/menus/mickmodesettingsmenu.cpp - displays/menus/modessettingsmenu.cpp - displays/menus/mosfetsmenu.cpp - displays/menus/motorfeedbackdebugmenu.cpp - displays/menus/motorstatedebugmenu.cpp - displays/menus/motortestmodesettingsmenu.cpp - displays/menus/networksettingsmenu.cpp - displays/menus/otamenu.cpp - displays/menus/profilesmenu.cpp - displays/menus/recoverymenu.cpp - displays/menus/remotecontrolmodesettingsmenu.cpp - displays/menus/selectbuildserverbranch.cpp - displays/menus/selectbuildservermenu.cpp - displays/menus/selectmodemenu.cpp - displays/menus/selectotabuildmenu.cpp - displays/menus/settingsmenu.cpp - displays/menus/setupquickactionsmenu.cpp - displays/menus/statisticsmenu.cpp - displays/menus/taskmanagermenu.cpp - displays/menus/tempomatmodesettingsmenu.cpp - displays/menus/timersmenu.cpp - displays/menus/timesettingsmenu.cpp - displays/menus/typesafeenumchangemenu.cpp - displays/menus/udpcloudsettingsmenu.cpp - displays/menus/wifiapclientsmenu.cpp - displays/menus/wifiapsettingsmenu.cpp - displays/menus/wifistaconfigentrymenu.cpp - displays/menus/wifistaconfigsmenu.cpp - displays/menus/wifistascanentrymenu.cpp - displays/menus/wifistascanmenu.cpp - displays/menus/wifistasettingsmenu.cpp - displays/metersdisplay.cpp - displays/pingpongdisplay.cpp - displays/potiscalibratedisplay.cpp - displays/poweroffdisplay.cpp - displays/powersupplydisplay.cpp - displays/qrcodedebug.cpp - displays/qrdisplay.cpp - displays/qrimportdisplay.cpp - displays/setup/ask_calibrate_other_buttons.cpp - displays/setup/ask_setup_clouds.cpp - displays/setup/basic_buttons.cpp - displays/setup/calibrate_potis.cpp - displays/setup/final_information.cpp - displays/setup/information.cpp - displays/setup/setup_cloud.cpp - displays/speedinfodisplay.cpp - displays/spirodisplay.cpp - displays/starfielddisplay.cpp - displays/statusdisplay.cpp - displays/updatedisplay.cpp - displays/xydebugdisplay.cpp dnsannounce.cpp - dpad.cpp - dpad3wire.cpp dpad5wire.cpp dpad5wire_2out.cpp dpad6wire.cpp dpad_boardcomputer_v2.cpp drivingstatistics.cpp espnowfunctions.cpp - esptexthelpers.cpp feedbackemulator.cpp - feedbackparser.cpp globals.cpp + guihelpers/bobbychangevaluedisplay.cpp + guihelpers/bobbydisplay.cpp + guihelpers/bobbydisplaywithtitle.cpp + guihelpers/bobbyerrorhandler.cpp + guihelpers/bobbymenudisplay.cpp + guihelpers/bobbypopupdisplay.cpp handbremse.cpp icons/alert.cpp icons/battery.cpp @@ -473,10 +339,7 @@ set(BOBBY_SOURCES icons/update.cpp icons/wifi.cpp ledstrip.cpp - ledstripdefines.cpp - macros_bobbycar.cpp main.cpp - modeinterface.cpp modes.cpp modes/defaultmode.cpp modes/gametrakmode.cpp @@ -493,24 +356,117 @@ set(BOBBY_SOURCES ota.cpp potis.cpp presets.cpp - profilesettings.cpp qrimport.cpp - rotary.cpp screens.cpp + screens/aboutmenu.cpp + screens/batterydebugmenu.cpp + screens/batterygraphdisplay.cpp + screens/batteryinfodisplay.cpp + screens/batterymenu.cpp + screens/blesettingsmenu.cpp + screens/bmsdisplay.cpp + screens/bmsmenu.cpp + screens/boardcomputerhardwaresettingsmenu.cpp + guihelpers/bobbygraphdisplay.cpp + guihelpers/bobbysplitgraphdisplay.cpp + screens/buzzermenu.cpp + screens/calibratevoltagedisplay.cpp + screens/candebugmenu.cpp + screens/cloudsettingsmenu.cpp + screens/confiscationdisplay.cpp + screens/controllerhardwaresettingsmenu.cpp + screens/crashmenu.cpp + screens/debugmenu.cpp + screens/defaultmodesettingsmenu.cpp + screens/demosmenu.cpp + screens/dynamicdebugmenu.cpp + screens/enablemenu.cpp + screens/espnowmenu.cpp + screens/espnowsettingsmenu.cpp + screens/extrabuttoncalibratemenu.cpp + screens/featureflagsmenu.cpp + screens/gameoflifedisplay.cpp + screens/garagemenu.cpp + screens/gitmenu.cpp + screens/graphsmenu.cpp + screens/greenpassmenu.cpp + screens/handbremssettingsmenu.cpp + screens/invertmenu.cpp + screens/joystickdebugdisplay.cpp + screens/larsmmodesettingsmenu.cpp + screens/ledstripcolorsdisplay.cpp + screens/ledstripmenu.cpp + screens/ledstripselectblinkmenu.cpp + screens/ledstripselectotamode.cpp + screens/limitssettingsmenu.cpp + screens/lockscreen.cpp + screens/lockscreensettingsmenu.cpp + screens/mainmenu.cpp + screens/manageprofilesmenu.cpp + screens/metersdisplay.cpp + screens/mickmodesettingsmenu.cpp + screens/modessettingsmenu.cpp + screens/mosfetsmenu.cpp + screens/motortestmodesettingsmenu.cpp + screens/networksettingsmenu.cpp + screens/otamenu.cpp + screens/pingpongdisplay.cpp + screens/poweroffdisplay.cpp + screens/powersupplydisplay.cpp + screens/profilesmenu.cpp + screens/qrcodedebug.cpp + screens/qrdisplay.cpp + screens/qrimportdisplay.cpp + screens/rebootscreen.cpp + screens/recoverymenu.cpp + screens/remotecontrolmodesettingsmenu.cpp + screens/resetnvsscreen.cpp + screens/selectbuildserverbranch.cpp + screens/selectbuildservermenu.cpp + screens/selectmodemenu.cpp + screens/selectotabuildmenu.cpp + screens/settingsmenu.cpp + screens/setup/ask_calibrate_other_buttons.cpp + screens/setup/ask_setup_clouds.cpp + screens/setup/basic_buttons.cpp + screens/setup/calibrate_potis.cpp + screens/setup/final_information.cpp + screens/setup/information.cpp + screens/setup/setup_cloud.cpp + screens/setupquickactionsmenu.cpp + screens/speedinfodisplay.cpp + screens/spirodisplay.cpp + screens/starfielddisplay.cpp + screens/statisticsmenu.cpp + screens/statusdisplay.cpp + screens/taskmanagermenu.cpp + screens/tempomatmodesettingsmenu.cpp + screens/timersmenu.cpp + screens/timesettingsmenu.cpp + screens/typesafeenumchangemenu.cpp + screens/udpcloudsettingsmenu.cpp + screens/updatedisplay.cpp + screens/wifiapclientsmenu.cpp + screens/wifiapsettingsmenu.cpp + screens/wifistaconfigentrymenu.cpp + screens/wifistaconfigsmenu.cpp + screens/wifistascanentrymenu.cpp + screens/wifistascanmenu.cpp + screens/wifistasettingsmenu.cpp + screens/xydebugdisplay.cpp serial_bobby.cpp settingspersister.cpp settingsutils.cpp setup.cpp softpwmlimiter.cpp statistics.cpp - statustexthelper.cpp taskmanager.cpp tempomat.cpp + texthelpers/cloudtexthelpers.cpp texthelpers/networktexthelpers.cpp texthelpers/wifiaptexthelpers.cpp texthelpers/wifistatexthelpers.cpp time_bobbycar.cpp - types.cpp udpcloud.cpp unifiedmodelmode.cpp utils.cpp diff --git a/main/actions/bluetoothbeginmasteraction.cpp b/main/actions/bluetoothbeginmasteraction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/bluetoothconnectbmsaction.cpp b/main/actions/bluetoothconnectbmsaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/bluetoothdisconnectaction.cpp b/main/actions/bluetoothdisconnectaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/bluetoothendaction.cpp b/main/actions/bluetoothendaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/bluetoothflushaction.cpp b/main/actions/bluetoothflushaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/bmsturnoffchargeaction.cpp b/main/actions/bmsturnoffchargeaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/bmsturnoffdischargeaction.cpp b/main/actions/bmsturnoffdischargeaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/bmsturnonchargeaction.cpp b/main/actions/bmsturnonchargeaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/bmsturnondischargeaction.cpp b/main/actions/bmsturnondischargeaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/erasenvsaction.cpp b/main/actions/erasenvsaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/ledstripanimationactions.cpp b/main/actions/ledstripanimationactions.cpp index 4f39d63..03ecc4e 100644 --- a/main/actions/ledstripanimationactions.cpp +++ b/main/actions/ledstripanimationactions.cpp @@ -1,8 +1 @@ #include "ledstripanimationactions.h" -#ifdef FEATURE_LEDSTRIP -void LedStripSetAnimationAction::triggered() -{ - if (auto result = configs.write_config(configs.ledstrip.animationType, m_animation); !result) - BobbyErrorHandler{}.errorOccured(std::move(result).error()); -} -#endif diff --git a/main/actions/ledstripanimationactions.h b/main/actions/ledstripanimationactions.h index 668b1ce..d6a5a43 100644 --- a/main/actions/ledstripanimationactions.h +++ b/main/actions/ledstripanimationactions.h @@ -7,7 +7,9 @@ #include "ledstrip.h" #include "ledstripdefines.h" #include "newsettings.h" -#include "bobbyerrorhandler.h" +#include "guihelpers/bobbyerrorhandler.h" + +namespace bobby { template class LedStripSetAnimationActionStatic : public virtual espgui::ActionInterface @@ -24,7 +26,13 @@ class LedStripSetAnimationAction : public virtual espgui::ActionInterface { public: LedStripSetAnimationAction(LedstripAnimation animation) : m_animation{animation} {}; - void triggered() override; + void triggered() + { + if (auto result = configs.write_config(configs.ledstrip.animationType, m_animation); !result) + BobbyErrorHandler{}.errorOccurred(std::move(result).error()); + } private: const LedstripAnimation m_animation; }; + +} // namespace bobby diff --git a/main/actions/loadsettingsaction.cpp b/main/actions/loadsettingsaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/modesettingsaction.cpp b/main/actions/modesettingsaction.cpp index e694a24..51df90c 100644 --- a/main/actions/modesettingsaction.cpp +++ b/main/actions/modesettingsaction.cpp @@ -17,15 +17,17 @@ #include "modes/wheelchairmode.h" #endif #include "modes/remotecontrolmode.h" -#include "displays/menus/defaultmodesettingsmenu.h" -#include "displays/menus/tempomatmodesettingsmenu.h" -#include "displays/menus/larsmmodesettingsmenu.h" +#include "screens/defaultmodesettingsmenu.h" +#include "screens/tempomatmodesettingsmenu.h" +#include "screens/larsmmodesettingsmenu.h" #ifdef FEATURE_GAMETRAK -#include "displays/menus/gametrakmodesettingsmenu.h" +#include "screens/gametrakmodesettingsmenu.h" #endif -#include "displays/menus/mickmodesettingsmenu.h" -#include "displays/menus/motortestmodesettingsmenu.h" -#include "displays/menus/remotecontrolmodesettingsmenu.h" +#include "screens/mickmodesettingsmenu.h" +#include "screens/motortestmodesettingsmenu.h" +#include "screens/remotecontrolmodesettingsmenu.h" + +namespace bobby { void ModeSettingsAction::triggered() { @@ -54,3 +56,4 @@ void ModeSettingsAction::triggered() //Serial.println("Unknown mode, cannot open settings for it"); } } +} // namespace bobby diff --git a/main/actions/modesettingsaction.h b/main/actions/modesettingsaction.h index b930b50..6710e01 100644 --- a/main/actions/modesettingsaction.h +++ b/main/actions/modesettingsaction.h @@ -1,6 +1,9 @@ #pragma once -#include "actioninterface.h" +// 3rdparty lib includes +#include + +namespace bobby { using namespace espgui; @@ -9,3 +12,4 @@ class ModeSettingsAction : public virtual ActionInterface public: void triggered() override; }; +} // namespace bobby diff --git a/main/actions/qraction.h b/main/actions/qraction.h index 4ed0f0d..f16212e 100644 --- a/main/actions/qraction.h +++ b/main/actions/qraction.h @@ -7,9 +7,8 @@ #include // local includes -#include "actions/qraction.h" -#include "displays/qrdisplay.h" -#include "displays/qrimportdisplay.h" +#include "screens/qrdisplay.h" +#include "screens/qrimportdisplay.h" namespace qraction { struct QrMenu { @@ -26,7 +25,7 @@ public: void triggered() override { - espgui::pushScreen(m_msg); + espgui::pushScreen(m_msg); } private: std::string m_msg; @@ -40,7 +39,16 @@ public: void triggered() override { - espgui::pushScreen(std::move(m_nvskey)); + espgui::changeScreenCallback = [&](espgui::TftInterface &tft){ + espgui::pushScreenInternal(); + + auto newDisplay = std::make_unique(std::move(m_nvskey), tft); + newDisplay->start(); + newDisplay->initScreen(tft); + newDisplay->update(); + newDisplay->redraw(tft); + espgui::currentDisplay = std::move(newDisplay); + }; } private: std::string m_nvskey; diff --git a/main/actions/rebootaction.cpp b/main/actions/rebootaction.cpp deleted file mode 100644 index 138fa76..0000000 --- a/main/actions/rebootaction.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "rebootaction.h" - -// esp-idf includes -#include - -// 3rdparty lib includes -#include - -void RebootAction::triggered() -{ - espgui::tft.fillScreen(TFT_BLACK); - espgui::tft.setTextColor(TFT_YELLOW); - - espgui::tft.drawString("Reboot", 5, 5, 4); - - espgui::tft.fillRect(0, 34, espgui::tft.width(), 3, TFT_WHITE); - - espgui::tft.setTextColor(TFT_WHITE); - espgui::tft.drawString("Rebooting now...", 0, 50, 4); - - esp_restart(); -} diff --git a/main/actions/rebootaction.h b/main/actions/rebootaction.h deleted file mode 100644 index 757ba3c..0000000 --- a/main/actions/rebootaction.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once - -// 3rdparty lib includes -#include - -class RebootAction : public virtual espgui::ActionInterface -{ -public: - void triggered() override; -}; diff --git a/main/actions/resetnvsaction.cpp b/main/actions/resetnvsaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/resetnvsaction.h b/main/actions/resetnvsaction.h index 1ac898e..b511cb3 100644 --- a/main/actions/resetnvsaction.h +++ b/main/actions/resetnvsaction.h @@ -5,36 +5,16 @@ // 3rdparty lib includes #include -#include + // local includes #include "newsettings.h" -template class ResetNVSAction : public virtual espgui::ActionInterface { public: void triggered() override { - if (reboot) - { - espgui::tft.fillScreen(TFT_BLACK); - espgui::tft.setTextColor(TFT_YELLOW); - - espgui::tft.drawString("Reboot", 5, 5, 4); - - espgui::tft.fillRect(0, 34, espgui::tft.width(), 3, TFT_WHITE); - - espgui::tft.setTextColor(TFT_WHITE); - espgui::tft.drawString("Rebooting now...", 0, 50, 4); - - configs.reset(); - - esp_restart(); - } - else - { - configs.reset(); - } + configs.reset(); } }; diff --git a/main/actions/savesettingsaction.cpp b/main/actions/savesettingsaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/setupactions.cpp b/main/actions/setupactions.cpp index 1bd1488..95134fa 100644 --- a/main/actions/setupactions.cpp +++ b/main/actions/setupactions.cpp @@ -4,8 +4,10 @@ #include // local includes -#include "displays/setup/basic_buttons.h" -#include "displays/setup/calibrate_potis.h" +#include "screens/setup/basic_buttons.h" +#include "screens/setup/calibrate_potis.h" + +namespace bobby { PushButtonCalibrateDisplayAction::PushButtonCalibrateDisplayAction(const bool early_return) : m_early_return{early_return} @@ -22,5 +24,6 @@ PushPotiCalibrateDisplayAction::PushPotiCalibrateDisplayAction(const bool early_ void PushPotiCalibrateDisplayAction::triggered() { - // espgui::pushScreen(m_early_return); // commented out until implemented + espgui::pushScreen(m_early_return); } +} // namespace bobby diff --git a/main/actions/setupactions.h b/main/actions/setupactions.h index bd3fd43..a8e0b1e 100644 --- a/main/actions/setupactions.h +++ b/main/actions/setupactions.h @@ -3,6 +3,8 @@ // 3rdparty lib includes #include +namespace bobby { + class PushButtonCalibrateDisplayAction : public virtual espgui::ActionInterface { public: @@ -22,3 +24,4 @@ public: private: const bool m_early_return; }; +} // namespace bobby diff --git a/main/actions/switchprofileaction.cpp b/main/actions/switchprofileaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/tempomatmodeapplycurrentpeedaction.cpp b/main/actions/tempomatmodeapplycurrentpeedaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/updateswapfrontbackaction.cpp b/main/actions/updateswapfrontbackaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/wifiscanaction.cpp b/main/actions/wifiscanaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/ble_bobby.cpp b/main/ble_bobby.cpp index 74c7ef9..51a2f23 100644 --- a/main/ble_bobby.cpp +++ b/main/ble_bobby.cpp @@ -8,12 +8,12 @@ #include // local includes -#include "ledstrip.h" #include "globals.h" +#include "ledstrip.h" #include "modes/defaultmode.h" #include "modes/remotecontrolmode.h" -#include "utils.h" #include "newsettings.h" +#include "utils.h" namespace { constexpr const char * const TAG = "BOBBYBLE"; diff --git a/main/bletexthelpers.cpp b/main/bletexthelpers.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/bluetoothmode.cpp b/main/bluetoothmode.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/bluetoothtexthelpers.cpp b/main/bluetoothtexthelpers.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/bmsutils.cpp b/main/bmsutils.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/bobbyerrorhandler.cpp b/main/bobbyerrorhandler.cpp deleted file mode 100644 index a8cb145..0000000 --- a/main/bobbyerrorhandler.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "bobbyerrorhandler.h" - -// 3rdparty lib includes -#include - -// local includes -#include "displays/bobbypopupdisplay.h" - -void BobbyErrorHandler::errorOccurred(std::string &&error) -{ - auto newDisplay = std::make_unique(std::move(error), std::move(espgui::currentDisplay)); - newDisplay->initOverlay(); - espgui::currentDisplay = std::move(newDisplay); -} diff --git a/main/changevaluedisplay_bluetoothmode.cpp b/main/changevaluedisplay_bluetoothmode.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/cloud.cpp b/main/cloud.cpp index 6ff03e9..8ec95e0 100644 --- a/main/cloud.cpp +++ b/main/cloud.cpp @@ -13,15 +13,15 @@ #include #include #include -#include #include #include // local includes -#include "bobbyerrorhandler.h" #include "globals.h" +#include "guihelpers/bobbyerrorhandler.h" #include "newsettings.h" #include "ota.h" +#include "screens.h" #include "typeutils.h" #include "utils.h" @@ -770,7 +770,7 @@ std::string getLoginMessage() { using namespace espgui; return fmt::format(R"({{"type": "hello", "name": "{}", "res": "{}x{}", "pass": "{}", "key": "{}"}})", - configs.otaUsername.value(), tft.width(), tft.height(), configs.webserverPassword.value(), configs.cloudSettings.cloudKey.value()); + configs.otaUsername.value(), bobby::getScreenWidth(), bobby::getScreenHeight(), configs.webserverPassword.value(), configs.cloudSettings.cloudKey.value()); } void cloudEventHandler(void *event_handler_arg, esp_event_base_t event_base, int32_t event_id, void *event_data) @@ -810,7 +810,7 @@ void cloudEventHandler(void *event_handler_arg, esp_event_base_t event_base, int std::string id = doc["id"]; doc.clear(); ESP_LOGI(TAG, "popup: %s, id: %s", text.c_str(), id.c_str()); - BobbyErrorHandler{}.errorOccurred(std::move(text)); + bobby::BobbyErrorHandler{}.errorOccurred(std::move(text)); if (id.empty()) return; diff --git a/main/debugcolorhelpers.cpp b/main/debugcolorhelpers.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/debugcolorhelpers.h b/main/debugcolorhelpers.h index 0d20cde..445cb38 100644 --- a/main/debugcolorhelpers.h +++ b/main/debugcolorhelpers.h @@ -1,11 +1,15 @@ #pragma once -#include "colorinterface.h" +// 3rdparty lib includes +#include +#include + +// local includes #include "globals.h" namespace { template -class FeedbackColor : public virtual ColorInterface { public: int color() const { return Tcontroller::get().feedbackValid ? TsuccessColor : TFT_RED; } }; +class FeedbackColor : public virtual ColorInterface { public: int color() const { return Tcontroller::get().feedbackValid ? TsuccessColor : espgui::TFT_RED; } }; template using FrontFeedbackColor = FeedbackColor; diff --git a/main/debuginputhandler.cpp b/main/debuginputhandler.cpp index d82c104..06f4f57 100644 --- a/main/debuginputhandler.cpp +++ b/main/debuginputhandler.cpp @@ -8,17 +8,17 @@ #include // 3rdparty lib includes -#include -#include -#include #include #include +#include +#include // local includes -#include "globals.h" -#include "utils.h" #include "bobbybuttons.h" #include "bobbyquickactions.h" +#include "globals.h" +#include "screens.h" +#include "utils.h" namespace { constexpr const char * const TAG = "DEBUG"; @@ -117,7 +117,7 @@ void handleNormalChar(char c) { case 'i': case 'I': - espgui::tft.init(); + bobby::tft_init(); break; case 'p': case 'P': diff --git a/main/debugtexthelpers.cpp b/main/debugtexthelpers.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/displays/batterygraphdisplay.h b/main/displays/batterygraphdisplay.h deleted file mode 100644 index df2723e..0000000 --- a/main/displays/batterygraphdisplay.h +++ /dev/null @@ -1,20 +0,0 @@ -#pragma once - -// local includes -#include "bobbydisplaywithtitle.h" - -class BatteryGraphDisplay : public BobbyDisplayWithTitle { - using Base = BobbyDisplayWithTitle; - -public: - std::string text() const override; - void initScreen() override; - void redraw() override; - - void buttonPressed(espgui::Button button) override; - - static void drawBatteryCurve(); - -private: - float m_lastBatVoltage{0}; -}; diff --git a/main/displays/gametrakcalibratedisplay.cpp b/main/displays/gametrakcalibratedisplay.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/displays/ledstripcolorsdisplay.h b/main/displays/ledstripcolorsdisplay.h deleted file mode 100644 index 2823d14..0000000 --- a/main/displays/ledstripcolorsdisplay.h +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once - -// system includes -#include - -// 3rdparty lib includes -#include - -// local includes -#include "bobbydisplaywithtitle.h" -#include "ledstrip.h" - -class LedstripColorsDisplay : public BobbyDisplayWithTitle -{ - using Base = BobbyDisplayWithTitle; - -public: - std::string text() const override; - void initScreen() override; - void redraw() override; - - void buttonPressed(espgui::Button button) override; - - void drawColors(); - void drawSide(Bobbycar_Side side, unsigned int color); - void clearSides(); - -private: - bool already_drew_circle{false}; -}; diff --git a/main/displays/menudisplaywithtime.cpp b/main/displays/menudisplaywithtime.cpp deleted file mode 100644 index c3be460..0000000 --- a/main/displays/menudisplaywithtime.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "menudisplaywithtime.h" - -// 3rdparty lib includes -#include -#include - -// local includes -#include "utils.h" - -using namespace espgui; - -namespace bobbygui { -void MenuDisplayWithTime::start() -{ - Base::start(); - m_label_currentTime.start(); -} - -void MenuDisplayWithTime::redraw() -{ - Base::redraw(); - tft.setTextFont(use_big_font() ? 4 : 2); - m_label_currentTime.redraw(fmt::format("&7Time: {}", local_clock_string())); -} - -} // namespace diff --git a/main/displays/menus/batterymenu.h b/main/displays/menus/batterymenu.h deleted file mode 100644 index d6912b4..0000000 --- a/main/displays/menus/batterymenu.h +++ /dev/null @@ -1,26 +0,0 @@ -#pragma once - -// local includes -#include "displays/bobbymenudisplay.h" -#include "widgets/doubleprogressbar.h" -#include "widgets/label.h" - -class BatteryMenu : public BobbyMenuDisplay -{ - using Base = BobbyMenuDisplay; - -public: - BatteryMenu(); - - std::string text() const override; - - void initScreen() override; - void start() override; - void redraw() override; - void back() override; - -private: - bobbygui::DoubleProgressBar m_doubleProgressBarBatPercentage{75, 68, 90, 24, 0, 100, TFT_RED, TFT_GREEN}; - espgui::Label m_batPercentNowLabel {170, 68}; - espgui::Label m_batPercentBootLabel{170, 82}; -}; diff --git a/main/displays/menus/bluetoothsettingsmenu.cpp b/main/displays/menus/bluetoothsettingsmenu.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/displays/menus/commanddebugmenu.cpp b/main/displays/menus/commanddebugmenu.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/displays/menus/featureflagsmenu.h b/main/displays/menus/featureflagsmenu.h deleted file mode 100644 index 89497d0..0000000 --- a/main/displays/menus/featureflagsmenu.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -// local includes -#include "displays/menudisplaywithtime.h" - -class FeatureFlagsMenu : public bobbygui::MenuDisplayWithTime -{ - using Base = bobbygui::MenuDisplayWithTime; -public: - FeatureFlagsMenu(); - void start() override; - - std::string text() const override; - - void back() override; -}; diff --git a/main/displays/menus/feedbackdebugmenu.cpp b/main/displays/menus/feedbackdebugmenu.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/displays/menus/gametrakmodesettingsmenu.cpp b/main/displays/menus/gametrakmodesettingsmenu.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/displays/menus/gitmenu.h b/main/displays/menus/gitmenu.h deleted file mode 100644 index f733520..0000000 --- a/main/displays/menus/gitmenu.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -// local includes -#include "displays/menudisplaywithtime.h" - -class GitMenu : public bobbygui::MenuDisplayWithTime -{ -public: - GitMenu(); - - std::string text() const override; - - void back() override; -}; diff --git a/main/displays/menus/ledstripmenu.h b/main/displays/menus/ledstripmenu.h deleted file mode 100644 index 2b8dce0..0000000 --- a/main/displays/menus/ledstripmenu.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -// local includes -#include "displays/menudisplaywithtime.h" - -class LedstripMenu : public bobbygui::MenuDisplayWithTime -{ -public: - LedstripMenu(); - - std::string text() const override; - - void back() override; -}; diff --git a/main/displays/menus/motorfeedbackdebugmenu.cpp b/main/displays/menus/motorfeedbackdebugmenu.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/displays/menus/motorstatedebugmenu.cpp b/main/displays/menus/motorstatedebugmenu.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/displays/menus/settingsmenu.h b/main/displays/menus/settingsmenu.h deleted file mode 100644 index 436efce..0000000 --- a/main/displays/menus/settingsmenu.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -// local includes -#include "displays/menudisplaywithtime.h" - -class SettingsMenu : public bobbygui::MenuDisplayWithTime -{ -public: - SettingsMenu(); - - std::string text() const override; - - void back() override; -}; diff --git a/main/displays/menus/statisticsmenu.h b/main/displays/menus/statisticsmenu.h deleted file mode 100644 index fd5b59d..0000000 --- a/main/displays/menus/statisticsmenu.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -// Local includes -#include "displays/menudisplaywithtime.h" - -class StatisticsMenu : public bobbygui::MenuDisplayWithTime -{ -public: - StatisticsMenu(); - - std::string text() const override; - - void back() override; -}; diff --git a/main/displays/menus/timesettingsmenu.h b/main/displays/menus/timesettingsmenu.h deleted file mode 100644 index 764825f..0000000 --- a/main/displays/menus/timesettingsmenu.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -// local includes -#include "displays/menudisplaywithtime.h" - -class TimeSettingsMenu : public bobbygui::MenuDisplayWithTime -{ -public: - TimeSettingsMenu(); - - std::string text() const override; - - void back() override; -}; diff --git a/main/displays/metersdisplay.cpp b/main/displays/metersdisplay.cpp deleted file mode 100644 index e71941f..0000000 --- a/main/displays/metersdisplay.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include "metersdisplay.h" - -// 3rdparty lib includes -#include -#include - -// local includes -#include "displays/batteryinfodisplay.h" -#include "displays/menus/mainmenu.h" -#include "displays/statusdisplay.h" -#include "globals.h" -#include "utils.h" - -using namespace espgui; - -void MetersDisplay::initScreen() -{ - Base::initScreen(); - - tft.fillScreen(TFT_BLACK); - - m_vuMeter.start(); - - m_dischargingBar.start(); - m_chargingBar.start(); - - m_sumCurrentLabel.start(); - - for (auto &meter : meters) - meter.start(); -} - -void MetersDisplay::redraw() -{ - Base::redraw(); - - m_vuMeter.redraw(avgSpeedKmh); - - m_dischargingBar.redraw(sumCurrent<0.f?(-sumCurrent):0.f); - m_chargingBar.redraw(sumCurrent>0.f?sumCurrent:0.f); - - tft.setTextColor(TFT_WHITE, TFT_BLACK); - tft.setTextFont(2); - m_sumCurrentLabel.redraw(fmt::format("{:.02f}A", sumCurrent)); - - meters[0].redraw(controllers.front.getCalibratedVoltage(), 35, 50); - meters[1].redraw(controllers.back.getCalibratedVoltage(), 35, 50); - meters[2].redraw(fixCurrent(controllers.front.feedback.left.dcLink), -10, 10); - meters[3].redraw(fixCurrent(controllers.front.feedback.right.dcLink), -10, 10); - meters[4].redraw(fixCurrent(controllers.back.feedback.left.dcLink), -10, 10); - meters[5].redraw(fixCurrent(controllers.back.feedback.right.dcLink), -10, 10); -} - -void MetersDisplay::buttonPressed(espgui::Button button) -{ - Base::buttonPressed(button); - - switch (button) - { - using espgui::Button; - case Button::Right: - pushScreen(); - break; - case Button::Up: - switchScreen(); - break; - case Button::Down: - switchScreen(); - break; - default:; - } -} diff --git a/main/displays/potiscalibratedisplay.cpp b/main/displays/potiscalibratedisplay.cpp deleted file mode 100644 index 0b75e91..0000000 --- a/main/displays/potiscalibratedisplay.cpp +++ /dev/null @@ -1,324 +0,0 @@ -#include "potiscalibratedisplay.h" - -// 3rdparty lib includes -#include - -// local includes -#include "actions/switchscreenaction.h" -#include "displays/menus/boardcomputerhardwaresettingsmenu.h" -#include "displays/menus/mainmenu.h" -#include "displays/statusdisplay.h" -#include "globals.h" -#include "newsettings.h" -#include "utils.h" - -namespace { -constexpr char TEXT_CALIBRATE[] = "Potis Calibrate"; -} // namespace - -/* -std::string PotisCalibrateDisplay::text() const -{ - return TEXT_CALIBRATE; -} - -void PotisCalibrateDisplay::start() -{ - Base::start(); - - m_oldMode = currentMode; - currentMode = &m_mode; - m_selectedButton = 0; - m_status = Status::Begin; - copyFromSettings(); - m_gas = std::nullopt; - m_brems = std::nullopt; -} - -void PotisCalibrateDisplay::initScreen() -{ - Base::initScreen(); - - espgui::tft.setTextFont(4); - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - - espgui::tft.drawString("gas:", 25, 47); - espgui::tft.drawString("brems:", 25, 147); - - for (auto &label : m_labels) - label.start(); - - for (auto &progressBar : m_progressBars) - progressBar.start(); - - m_renderedButton = -1; -} - -void PotisCalibrateDisplay::update() -{ - Base::update(); - - if (raw_gas) - m_gas = cpputils::mapValueClamped(*raw_gas, m_gasMin, m_gasMax, 0.f, 1000.f); - else - m_gas = std::nullopt; - - if (raw_brems) - m_brems = cpputils::mapValueClamped(*raw_brems, m_bremsMin, m_bremsMax, 0.f, 1000.f); - else - m_brems = std::nullopt; -} - -void PotisCalibrateDisplay::redraw() -{ - Base::redraw(); - - m_labels[0].redraw(m_gas ? fmt::format("{:.02f}", *m_gas) : "?"); - m_labels[1].redraw(raw_gas ? std::to_string(*raw_gas) : "?"); - if (m_status == Status::GasMin) - espgui::tft.setTextColor(TFT_RED, TFT_BLACK); - m_labels[2].redraw(std::to_string(m_gasMin)); - if (m_status == Status::GasMin) - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - if (m_status == Status::GasMax) - espgui::tft.setTextColor(TFT_RED, TFT_BLACK); - m_labels[3].redraw(std::to_string(m_gasMax)); - if (m_status == Status::GasMax) - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - - m_progressBars[0].redraw(m_gas ? *m_gas : 0); - - m_labels[4].redraw(m_brems ? fmt::format("{:.02f}", *m_brems) : "?"); - m_labels[5].redraw(raw_brems ? std::to_string(*raw_brems) : "?"); - if (m_status == Status::BremsMin) - espgui::tft.setTextColor(TFT_RED, TFT_BLACK); - m_labels[6].redraw(std::to_string(m_bremsMin)); - if (m_status == Status::BremsMin) - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - if (m_status == Status::BremsMax) - espgui::tft.setTextColor(TFT_RED, TFT_BLACK); - m_labels[7].redraw(std::to_string(m_bremsMax)); - if (m_status == Status::BremsMax) - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - - m_progressBars[1].redraw(m_brems ? *m_brems : 0); - - m_labels[8].redraw([&](){ - switch (m_status) - { - case Status::Begin: return "Start calibrating?"; -#ifdef FEATURE_JOYSTICK - case Status::Mitte: return "Release joystick"; -#endif - case Status::GasMin: return "Release gas"; - case Status::GasMax: return "Press gas"; - case Status::BremsMin: return "Release brems"; - case Status::BremsMax: return "Press brems"; - case Status::Confirm: return "Verify"; - } - __builtin_unreachable(); - }()); - - { - const auto failed = !m_gas || !m_brems || (m_status == Status::Confirm && (*m_gas > 100 || *m_brems > 100)); - const auto color = failed ? TFT_DARKGREY : TFT_WHITE; - espgui::tft.setTextColor(color, TFT_BLACK); - m_labels[9].redraw([&](){ - switch (m_status) - { - case Status::Begin: return "Yes"; -#ifdef FEATURE_JOYSTICK - case Status::Mitte: -#endif - case Status::GasMin: - case Status::GasMax: - case Status::BremsMin: - case Status::BremsMax: return "Next"; - case Status::Confirm: return "Save"; - } - __builtin_unreachable(); - }()); - - if (m_selectedButton != m_renderedButton && (m_selectedButton == 0 || m_renderedButton == 0)) - espgui::tft.drawRect(3, 275, 100, 27, m_selectedButton == 0 ? color : TFT_BLACK); - } - - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - m_labels[10].redraw([&](){ - switch (m_status) - { - case Status::Begin: return "No"; -#ifdef FEATURE_JOYSTICK - case Status::Mitte: -#endif - case Status::GasMin: - case Status::GasMax: - case Status::BremsMin: - case Status::BremsMax: - case Status::Confirm: return "Abort"; - } - __builtin_unreachable(); - }()); - - if (m_selectedButton != m_renderedButton && (m_selectedButton == 1 || m_renderedButton == 1)) - espgui::tft.drawRect(123, 275, 100, 27, m_selectedButton == 1 ? TFT_WHITE : TFT_BLACK); - - m_renderedButton = m_selectedButton; -} - -void PotisCalibrateDisplay::stop() -{ - Base::stop(); - - if (currentMode == &m_mode) - { - // to avoid crash after deconstruction - m_mode.stop(); - lastMode = nullptr; - - currentMode = m_oldMode; - } -} - -void PotisCalibrateDisplay::buttonPressed(espgui::Button button) -{ - Base::buttonPressed(button); - - switch (button) - { - using espgui::Button; - case Button::Up: - m_selectedButton--; - - if (m_selectedButton < 0) - m_selectedButton = 1; - - break; - case Button::Down: - m_selectedButton++; - - if (m_selectedButton > 1) - m_selectedButton = 0; - - break; - case Button::Left: - back: - switch (m_status) - { - case Status::Begin: - if (m_bootup) - espgui::switchScreen(); - else if (configs.lockscreen.keepLockedAfterReboot.value() && configs.lockscreen.locked.value()) - { - espgui::switchScreen(); - configs.write_config(configs.lockscreen.locked, false); - } - else - espgui::switchScreen(); - break; -#ifdef FEATURE_JOYSTICK - case Status::Mitte: -#endif - case Status::GasMin: - case Status::GasMax: - case Status::BremsMin: - case Status::BremsMax: - case Status::Confirm: - m_selectedButton = 0; - m_status = Status::Begin; - copyFromSettings(); - } - - break; - case Button::Right: - switch (m_selectedButton) - { - case 0: // left button pressed - if (!raw_gas || !raw_brems || !m_gas || !m_brems) - return; - - switch (m_status) - { -#ifndef FEATURE_JOYSTICK - case Status::Begin: - m_status = Status::GasMin; - break; -#else - case Status::Begin: - m_status = Status::Mitte; - break; - - case Status::Mitte: - m_gasMitte = *raw_gas; - m_bremsMitte = *raw_brems; - m_status = Status::GasMin; - break; -#endif - case Status::GasMin: - m_gasMin = *raw_gas; - m_status = Status::GasMax; - break; - case Status::GasMax: - m_gasMax = *raw_gas; - m_status = Status::BremsMin; - { - const auto dead = (m_gasMax - m_gasMin)/20; - m_gasMin += dead; - m_gasMax -= dead; - } - break; - case Status::BremsMin: - m_bremsMin = *raw_brems; - m_status = Status::BremsMax; - break; - case Status::BremsMax: - m_bremsMax = *raw_brems; - m_status = Status::Confirm; - { - const auto dead = (m_bremsMax - m_bremsMin)/20; - m_bremsMin += dead; - m_bremsMax -= dead; - } - break; - case Status::Confirm: - if (*m_gas > 100 || *m_brems > 100) - return; - copyToSettings(); - saveProfileSettings(); - if (m_bootup) - espgui::switchScreen(); - else - espgui::switchScreen(); - } - break; - case 1: // right button pressed - goto back; - } - break; - } -} - -void PotisCalibrateDisplay::copyFromSettings() -{ -#ifdef FEATURE_JOYSTICK - m_gasMitte = configs.gasMitte.value(); - m_bremsMitte = configs.bremsMitte.value(); -#endif - m_gasMin = configs.gasMin.value(); - m_gasMax = configs.gasMax.value(); - m_bremsMin = configs.bremsMin.value(); - m_bremsMax = configs.bremsMax.value(); -} - -void PotisCalibrateDisplay::copyToSettings() -{ -#ifdef FEATURE_JOYSTICK - configs.write_config(configs.gasMitte, m_gasMitte); - configs.write_config(configs.bremsMitte, m_bremsMitte); -#endif - configs.write_config(configs.gasMin, m_gasMin); - configs.write_config(configs.gasMax, m_gasMax); - configs.write_config(configs.bremsMin, m_bremsMin); - configs.write_config(configs.bremsMax, m_bremsMax); -} -*/ diff --git a/main/displays/potiscalibratedisplay.h b/main/displays/potiscalibratedisplay.h deleted file mode 100644 index 82c6b86..0000000 --- a/main/displays/potiscalibratedisplay.h +++ /dev/null @@ -1,94 +0,0 @@ -#pragma once - -// system includes -#include -#include -#include - -// 3rdparty lib includes -#include -#include -#include -#include - -// local includes -#include "bobbydisplaywithtitle.h" -#include "modeinterface.h" -#include "modes/ignoreinputmode.h" - -/* -class PotisCalibrateDisplay : public BobbyDisplayWithTitle -{ - using Base = BobbyDisplayWithTitle; - -public: - PotisCalibrateDisplay() = default; - explicit PotisCalibrateDisplay(bool bootup) : m_bootup{bootup} {} - - std::string text() const override; - void start() override; - void initScreen() override; - void update() override; - void redraw() override; - void stop() override; - - void buttonPressed(espgui::Button button) override; - -private: - void copyFromSettings(); - void copyToSettings(); - - const bool m_bootup{false}; - ModeInterface *m_oldMode; - IgnoreInputMode m_mode{0, bobbycar::protocol::ControlType::FieldOrientedControl, bobbycar::protocol::ControlMode::Torque}; - - std::array m_labels {{ - espgui::Label{25, 72}, // 100, 23 - espgui::Label{145, 72}, // 100, 23 - espgui::Label{25, 97}, // 100, 23 - espgui::Label{145, 97}, // 100, 23 - - espgui::Label{25, 172}, // 100, 23 - espgui::Label{145, 172}, // 100, 23 - espgui::Label{25, 197}, // 100, 23 - espgui::Label{145, 197}, // 100, 23 - - espgui::Label{25, 247}, // 190, 23 - - espgui::Label{25, 277}, // 100, 23 - espgui::Label{145, 277}, // 100, 23 - }}; - - std::array m_progressBars {{ - espgui::ProgressBar{20, 129, 200, 10, 0, 1000}, - espgui::ProgressBar{20, 229, 200, 10, 0, 1000} - }}; - - enum Status { - Begin, -#ifdef FEATURE_JOYSTICK - Mitte, -#endif - GasMin, - GasMax, - BremsMin, - BremsMax, - Confirm - }; - - int8_t m_selectedButton, m_renderedButton; - - Status m_status; - int16_t - m_gasMin, - m_gasMax, - m_bremsMin, - m_bremsMax -#ifdef FEATURE_JOYSTICK - ,m_gasMitte - ,m_bremsMitte -#endif - ; - std::optional m_gas, m_brems; -}; -*/ diff --git a/main/displays/qrcodedebug.cpp b/main/displays/qrcodedebug.cpp deleted file mode 100644 index 3861478..0000000 --- a/main/displays/qrcodedebug.cpp +++ /dev/null @@ -1,50 +0,0 @@ -#include "qrcodedebug.h" - -// 3rdparty lib includes -#include -#include - -// local includes -#include "globals.h" -#include "screenmanager.h" -#include "newsettings.h" - -using namespace espgui; - -QrCodeDebugDisplay::QrCodeDebugDisplay() -{ -} - -void QrCodeDebugDisplay::initScreen() -{ - Base::initScreen(); -} - -void QrCodeDebugDisplay::buttonPressed(espgui::Button button) -{ - Base::buttonPressed(button); - - switch (button) - { - using espgui::Button; - case Button::Left: popScreen(); break; - case Button::Right: - { - uint8_t qrcodeBytes[qrcode_getBufferSize(7)]; - qrcode_initText(&m_qrcode, qrcodeBytes, 7, ECC_MEDIUM, fmt::format("WIFI:T:WPA;S:{};P:{};", configs.wifiApName.value(), configs.wifiApKey.value()).c_str()); - - for (uint8_t y = 0; y < m_qrcode.size; y++) { - for (uint8_t x = 0; x < m_qrcode.size; x++) { - if (qrcode_getModule(&m_qrcode, x, y)) - { - tft.drawPixel(x+2,y+2, TFT_BLACK); - } else { - tft.drawPixel(x+2,y+2, TFT_WHITE); - } - } - } - break; - } - default:; - } -} diff --git a/main/displays/qrimportdisplay.h b/main/displays/qrimportdisplay.h deleted file mode 100644 index 0605397..0000000 --- a/main/displays/qrimportdisplay.h +++ /dev/null @@ -1,35 +0,0 @@ -#pragma once - -// 3rd party includes -#include -#include -#include -#include -#include - -// local includes -#include "bobbydisplay.h" -#include "bobbyerrorhandler.h" -#include "qrimport.h" -#include "screenmanager.h" - -class QrImportDisplay : public BobbyDisplay -{ - using Base = BobbyDisplay; - -public: - explicit QrImportDisplay(const std::string &nvs_key) : m_nvs_key{nvs_key} {} - explicit QrImportDisplay(std::string &&nvs_key) : m_nvs_key{std::move(nvs_key)} {} - - void start() override; - void update() override; - void redraw() override; - void buttonPressed(espgui::Button button) override; - -private: - bool m_waitingForResult{false}; - espgui::Label m_statuslabel{5,(espgui::tft.height() / 2)-espgui::tft.fontHeight(4)}; - - tl::expected m_result; - std::string m_nvs_key; -}; diff --git a/main/displays/speedinfodisplay.cpp b/main/displays/speedinfodisplay.cpp deleted file mode 100644 index 1a46cea..0000000 --- a/main/displays/speedinfodisplay.cpp +++ /dev/null @@ -1,93 +0,0 @@ -#include "speedinfodisplay.h" - -// 3rdparty lib includes -#include -#include - -// local includes -#include "displays/batteryinfodisplay.h" -#include "displays/menus/mainmenu.h" -#include "displays/statusdisplay.h" -#include "drivingstatistics.h" - -void SpeedInfoDisplay::initScreen() -{ - Base::initScreen(); - - m_labelSpeed.start(); - - m_dischargingBar.start(); - m_chargingBar.start(); - - m_batteryPercentLabel.start(); - m_voltageLabel.start(); - m_distanceLabel.start(); - m_currentPowerLabel.start(); -} - -void SpeedInfoDisplay::redraw() -{ - using namespace espgui; - - Base::redraw(); - - tft.setTextColor(TFT_WHITE, TFT_BLACK); - tft.setTextFont(4); - - tft.setTextSize(4); - - m_labelSpeed.redraw( - std::abs(avgSpeedKmh) < 10 ? fmt::format("{:.2f}", avgSpeedKmh) : - (std::abs(avgSpeedKmh) < 100 ? fmt::format("{:.1f}", avgSpeedKmh) : fmt::format("{:.0f}", avgSpeedKmh))); - - tft.setTextSize(1); - m_batteryPercentLabel.redraw(getBatteryPercentageString()); - - if (const auto avgVoltage = controllers.getAvgVoltage(); avgVoltage) - { - auto watt = sumCurrent * *avgVoltage; - - m_voltageLabel.redraw(fmt::format("{:.1f} V", avgVoltage.value())); - tft.setTextSize(2); - m_currentPowerLabel.redraw(fmt::format("{:.0f} W", watt)); - tft.setTextSize(1); - } - else - { - m_voltageLabel.redraw("No voltage"); - m_currentPowerLabel.redraw("No power"); - } - - m_distanceLabel.redraw( - drivingStatistics.meters_driven > 1000 ? fmt::format("{:.3f} km", drivingStatistics.meters_driven / 1000) : - (drivingStatistics.meters_driven > 100 ? fmt::format("{:.1f} m", drivingStatistics.meters_driven) : fmt::format("{:.2f} m", drivingStatistics.meters_driven))); - - tft.setTextSize(1); - - m_dischargingBar.redraw(sumCurrent < 0.f ? (-sumCurrent) : 0.f); - m_chargingBar.redraw(sumCurrent > 0.f ? sumCurrent : 0.f); -} - -void SpeedInfoDisplay::buttonPressed(espgui::Button button) -{ - Base::buttonPressed(button); - - switch (button) - { - using espgui::Button; - case Button::Right: - espgui::pushScreen(); - break; - case Button::Up: - espgui::switchScreen(); - break; - case Button::Down: -#ifdef FEATURE_BMS - espgui::switchScreen(); -#else - espgui::switchScreen(); -#endif - break; - default:; - } -} diff --git a/main/displays/statusdisplay.cpp b/main/displays/statusdisplay.cpp deleted file mode 100644 index 4177938..0000000 --- a/main/displays/statusdisplay.cpp +++ /dev/null @@ -1,352 +0,0 @@ -#include "statusdisplay.h" - -// esp-idf includes -#include - -// 3rdparty lib includes -#include -#include -#include - -// local includes -#include "displays/batteryinfodisplay.h" -#include "displays/speedinfodisplay.h" -#ifdef FEATURE_BMS -#include "displays/bmsdisplay.h" -#endif -#include "displays/menus/mainmenu.h" -#include "displays/metersdisplay.h" -#include "drivingstatistics.h" -#include "modes/defaultmode.h" -#include "newsettings.h" -#include "taskmanager.h" -#include "udpcloud.h" - -using namespace std::chrono_literals; -using namespace espgui; - -namespace { -constexpr const char * const TAG = "STATUS"; -} // namespace - -void StatusDisplay::initScreen() -{ - Base::initScreen(); - - tft.setTextFont(2); - tft.setTextColor(TFT_WHITE); - - tft.drawString("gas", 0, 0); - m_labelRawGas.start(); - m_labelGas.start(); - m_progressBarGas.start(); - tft.drawString("brems", 0, 15); - m_labelRawBrems.start(); - m_labelBrems.start(); - m_progressBarBrems.start(); - - m_batterypercent.start(); - m_watthoursleft.start(); - m_kilometersleft.start(); - - m_frontStatus.start(); - m_backStatus.start(); - - tft.setTextFont(2); - tft.drawString("WiFi:", 0, bottomLines[0]); - m_labelWifiStatus.start(); - tft.drawString("Lim0:", 173, bottomLines[0]); - m_labelLimit0.start(); - tft.drawString("IP:", 0, bottomLines[1]); - m_labelIpAddress.start(); - m_labelSignal.start(); - tft.drawString("Lim1:", 173, bottomLines[1]); - m_labelLimit1.start(); - tft.drawString("Perf:", 0, bottomLines[2]); - m_labelPerformance.start(); - m_labelFreeMem.start(); - tft.drawString("Mode:", 125, bottomLines[2]); - m_labelMode.start(); - tft.drawString("Name:", 0, bottomLines[3]); - m_labelName.start(); - m_labelProfile.start(); - - tft.setTextColor(TFT_WHITE, TFT_BLACK); -} - -void StatusDisplay::redraw() -{ - Base::redraw(); - - { - const auto now = espchrono::millis_clock::now(); - if (now - lastRedraw < 50ms) - return; - lastRedraw = now; - } - - { - static bool handbremse_fill_with_black; - if (configs.handbremse.enable.value() && configs.handbremse.visualize.value() && handbremse::angezogen) - { - tft.fillRect(0, tft.height()-6, tft.width(), 6, TFT_RED); - handbremse_fill_with_black = true; - } - else if (configs.handbremse.enable.value() && configs.handbremse.visualize.value() && handbremse::stateWish == handbremse::StateWish::brake) - { - tft.fillRect(0, tft.height()-6, tft.width(), 6, TFT_YELLOW); - handbremse_fill_with_black = true; - } - else if (handbremse_fill_with_black) - { - handbremse_fill_with_black = false; - tft.fillRect(0, tft.height()-6, tft.width(), 6, TFT_BLACK); - } - } - - if(configs.feature.ledstrip.isEnabled.value()) - { - static bool blink_fill_with_black; - if (configs.ledstrip.enableVisualizeBlink.value() && (espchrono::utc_clock::now().time_since_epoch() % 750ms < 375ms) && (blinkAnimation > 0)) - { - if (BLINK_LEFT_EXPR) - tft.fillRect(0, 0, tft.width() / 2, 6, TFT_YELLOW); - if (BLINK_RIGHT_EXPR) - tft.fillRect(tft.width() / 2, 0, tft.width() / 2, 6, TFT_YELLOW); - - blink_fill_with_black = true; - } - else if (blink_fill_with_black) - { - blink_fill_with_black = false; - tft.fillRect(0, 0, tft.width(), 6, TFT_BLACK); - tft.setTextFont(2); - tft.drawString("gas", 0, 0); - m_labelRawGas.start(); - m_labelGas.start(); - m_progressBarGas.start(); - } - } - - tft.setTextFont(2); - m_labelRawGas.redraw(raw_gas ? std::to_string(*raw_gas) : "?"); - m_labelGas.redraw(gas ? fmt::format("{:.2f}", *gas) : "?"); - m_progressBarGas.redraw(gas ? *gas : 0); - m_labelRawBrems.redraw(raw_brems ? std::to_string(*raw_brems) : "?"); - m_labelBrems.redraw(brems ? fmt::format("{:.2f}", *brems) : "?"); - m_progressBarBrems.redraw(brems ? *brems : 0); - - m_batterypercent.redraw(getBatteryPercentageString()); - m_watthoursleft.redraw(getBatteryRemainingWattHoursString()); - const uint16_t efficiencyColor = getEfficiencyClassColor(); -// if (abs(avgSpeedKmh) > 2) - { - tft.setTextColor(efficiencyColor, TFT_BLACK); - } - m_kilometersleft.redraw(getRemainingRangeString()); - tft.setTextColor(TFT_WHITE, TFT_BLACK); - - m_frontStatus.redraw(controllers.front); - m_backStatus.redraw(controllers.back); - - tft.setTextFont(2); - - if (configs.feature.udpcloud.isEnabled.value()) - { - if(configs.udpCloudSettings.udpCloudEnabled.value() && configs.udpCloudSettings.enableCloudDebug.value()) - { - tft.fillRect(125, 258, 8, 8, (visualSendUdpPacket) ? TFT_DARKGREY : TFT_BLACK); - } -// else // is not needed because of redraw -// { -// tft.fillRect(125, 258, 8, 8, TFT_BLACK); -// } - } - - const auto staStatus = wifi_stack::get_sta_status(); - if (staStatus == wifi_stack::WiFiStaStatus::CONNECTED) - { - if (const auto result = wifi_stack::get_sta_ap_info(); result) - { - m_labelWifiStatus.redraw(std::string_view{reinterpret_cast(result->ssid)}); - tft.setTextColor(result->rssi < -80 ? TFT_ORANGE : TFT_WHITE, TFT_BLACK); - m_labelSignal.redraw(fmt::format("{}dB", result->rssi)); - tft.setTextColor(TFT_WHITE, TFT_BLACK); - } - else - { - ESP_LOGW(TAG, "get_sta_ap_info() failed with %.*s", result.error().size(), result.error().data()); - goto showStaStatus; - } - } - else - { -showStaStatus: - m_labelWifiStatus.redraw(wifi_stack::toString(staStatus)); - m_labelSignal.clear(); - } - - m_labelLimit0.redraw(fmt::format("{}A", controllers.front.command.left.iMotMax)); - - if (staStatus == wifi_stack::WiFiStaStatus::CONNECTED) - { - if (const auto result = wifi_stack::get_ip_info(wifi_stack::esp_netifs[ESP_IF_WIFI_STA]); result) - m_labelIpAddress.redraw(wifi_stack::toString(result->ip)); - else - { - ESP_LOGW(TAG, "get_ip_info() failed with %.*s", result.error().size(), result.error().data()); - goto clearIp; - } - } - else - { -clearIp: - m_labelIpAddress.clear(); - } - - m_labelLimit1.redraw(fmt::format("{}A", controllers.front.command.left.iDcMax)); - - tft.setTextColor(drivingModeTask.callCount() < 35 ? TFT_ORANGE : TFT_WHITE, TFT_BLACK); - m_labelPerformance.redraw(std::to_string(drivingModeTask.callCount())); - tft.setTextColor(TFT_WHITE, TFT_BLACK); - - { - const auto freeMem = heap_caps_get_free_size(MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT); - tft.setTextColor(freeMem < 70000 ? TFT_ORANGE : TFT_WHITE, TFT_BLACK); - m_labelFreeMem.redraw(fmt::format("{}K", freeMem/1000)); - tft.setTextColor(TFT_WHITE, TFT_BLACK); - } - - m_labelMode.redraw(currentMode->displayName()); - m_labelName.redraw(configs.wifiApName.value()); - const auto profile = settingsPersister.currentlyOpenProfileIndex(); - m_labelProfile.redraw(profile ? std::to_string(*profile) : "-"); -} - -void StatusDisplay::buttonPressed(espgui::Button button) -{ - Base::buttonPressed(button); - - switch (button) - { - using espgui::Button; - case Button::Right: - pushScreen(); - break; - case Button::Up: - if (simplified) - return; -#ifdef FEATURE_BMS - switchScreen(); -#else - switchScreen(); -#endif - break; - case Button::Down: - if (simplified) - return; - switchScreen(); - break; - default:; - } -} - -StatusDisplay::BoardStatus::BoardStatus(int y) : - m_y{y}, - m_labelLeftPwm{65, y}, // 80, 22 - m_labelRightPwm{155, y}, // 80, 22 - m_labelVoltage{30, y+25}, // 85, 22 - m_labelTemperature{150, y+25}, // 85, 22 - m_leftMotor{y+50}, - m_rightMotor{y+75} -{} - -void StatusDisplay::BoardStatus::start() -{ - tft.setTextFont(4); - tft.drawString("pwm:", 0, m_y); - m_labelLeftPwm.start(); - m_labelRightPwm.start(); - m_initialRedraw = true; -} - -void StatusDisplay::BoardStatus::redraw(const Controller &controller) -{ - tft.setTextFont(4); - - m_labelLeftPwm.redraw(std::to_string(controller.command.left.pwm)); - m_labelRightPwm.redraw(std::to_string(controller.command.right.pwm)); - - if (controller.feedbackValid != m_lastFeedbackValid || m_initialRedraw) - { - tft.fillRect(0, m_y+25, tft.width(), 75, TFT_BLACK); - - if (controller.feedbackValid) - { - tft.setTextColor(TFT_WHITE); - - tft.drawString("U=", 0, m_y+25, 4); - m_labelVoltage.start(); - tft.drawString("T=", 120, m_y+25, 4); - m_labelTemperature.start(); - tft.drawString("l:", 0, m_y+50, 4); - m_leftMotor.start(); - tft.drawString("r:", 0, m_y+75, 4); - m_rightMotor.start(); - - tft.setTextColor(TFT_WHITE, TFT_BLACK); - } - else - { - tft.setTextColor(TFT_RED); - tft.drawString("No data!", 60, m_y+50, 4); - tft.setTextColor(TFT_WHITE, TFT_BLACK); - - tft.setSwapBytes(true); - tft.pushImage(10, m_y+40, bobbyicons::alert.WIDTH, bobbyicons::alert.HEIGHT, bobbyicons::alert.buffer); - tft.setSwapBytes(false); - } - - m_lastFeedbackValid = controller.feedbackValid; - m_initialRedraw = false; - } - - if (controller.feedbackValid) - { - m_labelVoltage.redraw(fmt::format("{:.2f}V", controller.getCalibratedVoltage())); - m_labelTemperature.redraw(fmt::format("{:.2f}C", fixBoardTemp(controller.feedback.boardTemp))); - m_leftMotor.redraw(controller.feedback.left); - m_rightMotor.redraw(controller.feedback.right); - } -} - -StatusDisplay::BoardStatus::MotorStatus::MotorStatus(int y) : - m_labelError{18, y}, // 18, 22, - m_labelCurrent{40, y}, // 85, 22 - m_labelSpeed{135, y}, // 75, 22 - m_labelHallSensors{210, y} // 30, 15 -{} - -void StatusDisplay::BoardStatus::MotorStatus::start() -{ - m_labelError.start(); - m_labelCurrent.start(); - m_labelSpeed.start(); - m_labelHallSensors.start(); -} - -void StatusDisplay::BoardStatus::MotorStatus::redraw(const bobbycar::protocol::serial::MotorFeedback &motor) -{ - tft.setTextFont(4); - tft.setTextColor(motor.error?TFT_RED:TFT_GREEN, TFT_BLACK); - m_labelError.redraw(std::to_string(motor.error)); - tft.setTextColor(TFT_WHITE, TFT_BLACK); - - m_labelCurrent.redraw(fmt::format("{:.2f}A", fixCurrent(motor.dcLink))); - m_labelSpeed.redraw(fmt::format("{:.2f}", convertToKmh(motor.speed))); - - tft.setTextFont(2); - m_labelHallSensors.redraw(hallString(motor)); - - tft.setTextColor(TFT_WHITE, TFT_BLACK); -} diff --git a/main/displays/updatedisplay.cpp b/main/displays/updatedisplay.cpp deleted file mode 100644 index 981a119..0000000 --- a/main/displays/updatedisplay.cpp +++ /dev/null @@ -1,116 +0,0 @@ -#include "updatedisplay.h" - -// system includes -#include -#include - -// esp-idf includes -#include - -// 3rdparty lib includes -#include -#include -#include -#include - -// local includes -#include "globals.h" -#include "ota.h" -#include "newsettings.h" - -void UpdateDisplay::initScreen() -{ - Base::initScreen(); - - espgui::tft.setTextFont(4); - espgui::tft.setTextColor(TFT_YELLOW); - - espgui::tft.drawString("Update", 5, 5, 4); - - espgui::tft.fillRect(0, 34, espgui::tft.width(), 3, TFT_WHITE); - - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - - espgui::tft.drawString("Status:", 20, m_statusLabel.y()); - m_statusLabel.start(); - - espgui::tft.drawString("Progress:", 20, m_progressLabel.y()); - m_progressLabel.start(); - - espgui::tft.drawString("Total:", 20, m_totalLabel.y()); - m_totalLabel.start(); - - m_messageLabel.start(); - - m_progressBar.start(); - - if (const esp_app_desc_t *app_desc = esp_ota_get_app_description()) - { - espgui::tft.setTextColor(TFT_ORANGE, TFT_BLACK); - espgui::tft.drawString(app_desc->version, 20, 250); - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - } - - m_newVersionLabel.start(); -} - -void UpdateDisplay::redraw() -{ - Base::redraw(); - - if (asyncOta) - { - m_statusLabel.redraw(toString(asyncOta->status())); - const auto progress = asyncOta->progress(); - m_progressLabel.redraw(std::to_string(progress)); - if (const auto totalSize = asyncOta->totalSize(); totalSize && *totalSize > 0) - { - m_totalLabel.redraw(std::to_string(*totalSize)); - m_progressBar.redraw(float(progress) / *totalSize * 100); - } - else - { - m_totalLabel.clear(); - m_progressBar.redraw(0); - } - m_messageLabel.redraw(asyncOta->message()); - - if (const auto &appDesc = asyncOta->appDesc()) - { - espgui::tft.setTextColor(TFT_GREEN, TFT_BLACK); - m_newVersionLabel.redraw(appDesc->version); - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - } - else - m_newVersionLabel.clear(); - } - else - { - m_statusLabel.clear(); - m_progressLabel.clear(); - m_totalLabel.clear(); - m_messageLabel.clear(); - - m_progressBar.redraw(0); - - m_newVersionLabel.clear(); - } -} - -void UpdateDisplay::buttonPressed(espgui::Button button) -{ - Base::buttonPressed(button); - - switch (button) - { - using espgui::Button; - case Button::Left: - espgui::popScreen(); - break; - case Button::Right: - if (const auto result = triggerOta(configs.otaUrl.value()); !result) - ESP_LOGE("BOBBY", "triggerOta() failed with %.*s", result.error().size(), result.error().data()); - break; - default:; - } -} diff --git a/main/dpad.cpp b/main/dpad.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/dpad3wire.cpp b/main/dpad3wire.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/drivingstatistics.cpp b/main/drivingstatistics.cpp index 0670c50..414e008 100644 --- a/main/drivingstatistics.cpp +++ b/main/drivingstatistics.cpp @@ -2,8 +2,8 @@ // 3rdparty lib includes #include -#include #include +#include // Local #include "globals.h" diff --git a/main/esptexthelpers.cpp b/main/esptexthelpers.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/feedbackparser.cpp b/main/feedbackparser.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/globals.h b/main/globals.h index ecf7c5e..98a5e1b 100644 --- a/main/globals.h +++ b/main/globals.h @@ -21,12 +21,10 @@ // 3rdparty lib includes #include -#include // local includes #include "controller.h" #include "display.h" -#include "macros_bobbycar.h" #include "modeinterface.h" #include "newsettings.h" #include "profilesettings.h" diff --git a/main/displays/bobbychangevaluedisplay.cpp b/main/guihelpers/bobbychangevaluedisplay.cpp similarity index 100% rename from main/displays/bobbychangevaluedisplay.cpp rename to main/guihelpers/bobbychangevaluedisplay.cpp diff --git a/main/displays/bobbychangevaluedisplay.h b/main/guihelpers/bobbychangevaluedisplay.h similarity index 90% rename from main/displays/bobbychangevaluedisplay.h rename to main/guihelpers/bobbychangevaluedisplay.h index c3756ad..370bc01 100644 --- a/main/displays/bobbychangevaluedisplay.h +++ b/main/guihelpers/bobbychangevaluedisplay.h @@ -7,18 +7,22 @@ #include "bobbybuttons.h" #include "bobbyerrorhandler.h" +namespace bobby { + template class BobbyChangeValueDisplay : - public espgui::ChangeValueDisplay, - public virtual BobbyErrorHandler + public espgui::ChangeValueDisplay, + public virtual BobbyErrorHandler { using Base = espgui::ChangeValueDisplay; public: void rawButtonPressed(uint8_t button) override; + void rawButtonReleased(uint8_t button) override; void buttonPressed(espgui::Button button) override; + void buttonReleased(espgui::Button button) override; }; @@ -51,3 +55,5 @@ void BobbyChangeValueDisplay::buttonReleased(espgui::Button button) Base::buttonReleased(button); buttonReleasedCommon(button); } + +} // namespace bobby diff --git a/main/bobbycheckbox.h b/main/guihelpers/bobbycheckbox.h similarity index 58% rename from main/bobbycheckbox.h rename to main/guihelpers/bobbycheckbox.h index 280c0e7..e40d7b9 100644 --- a/main/bobbycheckbox.h +++ b/main/guihelpers/bobbycheckbox.h @@ -1,15 +1,19 @@ #pragma once // 3rdparty lib includes -#include -#include +#include "../../components/esp-gui-lib/src/actions/toggleboolaction.h" +#include "../../components/esp-gui-lib/src/checkboxicon.h" // local includes #include "bobbyerrorhandler.h" +namespace bobby { + class BobbyCheckbox : public virtual espgui::ToggleBoolAction, public virtual espgui::CheckboxIcon, public virtual BobbyErrorHandler { }; + +} // namespace bobby diff --git a/main/displays/bobbydisplay.cpp b/main/guihelpers/bobbydisplay.cpp similarity index 94% rename from main/displays/bobbydisplay.cpp rename to main/guihelpers/bobbydisplay.cpp index 562882b..b86df88 100644 --- a/main/displays/bobbydisplay.cpp +++ b/main/guihelpers/bobbydisplay.cpp @@ -3,6 +3,8 @@ // local includes #include "bobbybuttons.h" +namespace bobby { + void BobbyDisplay::rawButtonPressed(uint8_t button) { //Base::rawButtonPressed(button); @@ -28,3 +30,5 @@ void BobbyDisplay::buttonReleased(espgui::Button button) //Base::buttonReleased(button); buttonReleasedCommon(button); } + +} // namespace bobby diff --git a/main/displays/bobbydisplay.h b/main/guihelpers/bobbydisplay.h similarity index 84% rename from main/displays/bobbydisplay.h rename to main/guihelpers/bobbydisplay.h index 60c1e70..c43d78c 100644 --- a/main/displays/bobbydisplay.h +++ b/main/guihelpers/bobbydisplay.h @@ -1,7 +1,9 @@ #pragma once // 3rdparty lib includes -#include +#include "display.h" + +namespace bobby { class BobbyDisplay : public espgui::Display { @@ -14,3 +16,5 @@ public: void buttonPressed(espgui::Button button) override; void buttonReleased(espgui::Button button) override; }; + +} // namespace bobby diff --git a/main/displays/bobbydisplaywithtitle.cpp b/main/guihelpers/bobbydisplaywithtitle.cpp similarity index 94% rename from main/displays/bobbydisplaywithtitle.cpp rename to main/guihelpers/bobbydisplaywithtitle.cpp index 3c9ccdc..4f416c0 100644 --- a/main/displays/bobbydisplaywithtitle.cpp +++ b/main/guihelpers/bobbydisplaywithtitle.cpp @@ -3,6 +3,8 @@ // local includes #include "bobbybuttons.h" +namespace bobby { + void BobbyDisplayWithTitle::rawButtonPressed(uint8_t button) { //Base::rawButtonPressed(button); @@ -28,3 +30,5 @@ void BobbyDisplayWithTitle::buttonReleased(espgui::Button button) //Base::buttonReleased(button); buttonReleasedCommon(button); } + +} // namespace bobby diff --git a/main/displays/bobbydisplaywithtitle.h b/main/guihelpers/bobbydisplaywithtitle.h similarity index 84% rename from main/displays/bobbydisplaywithtitle.h rename to main/guihelpers/bobbydisplaywithtitle.h index 0edb868..08ad613 100644 --- a/main/displays/bobbydisplaywithtitle.h +++ b/main/guihelpers/bobbydisplaywithtitle.h @@ -1,7 +1,9 @@ #pragma once // 3rdparty lib includes -#include +#include "displaywithtitle.h" + +namespace bobby { class BobbyDisplayWithTitle : public espgui::DisplayWithTitle { @@ -14,3 +16,5 @@ public: void buttonPressed(espgui::Button button) override; void buttonReleased(espgui::Button button) override; }; + +} // namespace bobby diff --git a/main/guihelpers/bobbyerrorhandler.cpp b/main/guihelpers/bobbyerrorhandler.cpp new file mode 100644 index 0000000..7a279c5 --- /dev/null +++ b/main/guihelpers/bobbyerrorhandler.cpp @@ -0,0 +1,20 @@ +#include "bobbyerrorhandler.h" + +// 3rdparty lib includes +#include +#include + +// local includes +#include "guihelpers/bobbypopupdisplay.h" + +namespace bobby { + +void BobbyErrorHandler::errorOccurred(std::string &&error) +{ + espgui::changeScreenCallback = [error_ = std::move(error)](espgui::TftInterface &tft){ + auto newDisplay = std::make_unique(std::string{error_}, std::move(espgui::currentDisplay)); + newDisplay->initOverlay(tft); + espgui::currentDisplay = std::move(newDisplay); + }; +} +} // namespace bobby diff --git a/main/bobbyerrorhandler.h b/main/guihelpers/bobbyerrorhandler.h similarity index 83% rename from main/bobbyerrorhandler.h rename to main/guihelpers/bobbyerrorhandler.h index 0f24932..0e6aa34 100644 --- a/main/bobbyerrorhandler.h +++ b/main/guihelpers/bobbyerrorhandler.h @@ -3,7 +3,11 @@ // 3rdparty lib includes #include +namespace bobby { + struct BobbyErrorHandler : public virtual espgui::ErrorHandlerInterface { void errorOccurred(std::string &&error) override; }; + +} // namespace bobby diff --git a/main/displays/bobbygraphdisplay.cpp b/main/guihelpers/bobbygraphdisplay.cpp similarity index 100% rename from main/displays/bobbygraphdisplay.cpp rename to main/guihelpers/bobbygraphdisplay.cpp diff --git a/main/displays/bobbygraphdisplay.h b/main/guihelpers/bobbygraphdisplay.h similarity index 96% rename from main/displays/bobbygraphdisplay.h rename to main/guihelpers/bobbygraphdisplay.h index 3ca683b..8ffabee 100644 --- a/main/displays/bobbygraphdisplay.h +++ b/main/guihelpers/bobbygraphdisplay.h @@ -6,6 +6,8 @@ // local includes #include "bobbybuttons.h" +namespace bobby { + template class BobbyGraphDisplay : public espgui::GraphDisplay { @@ -48,3 +50,5 @@ void BobbyGraphDisplay::buttonReleased(espgui::Button button) //Base::buttonReleased(button); buttonReleasedCommon(button); } + +} // namespace bobby diff --git a/main/displays/bobbymenudisplay.cpp b/main/guihelpers/bobbymenudisplay.cpp similarity index 94% rename from main/displays/bobbymenudisplay.cpp rename to main/guihelpers/bobbymenudisplay.cpp index 6a78223..92af114 100644 --- a/main/displays/bobbymenudisplay.cpp +++ b/main/guihelpers/bobbymenudisplay.cpp @@ -4,6 +4,8 @@ #include "esp_log.h" #include "bobbybuttons.h" +namespace bobby { + void BobbyMenuDisplay::rawButtonPressed(uint8_t button) { //Base::rawButtonPressed(button); @@ -29,3 +31,4 @@ void BobbyMenuDisplay::buttonReleased(espgui::Button button) Base::buttonReleased(button); buttonReleasedCommon(button); } +} // namespace bobby diff --git a/main/displays/bobbymenudisplay.h b/main/guihelpers/bobbymenudisplay.h similarity index 84% rename from main/displays/bobbymenudisplay.h rename to main/guihelpers/bobbymenudisplay.h index 4e92c1b..476ccef 100644 --- a/main/displays/bobbymenudisplay.h +++ b/main/guihelpers/bobbymenudisplay.h @@ -1,7 +1,9 @@ #pragma once // 3rdparty lib includes -#include +#include "menudisplay.h" + +namespace bobby { class BobbyMenuDisplay : public espgui::MenuDisplay { @@ -14,3 +16,5 @@ public: void buttonPressed(espgui::Button button) override; void buttonReleased(espgui::Button button) override; }; + +} // namespace bobby diff --git a/main/displays/bobbypopupdisplay.cpp b/main/guihelpers/bobbypopupdisplay.cpp similarity index 94% rename from main/displays/bobbypopupdisplay.cpp rename to main/guihelpers/bobbypopupdisplay.cpp index 47df3b8..3fde6ea 100644 --- a/main/displays/bobbypopupdisplay.cpp +++ b/main/guihelpers/bobbypopupdisplay.cpp @@ -3,6 +3,8 @@ // local includes #include "bobbybuttons.h" +namespace bobby { + void BobbyPopupDisplay::rawButtonPressed(uint8_t button) { //Base::rawButtonPressed(button); @@ -28,3 +30,5 @@ void BobbyPopupDisplay::buttonReleased(espgui::Button button) //Base::buttonReleased(button); buttonReleasedCommon(button); } + +} // namespace bobby diff --git a/main/displays/bobbypopupdisplay.h b/main/guihelpers/bobbypopupdisplay.h similarity index 84% rename from main/displays/bobbypopupdisplay.h rename to main/guihelpers/bobbypopupdisplay.h index 0220fce..8685b1c 100644 --- a/main/displays/bobbypopupdisplay.h +++ b/main/guihelpers/bobbypopupdisplay.h @@ -1,7 +1,9 @@ #pragma once // 3rdparty lib includes -#include +#include "messagepopupdisplay.h" + +namespace bobby { class BobbyPopupDisplay : public espgui::MessagePopupDisplay { @@ -16,3 +18,5 @@ public: void buttonPressed(espgui::Button button) override; void buttonReleased(espgui::Button button) override; }; + +} // namespace bobby diff --git a/main/displays/bobbysplitgraphdisplay.cpp b/main/guihelpers/bobbysplitgraphdisplay.cpp similarity index 100% rename from main/displays/bobbysplitgraphdisplay.cpp rename to main/guihelpers/bobbysplitgraphdisplay.cpp diff --git a/main/displays/bobbysplitgraphdisplay.h b/main/guihelpers/bobbysplitgraphdisplay.h similarity index 97% rename from main/displays/bobbysplitgraphdisplay.h rename to main/guihelpers/bobbysplitgraphdisplay.h index 35b14f4..2251be9 100644 --- a/main/displays/bobbysplitgraphdisplay.h +++ b/main/guihelpers/bobbysplitgraphdisplay.h @@ -6,6 +6,8 @@ // local includes #include "bobbybuttons.h" +namespace bobby { + template class BobbySplitGraphDisplay : public espgui::SplitGraphDisplay { @@ -48,4 +50,5 @@ void BobbySplitGraphDisplay::buttonReleased(espgui::Button butto //Base::buttonReleased(button); buttonReleasedCommon(button); } +} // namespace bobby diff --git a/main/guihelpers/menudisplaywithtime.cpp b/main/guihelpers/menudisplaywithtime.cpp new file mode 100644 index 0000000..d558d9c --- /dev/null +++ b/main/guihelpers/menudisplaywithtime.cpp @@ -0,0 +1,26 @@ +#include "menudisplaywithtime.h" + +// 3rdparty lib includes +#include +#include +#include + +// local includes +#include "utils.h" + +namespace bobby { + +using namespace espgui; + +void MenuDisplayWithTime::initScreen(espgui::TftInterface &tft) +{ + Base::initScreen(tft); + m_label_currentTime.start(tft); +} + +void MenuDisplayWithTime::redraw(espgui::TftInterface &tft) +{ + Base::redraw(tft); + m_label_currentTime.redraw(tft, fmt::format("&7Time: {}", local_clock_string()), espgui::TFT_WHITE, espgui::TFT_BLACK, use_big_font() ? 4 : 2); +} +} // namespace bobby diff --git a/main/displays/menudisplaywithtime.h b/main/guihelpers/menudisplaywithtime.h similarity index 64% rename from main/displays/menudisplaywithtime.h rename to main/guihelpers/menudisplaywithtime.h index 97d8d2a..7cf4241 100644 --- a/main/displays/menudisplaywithtime.h +++ b/main/guihelpers/menudisplaywithtime.h @@ -1,17 +1,18 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "bobbymenudisplay.h" + +namespace bobby { -namespace bobbygui { class MenuDisplayWithTime : public BobbyMenuDisplay { using Base = BobbyMenuDisplay; public: - void start() override; - void redraw() override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; espgui::Label m_label_currentTime{145, 6}; private: @@ -24,4 +25,5 @@ private: #endif } }; -} // namespace + +} // namespace bobby diff --git a/main/ledstripdefines.cpp b/main/ledstripdefines.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/macros_bobbycar.cpp b/main/macros_bobbycar.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/macros_bobbycar.h b/main/macros_bobbycar.h deleted file mode 100644 index 13fdd05..0000000 --- a/main/macros_bobbycar.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -// macros are a shit piece of software -#define STRING2(s) #s -#define STRING(s) STRING2(s) diff --git a/main/main.cpp b/main/main.cpp index 0d2ab78..670b6a7 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -1,10 +1,6 @@ constexpr const char * const TAG = "BOBBY"; -// system includes -#include - // esp-idf includes -#include #include #include #include @@ -13,15 +9,11 @@ constexpr const char * const TAG = "BOBBY"; #include using namespace std::chrono_literals; #include -#include -#include #include #include +#include // local includes -#include "bobbycar-common.h" -#include "bobbycar-serial.h" -#include "macros_bobbycar.h" #include "globals.h" #include "screens.h" #include "presets.h" @@ -31,18 +23,17 @@ using namespace std::chrono_literals; #else #include "modes/defaultmode.h" #endif -#include "displays/lockscreen.h" -#include "displays/menus/recoverymenu.h" -#include "displays/potiscalibratedisplay.h" -#include "displays/setup/information.h" -#include "displays/setup/basic_buttons.h" -#include "displays/setup/calibrate_potis.h" -#include "displays/statusdisplay.h" +#include "screens/lockscreen.h" +#include "screens/recoverymenu.h" +#include "screens/setup/information.h" +#include "screens/setup/basic_buttons.h" +#include "screens/setup/calibrate_potis.h" +#include "screens/statusdisplay.h" #include "newsettings.h" #include "taskmanager.h" #define BOOT_PROGRESS(s) \ - bootLabel.redraw(s); \ + bobby::set_boot_msg(s); \ ESP_LOGI("BOOT", "%s", s); namespace { @@ -65,10 +56,10 @@ extern "C" void app_main() if (recovery) { - initScreen(); + bobby::initScreen(); ESP_LOGE(TAG, "Recovery mode (%s)", espcpputils::toString(esp_reset_reason()).c_str()); - bootLabel.redraw("Entering recovery mode"); + BOOT_PROGRESS("Entering recovery mode"); if (const auto result = configs.init("bobbycar"); result != ESP_OK) ESP_LOGE(TAG, "config_init_settings() failed with %s", esp_err_to_name(result)); @@ -78,7 +69,7 @@ extern "C" void app_main() task.setup(recovery); } - espgui::switchScreen(); + espgui::switchScreen(); recovery = false; @@ -105,7 +96,7 @@ extern "C" void app_main() if (const auto result = configs.init("bobbycar"); result != ESP_OK) ESP_LOGE(TAG, "config_init_settings() failed with %s", esp_err_to_name(result)); - initScreen(); + bobby::initScreen(); profileSettings = presets::defaultProfileSettings; @@ -142,14 +133,14 @@ extern "C" void app_main() { case SetupStep::INFORMATION: BOOT_PROGRESS("Calibtration"); - espgui::switchScreen(); + espgui::switchScreen(); break; case SetupStep::BASIC_BUTTONS: BOOT_PROGRESS("Calibtration"); - espgui::switchScreen(true); + espgui::switchScreen(true); break; case SetupStep::CALIBRATE_POTIS: - espgui::switchScreen(true); + espgui::switchScreen(true); break; default:; } @@ -157,13 +148,13 @@ extern "C" void app_main() else if (configs.lockscreen.keepLockedAfterReboot.value() && configs.lockscreen.locked.value()) { BOOT_PROGRESS("Locked"); - espgui::switchScreen(); - espgui::pushScreen(); + espgui::switchScreen(); + espgui::pushScreen(); } else { BOOT_PROGRESS("StatusDisplay") - espgui::switchScreen(); + espgui::switchScreen(); } esp_chip_info(&chip_info); diff --git a/main/modeinterface.cpp b/main/modeinterface.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/newsettings.h b/main/newsettings.h index 2a2f6e2..c6b213b 100644 --- a/main/newsettings.h +++ b/main/newsettings.h @@ -23,14 +23,11 @@ // local includes #include "battery.h" #include "bobbyquickactions.h" -#include "displays/lockscreen.h" +#include "cloud.h" #include "handbremse.h" #include "ledstrip.h" +#include "screens/lockscreen.h" #include "unifiedmodelmode.h" -#include "displays/lockscreen.h" -#include "handbremse.h" -#include "bobbyquickactions.h" -#include "cloud.h" using namespace espconfig; diff --git a/main/profilesettings.cpp b/main/profilesettings.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/rotary.cpp b/main/rotary.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/screens.cpp b/main/screens.cpp index 65b94ba..ead03db 100644 --- a/main/screens.cpp +++ b/main/screens.cpp @@ -1,40 +1,46 @@ #include "screens.h" // 3rdparty lib includes -#include #include +#include +#include // local includes -#include "esptexthelpers.h" #include "globals.h" #include "icons/logo.h" +#include "texthelpers/esptexthelpers.h" + +namespace bobby { using namespace espgui; -Label bootLabel{32, 250}; +espgui::Label bootLabel{32, 250}; namespace { bool disable_screen_flip{false}; + +espgui::TftESpiImpl tft; +} + +void tft_init() +{ + tft.init(); } void initScreen() { // vertical screen tft.init(); - tft.fillScreen(TFT_WHITE); - tft.setTextColor(TFT_BLACK, TFT_WHITE); - tft.setTextFont(4); + tft.fillScreen(espgui::TFT_WHITE); tft.setRotation(configs.boardcomputerHardware.flipScreen.value() ? 2 : 0); - espgui::tft.setSwapBytes(true); + tft.setSwapBytes(true); tft.pushImage(0, 40, bobbyicons::logo.WIDTH, bobbyicons::logo.HEIGHT, bobbyicons::logo.buffer); - espgui::tft.setSwapBytes(false); - tft.drawString("Bobbycar-OS", 32, 200); - tft.drawString("booting...", 32, 225); - tft.setTextFont(2); - tft.drawString("last reboot reason:", 32, 275); - tft.drawString(espcpputils::toString(esp_reset_reason()), 32, 295); - tft.setTextFont(4); - bootLabel.start(); + tft.setSwapBytes(false); + tft.drawString("Bobbycar-OS", 32, 200, espgui::TFT_BLACK, espgui::TFT_WHITE, 4); + tft.drawString("booting...", 32, 225, espgui::TFT_BLACK, espgui::TFT_WHITE, 4); + tft.drawString("last reboot reason:", 32, 275, espgui::TFT_BLACK, espgui::TFT_WHITE, 2); + tft.drawString(espcpputils::toString(esp_reset_reason()), 32, 295, espgui::TFT_BLACK, espgui::TFT_WHITE, 2); + bootLabel.start(tft); } void updateRotation() @@ -43,7 +49,7 @@ void updateRotation() { tft.setRotation(configs.boardcomputerHardware.flipScreen.value() ? 2 : 0); if (currentDisplay) - currentDisplay->initScreen(); + currentDisplay->initScreen(tft); } } @@ -54,7 +60,7 @@ void updateDisplay() if (changeScreenCallback) { - changeScreenCallback(); + changeScreenCallback(tft); changeScreenCallback = {}; } @@ -78,7 +84,7 @@ void updateDisplay() if (initScreenRequest && currentDisplay) { - currentDisplay->initScreen(); + currentDisplay->initScreen(tft); initScreenRequest = false; } } @@ -87,7 +93,7 @@ void redrawDisplay() { if (currentDisplay) { - currentDisplay->redraw(); + currentDisplay->redraw(tft); } } @@ -95,3 +101,19 @@ void disableScreenFlip(bool enable) { disable_screen_flip = enable; } + +void set_boot_msg(std::string_view msg) +{ + bootLabel.redraw(tft, msg, espgui::TFT_BLACK, espgui::TFT_WHITE, 4); +} + +uint16_t getScreenWidth() +{ + return tft.width(); +} + +uint16_t getScreenHeight() +{ + return tft.height(); +} +} // namespace bobby diff --git a/main/screens.h b/main/screens.h index 53be905..a02ae0b 100644 --- a/main/screens.h +++ b/main/screens.h @@ -1,12 +1,23 @@ #pragma once +// system includes +#include + // 3rdparty lib includes #include +namespace bobby { + extern espgui::Label bootLabel; +void tft_init(); void initScreen(); void updateDisplay(); void updateRotation(); void redrawDisplay(); void disableScreenFlip(bool enable); + +void set_boot_msg(std::string_view msg); +uint16_t getScreenWidth(); +uint16_t getScreenHeight(); +} // namespace bobby diff --git a/main/displays/menus/aboutmenu.cpp b/main/screens/aboutmenu.cpp similarity index 93% rename from main/displays/menus/aboutmenu.cpp rename to main/screens/aboutmenu.cpp index da28283..07ffc35 100644 --- a/main/displays/menus/aboutmenu.cpp +++ b/main/screens/aboutmenu.cpp @@ -1,15 +1,19 @@ #include "aboutmenu.h" -// local includes -#include "utils.h" -#include "actions/dummyaction.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" -#include "esptexthelpers.h" - +// esp-idf includes #include -#include "fmt/core.h" +// 3rdparty lib includes +#include +#include +#include +#include + +// local includes +#include "texthelpers/esptexthelpers.h" +#include "utils.h" + +namespace bobby { namespace { constexpr char TEXT_ABOUT[] = "About"; constexpr char TEXT_BACK[] = "Back"; @@ -67,3 +71,5 @@ void AboutMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/aboutmenu.h b/main/screens/aboutmenu.h similarity index 67% rename from main/displays/menus/aboutmenu.h rename to main/screens/aboutmenu.h index 3937122..0bc0a05 100644 --- a/main/displays/menus/aboutmenu.h +++ b/main/screens/aboutmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class AboutMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/batterydebugmenu.cpp b/main/screens/batterydebugmenu.cpp similarity index 94% rename from main/displays/menus/batterydebugmenu.cpp rename to main/screens/batterydebugmenu.cpp index 92caeb3..8e78913 100644 --- a/main/displays/menus/batterydebugmenu.cpp +++ b/main/screens/batterydebugmenu.cpp @@ -1,11 +1,11 @@ #include "batterydebugmenu.h" // 3rdparty lib includes -#include -#include -#include -#include -#include +#include "menuitem.h" +#include "icons/back.h" +#include "actions/dummyaction.h" +#include "actions/popscreenaction.h" +#include "fmt/core.h" // local includes #include "accessors/settingsaccessors.h" @@ -13,6 +13,8 @@ #include "icons/settings.h" #include "battery.h" +namespace bobby { + namespace { constexpr char TEXT_BATTERYDEBUG[] = "Bat Debug Menu"; constexpr char TEXT_BACK[] = "Back"; @@ -93,3 +95,5 @@ void BatteryDebugMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/batterydebugmenu.h b/main/screens/batterydebugmenu.h similarity index 69% rename from main/displays/menus/batterydebugmenu.h rename to main/screens/batterydebugmenu.h index e351982..8e3fc57 100644 --- a/main/displays/menus/batterydebugmenu.h +++ b/main/screens/batterydebugmenu.h @@ -1,7 +1,9 @@ #pragma once // Local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class BatteryDebugMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/batterygraphdisplay.cpp b/main/screens/batterygraphdisplay.cpp similarity index 77% rename from main/displays/batterygraphdisplay.cpp rename to main/screens/batterygraphdisplay.cpp index aef725d..cda75d1 100644 --- a/main/displays/batterygraphdisplay.cpp +++ b/main/screens/batterygraphdisplay.cpp @@ -3,25 +3,28 @@ constexpr const char * const TAG = "BatteryGraphDisplay"; // 3rdparty lib includes #include -#include +#include +#include // local includes #include "battery.h" -#include "displays/menus/batterymenu.h" #include "globals.h" #include "newsettings.h" +#include "screens/batterymenu.h" #include "utils.h" -#include "actions/bluetoothbeginmasteraction.h" + +namespace bobby { namespace { - constexpr char TEXT_BATTERY_GRAPH[] = "Battery Level"; - constexpr const uint8_t TOP_OFFSET = 40; +constexpr char TEXT_BATTERY_GRAPH[] = "Battery Level"; +constexpr const uint8_t TOP_OFFSET = 40; } // namespace -void BatteryGraphDisplay::initScreen() +void BatteryGraphDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); - drawBatteryCurve(); + Base::initScreen(tft); + + drawBatteryCurve(tft); } std::string BatteryGraphDisplay::text() const @@ -33,10 +36,10 @@ std::string BatteryGraphDisplay::text() const return TEXT_BATTERY_GRAPH; } -void BatteryGraphDisplay::redraw() +void BatteryGraphDisplay::redraw(espgui::TftInterface &tft) { using namespace espgui; - Base::redraw(); + Base::redraw(tft); if (const auto avgVoltage = controllers.getAvgVoltage(); avgVoltage) { @@ -50,10 +53,10 @@ void BatteryGraphDisplay::redraw() const uint16_t lastXOffset = onePercent * (100 - getBatteryPercentage(m_lastBatVoltage, cellType)); // clear the old one and draw the new one - tft.fillRect(lastXOffset + 2, TOP_OFFSET, onePercent, tft.height() - TOP_OFFSET, TFT_BLACK); - tft.fillRect(xOffset + 2, TOP_OFFSET, onePercent, tft.height() - TOP_OFFSET, TFT_WHITE); + tft.fillRect(lastXOffset + 2, TOP_OFFSET, onePercent, tft.height() - TOP_OFFSET, espgui::TFT_BLACK); + tft.fillRect(xOffset + 2, TOP_OFFSET, onePercent, tft.height() - TOP_OFFSET, espgui::TFT_WHITE); m_lastBatVoltage = *avgVoltage; - drawBatteryCurve(); + drawBatteryCurve(tft); } // tft.drawLine() code } @@ -73,11 +76,11 @@ void BatteryGraphDisplay::buttonPressed(espgui::Button button) } } -void BatteryGraphDisplay::drawBatteryCurve() +void BatteryGraphDisplay::drawBatteryCurve(espgui::TftInterface &tft) { const auto points = count_curve_points(configs.battery.cellType.value()); - const auto max_height = espgui::tft.height() - 1; - const auto max_width = espgui::tft.width() - 4; + const auto max_height = tft.height() - 1; + const auto max_width = tft.width() - 4; const uint16_t part = max_width / points; const auto min_voltage = getMinBatCellVoltage(configs.battery.cellType.value()); const auto max_voltage = getMaxBatCellVoltage(configs.battery.cellType.value()); @@ -89,7 +92,9 @@ void BatteryGraphDisplay::drawBatteryCurve() const int y1 = float_map(point->minVoltage / 100.f, min_voltage, max_voltage, max_height, TOP_OFFSET); const int x2 = 2 + part * (points - i); const int y2 = float_map(point->maxVoltage / 100.f, min_voltage, max_voltage, max_height, TOP_OFFSET); - espgui::tft.drawLine(x1, y1, x2, y2, TFT_WHITE); + tft.drawLine(x1, y1, x2, y2, espgui::TFT_WHITE); } } } + +} // namespace bobby diff --git a/main/screens/batterygraphdisplay.h b/main/screens/batterygraphdisplay.h new file mode 100644 index 0000000..36cacc8 --- /dev/null +++ b/main/screens/batterygraphdisplay.h @@ -0,0 +1,28 @@ +#pragma once + +// 3rdparty lib includes +#include + +// local includes +#include "guihelpers/bobbydisplaywithtitle.h" + +namespace bobby { + +class BatteryGraphDisplay : public BobbyDisplayWithTitle { + using Base = BobbyDisplayWithTitle; + +public: + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; + + std::string text() const override; + + void buttonPressed(espgui::Button button) override; + + static void drawBatteryCurve(espgui::TftInterface &tft); + +private: + float m_lastBatVoltage{0}; +}; + +} // namespace bobby diff --git a/main/displays/batteryinfodisplay.cpp b/main/screens/batteryinfodisplay.cpp similarity index 79% rename from main/displays/batteryinfodisplay.cpp rename to main/screens/batteryinfodisplay.cpp index a0ff6ce..3d52fce 100644 --- a/main/displays/batteryinfodisplay.cpp +++ b/main/screens/batteryinfodisplay.cpp @@ -2,32 +2,34 @@ // 3rdparty lib includes #include -#include +#include // local includes #include "battery.h" -#include "displays/menus/mainmenu.h" -#include "displays/metersdisplay.h" -#include "displays/speedinfodisplay.h" +#include "screens/mainmenu.h" +#include "screens/metersdisplay.h" +#include "screens/speedinfodisplay.h" #include "globals.h" #include "newsettings.h" // display with big battery and ten bars (0-100%) -void BatteryInfoDisplay::initScreen() +namespace bobby { + +void BatteryInfoDisplay::initScreen(espgui::TftInterface &tft) { using namespace espgui; - Base::initScreen(); + Base::initScreen(tft); - tft.drawRoundRect(m_offset, m_offset, tft.width() - (m_offset * 2), tft.height() - (m_offset * 2), 10, TFT_WHITE); - tft.drawRoundRect((tft.width() / 2) - (m_offset / 2), m_offset / 2, m_offset, m_offset / 2, 3, TFT_WHITE); + tft.drawRoundRect(m_offset, m_offset, tft.width() - (m_offset * 2), tft.height() - (m_offset * 2), 10, espgui::TFT_WHITE); + tft.drawRoundRect((tft.width() / 2) - (m_offset / 2), m_offset / 2, m_offset, m_offset / 2, 3, espgui::TFT_WHITE); m_lastBarCount = 0; } -void BatteryInfoDisplay::redraw() +void BatteryInfoDisplay::redraw(espgui::TftInterface &tft) { using namespace espgui; - Base::redraw(); + Base::redraw(tft); // calculate height of space available for all bars const auto min_x = m_offset + 3; // leave 2 pixels + 1 pixel for border @@ -51,7 +53,7 @@ void BatteryInfoDisplay::redraw() for (auto i = 0; i < 10; ++i) { const auto y = bottomY - (i * segment_height) - segment_height; - tft.fillRoundRect(min_x, y, width, segment_height - 2, 10, segment_count > i ? TFT_GREEN : TFT_DARKGREY); + tft.fillRoundRect(min_x, y, width, segment_height - 2, 10, segment_count > i ? espgui::TFT_GREEN : espgui::TFT_DARKGREY); } } } @@ -78,3 +80,5 @@ void BatteryInfoDisplay::buttonPressed(espgui::Button button) default:; } } + +} // namespace bobby diff --git a/main/displays/batteryinfodisplay.h b/main/screens/batteryinfodisplay.h similarity index 52% rename from main/displays/batteryinfodisplay.h rename to main/screens/batteryinfodisplay.h index 3e68fc8..f7bca85 100644 --- a/main/displays/batteryinfodisplay.h +++ b/main/screens/batteryinfodisplay.h @@ -1,18 +1,25 @@ #pragma once +// 3rdparty lib includes +#include + // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplay.h" + +namespace bobby { class BatteryInfoDisplay : public BobbyDisplay { using Base = BobbyDisplay; public: - void initScreen() override; - void redraw() override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; void buttonPressed(espgui::Button button) override; private: static constexpr const auto m_offset = 40; uint16_t m_lastBarCount{0}; }; + +} // namespace bobby diff --git a/main/displays/menus/batterymenu.cpp b/main/screens/batterymenu.cpp similarity index 80% rename from main/displays/menus/batterymenu.cpp rename to main/screens/batterymenu.cpp index 809eee9..f0f38d2 100644 --- a/main/displays/menus/batterymenu.cpp +++ b/main/screens/batterymenu.cpp @@ -1,34 +1,29 @@ #include "batterymenu.h" // 3rdparty lib includes -#include -#include #include -#include #include -#include -#include +#include #include - -#include +#include +#include +#include +#include +#include // Local includes -#include "utils.h" -#include "icons/settings.h" -#include "battery.h" -#include "displays/bobbychangevaluedisplay.h" -#include "displays/calibratevoltagedisplay.h" #include "accessors/settingsaccessors.h" #include "battery.h" -#include "displays/batterygraphdisplay.h" -#include "displays/bobbychangevaluedisplay.h" -#include "displays/calibratevoltagedisplay.h" +#include "guihelpers/bobbychangevaluedisplay.h" #include "icons/graph.h" #include "icons/settings.h" -#include "mainmenu.h" +#include "screens/batterygraphdisplay.h" +#include "screens/calibratevoltagedisplay.h" #include "typesafeenumchangemenu.h" #include "utils.h" +namespace bobby { + namespace { constexpr char TEXT_BATTERY[] = "Battery"; constexpr char TEXT_CELL_SERIES[] = "Cells (Series)"; @@ -98,36 +93,28 @@ std::string BatteryMenu::text() const return TEXT_BATTERY; } -void BatteryMenu::initScreen() +void BatteryMenu::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); - m_batPercentBootLabel.start(); - m_batPercentNowLabel.start(); + Base::initScreen(tft); + m_batPercentBootLabel.start(tft); + m_batPercentNowLabel.start(tft); + + m_doubleProgressBarBatPercentage.start(tft); } -void BatteryMenu::start() +void BatteryMenu::redraw(espgui::TftInterface &tft) { - Base::start(); - m_doubleProgressBarBatPercentage.start(); -} - -void BatteryMenu::redraw() -{ - Base::redraw(); + Base::redraw(tft); if (const auto avgVoltage = controllers.getAvgVoltage(); avgVoltage) { const auto batPercent = getBatteryPercentage(*avgVoltage, BatteryCellType(configs.battery.cellType.value())); if (battery::bootBatPercentage) { - m_doubleProgressBarBatPercentage.redraw(batPercent, *battery::bootBatPercentage); + m_doubleProgressBarBatPercentage.redraw(tft, batPercent, *battery::bootBatPercentage); - tft.setTextFont(2); - tft.setTextColor(TFT_DARKGREY, TFT_BLACK); - m_batPercentNowLabel.redraw(fmt::format("{:.2f} %", batPercent)); - m_batPercentBootLabel.redraw(fmt::format("{:.2f} %", *battery::bootBatPercentage)); - tft.setTextFont(4); - tft.setTextColor(TFT_WHITE, TFT_BLACK); + m_batPercentNowLabel.redraw(tft, fmt::format("{:.2f} %", batPercent), espgui::TFT_DARKGREY, espgui::TFT_BLACK, 2); + m_batPercentBootLabel.redraw(tft, fmt::format("{:.2f} %", *battery::bootBatPercentage), espgui::TFT_DARKGREY, espgui::TFT_BLACK, 2); } } } @@ -136,3 +123,5 @@ void BatteryMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/screens/batterymenu.h b/main/screens/batterymenu.h new file mode 100644 index 0000000..e9cd7be --- /dev/null +++ b/main/screens/batterymenu.h @@ -0,0 +1,33 @@ +#pragma once + +// 3rdparty lib includes +#include +#include +#include +#include + +// local includes +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { + +class BatteryMenu : public BobbyMenuDisplay +{ + using Base = BobbyMenuDisplay; + +public: + BatteryMenu(); + + std::string text() const override; + + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; + void back() override; + +private: + bobby::DoubleProgressBar m_doubleProgressBarBatPercentage{75, 68, 90, 24, 0, 100, espgui::TFT_RED, espgui::TFT_GREEN}; + espgui::Label m_batPercentNowLabel {170, 68}; + espgui::Label m_batPercentBootLabel{170, 82}; +}; + +} // namespace bobby diff --git a/main/displays/menus/blesettingsmenu.cpp b/main/screens/blesettingsmenu.cpp similarity index 90% rename from main/displays/menus/blesettingsmenu.cpp rename to main/screens/blesettingsmenu.cpp index c98a0b1..013f8bd 100644 --- a/main/displays/menus/blesettingsmenu.cpp +++ b/main/screens/blesettingsmenu.cpp @@ -2,19 +2,21 @@ // 3rdparty lib includes #include -#include #include -#include +#include #include #include +#include #include // local includes -#include "displays/bobbychangevaluedisplay.h" #include "accessors/settingsaccessors.h" -#include "bletexthelpers.h" -#include "displays/menus/settingsmenu.h" -#include "bobbycheckbox.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "screens/settingsmenu.h" +#include "guihelpers/bobbycheckbox.h" +#include "texthelpers/bletexthelpers.h" + +namespace bobby { namespace { constexpr char TEXT_BLESETTINGS[] = "BLE settings"; @@ -53,3 +55,4 @@ void BleSettingsMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/blesettingsmenu.h b/main/screens/blesettingsmenu.h similarity index 69% rename from main/displays/menus/blesettingsmenu.h rename to main/screens/blesettingsmenu.h index 2030627..6f2abac 100644 --- a/main/displays/menus/blesettingsmenu.h +++ b/main/screens/blesettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class BleSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/bluetoothsettingsmenu.h b/main/screens/bluetoothsettingsmenu.h similarity index 97% rename from main/displays/menus/bluetoothsettingsmenu.h rename to main/screens/bluetoothsettingsmenu.h index 0dd8b66..e2042ec 100644 --- a/main/displays/menus/bluetoothsettingsmenu.h +++ b/main/screens/bluetoothsettingsmenu.h @@ -7,7 +7,7 @@ #ifdef FEATURE_BLUETOOTH #include "changevaluedisplay_bluetoothmode.h" #endif -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" #include "menuitem.h" #include "actions/dummyaction.h" #ifdef FEATURE_BLUETOOTH @@ -18,7 +18,7 @@ #include "actions/bluetoothdisconnectaction.h" #endif #include "actions/switchscreenaction.h" -#include "bluetoothtexthelpers.h" +#include "texthelpers/bluetoothtexthelpers.h" #include "accessors/settingsaccessors.h" #include "icons/back.h" diff --git a/main/displays/bmsdisplay.cpp b/main/screens/bmsdisplay.cpp similarity index 95% rename from main/displays/bmsdisplay.cpp rename to main/screens/bmsdisplay.cpp index e2e7d24..af05531 100644 --- a/main/displays/bmsdisplay.cpp +++ b/main/screens/bmsdisplay.cpp @@ -1,11 +1,11 @@ #include "bmsdisplay.h" #if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS) -#include "displays/menus/mainmenu.h" -#include "displays/speedinfodisplay.h" -#include "displays/statusdisplay.h" +#include "screens/mainmenu.h" +#include "screens/speedinfodisplay.h" +#include "screens/statusdisplay.h" #include "screenmanager.h" -#include "tftinstance.h" +#include "guihelpers/bobbymenudisplay.h" using namespace espgui; diff --git a/main/displays/bmsdisplay.h b/main/screens/bmsdisplay.h similarity index 100% rename from main/displays/bmsdisplay.h rename to main/screens/bmsdisplay.h diff --git a/main/displays/menus/bmsmenu.cpp b/main/screens/bmsmenu.cpp similarity index 100% rename from main/displays/menus/bmsmenu.cpp rename to main/screens/bmsmenu.cpp diff --git a/main/displays/menus/bmsmenu.h b/main/screens/bmsmenu.h similarity index 85% rename from main/displays/menus/bmsmenu.h rename to main/screens/bmsmenu.h index ab4177e..d6e300a 100644 --- a/main/displays/menus/bmsmenu.h +++ b/main/screens/bmsmenu.h @@ -2,7 +2,7 @@ #if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS) // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" class BmsMenu : public BobbyMenuDisplay { diff --git a/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp b/main/screens/boardcomputerhardwaresettingsmenu.cpp similarity index 97% rename from main/displays/menus/boardcomputerhardwaresettingsmenu.cpp rename to main/screens/boardcomputerhardwaresettingsmenu.cpp index a2c4893..822e27d 100644 --- a/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp +++ b/main/screens/boardcomputerhardwaresettingsmenu.cpp @@ -1,30 +1,31 @@ #include "boardcomputerhardwaresettingsmenu.h" // 3rdparty lib includes -#include -#include #include -#include #include +#include +#include +#include #include #include // local includes #include "accessors/settingsaccessors.h" #include "actions/setupactions.h" -#include "bobbycheckbox.h" -#include "displays/bobbychangevaluedisplay.h" -#include "displays/menus/extrabuttoncalibratemenu.h" -#include "displays/menus/lockscreensettingsmenu.h" -#include "displays/menus/setupquickactionsmenu.h" -#include "displays/menus/timersmenu.h" -#include "displays/potiscalibratedisplay.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "guihelpers/bobbycheckbox.h" #include "icons/lock.h" +#include "screens/extrabuttoncalibratemenu.h" +#include "screens/lockscreensettingsmenu.h" +#include "screens/setupquickactionsmenu.h" +#include "screens/timersmenu.h" #ifdef FEATURE_JOYSTICK -#include "displays/joystickdebugdisplay.h" +#include "screens/joystickdebugdisplay.h" #endif +namespace bobby { + namespace { constexpr char TEXT_BOARDCOMPUTERHARDWARESETTINGS[] = "Boardcomputer H/W settings"; constexpr char TEXT_BUTTONCALIBRATE[] = "Button Calibrate"; @@ -238,3 +239,5 @@ void BoardcomputerHardwareSettingsMenu::back() { popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/boardcomputerhardwaresettingsmenu.h b/main/screens/boardcomputerhardwaresettingsmenu.h similarity index 72% rename from main/displays/menus/boardcomputerhardwaresettingsmenu.h rename to main/screens/boardcomputerhardwaresettingsmenu.h index 3401014..575d7d2 100644 --- a/main/displays/menus/boardcomputerhardwaresettingsmenu.h +++ b/main/screens/boardcomputerhardwaresettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class BoardcomputerHardwareSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/buzzermenu.cpp b/main/screens/buzzermenu.cpp similarity index 97% rename from main/displays/menus/buzzermenu.cpp rename to main/screens/buzzermenu.cpp index 5c51e0c..1741034 100644 --- a/main/displays/menus/buzzermenu.cpp +++ b/main/screens/buzzermenu.cpp @@ -8,12 +8,14 @@ #include "icons/back.h" // local includes -#include "displays/bobbychangevaluedisplay.h" +#include "guihelpers/bobbychangevaluedisplay.h" #include "utils.h" #include "globals.h" #include "accessors/settingsaccessors.h" -#include "displays/menus/settingsmenu.h" -#include "bobbycheckbox.h" +#include "screens/settingsmenu.h" +#include "guihelpers/bobbycheckbox.h" + +namespace bobby { namespace { constexpr char TEXT_BUZZER[] = "Buzzer"; @@ -119,3 +121,4 @@ void BuzzerMenu::back() { popScreen(); } +} // namespace bobinette diff --git a/main/displays/menus/buzzermenu.h b/main/screens/buzzermenu.h similarity index 67% rename from main/displays/menus/buzzermenu.h rename to main/screens/buzzermenu.h index cfdc0bd..77af208 100644 --- a/main/displays/menus/buzzermenu.h +++ b/main/screens/buzzermenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class BuzzerMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/calibratevoltagedisplay.cpp b/main/screens/calibratevoltagedisplay.cpp similarity index 97% rename from main/displays/calibratevoltagedisplay.cpp rename to main/screens/calibratevoltagedisplay.cpp index abe673e..27689d2 100644 --- a/main/displays/calibratevoltagedisplay.cpp +++ b/main/screens/calibratevoltagedisplay.cpp @@ -12,11 +12,13 @@ #include "utils.h" #include "icons/settings.h" #include "battery.h" -#include "menus/batterymenu.h" +#include "batterymenu.h" #include "newsettings.h" -#include "displays/menus/batterymenu.h" +#include "screens/batterymenu.h" #include "accessors/settingsaccessors.h" -#include "bobbycheckbox.h" +#include "guihelpers/bobbycheckbox.h" + +namespace bobby { namespace { constexpr char TEXT_BATTERY_CALIBRATE[] = "Calibrate Voltages"; @@ -143,3 +145,4 @@ void CalibrateVoltageDisplay::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/calibratevoltagedisplay.h b/main/screens/calibratevoltagedisplay.h similarity index 70% rename from main/displays/calibratevoltagedisplay.h rename to main/screens/calibratevoltagedisplay.h index 1efa967..0bf6ef6 100644 --- a/main/displays/calibratevoltagedisplay.h +++ b/main/screens/calibratevoltagedisplay.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class CalibrateVoltageDisplay : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/candebugmenu.cpp b/main/screens/candebugmenu.cpp similarity index 97% rename from main/displays/menus/candebugmenu.cpp rename to main/screens/candebugmenu.cpp index 530feb6..2a5a433 100644 --- a/main/displays/menus/candebugmenu.cpp +++ b/main/screens/candebugmenu.cpp @@ -6,20 +6,22 @@ #include // esp-idf includes -#include +#include "esp_log.h" // 3rdparty lib includes -#include +#include "fmt/core.h" // 3rdparty lib includes -#include -#include -#include -#include -#include +#include "menuitem.h" +#include "actions/popscreenaction.h" +#include "actions/dummyaction.h" +#include "icons/back.h" +#include "screenmanager.h" // local includes -#include "bobbyerrorhandler.h" +#include "guihelpers/bobbyerrorhandler.h" + +namespace bobby { namespace { constexpr char TAG[] = "CANDEBUG"; @@ -288,5 +290,6 @@ void CanDebugMenu::back() { espgui::popScreen(); } +} // namespace bobby #endif diff --git a/main/displays/menus/candebugmenu.h b/main/screens/candebugmenu.h similarity index 74% rename from main/displays/menus/candebugmenu.h rename to main/screens/candebugmenu.h index cd9cf32..a49588c 100644 --- a/main/displays/menus/candebugmenu.h +++ b/main/screens/candebugmenu.h @@ -1,15 +1,17 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" #ifdef FEATURE_CAN // esp-idf includes -#include +#include "driver/twai.h" // 3rdparty lib includes -#include +#include "tl/expected.hpp" + +namespace bobby { class CanDebugMenu : public BobbyMenuDisplay { @@ -28,4 +30,6 @@ private: tl::expected m_last_can_status_info; }; +} // namespace bobby + #endif diff --git a/main/displays/menus/cloudsettingsmenu.cpp b/main/screens/cloudsettingsmenu.cpp similarity index 90% rename from main/displays/menus/cloudsettingsmenu.cpp rename to main/screens/cloudsettingsmenu.cpp index 10555c1..2bb3ff6 100644 --- a/main/displays/menus/cloudsettingsmenu.cpp +++ b/main/screens/cloudsettingsmenu.cpp @@ -1,23 +1,25 @@ #include "cloudsettingsmenu.h" // 3rdparty lib includes -#include -#include -#include -#include -#include -#include -#include -#include +#include "actions/dummyaction.h" +#include "actions/popscreenaction.h" +#include "actions/pushscreenaction.h" +#include "changevaluedisplay.h" +#include "changevaluedisplay_string.h" +#include "fmt/core.h" +#include "icons/back.h" +#include "menuitem.h" // local includes #include "accessors/settingsaccessors.h" -#include "bobbycheckbox.h" +#include "guihelpers/bobbycheckbox.h" #include "cloud.h" -#include "cloudtexthelpers.h" -#include "displays/bobbychangevaluedisplay.h" -#include "displays/menus/settingsmenu.h" +#include "texthelpers/cloudtexthelpers.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "screens/settingsmenu.h" + +namespace bobby { namespace { constexpr char TEXT_CLOUDSETTINGS[] = "Cloud settings"; @@ -107,3 +109,5 @@ void CloudSettingsMenu::back() { popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/cloudsettingsmenu.h b/main/screens/cloudsettingsmenu.h similarity index 69% rename from main/displays/menus/cloudsettingsmenu.h rename to main/screens/cloudsettingsmenu.h index 99aedb1..047950c 100644 --- a/main/displays/menus/cloudsettingsmenu.h +++ b/main/screens/cloudsettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class CloudSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/commanddebugmenu.h b/main/screens/commanddebugmenu.h similarity index 91% rename from main/displays/menus/commanddebugmenu.h rename to main/screens/commanddebugmenu.h index 4e45ae4..b58db6d 100644 --- a/main/displays/menus/commanddebugmenu.h +++ b/main/screens/commanddebugmenu.h @@ -1,13 +1,15 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" #include "utils.h" #include "menuitem.h" #include "actions/dummyaction.h" #include "actions/popscreenaction.h" #include "icons/back.h" -#include "debugtexthelpers.h" +#include "texthelpers/debugtexthelpers.h" + +namespace bobby { template class CommandDebugMenu : @@ -34,3 +36,5 @@ constexpr char TEXT_FRONTCOMMAND[] = "Front command"; constexpr char TEXT_BACKCOMMAND[] = "Back command"; using FrontCommandDebugMenu = CommandDebugMenu; using BackCommandDebugMenu = CommandDebugMenu; + +} // namespace bobby diff --git a/main/displays/confiscationdisplay.cpp b/main/screens/confiscationdisplay.cpp similarity index 64% rename from main/displays/confiscationdisplay.cpp rename to main/screens/confiscationdisplay.cpp index 646cb2a..e009803 100644 --- a/main/displays/confiscationdisplay.cpp +++ b/main/screens/confiscationdisplay.cpp @@ -1,15 +1,18 @@ #include "confiscationdisplay.h" // 3rdparty lib includes -#include -#include #include #include +#include +#include +#include // local includes #include "globals.h" #include "icons/shortcircuit.h" +namespace bobby { + using namespace std::chrono_literals; float calculateMegaJoules() @@ -29,46 +32,40 @@ void ConfiscationDisplay::start() m_nextRestart = espchrono::millis_clock::now() + std::chrono::seconds{cpputils::randomNumber(3, 7, espcpputils::esp_random_device{})}; } -void ConfiscationDisplay::initScreen() +void ConfiscationDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); - espgui::tft.setSwapBytes(true); - espgui::tft.pushImage(10, 70, bobbyicons::shortcircuit.WIDTH, bobbyicons::shortcircuit.HEIGHT, bobbyicons::shortcircuit.buffer); - espgui::tft.setSwapBytes(false); + tft.setSwapBytes(true); + tft.pushImage(10, 70, bobbyicons::shortcircuit.WIDTH, bobbyicons::shortcircuit.HEIGHT, bobbyicons::shortcircuit.buffer, true); + tft.setSwapBytes(false); - m_progressBar.start(); + m_progressBar.start(tft); - m_label.start(); - - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - espgui::tft.setTextFont(2); + m_label.start(tft); auto y = 235; constexpr auto lineheight = 15; - espgui::tft.drawString("Bei erneuter, widerrechtlicher", 10, y+=lineheight); - espgui::tft.drawString("Beschlagnahmung wird die Selbst-", 10, y+=lineheight); - espgui::tft.drawString("Vernichtung durch Kurzschluss", 10, y+=lineheight); - espgui::tft.drawString(fmt::format("der Batterie eingeleitet (ca {:.2f}MJ)", calculateMegaJoules()), 10, y+=lineheight); + tft.drawString("Bei erneuter, widerrechtlicher", 10, y+=lineheight, TFT_WHITE, TFT_BLACK, 2); + tft.drawString("Beschlagnahmung wird die Selbst-", 10, y+=lineheight, TFT_WHITE, TFT_BLACK, 2); + tft.drawString("Vernichtung durch Kurzschluss", 10, y+=lineheight, TFT_WHITE, TFT_BLACK, 2); + tft.drawString(fmt::format("der Batterie eingeleitet (ca {:.2f}MJ)", calculateMegaJoules()), 10, y+=lineheight, TFT_WHITE, TFT_BLACK, 2); } -void ConfiscationDisplay::redraw() +void ConfiscationDisplay::redraw(espgui::TftInterface &tft) { - Base::redraw(); + Base::redraw(tft); - m_progressBar.redraw(m_progress); + m_progressBar.redraw(tft, m_progress); - espgui::tft.setTextColor(TFT_YELLOW, TFT_BLACK); - - espgui::tft.setTextFont(2); - m_label.redraw([](){ + m_label.redraw(tft, [](){ if (const auto period = espchrono::millis_clock::now().time_since_epoch() % 6000ms; period < 2000ms) return "Halten Sie 10m Abstand."; else if (period < 4000ms) return "Bewegen Sie kein Rad."; else return "Die Lenkung nicht drehen."; - }()); + }(), TFT_YELLOW, TFT_BLACK, 2); } void ConfiscationDisplay::update() @@ -114,3 +111,5 @@ std::string ConfiscationDisplay::text() const { return "Explosions-Modus"; } + +} // namespace bobby diff --git a/main/displays/confiscationdisplay.h b/main/screens/confiscationdisplay.h similarity index 78% rename from main/displays/confiscationdisplay.h rename to main/screens/confiscationdisplay.h index cd9a056..fb16898 100644 --- a/main/displays/confiscationdisplay.h +++ b/main/screens/confiscationdisplay.h @@ -1,14 +1,17 @@ #pragma once // 3rdparty lib includes +#include +#include #include #include -#include // local includes -#include "bobbydisplaywithtitle.h" +#include "guihelpers/bobbydisplaywithtitle.h" #include "modes/ignoreinputmode.h" +namespace bobby { + class ConfiscationDisplay : public BobbyDisplayWithTitle { using Base = BobbyDisplayWithTitle; @@ -16,8 +19,8 @@ class ConfiscationDisplay : public BobbyDisplayWithTitle public: void start() override; - void initScreen() override; - void redraw() override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; void update() override; void stop() override; @@ -37,3 +40,5 @@ private: ModeInterface *m_oldMode; IgnoreInputMode m_mode{0, bobbycar::protocol::ControlType::FieldOrientedControl, bobbycar::protocol::ControlMode::Speed}; }; + +} // namespace bobby diff --git a/main/displays/menus/controllerhardwaresettingsmenu.cpp b/main/screens/controllerhardwaresettingsmenu.cpp similarity index 95% rename from main/displays/menus/controllerhardwaresettingsmenu.cpp rename to main/screens/controllerhardwaresettingsmenu.cpp index e44b4d5..f115186 100644 --- a/main/displays/menus/controllerhardwaresettingsmenu.cpp +++ b/main/screens/controllerhardwaresettingsmenu.cpp @@ -10,14 +10,16 @@ #include "icons/back.h" // local includes -#include "displays/bobbychangevaluedisplay.h" +#include "guihelpers/bobbychangevaluedisplay.h" #include "utils.h" #include "globals.h" #include "accessors/settingsaccessors.h" -#include "displays/menus/enablemenu.h" -#include "displays/menus/invertmenu.h" -#include "displays/menus/settingsmenu.h" -#include "bobbycheckbox.h" +#include "screens/enablemenu.h" +#include "screens/invertmenu.h" +#include "screens/settingsmenu.h" +#include "guihelpers/bobbycheckbox.h" + +namespace bobby { namespace { constexpr char TEXT_CONTROLLERHARDWARESETTINGS[] = "Controller H/W settings"; @@ -106,3 +108,5 @@ void ControllerHardwareSettingsMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/controllerhardwaresettingsmenu.h b/main/screens/controllerhardwaresettingsmenu.h similarity index 72% rename from main/displays/menus/controllerhardwaresettingsmenu.h rename to main/screens/controllerhardwaresettingsmenu.h index 6cdc7bf..68ad5d1 100644 --- a/main/displays/menus/controllerhardwaresettingsmenu.h +++ b/main/screens/controllerhardwaresettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class ControllerHardwareSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/crashmenu.cpp b/main/screens/crashmenu.cpp similarity index 95% rename from main/displays/menus/crashmenu.cpp rename to main/screens/crashmenu.cpp index 22641c9..add7177 100644 --- a/main/displays/menus/crashmenu.cpp +++ b/main/screens/crashmenu.cpp @@ -8,6 +8,8 @@ #include "actions/assertaction.h" #include "actions/dividebyzeroaction.h" +namespace bobby { + namespace { constexpr char TEXT_CRASHMENU[] = "Crash Menu"; constexpr char TEXT_CRASH_ASSERT[] = "assert(0)"; @@ -32,3 +34,5 @@ void CrashMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/crashmenu.h b/main/screens/crashmenu.h similarity index 67% rename from main/displays/menus/crashmenu.h rename to main/screens/crashmenu.h index d8322ba..46bb868 100644 --- a/main/displays/menus/crashmenu.h +++ b/main/screens/crashmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class CrashMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/debugmenu.cpp b/main/screens/debugmenu.cpp similarity index 88% rename from main/displays/menus/debugmenu.cpp rename to main/screens/debugmenu.cpp index 327a546..53f7fa1 100644 --- a/main/displays/menus/debugmenu.cpp +++ b/main/screens/debugmenu.cpp @@ -1,38 +1,40 @@ #include "debugmenu.h" // 3rdparty lib includes -#include -#include -#include #include +#include +#include #include +#include #include // local includes -#include "utils.h" -#include "actions/loadsettingsaction.h" -#include "actions/savesettingsaction.h" +#include "accessors/settingsaccessors.h" #include "actions/erasenvsaction.h" +#include "actions/loadsettingsaction.h" #include "actions/resetnvsaction.h" -#include "icons/lock.h" +#include "actions/savesettingsaction.h" +#include "debugcolorhelpers.h" +#include "screens/taskmanagermenu.h" +#include "screens/qrcodedebug.h" +#include "screens/xydebugdisplay.h" #include "icons/battery.h" #include "icons/info.h" -#include "debugcolorhelpers.h" -#include "esptexthelpers.h" -#include "accessors/settingsaccessors.h" -#include "displays/qrcodedebug.h" -#include "displays/xydebugdisplay.h" -#include "displays/menus/taskmanagermenu.h" +#include "icons/lock.h" +#include "texthelpers/esptexthelpers.h" +#include "utils.h" #ifdef FEATURE_CAN -#include "displays/menus/candebugmenu.h" +#include "screens/candebugmenu.h" #endif -#include "displays/menus/commanddebugmenu.h" -#include "displays/menus/motorstatedebugmenu.h" -#include "displays/menus/feedbackdebugmenu.h" -#include "displays/menus/motorfeedbackdebugmenu.h" -#include "displays/menus/dynamicdebugmenu.h" -#include "displays/menus/batterydebugmenu.h" -#include "bobbycheckbox.h" +#include "screens/batterydebugmenu.h" +#include "screens/commanddebugmenu.h" +#include "screens/dynamicdebugmenu.h" +#include "screens/feedbackdebugmenu.h" +#include "screens/motorfeedbackdebugmenu.h" +#include "screens/motorstatedebugmenu.h" +#include "guihelpers/bobbycheckbox.h" + +namespace bobby { namespace { constexpr char TEXT_DEBUG[] = "Debug"; @@ -101,19 +103,19 @@ DebugMenu::DebugMenu() constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); constructMenuItem>(); - constructMenuItem, PushScreenAction, FrontFeedbackColor>>(); - constructMenuItem, PushScreenAction, BackFeedbackColor>>(); + constructMenuItem, PushScreenAction, FrontFeedbackColor>>(); + constructMenuItem, PushScreenAction, BackFeedbackColor>>(); constructMenuItem>(); - constructMenuItem, PushScreenAction, FrontFeedbackColor>>(); - constructMenuItem, PushScreenAction, FrontFeedbackColor>>(); - constructMenuItem, PushScreenAction, BackFeedbackColor>>(); - constructMenuItem, PushScreenAction, BackFeedbackColor>>(); + constructMenuItem, PushScreenAction, FrontFeedbackColor>>(); + constructMenuItem, PushScreenAction, FrontFeedbackColor>>(); + constructMenuItem, PushScreenAction, BackFeedbackColor>>(); + constructMenuItem, PushScreenAction, BackFeedbackColor>>(); constructMenuItem>(); constructMenuItem, LoadSettingsAction>>(); constructMenuItem, SaveSettingsAction>>(); constructMenuItem, EraseNvsAction>>(); constructMenuItem>(); - constructMenuItem, ResetNVSAction, StaticMenuItemIcon<&bobbyicons::info>>>(); + constructMenuItem, ResetNVSAction, StaticMenuItemIcon<&bobbyicons::info>>>(); constructMenuItem, PushScreenAction>>(); constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } @@ -127,3 +129,5 @@ void DebugMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/debugmenu.h b/main/screens/debugmenu.h similarity index 67% rename from main/displays/menus/debugmenu.h rename to main/screens/debugmenu.h index ed03a16..f7e30b2 100644 --- a/main/displays/menus/debugmenu.h +++ b/main/screens/debugmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class DebugMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/defaultmodesettingsmenu.cpp b/main/screens/defaultmodesettingsmenu.cpp similarity index 98% rename from main/displays/menus/defaultmodesettingsmenu.cpp rename to main/screens/defaultmodesettingsmenu.cpp index 23e0483..a164876 100644 --- a/main/displays/menus/defaultmodesettingsmenu.cpp +++ b/main/screens/defaultmodesettingsmenu.cpp @@ -1,21 +1,23 @@ #include "defaultmodesettingsmenu.h" // 3rdparty lib includes -#include -#include -#include -#include #include +#include +#include +#include #include +#include #include // local includes -#include "displays/bobbychangevaluedisplay.h" -#include "utils.h" -#include "changevaluedisplay_unifiedmodelmode.h" #include "accessors/settingsaccessors.h" -#include "displays/menus/handbremssettingsmenu.h" -#include "bobbycheckbox.h" +#include "changevaluedisplay_unifiedmodelmode.h" +#include "guihelpers/bobbycheckbox.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "screens/handbremssettingsmenu.h" +#include "utils.h" + +namespace bobby { namespace { constexpr char TEXT_DEFAULTMODESETTIGNS[] = "Default mode settings"; @@ -150,3 +152,4 @@ void DefaultModeSettingsMenu::back() { popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/defaultmodesettingsmenu.h b/main/screens/defaultmodesettingsmenu.h similarity index 70% rename from main/displays/menus/defaultmodesettingsmenu.h rename to main/screens/defaultmodesettingsmenu.h index 237c453..361bcaf 100644 --- a/main/displays/menus/defaultmodesettingsmenu.h +++ b/main/screens/defaultmodesettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class DefaultModeSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/demosmenu.cpp b/main/screens/demosmenu.cpp similarity index 78% rename from main/displays/menus/demosmenu.cpp rename to main/screens/demosmenu.cpp index b8e7d91..967bbe0 100644 --- a/main/displays/menus/demosmenu.cpp +++ b/main/screens/demosmenu.cpp @@ -1,18 +1,20 @@ #include "demosmenu.h" // 3rdparty lib includes -#include "menuitem.h" -#include "actions/pushscreenaction.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" -#include "displays/starfielddisplay.h" -#include "displays/pingpongdisplay.h" -#include "displays/spirodisplay.h" -#include "displays/gameoflifedisplay.h" +#include +#include +#include +#include +#include +#include +#include +#include // local includes #include "utils.h" +namespace bobby { + namespace { constexpr char TEXT_DEMOS[] = "Demos"; constexpr char TEXT_STARFIELD[] = "Starfield"; @@ -41,3 +43,4 @@ void DemosMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/demosmenu.h b/main/screens/demosmenu.h similarity index 67% rename from main/displays/menus/demosmenu.h rename to main/screens/demosmenu.h index 2ae12c6..104faac 100644 --- a/main/displays/menus/demosmenu.h +++ b/main/screens/demosmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class DemosMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/dynamicdebugmenu.cpp b/main/screens/dynamicdebugmenu.cpp similarity index 93% rename from main/displays/menus/dynamicdebugmenu.cpp rename to main/screens/dynamicdebugmenu.cpp index 81668a2..ec4da1d 100644 --- a/main/displays/menus/dynamicdebugmenu.cpp +++ b/main/screens/dynamicdebugmenu.cpp @@ -5,24 +5,26 @@ #include // 3rdparty lib includes -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "espchrono.h" +#include "fmt/core.h" +#include "randomutils.h" +#include "esprandom.h" +#include "menuitem.h" +#include "actions/dummyaction.h" +#include "icons/back.h" +#include "changevaluedisplay.h" +#include "changevaluedisplay_bool.h" +#include "actions/pushscreenaction.h" +#include "actions/popscreenaction.h" // local includes -#include "displays/bobbychangevaluedisplay.h" +#include "guihelpers/bobbychangevaluedisplay.h" #include "utils.h" #include "icons/lock.h" -#include "bobbycheckbox.h" -#include "bobbyerrorhandler.h" +#include "guihelpers/bobbycheckbox.h" +#include "guihelpers/bobbyerrorhandler.h" + +namespace bobby { using namespace espgui; @@ -208,3 +210,5 @@ tl::expected ToggleAccessor::setValue(bool value) } } // namespace + +} // namespace bobby diff --git a/main/displays/menus/dynamicdebugmenu.h b/main/screens/dynamicdebugmenu.h similarity index 86% rename from main/displays/menus/dynamicdebugmenu.h rename to main/screens/dynamicdebugmenu.h index c697146..29b456b 100644 --- a/main/displays/menus/dynamicdebugmenu.h +++ b/main/screens/dynamicdebugmenu.h @@ -8,7 +8,9 @@ #include // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class RandomText : public virtual espgui::TextInterface { @@ -29,3 +31,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/enablemenu.cpp b/main/screens/enablemenu.cpp similarity index 94% rename from main/displays/menus/enablemenu.cpp rename to main/screens/enablemenu.cpp index 8275530..fafca72 100644 --- a/main/displays/menus/enablemenu.cpp +++ b/main/screens/enablemenu.cpp @@ -3,9 +3,11 @@ // local includes #include "accessors/settingsaccessors.h" #include "actions/popscreenaction.h" -#include "bobbycheckbox.h" +#include "guihelpers/bobbycheckbox.h" #include "icons/back.h" +namespace bobby { + namespace { constexpr char TEXT_SETENABLED[] = "Set enabled"; constexpr char TEXT_ENABLEFRONTLEFT[] = "Enable front left"; @@ -34,3 +36,5 @@ void EnableMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/enablemenu.h b/main/screens/enablemenu.h similarity index 67% rename from main/displays/menus/enablemenu.h rename to main/screens/enablemenu.h index 0b763d9..324906c 100644 --- a/main/displays/menus/enablemenu.h +++ b/main/screens/enablemenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class EnableMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/espnowmenu.cpp b/main/screens/espnowmenu.cpp similarity index 91% rename from main/displays/menus/espnowmenu.cpp rename to main/screens/espnowmenu.cpp index 5a26c07..5608075 100644 --- a/main/displays/menus/espnowmenu.cpp +++ b/main/screens/espnowmenu.cpp @@ -1,23 +1,24 @@ #include "espnowmenu.h" // 3rdparty lib includes -#include "actions/dummyaction.h" -#include "actions/pushscreenaction.h" -#include "icons/back.h" #include #include +#include #include #include +#include #include #include // local includes +#include "espnowfunctions.h" +#include "guihelpers/bobbycheckbox.h" #include "icons/settings.h" #include "icons/time.h" -#include "displays/menus/espnowsettingsmenu.h" -#include "displays/menus/settingsmenu.h" -#include "bobbycheckbox.h" -#include "espnowfunctions.h" +#include "screens/espnowsettingsmenu.h" +#include "screens/settingsmenu.h" + +namespace bobby { namespace { constexpr char TEXT_ESPNOW_MENU[] = "ESP-Now Menu"; @@ -74,3 +75,5 @@ void EspNowMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/espnowmenu.h b/main/screens/espnowmenu.h similarity index 67% rename from main/displays/menus/espnowmenu.h rename to main/screens/espnowmenu.h index cc69737..0898d69 100644 --- a/main/displays/menus/espnowmenu.h +++ b/main/screens/espnowmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class EspNowMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/espnowsettingsmenu.cpp b/main/screens/espnowsettingsmenu.cpp similarity index 92% rename from main/displays/menus/espnowsettingsmenu.cpp rename to main/screens/espnowsettingsmenu.cpp index 1ca4c92..5a3b121 100644 --- a/main/displays/menus/espnowsettingsmenu.cpp +++ b/main/screens/espnowsettingsmenu.cpp @@ -3,11 +3,13 @@ // 3rdparty lib includes #include "actions/popscreenaction.h" #include "icons/back.h" -#include +#include "textinterface.h" // local includes #include "accessors/settingsaccessors.h" -#include "bobbycheckbox.h" +#include "guihelpers/bobbycheckbox.h" + +namespace bobby { namespace { constexpr char TEXT_ESPNOW_SETTINGS[] = "ESP-Now settings"; @@ -36,3 +38,5 @@ void EspNowSettingsMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/espnowsettingsmenu.h b/main/screens/espnowsettingsmenu.h similarity index 69% rename from main/displays/menus/espnowsettingsmenu.h rename to main/screens/espnowsettingsmenu.h index 0e4eaaf..b88dcd8 100644 --- a/main/displays/menus/espnowsettingsmenu.h +++ b/main/screens/espnowsettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class EspNowSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/extrabuttoncalibratemenu.cpp b/main/screens/extrabuttoncalibratemenu.cpp similarity index 95% rename from main/displays/menus/extrabuttoncalibratemenu.cpp rename to main/screens/extrabuttoncalibratemenu.cpp index b212d5f..0134546 100644 --- a/main/displays/menus/extrabuttoncalibratemenu.cpp +++ b/main/screens/extrabuttoncalibratemenu.cpp @@ -1,18 +1,23 @@ #include "extrabuttoncalibratemenu.h" +// system includes +#include + // 3rd party includes -#include -#include +#include #include +#include #include +#include +#include // local includes -#include "esp_log.h" #include "accessors/settingsaccessors.h" -#include "actions/popscreenaction.h" -#include "bobbyerrorhandler.h" -#include "displays/menus/boardcomputerhardwaresettingsmenu.h" +#include "screens/boardcomputerhardwaresettingsmenu.h" #include "globals.h" +#include "guihelpers/bobbyerrorhandler.h" + +namespace bobby { using namespace espgui; @@ -55,9 +60,9 @@ public: int color() const override { if ((status == currentStatus) || (currentStatus == Idle)) - return TFT_WHITE; + return espgui::TFT_WHITE; else - return color565(50,50,50); + return espgui::color565(50,50,50); } std::string text() const override @@ -261,3 +266,5 @@ bool ExtraButtonCalibrateMenu::validateNewButton(uint8_t button) (button != configs.dpadMappingRight.value()) ); } + +} // namespace bobby diff --git a/main/displays/menus/extrabuttoncalibratemenu.h b/main/screens/extrabuttoncalibratemenu.h similarity index 92% rename from main/displays/menus/extrabuttoncalibratemenu.h rename to main/screens/extrabuttoncalibratemenu.h index 5249f7e..e51e098 100644 --- a/main/displays/menus/extrabuttoncalibratemenu.h +++ b/main/screens/extrabuttoncalibratemenu.h @@ -1,10 +1,12 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" #include "modeinterface.h" #include "modes/ignoreinputmode.h" +namespace bobby { + namespace { enum Status : uint8_t { @@ -44,3 +46,5 @@ private: IgnoreInputMode m_mode{0, bobbycar::protocol::ControlType::FieldOrientedControl, bobbycar::protocol::ControlMode::Torque}; bool validateNewButton(uint8_t button); }; + +} // namespace bobby diff --git a/main/displays/menus/featureflagsmenu.cpp b/main/screens/featureflagsmenu.cpp similarity index 95% rename from main/displays/menus/featureflagsmenu.cpp rename to main/screens/featureflagsmenu.cpp index 20cef1e..fc9846b 100644 --- a/main/displays/menus/featureflagsmenu.cpp +++ b/main/screens/featureflagsmenu.cpp @@ -1,7 +1,6 @@ #include "featureflagsmenu.h" // 3rdparty lib includes -#include #include #include #include @@ -9,11 +8,13 @@ #include // local includes -#include "bobbycheckbox.h" -#include "displays/bobbypopupdisplay.h" +#include "guihelpers/bobbypopupdisplay.h" +#include "guihelpers/bobbycheckbox.h" +#include "guihelpers/bobbyerrorhandler.h" #include "newsettings.h" #include "taskmanager.h" -#include "bobbyerrorhandler.h" + +namespace bobby { namespace { constexpr const char * const TAG = "FEATUREFLAGSMENU"; @@ -123,3 +124,4 @@ void FeatureFlagsMenu::back() exitFeatureFlagsMenu(); } +} // namespace bobby diff --git a/main/screens/featureflagsmenu.h b/main/screens/featureflagsmenu.h new file mode 100644 index 0000000..7155d25 --- /dev/null +++ b/main/screens/featureflagsmenu.h @@ -0,0 +1,20 @@ +#pragma once + +// local includes +#include "guihelpers/menudisplaywithtime.h" + +namespace bobby { + +class FeatureFlagsMenu : public bobby::MenuDisplayWithTime +{ + using Base = bobby::MenuDisplayWithTime; +public: + FeatureFlagsMenu(); + void start() override; + + std::string text() const override; + + void back() override; +}; + +} // namespace bobby diff --git a/main/displays/menus/feedbackdebugmenu.h b/main/screens/feedbackdebugmenu.h similarity index 71% rename from main/displays/menus/feedbackdebugmenu.h rename to main/screens/feedbackdebugmenu.h index 0cd7a93..96c1a44 100644 --- a/main/displays/menus/feedbackdebugmenu.h +++ b/main/screens/feedbackdebugmenu.h @@ -1,15 +1,19 @@ #pragma once +// 3rdparty lib includes +#include +#include +#include +#include + // local includes -#include "displays/bobbymenudisplay.h" -#include "utils.h" -#include "menuitem.h" -#include "actions/dummyaction.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" -#include "debugtexthelpers.h" #include "debugcolorhelpers.h" -#include "displays/menus/debugmenu.h" +#include "guihelpers/bobbymenudisplay.h" +#include "screens/debugmenu.h" +#include "texthelpers/debugtexthelpers.h" +#include "utils.h" + +namespace bobby { template class ColorInterface> class FeedbackDebugMenu : @@ -22,10 +26,10 @@ public: { using namespace espgui; //constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); //constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, ColorInterface, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, ColorInterface, DummyAction>>(); constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } @@ -38,3 +42,5 @@ using FrontFeedbackDebugMenu = FeedbackDebugMenu; + +} // namespace bobby diff --git a/main/displays/gameoflifedisplay.cpp b/main/screens/gameoflifedisplay.cpp similarity index 85% rename from main/displays/gameoflifedisplay.cpp rename to main/screens/gameoflifedisplay.cpp index 84445a5..a1589c2 100644 --- a/main/displays/gameoflifedisplay.cpp +++ b/main/screens/gameoflifedisplay.cpp @@ -1,14 +1,18 @@ #include "gameoflifedisplay.h" // 3rdparty lib includes -#include #include -#include +#include #include +#include // local includes #include "screens.h" +namespace bobby { + +using namespace espgui; + void GameOfLifeDisplay::start() { Base::start(); @@ -17,28 +21,28 @@ void GameOfLifeDisplay::start() m_newgrid = std::make_unique>(); } -void GameOfLifeDisplay::initScreen() +void GameOfLifeDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); disableScreenFlip(true); - espgui::tft.setRotation(3); - espgui::tft.fillScreen(TFT_BLACK); + tft.setRotation(3); + tft.fillScreen(TFT_BLACK); } -void GameOfLifeDisplay::redraw() +void GameOfLifeDisplay::redraw(espgui::TftInterface &tft) { - Base::redraw(); + Base::redraw(tft); if (gen == 0) { - espgui::tft.fillScreen(TFT_BLACK); + tft.fillScreen(TFT_BLACK); initGrid(); } computeCA(); - drawGrid(); + drawGrid(tft); *m_grid = *m_newgrid; @@ -70,7 +74,7 @@ void GameOfLifeDisplay::buttonPressed(espgui::Button button) } } -void GameOfLifeDisplay::drawGrid() +void GameOfLifeDisplay::drawGrid(espgui::TftInterface &tft) { uint16_t color = TFT_WHITE; for (int16_t x = 1; x < GRIDX - 1; x++) { @@ -80,7 +84,7 @@ void GameOfLifeDisplay::drawGrid() color = 0xFFFF; //random(0xFFFF); else color = 0; - espgui::tft.fillRect(CELLXY * x, CELLXY * y, CELLXY, CELLXY, color); + tft.fillRect(CELLXY * x, CELLXY * y, CELLXY, CELLXY, color); } } } @@ -142,3 +146,5 @@ void GameOfLifeDisplay::computeCA() } } } + +} // namespace bobby diff --git a/main/displays/gameoflifedisplay.h b/main/screens/gameoflifedisplay.h similarity index 83% rename from main/displays/gameoflifedisplay.h rename to main/screens/gameoflifedisplay.h index 10b8d14..847fff5 100644 --- a/main/displays/gameoflifedisplay.h +++ b/main/screens/gameoflifedisplay.h @@ -4,8 +4,13 @@ #include #include +// 3rdparty lib includes +#include + // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplay.h" + +namespace bobby { class GameOfLifeDisplay : public BobbyDisplay { @@ -13,8 +18,8 @@ class GameOfLifeDisplay : public BobbyDisplay public: void start() override; - void initScreen() override; - void redraw() override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; void stop() override; void buttonPressed(espgui::Button button) override; @@ -22,7 +27,7 @@ public: private: //Draws the grid on the display - void drawGrid(); + void drawGrid(espgui::TftInterface &tft); //Initialise Grid void initGrid(); @@ -69,3 +74,5 @@ private: int gen = 0; }; + +} // namespace bobby diff --git a/main/displays/gametrakcalibratedisplay.h b/main/screens/gametrakcalibratedisplay.h similarity index 98% rename from main/displays/gametrakcalibratedisplay.h rename to main/screens/gametrakcalibratedisplay.h index 1d3456b..9a82693 100644 --- a/main/displays/gametrakcalibratedisplay.h +++ b/main/screens/gametrakcalibratedisplay.h @@ -10,7 +10,7 @@ #include // local includes -#include "bobbydisplay.h" +#include "../guihelpers/bobbydisplay.h" #include "globals.h" #include "modes/ignoreinputmode.h" diff --git a/main/displays/menus/gametrakmodesettingsmenu.h b/main/screens/gametrakmodesettingsmenu.h similarity index 93% rename from main/displays/menus/gametrakmodesettingsmenu.h rename to main/screens/gametrakmodesettingsmenu.h index 91f98f6..95f771f 100644 --- a/main/displays/menus/gametrakmodesettingsmenu.h +++ b/main/screens/gametrakmodesettingsmenu.h @@ -1,7 +1,7 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" #include "utils.h" #include "menuitem.h" #include "actions/popscreenaction.h" diff --git a/main/displays/menus/garagemenu.cpp b/main/screens/garagemenu.cpp similarity index 91% rename from main/displays/menus/garagemenu.cpp rename to main/screens/garagemenu.cpp index f45ffa4..0273432 100644 --- a/main/displays/menus/garagemenu.cpp +++ b/main/screens/garagemenu.cpp @@ -1,11 +1,11 @@ #include "garagemenu.h" // 3rd party libs -#include -#include -#include -#include -#include +#include "icons/back.h" +#include "menuitem.h" +#include "actioninterface.h" +#include "esp_log.h" +#include "menuitem.h" // local includes #include "actions/popscreenaction.h" @@ -13,6 +13,8 @@ #include "globals.h" #include "newsettings.h" +namespace bobby { + namespace { constexpr char TEXT_GARAGE[] = "Garage"; constexpr char TEXT_BACK[] = "Back"; @@ -64,3 +66,5 @@ void SendEspNowMessageAction::triggered() } } } // namespace + +} // namespace bobby diff --git a/main/displays/menus/garagemenu.h b/main/screens/garagemenu.h similarity index 67% rename from main/displays/menus/garagemenu.h rename to main/screens/garagemenu.h index 495141b..670427c 100644 --- a/main/displays/menus/garagemenu.h +++ b/main/screens/garagemenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class GarageMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/gitmenu.cpp b/main/screens/gitmenu.cpp similarity index 88% rename from main/displays/menus/gitmenu.cpp rename to main/screens/gitmenu.cpp index ddd523e..66ab999 100644 --- a/main/displays/menus/gitmenu.cpp +++ b/main/screens/gitmenu.cpp @@ -7,10 +7,12 @@ #include // local includes -#include "bobbyerrorhandler.h" -#include "displays/qrdisplay.h" +#include "guihelpers/bobbyerrorhandler.h" #include "icons/info.h" #include "icons/modes.h" +#include "screens/qrdisplay.h" + +namespace bobby { namespace { constexpr char TEXT_GIT[] = "Git"; @@ -51,11 +53,11 @@ GitMenu::GitMenu() { using namespace espgui; - constructMenuItem, StaticColor, StaticFont<2>, DummyAction>>(); + constructMenuItem, StaticColor, StaticFont<2>, DummyAction>>(); constructMenuItem, DummyAction>>(); - constructMenuItem, StaticColor, StaticFont<2>, DummyAction>>(); + constructMenuItem, StaticColor, StaticFont<2>, DummyAction>>(); constructMenuItem, DummyAction>>(); - constructMenuItem, StaticColor, StaticFont<2>, DummyAction>>(); + constructMenuItem, StaticColor, StaticFont<2>, DummyAction>>(); constructMenuItem, DummyAction, StaticFont<2>>>(); constructMenuItem, DummyAction>>(); constructMenuItem, OpenPopupAction, StaticMenuItemIcon<&bobbyicons::info>>>(); @@ -72,3 +74,5 @@ void GitMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/screens/gitmenu.h b/main/screens/gitmenu.h new file mode 100644 index 0000000..65f25a8 --- /dev/null +++ b/main/screens/gitmenu.h @@ -0,0 +1,18 @@ +#pragma once + +// local includes +#include "guihelpers/menudisplaywithtime.h" + +namespace bobby { + +class GitMenu : public bobby::MenuDisplayWithTime +{ +public: + GitMenu(); + + std::string text() const override; + + void back() override; +}; + +} // namespace bobby diff --git a/main/displays/menus/graphsmenu.cpp b/main/screens/graphsmenu.cpp similarity index 97% rename from main/displays/menus/graphsmenu.cpp rename to main/screens/graphsmenu.cpp index cc2f167..537e5d0 100644 --- a/main/displays/menus/graphsmenu.cpp +++ b/main/screens/graphsmenu.cpp @@ -1,18 +1,19 @@ #include "graphsmenu.h" // 3rdparty lib includes -#include "actions/pushscreenaction.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" -#include "graphdisplay.h" -#include "splitgraphdisplay.h" +#include +#include +#include +#include +#include // local includes -#include "displays/bobbygraphdisplay.h" -#include "displays/bobbysplitgraphdisplay.h" -#include "utils.h" +#include "guihelpers/bobbygraphdisplay.h" +#include "guihelpers/bobbysplitgraphdisplay.h" #include "statistics.h" +namespace bobby { + namespace { constexpr char TEXT_GRAPHS[] = "Graphs"; constexpr char TEXT_RAW_GAS[] = "Raw Gas"; @@ -222,3 +223,5 @@ void GraphsMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/graphsmenu.h b/main/screens/graphsmenu.h similarity index 67% rename from main/displays/menus/graphsmenu.h rename to main/screens/graphsmenu.h index 03e6763..e763f3e 100644 --- a/main/displays/menus/graphsmenu.h +++ b/main/screens/graphsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class GraphsMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/greenpassmenu.cpp b/main/screens/greenpassmenu.cpp similarity index 94% rename from main/displays/menus/greenpassmenu.cpp rename to main/screens/greenpassmenu.cpp index ede4d38..ad995b5 100644 --- a/main/displays/menus/greenpassmenu.cpp +++ b/main/screens/greenpassmenu.cpp @@ -1,20 +1,23 @@ #include "greenpassmenu.h" +// system includes +#include + // 3rdparty lib includes #include #include -#include -#include #include #include // local includes #include "actions/qraction.h" -#include "bobbycheckbox.h" -#include "displays/qrdisplay.h" -#include "displays/qrimportdisplay.h" +#include "screens/qrdisplay.h" +#include "screens/qrimportdisplay.h" +#include "guihelpers/bobbycheckbox.h" #include "qrimport.h" +namespace bobby { + namespace { constexpr char TEXT_GREENPASS[] = "Green Pass"; constexpr char TEXT_ADDCERT[] = "Add cert"; @@ -98,3 +101,5 @@ void GreenPassMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/greenpassmenu.h b/main/screens/greenpassmenu.h similarity index 68% rename from main/displays/menus/greenpassmenu.h rename to main/screens/greenpassmenu.h index d165f1f..557e972 100644 --- a/main/displays/menus/greenpassmenu.h +++ b/main/screens/greenpassmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class GreenPassMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/handbremssettingsmenu.cpp b/main/screens/handbremssettingsmenu.cpp similarity index 92% rename from main/displays/menus/handbremssettingsmenu.cpp rename to main/screens/handbremssettingsmenu.cpp index 6bb62e9..78c49e7 100644 --- a/main/displays/menus/handbremssettingsmenu.cpp +++ b/main/screens/handbremssettingsmenu.cpp @@ -10,10 +10,12 @@ // local includes #include "accessors/settingsaccessors.h" -#include "bobbycheckbox.h" #include "changevaluedisplay_handbremsmode.h" -#include "displays/bobbychangevaluedisplay.h" -#include "displays/menus/typesafeenumchangemenu.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "screens/typesafeenumchangemenu.h" +#include "guihelpers/bobbycheckbox.h" + +namespace bobby { namespace { constexpr char TEXT_HANDBREMSE_ENABLE[] = "Enable Handbremse"; @@ -53,3 +55,5 @@ void HandbremsSettingsMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/handbremssettingsmenu.h b/main/screens/handbremssettingsmenu.h similarity index 70% rename from main/displays/menus/handbremssettingsmenu.h rename to main/screens/handbremssettingsmenu.h index e958296..7e8acfe 100644 --- a/main/displays/menus/handbremssettingsmenu.h +++ b/main/screens/handbremssettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class HandbremsSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/invertmenu.cpp b/main/screens/invertmenu.cpp similarity index 91% rename from main/displays/menus/invertmenu.cpp rename to main/screens/invertmenu.cpp index 4348757..03225e3 100644 --- a/main/displays/menus/invertmenu.cpp +++ b/main/screens/invertmenu.cpp @@ -1,10 +1,14 @@ #include "invertmenu.h" +// 3rdparty lib includes +#include + // local includes #include "accessors/settingsaccessors.h" #include "actions/popscreenaction.h" -#include "bobbycheckbox.h" -#include "icons/back.h" +#include "guihelpers/bobbycheckbox.h" + +namespace bobby { namespace { constexpr char TEXT_SETINVERTED[] = "Set inverted"; @@ -34,3 +38,5 @@ void InvertMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/invertmenu.h b/main/screens/invertmenu.h similarity index 67% rename from main/displays/menus/invertmenu.h rename to main/screens/invertmenu.h index c7bf50f..bb77ebe 100644 --- a/main/displays/menus/invertmenu.h +++ b/main/screens/invertmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class InvertMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/joystickdebugdisplay.cpp b/main/screens/joystickdebugdisplay.cpp similarity index 93% rename from main/displays/joystickdebugdisplay.cpp rename to main/screens/joystickdebugdisplay.cpp index 21265ac..97129bb 100644 --- a/main/displays/joystickdebugdisplay.cpp +++ b/main/screens/joystickdebugdisplay.cpp @@ -2,12 +2,12 @@ #include "joystickdebugdisplay.h" // 3rdparty lib includes -#include + #include // local includes -#include "displays/statusdisplay.h" -#include "displays/menus/boardcomputerhardwaresettingsmenu.h" +#include "screens/statusdisplay.h" +#include "screens/boardcomputerhardwaresettingsmenu.h" #include "newsettings.h" #include "utils.h" #include "globals.h" diff --git a/main/displays/joystickdebugdisplay.h b/main/screens/joystickdebugdisplay.h similarity index 93% rename from main/displays/joystickdebugdisplay.h rename to main/screens/joystickdebugdisplay.h index dd1ff07..27e7de7 100644 --- a/main/displays/joystickdebugdisplay.h +++ b/main/screens/joystickdebugdisplay.h @@ -4,7 +4,7 @@ #include // local includes -#include "bobbydisplaywithtitle.h" +#include "../guihelpers/bobbydisplaywithtitle.h" #include "modeinterface.h" #include "modes/ignoreinputmode.h" diff --git a/main/displays/menus/larsmmodesettingsmenu.cpp b/main/screens/larsmmodesettingsmenu.cpp similarity index 89% rename from main/displays/menus/larsmmodesettingsmenu.cpp rename to main/screens/larsmmodesettingsmenu.cpp index 00cc97f..e7427d0 100644 --- a/main/displays/menus/larsmmodesettingsmenu.cpp +++ b/main/screens/larsmmodesettingsmenu.cpp @@ -1,18 +1,20 @@ #include "larsmmodesettingsmenu.h" // 3rdparty lib includes -#include "changevaluedisplay.h" -#include "menuitem.h" -#include "actions/pushscreenaction.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" +#include +#include +#include +#include +#include // local includes -#include "displays/bobbychangevaluedisplay.h" -#include "utils.h" +#include "accessors/settingsaccessors.h" #include "changevaluedisplay_larsmmode_mode.h" #include "changevaluedisplay_unifiedmodelmode.h" -#include "accessors/settingsaccessors.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "utils.h" + +namespace bobby { namespace { constexpr char TEXT_LARSMMODESETTINGS[] = "Larsm mode settings"; @@ -63,3 +65,5 @@ void LarsmModeSettingsMenu::back() { popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/larsmmodesettingsmenu.h b/main/screens/larsmmodesettingsmenu.h similarity index 70% rename from main/displays/menus/larsmmodesettingsmenu.h rename to main/screens/larsmmodesettingsmenu.h index 797d7aa..ca59078 100644 --- a/main/displays/menus/larsmmodesettingsmenu.h +++ b/main/screens/larsmmodesettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class LarsmModeSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/ledstripcolorsdisplay.cpp b/main/screens/ledstripcolorsdisplay.cpp similarity index 53% rename from main/displays/ledstripcolorsdisplay.cpp rename to main/screens/ledstripcolorsdisplay.cpp index d2e6d81..57b5b26 100644 --- a/main/displays/ledstripcolorsdisplay.cpp +++ b/main/screens/ledstripcolorsdisplay.cpp @@ -4,19 +4,18 @@ #include // 3rdparty lib includes -#include -#include +#include #include -#include -#include #include -#include +#include +#include // local includes -#include "utils.h" -#include "icons/back.h" -#include "icons/bobbycar.h" #include "globals.h" +#include "icons/bobbycar.h" +#include "utils.h" + +namespace bobby { namespace { constexpr char TEXT_LEDSTRIPCOLORMENU[] = "Customize Ledstrip"; @@ -26,6 +25,10 @@ int8_t selected_color; bool state_select_color{false}; bool last_state = {false}; +bool state_draw_colors_needed{false}; +bool state_erase_colors_needed{false}; +bool state_redraw_side_needed{false}; + const std::array Colors = { CRGB_TO_UINT32(CRGB{0,0,0}), CRGB_TO_UINT32(CRGB{255,255,255}), @@ -38,14 +41,14 @@ const std::array Colors = { }; const std::array tft_colors = { - TFT_BLACK, - TFT_WHITE, - TFT_RED, - TFT_YELLOW, - TFT_GREEN, - TFT_CYAN, - TFT_BLUE, - TFT_MAGENTA + espgui::TFT_BLACK, + espgui::TFT_WHITE, + espgui::TFT_RED, + espgui::TFT_YELLOW, + espgui::TFT_GREEN, + espgui::TFT_CYAN, + espgui::TFT_BLUE, + espgui::TFT_MAGENTA }; } // namespace @@ -54,38 +57,54 @@ std::string LedstripColorsDisplay::text() const return TEXT_LEDSTRIPCOLORMENU; } -void LedstripColorsDisplay::initScreen() +void LedstripColorsDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); - espgui::tft.setSwapBytes(true); - espgui::tft.pushImage(70, 60, bobbyicons::bobbycar.WIDTH, bobbyicons::bobbycar.HEIGHT, bobbyicons::bobbycar.buffer); - espgui::tft.setSwapBytes(false); + tft.setSwapBytes(true); + tft.pushImage(70, 60, bobbyicons::bobbycar.WIDTH, bobbyicons::bobbycar.HEIGHT, bobbyicons::bobbycar.buffer); + tft.setSwapBytes(false); } -void LedstripColorsDisplay::redraw() +void LedstripColorsDisplay::redraw(espgui::TftInterface &tft) { - Base::redraw(); + Base::redraw(tft); - auto y_pos = ((espgui::tft.width() - 40) / 8 + 4) + 240; + auto y_pos = ((tft.width() - 40) / 8 + 4) + 240; if (last_state != state_select_color) { - espgui::tft.fillRect(0,y_pos - 1, espgui::tft.width(), 20, TFT_BLACK); + tft.fillRect(0,y_pos - 1, tft.width(), 20, espgui::TFT_BLACK); last_state = state_select_color; } - espgui::tft.setTextFont(2); - espgui::tft.setTextColor(TFT_WHITE); - - espgui::tft.drawString(state_select_color ? + tft.drawString(state_select_color ? "Please select a color!" : - "Please select a side!", 50, y_pos); + "Please select a side!", 50, y_pos, espgui::TFT_WHITE, espgui::TFT_BLACK, 2); if (!already_drew_circle) { - drawSide(static_cast(selected_side), TFT_GOLD); + drawSide(tft, static_cast(selected_side), espgui::TFT_GOLD); already_drew_circle = true; } + + if (state_draw_colors_needed) + { + drawColors(tft); + state_draw_colors_needed = false; + } + + if (state_erase_colors_needed) + { + tft.fillRect(0, 228, tft.width(), ((tft.width() - 40) / 8) + 4, espgui::TFT_BLACK); + state_erase_colors_needed = false; + } + + if (state_redraw_side_needed) + { + tft.fillRect(0, 228, tft.width(), ((tft.width() - 40) / 8) + 4, espgui::TFT_BLACK); + clearSides(tft); + drawSide(tft, static_cast(selected_side), espgui::TFT_GOLD); + } } void LedstripColorsDisplay::buttonPressed(espgui::Button button) @@ -103,7 +122,7 @@ void LedstripColorsDisplay::buttonPressed(espgui::Button button) else { state_select_color = false; - espgui::tft.fillRect(0, 228, espgui::tft.width(), ((espgui::tft.width() - 40) / 8) + 4, TFT_BLACK); + state_erase_colors_needed = true; } break; @@ -111,7 +130,7 @@ void LedstripColorsDisplay::buttonPressed(espgui::Button button) if(!state_select_color) { state_select_color = true; - drawColors(); + state_draw_colors_needed = true; } else { @@ -144,13 +163,13 @@ void LedstripColorsDisplay::buttonPressed(espgui::Button button) /* TODO commander: move into redraw method */ if (state_select_color) { - drawColors(); + // drawColors(); + state_draw_colors_needed = true; } else { - espgui::tft.fillRect(0, 228, espgui::tft.width(), ((espgui::tft.width() - 40) / 8) + 4, TFT_BLACK); - clearSides(); - drawSide(static_cast(selected_side), TFT_GOLD); + // drawSide(); + state_redraw_side_needed = true; } break; @@ -175,46 +194,44 @@ void LedstripColorsDisplay::buttonPressed(espgui::Button button) /* TODO commander: move into redraw method */ if (state_select_color) { - drawColors(); + state_draw_colors_needed = true; } else { - espgui::tft.fillRect(0, 228, espgui::tft.width(), ((espgui::tft.width() - 40) / 8) + 4, TFT_BLACK); - clearSides(); - drawSide(static_cast(selected_side), TFT_GOLD); + state_redraw_side_needed = true; } break; } } -void LedstripColorsDisplay::drawColors() +void LedstripColorsDisplay::drawColors(espgui::TftInterface &tft) { - uint16_t width = (espgui::tft.width() - 40); + uint16_t width = (tft.width() - 40); auto cube_width = width / 8; - espgui::tft.fillRect(0, 228, espgui::tft.width(), cube_width + 4, TFT_BLACK); - espgui::tft.fillRect(21, 231, width - 1, cube_width - 1, TFT_WHITE); + tft.fillRect(0, 228, tft.width(), cube_width + 4, espgui::TFT_BLACK); + tft.fillRect(21, 231, width - 1, cube_width - 1, espgui::TFT_WHITE); - espgui::tft.fillRect(20 + (selected_color * cube_width - 1), 228, cube_width + 4, cube_width + 4, TFT_YELLOW); + tft.fillRect(20 + (selected_color * cube_width - 1), 228, cube_width + 4, cube_width + 4, espgui::TFT_YELLOW); for (int index = 0; index < 8; index++) { auto offset = index * (cube_width); - espgui::tft.fillRect(22 + offset, 232, cube_width - 4, cube_width - 4, tft_colors[index]); + tft.fillRect(22 + offset, 232, cube_width - 4, cube_width - 4, tft_colors[index]); } } -void LedstripColorsDisplay::clearSides() +void LedstripColorsDisplay::clearSides(espgui::TftInterface &tft) { for(int index = 0; index < 8; index++) { - drawSide(static_cast(index), TFT_BLACK); + drawSide(tft, static_cast(index), TFT_BLACK); } } -void LedstripColorsDisplay::drawSide(Bobbycar_Side side, unsigned int color) +void LedstripColorsDisplay::drawSide(espgui::TftInterface &tft, Bobbycar_Side side, unsigned int color) { - const auto middle = espgui::tft.width() / 2; + const auto middle = tft.width() / 2; const auto width = bobbyicons::bobbycar.WIDTH; const auto height = bobbyicons::bobbycar.HEIGHT; const auto left = middle - (width / 2); @@ -224,33 +241,35 @@ void LedstripColorsDisplay::drawSide(Bobbycar_Side side, unsigned int color) switch (side) { case Bobbycar_Side::FRONT: - espgui::tft.fillRect(left, above, width, 5, color); + tft.fillRect(left, above, width, 5, color); break; case Bobbycar_Side::FRONT_LEFT: - espgui::tft.fillRect(left - 10, above + 10, 5, height / 2, color); - espgui::tft.fillRect(left, above, width / 2, 5, color); + tft.fillRect(left - 10, above + 10, 5, height / 2, color); + tft.fillRect(left, above, width / 2, 5, color); break; case Bobbycar_Side::LEFT: - espgui::tft.fillRect(left - 10, above + 10, 5, height, color); + tft.fillRect(left - 10, above + 10, 5, height, color); break; case Bobbycar_Side::BACK_LEFT: - espgui::tft.fillRect(left - 10, above + 10 + (height / 2), 5, height / 2, color); - espgui::tft.fillRect(left, bellow + 5, width / 2, 5, color); + tft.fillRect(left - 10, above + 10 + (height / 2), 5, height / 2, color); + tft.fillRect(left, bellow + 5, width / 2, 5, color); break; case Bobbycar_Side::BACK: - espgui::tft.fillRect(left, bellow + 5, width, 5, color); + tft.fillRect(left, bellow + 5, width, 5, color); break; case Bobbycar_Side::BACK_RIGHT: - espgui::tft.fillRect(right + 5, above + 10 + (height / 2), 5, height / 2, color); - espgui::tft.fillRect(middle, bellow + 5, width / 2, 5, color); + tft.fillRect(right + 5, above + 10 + (height / 2), 5, height / 2, color); + tft.fillRect(middle, bellow + 5, width / 2, 5, color); break; case Bobbycar_Side::RIGHT: - espgui::tft.fillRect(right + 5, above + 10, 5, height, color); + tft.fillRect(right + 5, above + 10, 5, height, color); break; case Bobbycar_Side::FRONT_RIGHT: - espgui::tft.fillRect(right + 5, above + 10, 5, height / 2, color); - espgui::tft.fillRect(middle, above, width / 2, 5, color); + tft.fillRect(right + 5, above + 10, 5, height / 2, color); + tft.fillRect(middle, above, width / 2, 5, color); break; } // espgui::tft.fillCircle(espgui::tft.width() / 2, 140, 100, TFT_BLACK); } + +} // namespace bobby diff --git a/main/screens/ledstripcolorsdisplay.h b/main/screens/ledstripcolorsdisplay.h new file mode 100644 index 0000000..be10ca4 --- /dev/null +++ b/main/screens/ledstripcolorsdisplay.h @@ -0,0 +1,28 @@ +#pragma once + +// local includes +#include "guihelpers/bobbydisplaywithtitle.h" +#include "ledstrip.h" + +namespace bobby { + +class LedstripColorsDisplay : public BobbyDisplayWithTitle +{ + using Base = BobbyDisplayWithTitle; + +public: + std::string text() const override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; + + void buttonPressed(espgui::Button button) override; + + void drawColors(espgui::TftInterface &tft); + void drawSide(espgui::TftInterface &tft, Bobbycar_Side side, unsigned int color); + void clearSides(espgui::TftInterface &tft); + +private: + bool already_drew_circle{false}; +}; + +} // namespace bobby diff --git a/main/displays/menus/ledstripmenu.cpp b/main/screens/ledstripmenu.cpp similarity index 96% rename from main/displays/menus/ledstripmenu.cpp rename to main/screens/ledstripmenu.cpp index c4f108d..63b09cb 100644 --- a/main/displays/menus/ledstripmenu.cpp +++ b/main/screens/ledstripmenu.cpp @@ -1,10 +1,9 @@ #include "ledstripmenu.h" // 3rdparty lib includes -#include #include -#include #include +#include #include #include #include @@ -12,17 +11,17 @@ // local includes #include "accessors/settingsaccessors.h" -#include "bobbycheckbox.h" -#include "displays/bobbychangevaluedisplay.h" -#include "displays/ledstripcolorsdisplay.h" -#include "displays/menus/ledstripselectotamode.h" -#include "displays/menus/mainmenu.h" -#include "displays/menus/typesafeenumchangemenu.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "screens/ledstripcolorsdisplay.h" +#include "screens/ledstripselectotamode.h" +#include "screens/mainmenu.h" +#include "screens/typesafeenumchangemenu.h" #include "globals.h" +#include "guihelpers/bobbycheckbox.h" #include "ledstrip.h" #include "ledstripselectblinkmenu.h" -// clang-format off +namespace bobby { namespace { constexpr char TEXT_LEDSTRIP[] = "Ledstrip"; @@ -195,3 +194,4 @@ void LedstripMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/screens/ledstripmenu.h b/main/screens/ledstripmenu.h new file mode 100644 index 0000000..fddf8fb --- /dev/null +++ b/main/screens/ledstripmenu.h @@ -0,0 +1,18 @@ +#pragma once + +// local includes +#include "guihelpers/menudisplaywithtime.h" + +namespace bobby { + +class LedstripMenu : public bobby::MenuDisplayWithTime +{ +public: + LedstripMenu(); + + std::string text() const override; + + void back() override; +}; + +} // namespace bobby diff --git a/main/displays/menus/ledstripselectblinkmenu.cpp b/main/screens/ledstripselectblinkmenu.cpp similarity index 94% rename from main/displays/menus/ledstripselectblinkmenu.cpp rename to main/screens/ledstripselectblinkmenu.cpp index cd67f2a..6ee6de3 100644 --- a/main/displays/menus/ledstripselectblinkmenu.cpp +++ b/main/screens/ledstripselectblinkmenu.cpp @@ -1,16 +1,18 @@ #include "ledstripselectblinkmenu.h" // 3rdparty lib includes -#include "actions/dummyaction.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" +#include +#include +#include // local includes #include "accessors/settingsaccessors.h" #include "actions/ledstripblinkactions.h" +#include "guihelpers/bobbycheckbox.h" #include "ledstrip.h" #include "ledstripdefines.h" -#include "bobbycheckbox.h" + +namespace bobby { namespace { constexpr char TEXT_BLINKANIMATION[] = "Blink animation"; @@ -80,3 +82,5 @@ std::string CurrentSelectedBlinkAnimationText::text() const } } // namespace + +} // namespace bobby diff --git a/main/displays/menus/ledstripselectblinkmenu.h b/main/screens/ledstripselectblinkmenu.h similarity index 70% rename from main/displays/menus/ledstripselectblinkmenu.h rename to main/screens/ledstripselectblinkmenu.h index 77cdcb6..edc41a1 100644 --- a/main/displays/menus/ledstripselectblinkmenu.h +++ b/main/screens/ledstripselectblinkmenu.h @@ -1,7 +1,9 @@ #pragma once // Local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class LedstripSelectBlinkMenu : public BobbyMenuDisplay { @@ -11,3 +13,5 @@ public: std::string text() const override; void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/ledstripselectotamode.cpp b/main/screens/ledstripselectotamode.cpp similarity index 91% rename from main/displays/menus/ledstripselectotamode.cpp rename to main/screens/ledstripselectotamode.cpp index 4355d06..146ad1d 100644 --- a/main/displays/menus/ledstripselectotamode.cpp +++ b/main/screens/ledstripselectotamode.cpp @@ -1,15 +1,17 @@ #include "ledstripselectotamode.h" // 3rdparty lib includes -#include "actions/pushscreenaction.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" +#include +#include +#include // local includes #include "ledstrip.h" #include "newsettings.h" #include "utils.h" +namespace bobby { + namespace { constexpr char TEXT_BLINKANIMATION[] = "Blink animation"; constexpr char TEXT_OTAANIM_NONE[] = "None"; @@ -46,3 +48,4 @@ void LedstripOtaAnimationChangeMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/ledstripselectotamode.h b/main/screens/ledstripselectotamode.h similarity index 72% rename from main/displays/menus/ledstripselectotamode.h rename to main/screens/ledstripselectotamode.h index 982f02c..3345cb9 100644 --- a/main/displays/menus/ledstripselectotamode.h +++ b/main/screens/ledstripselectotamode.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class LedstripOtaAnimationChangeMenu : public BobbyMenuDisplay { @@ -11,3 +13,5 @@ public: std::string text() const override; void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/limitssettingsmenu.cpp b/main/screens/limitssettingsmenu.cpp similarity index 97% rename from main/displays/menus/limitssettingsmenu.cpp rename to main/screens/limitssettingsmenu.cpp index 6b455a0..485596f 100644 --- a/main/displays/menus/limitssettingsmenu.cpp +++ b/main/screens/limitssettingsmenu.cpp @@ -1,17 +1,19 @@ #include "limitssettingsmenu.h" // 3rdparty lib includes -#include -#include -#include #include +#include +#include #include +#include #include // local includes -#include "displays/bobbychangevaluedisplay.h" -#include "utils.h" #include "accessors/settingsaccessors.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "utils.h" + +namespace bobby { namespace { constexpr char TEXT_LIMITSSETTINGS[] = "Limit settings"; @@ -89,3 +91,5 @@ void LimitsSettingsMenu::back() { popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/limitssettingsmenu.h b/main/screens/limitssettingsmenu.h similarity index 69% rename from main/displays/menus/limitssettingsmenu.h rename to main/screens/limitssettingsmenu.h index 998cfee..b056f6f 100644 --- a/main/displays/menus/limitssettingsmenu.h +++ b/main/screens/limitssettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class LimitsSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/lockscreen.cpp b/main/screens/lockscreen.cpp similarity index 67% rename from main/displays/lockscreen.cpp rename to main/screens/lockscreen.cpp index dbdb7ff..cb6f4ba 100644 --- a/main/displays/lockscreen.cpp +++ b/main/screens/lockscreen.cpp @@ -4,15 +4,17 @@ #include // 3rdparty lib includes -#include #include +#include +#include // local includes +#include "bobbybuttons.h" +#include "screens/mainmenu.h" #include "globals.h" #include "utils.h" -#include "displays/potiscalibratedisplay.h" -#include "bobbybuttons.h" -#include "displays/menus/mainmenu.h" + +namespace bobby { namespace { bool isValid1stPin(std::array enteredPin) @@ -53,39 +55,32 @@ void Lockscreen::start() } } -void Lockscreen::initScreen() +void Lockscreen::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); - espgui::tft.fillScreen(TFT_BLACK); - espgui::tft.setTextFont(4); - espgui::tft.setTextColor(TFT_YELLOW); + tft.fillScreen(espgui::TFT_BLACK); - espgui::tft.drawString("Lock vehicle", 5, 5); + tft.drawString("Lock vehicle", 5, 5, espgui::TFT_YELLOW, espgui::TFT_BLACK, 4); - espgui::tft.fillRect(0, 34, espgui::tft.width(), 3, TFT_WHITE); + tft.fillRect(0, 34, tft.width(), 3, espgui::TFT_WHITE); - espgui::tft.setTextColor(TFT_WHITE); - espgui::tft.drawString("Enter code to unlock:", 0, 50); - - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); + tft.drawString("Enter code to unlock:", 0, 50, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); for(int i = 0; i <= 3; i++) { - drawRect(i, 3, TFT_WHITE); - drawRect(i, 4, TFT_WHITE); + drawRect(tft, i, 3, espgui::TFT_WHITE); + drawRect(tft, i, 4, espgui::TFT_WHITE); } for (auto &label : m_labels) - label.start(); + label.start(tft); - espgui::tft.setTextFont(7); - - drawRect(m_currentIndex, 1, TFT_YELLOW); - drawRect(m_currentIndex, 2, TFT_YELLOW); + drawRect(tft, m_currentIndex, 1, espgui::TFT_YELLOW); + drawRect(tft, m_currentIndex, 2, espgui::TFT_YELLOW); for(int i = 0; i <= m_currentIndex; i++) - m_labels[i].redraw(std::to_string(m_numbers[i])); + m_labels[i].redraw(tft, std::to_string(m_numbers[i]), espgui::TFT_WHITE, espgui::TFT_BLACK, 7); } void Lockscreen::update() @@ -93,14 +88,14 @@ void Lockscreen::update() Base::update(); } -void Lockscreen::redraw() +void Lockscreen::redraw(espgui::TftInterface &tft) { - Base::redraw(); + Base::redraw(tft); if (m_pressed || m_back_pressed) { - drawRect(m_currentIndex, 1, TFT_BLACK); - drawRect(m_currentIndex, 2, TFT_BLACK); + drawRect(tft, m_currentIndex, 1, espgui::TFT_BLACK); + drawRect(tft, m_currentIndex, 2, espgui::TFT_BLACK); if (!m_back_pressed && ++m_currentIndex>=4) { @@ -124,18 +119,18 @@ LOCKSCREEN_PLUGIN_FIXES_2 m_numbers = {0,0,0,0}; m_currentIndex = 0; - std::for_each(std::begin(m_labels) + 1, std::end(m_labels), [](auto &label){ label.redraw("0"); }); + std::for_each(std::begin(m_labels) + 1, std::end(m_labels), [&](auto &label){ label.redraw(tft, "0", espgui::TFT_WHITE, espgui::TFT_BLACK, 7); }); } else if (m_back_pressed && m_currentIndex < 3) { - drawRect(m_currentIndex+1, 1, TFT_BLACK); - drawRect(m_currentIndex+1, 2, TFT_BLACK); + drawRect(tft, m_currentIndex+1, 1, espgui::TFT_BLACK); + drawRect(tft, m_currentIndex+1, 2, TFT_BLACK); } - m_labels[m_currentIndex].redraw(std::to_string(m_numbers[m_currentIndex])); + m_labels[m_currentIndex].redraw(tft, std::to_string(m_numbers[m_currentIndex]), espgui::TFT_WHITE, espgui::TFT_BLACK, 7); - drawRect(m_currentIndex, 1, TFT_YELLOW); - drawRect(m_currentIndex, 2, TFT_YELLOW); + drawRect(tft, m_currentIndex, 1, espgui::TFT_YELLOW); + drawRect(tft, m_currentIndex, 2, espgui::TFT_YELLOW); m_pressed = false; m_back_pressed = false; @@ -150,7 +145,7 @@ LOCKSCREEN_PLUGIN_FIXES_2 else if (m_numbers[m_currentIndex] > 9) m_numbers[m_currentIndex]-=10; - m_labels[m_currentIndex].redraw(std::to_string(m_numbers[m_currentIndex])); + m_labels[m_currentIndex].redraw(tft, std::to_string(m_numbers[m_currentIndex]), espgui::TFT_WHITE, espgui::TFT_BLACK, 7); m_rotated = 0; } @@ -205,7 +200,9 @@ void Lockscreen::buttonPressed(espgui::Button button) } } -void Lockscreen::drawRect(int index, int offset, uint32_t color) const +void Lockscreen::drawRect(espgui::TftInterface &tft, int index, int offset, uint32_t color) { - espgui::tft.drawRect(m_labels[index].x()-offset, m_labels[index].y()-offset, boxWidth+(offset*2), boxHeight+(offset*2), color); + tft.drawRect(m_labels[index].x()-offset, m_labels[index].y()-offset, boxWidth+(offset*2), boxHeight+(offset*2), color); } + +} // namespace bobby diff --git a/main/displays/lockscreen.h b/main/screens/lockscreen.h similarity index 81% rename from main/displays/lockscreen.h rename to main/screens/lockscreen.h index 442b12b..afe92a0 100644 --- a/main/displays/lockscreen.h +++ b/main/screens/lockscreen.h @@ -7,13 +7,15 @@ #include // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplay.h" #include "modes/ignoreinputmode.h" #ifdef LOCKSCREEN_PLUGIN #include "ledstrip.h" #endif +namespace bobby { + class Lockscreen : public BobbyDisplay { using Base = BobbyDisplay; @@ -24,15 +26,15 @@ class Lockscreen : public BobbyDisplay public: void start() override; - void initScreen() override; + void initScreen(espgui::TftInterface &tft) override; void update() override; - void redraw() override; + void redraw(espgui::TftInterface &tft) override; void stop() override; void buttonPressed(espgui::Button button) override; private: - void drawRect(int index, int offset, uint32_t color) const; + void drawRect(espgui::TftInterface &tft, int index, int offset, uint32_t color); std::array m_labels {{ espgui::Label{spacing, 100}, // boxWidth, boxHeight @@ -52,3 +54,5 @@ private: ModeInterface *m_oldMode; IgnoreInputMode m_mode{0, bobbycar::protocol::ControlType::FieldOrientedControl, bobbycar::protocol::ControlMode::Speed}; }; + +} // namespace bobby diff --git a/main/displays/menus/lockscreensettingsmenu.cpp b/main/screens/lockscreensettingsmenu.cpp similarity index 96% rename from main/displays/menus/lockscreensettingsmenu.cpp rename to main/screens/lockscreensettingsmenu.cpp index 0c3ef9d..bd45298 100644 --- a/main/displays/menus/lockscreensettingsmenu.cpp +++ b/main/screens/lockscreensettingsmenu.cpp @@ -10,9 +10,11 @@ // local includes #include "accessors/settingsaccessors.h" -#include "bobbycheckbox.h" -#include "displays/bobbychangevaluedisplay.h" +#include "guihelpers/bobbychangevaluedisplay.h" #include "globals.h" +#include "guihelpers/bobbycheckbox.h" + +namespace bobby { namespace { constexpr char TEXT_LOCKSCREENSETTINGS[] = "Lockscreen Settings"; @@ -78,3 +80,4 @@ void LockscreenSettingsMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/lockscreensettingsmenu.h b/main/screens/lockscreensettingsmenu.h similarity index 70% rename from main/displays/menus/lockscreensettingsmenu.h rename to main/screens/lockscreensettingsmenu.h index f5054b9..242dccd 100644 --- a/main/displays/menus/lockscreensettingsmenu.h +++ b/main/screens/lockscreensettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class LockscreenSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,4 @@ public: void back() override; }; +} // namespace bobby diff --git a/main/displays/menus/mainmenu.cpp b/main/screens/mainmenu.cpp similarity index 85% rename from main/displays/menus/mainmenu.cpp rename to main/screens/mainmenu.cpp index 58b1e3d..3b8a028 100644 --- a/main/displays/menus/mainmenu.cpp +++ b/main/screens/mainmenu.cpp @@ -4,31 +4,30 @@ #include #include #include -#include // local includes -#include "displays/menus/selectmodemenu.h" -#include "displays/menus/selectmodemenu.h" -#include "displays/menus/ledstripmenu.h" +#include "screens/selectmodemenu.h" +#include "screens/selectmodemenu.h" +#include "screens/ledstripmenu.h" #include "actions/modesettingsaction.h" -#include "displays/menus/profilesmenu.h" -#include "displays/menus/graphsmenu.h" -#include "displays/menus/batterymenu.h" -#include "displays/powersupplydisplay.h" -#include "displays/menus/bmsmenu.h" -#include "displays/menus/settingsmenu.h" -#include "displays/menus/manageprofilesmenu.h" -#include "displays/menus/mosfetsmenu.h" -#include "displays/menus/demosmenu.h" -#include "displays/menus/greenpassmenu.h" -#include "displays/lockscreen.h" -#include "displays/menus/garagemenu.h" -#include "displays/menus/otamenu.h" -#include "displays/poweroffdisplay.h" -#include "displays/menus/statisticsmenu.h" -#include "displays/confiscationdisplay.h" -#include "actions/rebootaction.h" -#include "displays/menus/debugmenu.h" +#include "screens/profilesmenu.h" +#include "screens/graphsmenu.h" +#include "screens/batterymenu.h" +#include "screens/powersupplydisplay.h" +#include "screens/bmsmenu.h" +#include "screens/settingsmenu.h" +#include "screens/manageprofilesmenu.h" +#include "screens/mosfetsmenu.h" +#include "screens/demosmenu.h" +#include "screens/greenpassmenu.h" +#include "screens/lockscreen.h" +#include "screens/garagemenu.h" +#include "screens/otamenu.h" +#include "screens/poweroffdisplay.h" +#include "screens/statisticsmenu.h" +#include "screens/confiscationdisplay.h" +#include "screens/rebootscreen.h" +#include "screens/debugmenu.h" #include "icons/battery.h" #include "icons/modes.h" #include "icons/presets.h" @@ -46,7 +45,9 @@ #include "icons/statistics.h" #include "icons/greenpass.h" #include "icons/time.h" -#include "displays/statusdisplay.h" +#include "screens/statusdisplay.h" + +namespace bobby { namespace { constexpr char TAG[] = "BOBBY"; @@ -119,7 +120,7 @@ MainMenu::MainMenu() if (SHOWITEM) { constructMenuItem, PushScreenAction>>(); } constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::poweroff>>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, RebootAction, StaticMenuItemIcon<&bobbyicons::reboot>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::reboot>>>(); //#ifdef MAINMENU_PLUGIN // GMEN1 //#endif @@ -134,3 +135,4 @@ void MainMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/mainmenu.h b/main/screens/mainmenu.h similarity index 62% rename from main/displays/menus/mainmenu.h rename to main/screens/mainmenu.h index 4d2ce98..88855c1 100644 --- a/main/displays/menus/mainmenu.h +++ b/main/screens/mainmenu.h @@ -4,11 +4,13 @@ #include "menuitem.h" // local includes -#include "displays/menudisplaywithtime.h" +#include "guihelpers/menudisplaywithtime.h" #ifdef MAINMENU_PLUGIN -#include MAINMENU_PLUGIN +#include MAINMENU_PLUGIN "../../ignore/mainmenu_plugin.h" #endif +namespace bobby { + namespace { #ifdef MAINMENU_PLUGIN GMEN2 @@ -20,9 +22,9 @@ namespace { #endif } // namespace -class MainMenu : public bobbygui::MenuDisplayWithTime +class MainMenu : public bobby::MenuDisplayWithTime { - using Base = bobbygui::MenuDisplayWithTime; + using Base = bobby::MenuDisplayWithTime; public: MainMenu(); @@ -31,3 +33,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/manageprofilesmenu.cpp b/main/screens/manageprofilesmenu.cpp similarity index 95% rename from main/displays/menus/manageprofilesmenu.cpp rename to main/screens/manageprofilesmenu.cpp index 74a1f25..f247372 100644 --- a/main/displays/menus/manageprofilesmenu.cpp +++ b/main/screens/manageprofilesmenu.cpp @@ -1,19 +1,20 @@ #include "manageprofilesmenu.h" // 3rdparty lib includes -#include +#include +#include #include // local includes -#include "actions/popscreenaction.h" -#include "actions/pushscreenaction.h" -#include "bobbyerrorhandler.h" #include "globals.h" +#include "guihelpers/bobbyerrorhandler.h" #include "mainmenu.h" #include "presets.h" #include "settingsutils.h" #include "utils.h" +namespace bobby { + using namespace espgui; namespace { @@ -155,14 +156,14 @@ public: int color() const override { if (m_mode == CONFIRM_CLEAR || m_mode == CONFIRM_COPY || m_mode == CONFIRM_SWAP) - return TFT_RED; + return espgui::TFT_RED; else if (m_menu.m_firstIndex == m_profileIndex) - return TFT_GREEN; + return espgui::TFT_GREEN; else if (m_menu.m_firstIndex != -1) - return TFT_GREY; + return espgui::TFT_GREY; else if (m_menu.m_locked) - return TFT_DARKGREY; - return TFT_WHITE; + return espgui::TFT_DARKGREY; + return espgui::TFT_WHITE; }; void triggered() override @@ -308,3 +309,5 @@ void ManageProfilesMenu::buttonPressed(espgui::Button button) break; } } + +} // namespace bobby diff --git a/main/displays/menus/manageprofilesmenu.h b/main/screens/manageprofilesmenu.h similarity index 89% rename from main/displays/menus/manageprofilesmenu.h rename to main/screens/manageprofilesmenu.h index fc50511..fc40f58 100644 --- a/main/displays/menus/manageprofilesmenu.h +++ b/main/screens/manageprofilesmenu.h @@ -1,12 +1,14 @@ #pragma once // 3rdparty lib includes -#include +#include "cpptypesafeenum.h" // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" #include "modes/ignoreinputmode.h" +namespace bobby { + #define ActionValues(x) \ x(Clear) \ x(Copy) \ @@ -40,3 +42,4 @@ protected: Actions m_action{Actions::Clear}; int8_t m_firstIndex{-1}; }; +} // namespace bobby diff --git a/main/screens/metersdisplay.cpp b/main/screens/metersdisplay.cpp new file mode 100644 index 0000000..79934f8 --- /dev/null +++ b/main/screens/metersdisplay.cpp @@ -0,0 +1,72 @@ +#include "metersdisplay.h" + +// 3rdparty lib includes +#include + +// local includes +#include "globals.h" +#include "screens/batteryinfodisplay.h" +#include "screens/mainmenu.h" +#include "screens/statusdisplay.h" +#include "utils.h" + +namespace bobby { + +using namespace espgui; + +void MetersDisplay::initScreen(espgui::TftInterface &tft) +{ + Base::initScreen(tft); + + tft.fillScreen(espgui::TFT_BLACK); + + m_vuMeter.start(tft); + + m_dischargingBar.start(tft); + m_chargingBar.start(tft); + + m_sumCurrentLabel.start(tft); + + for (auto &meter : meters) + meter.start(tft); +} + +void MetersDisplay::redraw(espgui::TftInterface &tft) +{ + Base::redraw(tft); + + m_vuMeter.redraw(tft, avgSpeedKmh); + + m_dischargingBar.redraw(tft, sumCurrent<0.f?(-sumCurrent):0.f); + m_chargingBar.redraw(tft, sumCurrent>0.f?sumCurrent:0.f); + + m_sumCurrentLabel.redraw(tft, fmt::format("{:.02f}A", sumCurrent), espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + + meters[0].redraw(tft, controllers.front.getCalibratedVoltage(), 35, 50); + meters[1].redraw(tft, controllers.back.getCalibratedVoltage(), 35, 50); + meters[2].redraw(tft, fixCurrent(controllers.front.feedback.left.dcLink), -10, 10); + meters[3].redraw(tft, fixCurrent(controllers.front.feedback.right.dcLink), -10, 10); + meters[4].redraw(tft, fixCurrent(controllers.back.feedback.left.dcLink), -10, 10); + meters[5].redraw(tft, fixCurrent(controllers.back.feedback.right.dcLink), -10, 10); +} + +void MetersDisplay::buttonPressed(espgui::Button button) +{ + Base::buttonPressed(button); + + switch (button) + { + using espgui::Button; + case Button::Right: + pushScreen(); + break; + case Button::Up: + switchScreen(); + break; + case Button::Down: + switchScreen(); + break; + default:; + } +} +} // namespace bobby diff --git a/main/displays/metersdisplay.h b/main/screens/metersdisplay.h similarity index 85% rename from main/displays/metersdisplay.h rename to main/screens/metersdisplay.h index fc22064..278abd7 100644 --- a/main/displays/metersdisplay.h +++ b/main/screens/metersdisplay.h @@ -6,21 +6,23 @@ // 3rdparty lib includes #include #include -#include #include +#include #include #include // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplay.h" + +namespace bobby { class MetersDisplay : public BobbyDisplay { using Base = BobbyDisplay; public: - void initScreen() override; - void redraw() override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; void buttonPressed(espgui::Button button) override; @@ -42,3 +44,4 @@ private: espgui::VerticalMeter{"Ihr", "%.1f", 5*x, 160} }}; }; +} // namespace bobby diff --git a/main/displays/menus/mickmodesettingsmenu.cpp b/main/screens/mickmodesettingsmenu.cpp similarity index 95% rename from main/displays/menus/mickmodesettingsmenu.cpp rename to main/screens/mickmodesettingsmenu.cpp index 92f363b..71fa9dc 100644 --- a/main/displays/menus/mickmodesettingsmenu.cpp +++ b/main/screens/mickmodesettingsmenu.cpp @@ -10,7 +10,9 @@ // local includes #include "accessors/settingsaccessors.h" #include "changevaluedisplay_unifiedmodelmode.h" -#include "displays/bobbychangevaluedisplay.h" +#include "guihelpers/bobbychangevaluedisplay.h" + +namespace bobby { namespace { constexpr char TEXT_MICKMODESETTINGS[] = "Mick mode settings"; @@ -52,3 +54,4 @@ void MickModeSettingsMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/mickmodesettingsmenu.h b/main/screens/mickmodesettingsmenu.h similarity index 70% rename from main/displays/menus/mickmodesettingsmenu.h rename to main/screens/mickmodesettingsmenu.h index a2a35a6..665f9d4 100644 --- a/main/displays/menus/mickmodesettingsmenu.h +++ b/main/screens/mickmodesettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class MickModeSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,4 @@ public: void back() override; }; +} // namespace bobby diff --git a/main/displays/menus/modessettingsmenu.cpp b/main/screens/modessettingsmenu.cpp similarity index 86% rename from main/displays/menus/modessettingsmenu.cpp rename to main/screens/modessettingsmenu.cpp index 5ec2f39..38d219f 100644 --- a/main/displays/menus/modessettingsmenu.cpp +++ b/main/screens/modessettingsmenu.cpp @@ -6,11 +6,13 @@ #include // local includes -#include "displays/menus/defaultmodesettingsmenu.h" -#include "displays/menus/gametrakmodesettingsmenu.h" -#include "displays/menus/larsmmodesettingsmenu.h" -#include "displays/menus/remotecontrolmodesettingsmenu.h" -#include "displays/menus/tempomatmodesettingsmenu.h" +#include "screens/defaultmodesettingsmenu.h" +#include "screens/gametrakmodesettingsmenu.h" +#include "screens/larsmmodesettingsmenu.h" +#include "screens/remotecontrolmodesettingsmenu.h" +#include "screens/tempomatmodesettingsmenu.h" + +namespace bobby { namespace { constexpr char TEXT_MODESSETTINGS[] = "Modes settings"; @@ -44,3 +46,4 @@ void ModesSettingsMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/modessettingsmenu.h b/main/screens/modessettingsmenu.h similarity index 69% rename from main/displays/menus/modessettingsmenu.h rename to main/screens/modessettingsmenu.h index fdf0e60..ba775f0 100644 --- a/main/displays/menus/modessettingsmenu.h +++ b/main/screens/modessettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class ModesSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/mosfetsmenu.cpp b/main/screens/mosfetsmenu.cpp similarity index 100% rename from main/displays/menus/mosfetsmenu.cpp rename to main/screens/mosfetsmenu.cpp diff --git a/main/displays/menus/mosfetsmenu.h b/main/screens/mosfetsmenu.h similarity index 83% rename from main/displays/menus/mosfetsmenu.h rename to main/screens/mosfetsmenu.h index 7ecb488..8145838 100644 --- a/main/displays/menus/mosfetsmenu.h +++ b/main/screens/mosfetsmenu.h @@ -3,7 +3,7 @@ #ifdef FEATURE_MOSFETS // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" class MosfetsMenu : public BobbyMenuDisplay { diff --git a/main/displays/menus/motorfeedbackdebugmenu.h b/main/screens/motorfeedbackdebugmenu.h similarity index 74% rename from main/displays/menus/motorfeedbackdebugmenu.h rename to main/screens/motorfeedbackdebugmenu.h index 9b67f35..bbda55f 100644 --- a/main/displays/menus/motorfeedbackdebugmenu.h +++ b/main/screens/motorfeedbackdebugmenu.h @@ -1,14 +1,18 @@ #pragma once -// local includes -#include "displays/bobbymenudisplay.h" -#include "utils.h" -#include "menuitem.h" +// 3rdparty lib includes #include "actions/dummyaction.h" #include "actions/popscreenaction.h" #include "icons/back.h" -#include "debugtexthelpers.h" +#include "menuitem.h" + +// local includes #include "debugcolorhelpers.h" +#include "guihelpers/bobbymenudisplay.h" +#include "texthelpers/debugtexthelpers.h" +#include "utils.h" + +namespace bobby { template class ColorInterface> class MotorFeedbackDebugMenu : @@ -21,22 +25,22 @@ public: { using namespace espgui; - constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); //constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); //constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); //constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); //constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); //constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } @@ -55,3 +59,4 @@ using BackLeftMotorFeedbackDebugMenu = MotorFeedbackDebugMenu; +} // namespace bobby diff --git a/main/displays/menus/motorstatedebugmenu.h b/main/screens/motorstatedebugmenu.h similarity index 91% rename from main/displays/menus/motorstatedebugmenu.h rename to main/screens/motorstatedebugmenu.h index 8237bbf..b6c46a0 100644 --- a/main/displays/menus/motorstatedebugmenu.h +++ b/main/screens/motorstatedebugmenu.h @@ -1,15 +1,17 @@ #pragma once // 3rdparty lib includes -#include "menuitem.h" -#include "actions/dummyaction.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" +#include +#include +#include +#include // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" +#include "texthelpers/debugtexthelpers.h" #include "utils.h" -#include "debugtexthelpers.h" + +namespace bobby { template class MotorStateDebugMenu : @@ -50,3 +52,5 @@ using BackLeftMotorStateDebugMenu = MotorStateDebugMenu; + +} // namespace bobby diff --git a/main/displays/menus/motortestmodesettingsmenu.cpp b/main/screens/motortestmodesettingsmenu.cpp similarity index 87% rename from main/displays/menus/motortestmodesettingsmenu.cpp rename to main/screens/motortestmodesettingsmenu.cpp index f85460e..6ce702c 100644 --- a/main/displays/menus/motortestmodesettingsmenu.cpp +++ b/main/screens/motortestmodesettingsmenu.cpp @@ -1,16 +1,18 @@ #include "motortestmodesettingsmenu.h" // 3rdparty lib includes -#include "changevaluedisplay.h" -#include "menuitem.h" -#include "actions/pushscreenaction.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" +#include +#include +#include +#include +#include // local includes -#include "displays/bobbychangevaluedisplay.h" -#include "utils.h" #include "accessors/settingsaccessors.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "utils.h" + +namespace bobby { namespace { constexpr char TEXT_MOTORTESTMODESETTINGS[] = "Motortest mode seetings"; @@ -53,3 +55,4 @@ void MotortestModeSettingsMenu::back() { popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/motortestmodesettingsmenu.h b/main/screens/motortestmodesettingsmenu.h similarity index 71% rename from main/displays/menus/motortestmodesettingsmenu.h rename to main/screens/motortestmodesettingsmenu.h index 5e94cae..39714ab 100644 --- a/main/displays/menus/motortestmodesettingsmenu.h +++ b/main/screens/motortestmodesettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class MotortestModeSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,4 @@ public: void back() override; }; +} // namespace bobby diff --git a/main/displays/menus/networksettingsmenu.cpp b/main/screens/networksettingsmenu.cpp similarity index 96% rename from main/displays/menus/networksettingsmenu.cpp rename to main/screens/networksettingsmenu.cpp index 84124b2..58e5361 100644 --- a/main/displays/menus/networksettingsmenu.cpp +++ b/main/screens/networksettingsmenu.cpp @@ -10,13 +10,15 @@ #include // local includes -#include "displays/qrdisplay.h" +#include "screens/qrdisplay.h" #include "globals.h" #include "texthelpers/networktexthelpers.h" #include "utils.h" #include "wifiapsettingsmenu.h" #include "wifistasettingsmenu.h" +namespace bobby { + using namespace espgui; namespace { @@ -55,3 +57,4 @@ void NetworkAccessPointQRAction::triggered() std::string qr = fmt::format("WIFI:T:{};S:{};P:{};H:;", get_wifi_security_string(configs.wifiApAuthmode.value()), configs.wifiApName.value(), configs.wifiApKey.value()); espgui::pushScreen(qr); } +} // namespace bobby diff --git a/main/displays/menus/networksettingsmenu.h b/main/screens/networksettingsmenu.h similarity index 79% rename from main/displays/menus/networksettingsmenu.h rename to main/screens/networksettingsmenu.h index a7c9c4d..1698765 100644 --- a/main/displays/menus/networksettingsmenu.h +++ b/main/screens/networksettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class NetworkSettingsMenu : public BobbyMenuDisplay { @@ -17,3 +19,5 @@ class NetworkAccessPointQRAction : public virtual espgui::ActionInterface public: void triggered() override; }; + +} // namespace bobby diff --git a/main/displays/menus/otamenu.cpp b/main/screens/otamenu.cpp similarity index 79% rename from main/displays/menus/otamenu.cpp rename to main/screens/otamenu.cpp index cdd5088..9b4f173 100644 --- a/main/displays/menus/otamenu.cpp +++ b/main/screens/otamenu.cpp @@ -1,19 +1,21 @@ #include "otamenu.h" // 3rdparty lib includes -#include "actioninterface.h" -#include "actions/dummyaction.h" -#include "actions/pushscreenaction.h" -#include "actions/popscreenaction.h" +#include +#include +#include +#include +#include // local includes -#include "icons/back.h" +#include "screens/selectbuildserverbranch.h" +#include "screens/selectbuildservermenu.h" +#include "screens/selectotabuildmenu.h" +#include "screens/updatedisplay.h" #include "icons/presets.h" #include "icons/update.h" -#include "displays/menus/selectotabuildmenu.h" -#include "displays/menus/selectbuildserverbranch.h" -#include "displays/menus/selectbuildservermenu.h" -#include "displays/updatedisplay.h" + +namespace bobby { namespace { constexpr char TEXT_UPDATE[] = "Update"; @@ -43,3 +45,4 @@ void OtaMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/otamenu.h b/main/screens/otamenu.h similarity index 67% rename from main/displays/menus/otamenu.h rename to main/screens/otamenu.h index 63ed7bc..d2e3d2e 100644 --- a/main/displays/menus/otamenu.h +++ b/main/screens/otamenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class OtaMenu : public BobbyMenuDisplay { @@ -12,3 +14,4 @@ public: void back() override; }; +} // namespace bobby diff --git a/main/displays/pingpongdisplay.cpp b/main/screens/pingpongdisplay.cpp similarity index 70% rename from main/displays/pingpongdisplay.cpp rename to main/screens/pingpongdisplay.cpp index 71d85cd..a2acd3e 100644 --- a/main/displays/pingpongdisplay.cpp +++ b/main/screens/pingpongdisplay.cpp @@ -1,13 +1,16 @@ #include "pingpongdisplay.h" // 3rdparty lib includes -#include #include -#include +#include #include +#include +#include // local includes -#include +#include "screens.h" + +namespace bobby { PingPongDisplay::PingPongDisplay() : lpaddle_y(cpputils::randomNumber(0, h - paddle_h, espcpputils::esp_random_device{})), @@ -18,28 +21,28 @@ PingPongDisplay::PingPongDisplay() : calc_target_y(); } -void PingPongDisplay::initScreen() +void PingPongDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); disableScreenFlip(true); - espgui::tft.fillScreen(TFT_BLACK); - espgui::tft.setRotation(1); + tft.fillScreen(espgui::TFT_BLACK); + tft.setRotation(1); - midline(); + midline(tft); } -void PingPongDisplay::redraw() +void PingPongDisplay::redraw(espgui::TftInterface &tft) { - Base::redraw(); + Base::redraw(tft); - lpaddle(); - rpaddle(); + lpaddle(tft); + rpaddle(tft); - midline(); + midline(tft); - ball(); + ball(tft); } void PingPongDisplay::stop() @@ -63,34 +66,34 @@ void PingPongDisplay::buttonPressed(espgui::Button button) } } -void PingPongDisplay::midline() +void PingPongDisplay::midline(espgui::TftInterface &tft) { // If the ball is not on the line then don't redraw the line if ((ball_x dashline_x+dashline_w)) return; - espgui::tft.startWrite(); + tft.startWrite(); // Quick way to draw a dashed line - espgui::tft.setAddrWindow(dashline_x, 0, dashline_w, h); + tft.setAddrWindow(dashline_x, 0, dashline_w, h); for (int16_t i = 0; i < dashline_n; i+=2) { - espgui::tft.pushColor(WHITE, dashline_w*dashline_h); // push dash pixels - espgui::tft.pushColor(BLACK, dashline_w*dashline_h); // push gap pixels + tft.pushColor(WHITE, dashline_w*dashline_h); // push dash pixels + tft.pushColor(BLACK, dashline_w*dashline_h); // push gap pixels } - espgui::tft.endWrite(); + tft.endWrite(); } -void PingPongDisplay::lpaddle() +void PingPongDisplay::lpaddle(espgui::TftInterface &tft) { if (lpaddle_d == 1) { - espgui::tft.fillRect(lpaddle_x, lpaddle_y, paddle_w, 1, BLACK); + tft.fillRect(lpaddle_x, lpaddle_y, paddle_w, 1, BLACK); } else if (lpaddle_d == -1) { - espgui::tft.fillRect(lpaddle_x, lpaddle_y + paddle_h - 1, paddle_w, 1, BLACK); + tft.fillRect(lpaddle_x, lpaddle_y + paddle_h - 1, paddle_w, 1, BLACK); } lpaddle_y = lpaddle_y + lpaddle_d; @@ -107,15 +110,15 @@ void PingPongDisplay::lpaddle() if (lpaddle_y + paddle_h >= h && lpaddle_d == 1) lpaddle_d = 0; else if (lpaddle_y <= 0 && lpaddle_d == -1) lpaddle_d = 0; - espgui::tft.fillRect(lpaddle_x, lpaddle_y, paddle_w, paddle_h, WHITE); + tft.fillRect(lpaddle_x, lpaddle_y, paddle_w, paddle_h, WHITE); } -void PingPongDisplay::rpaddle() +void PingPongDisplay::rpaddle(espgui::TftInterface &tft) { if (rpaddle_d == 1) - espgui::tft.fillRect(rpaddle_x, rpaddle_y, paddle_w, 1, BLACK); + tft.fillRect(rpaddle_x, rpaddle_y, paddle_w, 1, BLACK); else if (rpaddle_d == -1) - espgui::tft.fillRect(rpaddle_x, rpaddle_y + paddle_h - 1, paddle_w, 1, BLACK); + tft.fillRect(rpaddle_x, rpaddle_y + paddle_h - 1, paddle_w, 1, BLACK); rpaddle_y = rpaddle_y + rpaddle_d; @@ -133,7 +136,7 @@ void PingPongDisplay::rpaddle() else if (rpaddle_y <= 0 && rpaddle_d == -1) rpaddle_d = 0; - espgui::tft.fillRect(rpaddle_x, rpaddle_y, paddle_w, paddle_h, WHITE); + tft.fillRect(rpaddle_x, rpaddle_y, paddle_w, paddle_h, WHITE); } void PingPongDisplay::calc_target_y() @@ -157,7 +160,7 @@ void PingPongDisplay::calc_target_y() target_y = h - (y % h); } -void PingPongDisplay::ball() +void PingPongDisplay::ball(espgui::TftInterface &tft) { ball_x = ball_x + ball_dx; ball_y = ball_y + ball_dy; @@ -180,8 +183,9 @@ void PingPongDisplay::ball() } //tft.fillRect(oldball_x, oldball_y, ball_w, ball_h, BLACK); - espgui::tft.drawRect(oldball_x, oldball_y, ball_w, ball_h, BLACK); // Less TFT refresh aliasing than line above for large balls - espgui::tft.fillRect( ball_x, ball_y, ball_w, ball_h, WHITE); + tft.drawRect(oldball_x, oldball_y, ball_w, ball_h, BLACK); // Less TFT refresh aliasing than line above for large balls + tft.fillRect( ball_x, ball_y, ball_w, ball_h, WHITE); oldball_x = ball_x; oldball_y = ball_y; } +} // namespace bobby diff --git a/main/displays/pingpongdisplay.h b/main/screens/pingpongdisplay.h similarity index 75% rename from main/displays/pingpongdisplay.h rename to main/screens/pingpongdisplay.h index 2c79a6a..a6db271 100644 --- a/main/displays/pingpongdisplay.h +++ b/main/screens/pingpongdisplay.h @@ -3,8 +3,13 @@ // system includes #include +// 3rdparty lib includes +#include + // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplay.h" + +namespace bobby { class PingPongDisplay : public BobbyDisplay { @@ -13,18 +18,18 @@ class PingPongDisplay : public BobbyDisplay public: PingPongDisplay(); - void initScreen() override; - void redraw() override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; void stop() override; void buttonPressed(espgui::Button button) override; private: - void midline(); - void lpaddle(); - void rpaddle(); + void midline(espgui::TftInterface &tft); + void lpaddle(espgui::TftInterface &tft); + void rpaddle(espgui::TftInterface &tft); void calc_target_y(); - void ball(); + void ball(espgui::TftInterface &tft); int16_t h = 240; int16_t w = 320; @@ -72,3 +77,5 @@ private: static const constexpr auto WHITE = 0xFFFF; static const constexpr auto GREY = 0x5AEB; }; + +} // namespace bobby diff --git a/main/displays/poweroffdisplay.cpp b/main/screens/poweroffdisplay.cpp similarity index 51% rename from main/displays/poweroffdisplay.cpp rename to main/screens/poweroffdisplay.cpp index f3bc49f..01a5d7f 100644 --- a/main/displays/poweroffdisplay.cpp +++ b/main/screens/poweroffdisplay.cpp @@ -1,15 +1,17 @@ #include "poweroffdisplay.h" // 3rdparty lib includes -#include #include +#include +#include // local includes -#include "utils.h" #include "globals.h" using namespace std::chrono_literals; +namespace bobby { + void PoweroffDisplay::start() { Base::start(); @@ -20,21 +22,19 @@ void PoweroffDisplay::start() controller.command.poweroff = true; } -void PoweroffDisplay::initScreen() +void PoweroffDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); - espgui::tft.fillScreen(TFT_BLACK); - espgui::tft.setTextColor(TFT_YELLOW); + tft.fillScreen(espgui::TFT_BLACK); - espgui::tft.drawString("Poweroff", 5, 5, 4); + tft.drawString("Poweroff", 5, 5, espgui::TFT_YELLOW, espgui::TFT_BLACK, 4); - espgui::tft.fillRect(0, 34, espgui::tft.width(), 3, TFT_WHITE); + tft.fillRect(0, 34, tft.width(), 3, espgui::TFT_WHITE); - espgui::tft.setTextColor(TFT_WHITE); - espgui::tft.drawString("Trying to turn off", 15, 50, 4); - espgui::tft.drawString("both controllers", 25, 75, 4); - espgui::tft.drawString("Please stand still...", 20, 125, 4); + tft.drawString("Trying to turn off", 15, 50, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + tft.drawString("both controllers", 25, 75, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + tft.drawString("Please stand still...", 20, 125, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); } void PoweroffDisplay::update() @@ -52,3 +52,4 @@ void PoweroffDisplay::stop() for (Controller &controller : controllers) controller.command.poweroff = false; } +} // namespace bobby diff --git a/main/displays/poweroffdisplay.h b/main/screens/poweroffdisplay.h similarity index 70% rename from main/displays/poweroffdisplay.h rename to main/screens/poweroffdisplay.h index 3fa54ff..0ac63f3 100644 --- a/main/displays/poweroffdisplay.h +++ b/main/screens/poweroffdisplay.h @@ -4,7 +4,9 @@ #include // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplay.h" + +namespace bobby { class PoweroffDisplay : public BobbyDisplay { @@ -12,10 +14,11 @@ class PoweroffDisplay : public BobbyDisplay public: void start() override; - void initScreen() override; + void initScreen(espgui::TftInterface &tft) override; void update() override; void stop() override; private: espchrono::millis_clock::time_point m_startTime; }; +} // namespace bobby diff --git a/main/displays/powersupplydisplay.cpp b/main/screens/powersupplydisplay.cpp similarity index 97% rename from main/displays/powersupplydisplay.cpp rename to main/screens/powersupplydisplay.cpp index 12f26a1..484cf93 100644 --- a/main/displays/powersupplydisplay.cpp +++ b/main/screens/powersupplydisplay.cpp @@ -1,7 +1,7 @@ #include "powersupplydisplay.h" // 3rdparty lib includes -#include + #include // local includes diff --git a/main/displays/powersupplydisplay.h b/main/screens/powersupplydisplay.h similarity index 92% rename from main/displays/powersupplydisplay.h rename to main/screens/powersupplydisplay.h index 006c1f5..e674f40 100644 --- a/main/displays/powersupplydisplay.h +++ b/main/screens/powersupplydisplay.h @@ -4,7 +4,7 @@ #include // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplay.h" #if defined(FEATURE_CAN) && defined(FEATURE_POWERSUPPLY) class PowerSupplyDisplay : public BobbyDisplay diff --git a/main/displays/menus/profilesmenu.cpp b/main/screens/profilesmenu.cpp similarity index 87% rename from main/displays/menus/profilesmenu.cpp rename to main/screens/profilesmenu.cpp index 08f58f5..ff9902c 100644 --- a/main/displays/menus/profilesmenu.cpp +++ b/main/screens/profilesmenu.cpp @@ -1,10 +1,14 @@ #include "profilesmenu.h" +// 3rdparty lib includes +#include +#include +#include + // local includes #include "actions/switchprofileaction.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" -#include "menudisplay.h" + +namespace bobby { namespace { constexpr char TEXT_PROFILES[] = "Profiles"; @@ -33,3 +37,4 @@ void ProfilesMenu::back() { popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/profilesmenu.h b/main/screens/profilesmenu.h similarity index 68% rename from main/displays/menus/profilesmenu.h rename to main/screens/profilesmenu.h index fb2cd87..f1c5cc5 100644 --- a/main/displays/menus/profilesmenu.h +++ b/main/screens/profilesmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class ProfilesMenu : public BobbyMenuDisplay { @@ -12,3 +14,4 @@ public: void back() override; }; +} // namespace bobby diff --git a/main/screens/qrcodedebug.cpp b/main/screens/qrcodedebug.cpp new file mode 100644 index 0000000..71dd5f8 --- /dev/null +++ b/main/screens/qrcodedebug.cpp @@ -0,0 +1,56 @@ +#include "qrcodedebug.h" + +// 3rdparty lib includes +#include +#include +#include + +// local includes +#include "globals.h" +#include "newsettings.h" +#include "screenmanager.h" + +namespace bobby { + +using namespace espgui; + +void QrCodeDebugDisplay::redraw(espgui::TftInterface &tft) +{ + Base::redraw(tft); + + if (m_qrcode) + { + auto &qr = *m_qrcode; + for (uint8_t y = 0; y < qr.size; y++) { + for (uint8_t x = 0; x < qr.size; x++) { + if (qrcode_getModule(&qr, x, y)) + { + tft.drawPixel(x+2,y+2, espgui::TFT_BLACK); + } else { + tft.drawPixel(x+2,y+2, espgui::TFT_WHITE); + } + } + } + + m_qrcode.reset(); + } +} + +void QrCodeDebugDisplay::buttonPressed(espgui::Button button) +{ + Base::buttonPressed(button); + + switch (button) + { + using espgui::Button; + case Button::Left: popScreen(); break; + case Button::Right: + { + uint8_t qrcodeBytes[qrcode_getBufferSize(7)]; + qrcode_initText(&*m_qrcode, qrcodeBytes, 7, ECC_MEDIUM, fmt::format("WIFI:T:WPA;S:{};P:{};", configs.wifiApName.value(), configs.wifiApKey.value()).c_str()); + break; + } + default:; + } +} +} // namespace bobby diff --git a/main/displays/qrcodedebug.h b/main/screens/qrcodedebug.h similarity index 54% rename from main/displays/qrcodedebug.h rename to main/screens/qrcodedebug.h index 8782625..cdccf1c 100644 --- a/main/displays/qrcodedebug.h +++ b/main/screens/qrcodedebug.h @@ -1,10 +1,15 @@ #pragma once +// system includes +#include + // 3rdparty lib includes #include // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplay.h" + +namespace bobby { class QrCodeDebugDisplay : public BobbyDisplay @@ -12,12 +17,11 @@ class QrCodeDebugDisplay : using Base = BobbyDisplay; public: - QrCodeDebugDisplay(); - - void initScreen() override; + void redraw(espgui::TftInterface &tft) override; void buttonPressed(espgui::Button button) override; private: - QRCode m_qrcode; + std::optional m_qrcode; }; +} // namespace bobby diff --git a/main/displays/qrdisplay.cpp b/main/screens/qrdisplay.cpp similarity index 98% rename from main/displays/qrdisplay.cpp rename to main/screens/qrdisplay.cpp index 2663d71..29715cb 100644 --- a/main/displays/qrdisplay.cpp +++ b/main/screens/qrdisplay.cpp @@ -1,5 +1,6 @@ #include "qrdisplay.h" +namespace bobby { // this only works for ECC_MEDIUM uint16_t get_qrver_from_strlen(std::string_view str) { @@ -87,3 +88,4 @@ uint16_t get_qrver_from_strlen(std::string_view str) else return 40; } +} // namespace bobby diff --git a/main/displays/qrdisplay.h b/main/screens/qrdisplay.h similarity index 81% rename from main/displays/qrdisplay.h rename to main/screens/qrdisplay.h index d48d4f7..4313793 100644 --- a/main/displays/qrdisplay.h +++ b/main/screens/qrdisplay.h @@ -3,10 +3,13 @@ // 3rd party includes #include #include -#include +#include +#include // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplay.h" + +namespace bobby { uint16_t get_qrver_from_strlen(std::string_view str); @@ -17,7 +20,7 @@ class QrDisplay : public BobbyDisplay public: explicit QrDisplay(std::string_view msg) : m_msg{msg} {} - void initScreen() override + void initScreen(espgui::TftInterface &tft) override { using namespace espgui; QRCode qrcode; @@ -29,15 +32,15 @@ public: const uint8_t x_offset = (tft.width() - qrcode.size * multiplier) / 2; const uint8_t y_offset = (tft.height() - qrcode.size * multiplier) / 2; - tft.fillScreen(TFT_WHITE); + tft.fillScreen(espgui::TFT_WHITE); for (uint8_t y = 0; y < qrcode.size; y++) { for (uint8_t x = 0; x < qrcode.size; x++) { if (qrcode_getModule(&qrcode, x, y)) { - tft.fillRect(x*multiplier+x_offset,y*multiplier+y_offset, multiplier, multiplier, TFT_BLACK); + tft.fillRect(x*multiplier+x_offset,y*multiplier+y_offset, multiplier, multiplier, espgui::TFT_BLACK); } else { - tft.fillRect(x*multiplier+x_offset,y*multiplier+y_offset, multiplier, multiplier, TFT_WHITE); + tft.fillRect(x*multiplier+x_offset,y*multiplier+y_offset, multiplier, multiplier, espgui::TFT_WHITE); } } } @@ -60,3 +63,4 @@ public: private: std::string_view m_msg; }; +} // namespace bobby diff --git a/main/displays/qrimportdisplay.cpp b/main/screens/qrimportdisplay.cpp similarity index 77% rename from main/displays/qrimportdisplay.cpp rename to main/screens/qrimportdisplay.cpp index ae6ea26..d228bde 100644 --- a/main/displays/qrimportdisplay.cpp +++ b/main/screens/qrimportdisplay.cpp @@ -1,15 +1,20 @@ #include "qrimportdisplay.h" +// 3rdparty lib includes +#include + +namespace bobby { + namespace { constexpr const char * const TAG = "qrimport"; -} +} // namespace -void QrImportDisplay::start() +void QrImportDisplay::initScreen(espgui::TftInterface &tft) { using namespace espgui; - Base::start(); + Base::initScreen(tft); - m_statuslabel.start(); + m_statuslabel.start(tft); qrimport::setup_request(); @@ -49,26 +54,23 @@ void QrImportDisplay::update() ESP_LOGW(TAG, "failed %.*s => %.*s", m_nvs_key.size(), m_nvs_key.data(), m_result.error().size(), m_result.error().data()); } -void QrImportDisplay::redraw() +void QrImportDisplay::redraw(espgui::TftInterface &tft) { using namespace espgui; - Base::redraw(); + Base::redraw(tft); if (m_waitingForResult) { - tft.setTextColor(TFT_YELLOW, TFT_BLACK); - m_statuslabel.redraw("In progress"); + m_statuslabel.redraw(tft, "In progress", TFT_YELLOW, TFT_BLACK, 4); } else if (!m_result && !m_result.error().empty()) { - tft.setTextColor(TFT_RED, TFT_BLACK); - BobbyErrorHandler{}.errorOccurred(fmt::format("Error: {}", m_result.error())); + BobbyErrorHandler{}.errorOccurred(fmt::format("&1Error: {}&6", m_result.error())); m_result.error().clear(); } else { - tft.setTextColor(TFT_GREEN, TFT_BLACK); - m_statuslabel.redraw("OK"); + m_statuslabel.redraw(tft, "OK", TFT_GREEN, TFT_BLACK, 4); popScreen(); } } @@ -90,3 +92,4 @@ void QrImportDisplay::buttonPressed(espgui::Button button) default:; } } +} // namespace bobby diff --git a/main/screens/qrimportdisplay.h b/main/screens/qrimportdisplay.h new file mode 100644 index 0000000..42ef075 --- /dev/null +++ b/main/screens/qrimportdisplay.h @@ -0,0 +1,48 @@ +#pragma once + +// esp-idf includes +#include + +// 3rd party includes +#include +#include +#include +#include + +// local includes +#include "guihelpers/bobbydisplay.h" +#include "guihelpers/bobbyerrorhandler.h" +#include "qrimport.h" +#include "screenmanager.h" + +namespace bobby { + +class QrImportDisplay : public BobbyDisplay +{ + using Base = BobbyDisplay; + +public: + explicit QrImportDisplay(const std::string &nvs_key, espgui::TftInterface &tft) : + m_statuslabel{5,(tft.height() / 2)-tft.fontHeight(4)}, + m_nvs_key{nvs_key} + {} + + explicit QrImportDisplay(std::string &&nvs_key, espgui::TftInterface &tft) : + m_statuslabel{5,(tft.height() / 2)-tft.fontHeight(4)}, + m_nvs_key{std::move(nvs_key)} + {} + + void initScreen(espgui::TftInterface &tft) override; + void update() override; + void redraw(espgui::TftInterface &tft) override; + void buttonPressed(espgui::Button button) override; + +private: + bool m_waitingForResult{false}; + espgui::Label m_statuslabel; + + tl::expected m_result; + std::string m_nvs_key; +}; + +} // namespace bobby diff --git a/main/screens/rebootscreen.cpp b/main/screens/rebootscreen.cpp new file mode 100644 index 0000000..4ed75ee --- /dev/null +++ b/main/screens/rebootscreen.cpp @@ -0,0 +1,27 @@ +#include "rebootscreen.h" + +// esp-idf includes +#include + +// 3rdparty lib includes +#include +#include + +namespace bobby { +void RebootScreen::initScreen(espgui::TftInterface &tft) +{ + Base::initScreen(tft); + + tft.drawString("Rebooting...", 0, 50, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + + esp_restart(); +} + +std::string RebootScreen::text() const +{ + return "Reboot"; +} + +void RebootScreen::buttonPressed(espgui::Button button) {} +void RebootScreen::buttonReleased(espgui::Button button) {} +} // namespace bobby diff --git a/main/screens/rebootscreen.h b/main/screens/rebootscreen.h new file mode 100644 index 0000000..d969a14 --- /dev/null +++ b/main/screens/rebootscreen.h @@ -0,0 +1,22 @@ +#pragma once + +// 3rdparty lib includes +#include + +// local includes +#include "guihelpers/bobbydisplaywithtitle.h" + +namespace bobby { +class RebootScreen : public BobbyDisplayWithTitle +{ + using Base = BobbyDisplayWithTitle; + +public: + void initScreen(espgui::TftInterface &tft) override; + + std::string text() const override; + + void buttonPressed(espgui::Button button) override; + void buttonReleased(espgui::Button button) override; +}; +} // namespace bobby diff --git a/main/displays/menus/recoverymenu.cpp b/main/screens/recoverymenu.cpp similarity index 78% rename from main/displays/menus/recoverymenu.cpp rename to main/screens/recoverymenu.cpp index fc621cf..6601c29 100644 --- a/main/displays/menus/recoverymenu.cpp +++ b/main/screens/recoverymenu.cpp @@ -1,16 +1,19 @@ #include "recoverymenu.h" -// 3dparty lib includes +// 3rdparty lib includes +#include #include // local includes -#include "actions/rebootaction.h" #include "actions/resetnvsaction.h" -#include "bobbycheckbox.h" -#include "bobbyerrorhandler.h" +#include "guihelpers/bobbycheckbox.h" +#include "guihelpers/bobbyerrorhandler.h" #include "icons/info.h" #include "icons/reboot.h" #include "newsettings.h" +#include "screens/rebootscreen.h" + +namespace bobby { namespace { constexpr char TEXT_RESET_NVS[] = "Reset NVS"; @@ -50,11 +53,12 @@ RecoveryMenu::RecoveryMenu() configs.callForEveryFeature([&](ConfiguredFeatureFlag &feature){ constructMenuItem(feature); }); - constructMenuItem, ResetNVSAction, StaticMenuItemIcon<&bobbyicons::info>>>(); - constructMenuItem, RebootAction, StaticMenuItemIcon<&bobbyicons::reboot>>>(); + constructMenuItem, ResetNVSAction, StaticMenuItemIcon<&bobbyicons::info>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::reboot>>>(); } std::string RecoveryMenu::text() const { return "Recovery Menu"; } +} // namespace bobby diff --git a/main/displays/menus/recoverymenu.h b/main/screens/recoverymenu.h similarity index 72% rename from main/displays/menus/recoverymenu.h rename to main/screens/recoverymenu.h index 16cc3d1..aad1bf3 100644 --- a/main/displays/menus/recoverymenu.h +++ b/main/screens/recoverymenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class RecoveryMenu : public BobbyMenuDisplay { @@ -14,3 +16,4 @@ public: void back() override {} }; +} // namespace bobby diff --git a/main/displays/menus/remotecontrolmodesettingsmenu.cpp b/main/screens/remotecontrolmodesettingsmenu.cpp similarity index 94% rename from main/displays/menus/remotecontrolmodesettingsmenu.cpp rename to main/screens/remotecontrolmodesettingsmenu.cpp index 54b5c46..5d498ef 100644 --- a/main/displays/menus/remotecontrolmodesettingsmenu.cpp +++ b/main/screens/remotecontrolmodesettingsmenu.cpp @@ -10,7 +10,9 @@ // local includes #include "accessors/settingsaccessors.h" #include "changevaluedisplay_unifiedmodelmode.h" -#include "displays/bobbychangevaluedisplay.h" +#include "guihelpers/bobbychangevaluedisplay.h" + +namespace bobby { namespace { constexpr char TEXT_REMOTEMODESETTINGS[] = "Remote mode settings"; @@ -43,3 +45,4 @@ void RemoteControlModeSettingsMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/remotecontrolmodesettingsmenu.h b/main/screens/remotecontrolmodesettingsmenu.h similarity index 72% rename from main/displays/menus/remotecontrolmodesettingsmenu.h rename to main/screens/remotecontrolmodesettingsmenu.h index f5769d4..ac2002a 100644 --- a/main/displays/menus/remotecontrolmodesettingsmenu.h +++ b/main/screens/remotecontrolmodesettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class RemoteControlModeSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/screens/resetnvsscreen.cpp b/main/screens/resetnvsscreen.cpp new file mode 100644 index 0000000..abd5446 --- /dev/null +++ b/main/screens/resetnvsscreen.cpp @@ -0,0 +1,33 @@ +#include "resetnvsscreen.h" + +// esp-idf includes +#include + +// 3rdparty lib includes +#include +#include + +// local includes +#include "newsettings.h" + +namespace bobby { +void ResetNVSScreen::initScreen(espgui::TftInterface &tft) +{ + Base::initScreen(tft); + + tft.drawString("Rebooting...", 0, 50, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + + configs.reset(); + + esp_restart(); +} + +std::string ResetNVSScreen::text() const +{ + return "Reset NVS"; +} + +void ResetNVSScreen::buttonPressed(espgui::Button button) {} + +void ResetNVSScreen::buttonReleased(espgui::Button button) {} +} // namespace bobby diff --git a/main/screens/resetnvsscreen.h b/main/screens/resetnvsscreen.h new file mode 100644 index 0000000..48a1091 --- /dev/null +++ b/main/screens/resetnvsscreen.h @@ -0,0 +1,22 @@ +#pragma once + +// 3rdparty lib includes +#include + +// local includes +#include "guihelpers/bobbydisplaywithtitle.h" + +namespace bobby { +class ResetNVSScreen : public BobbyDisplayWithTitle +{ + using Base = BobbyDisplayWithTitle; + +public: + void initScreen(espgui::TftInterface &tft) override; + + std::string text() const override; + + void buttonPressed(espgui::Button button) override; + void buttonReleased(espgui::Button button) override; +}; +} // namespace bobby diff --git a/main/displays/menus/selectbatterytypemenu.cpp b/main/screens/selectbatterytypemenu.cpp similarity index 96% rename from main/displays/menus/selectbatterytypemenu.cpp rename to main/screens/selectbatterytypemenu.cpp index 7bba839..0d9e21b 100644 --- a/main/displays/menus/selectbatterytypemenu.cpp +++ b/main/screens/selectbatterytypemenu.cpp @@ -1,19 +1,21 @@ #include "selectbatterytypemenu.h" // 3rdparty lib includes -#include -#include -#include #include #include +#include +#include +#include // local includes #include "battery.h" +#include "batterymenu.h" +#include "screens/batterymenu.h" +#include "screens/mainmenu.h" #include "newsettings.h" #include "utils.h" -#include "displays/menus/batterymenu.h" -#include "batterymenu.h" -#include "displays/menus/mainmenu.h" + +namespace bobby { namespace { constexpr char TEXT_CELL_SERIES[] = "Cells (Series)"; @@ -69,3 +71,4 @@ void BatteryTypeMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/selectbuildserverbranch.cpp b/main/screens/selectbuildserverbranch.cpp similarity index 91% rename from main/displays/menus/selectbuildserverbranch.cpp rename to main/screens/selectbuildserverbranch.cpp index 88d0ae0..e322f35 100644 --- a/main/displays/menus/selectbuildserverbranch.cpp +++ b/main/screens/selectbuildserverbranch.cpp @@ -1,23 +1,21 @@ #include "selectbuildserverbranch.h" // 3rd party includes +#include +#include #include -#include "actions/dummyaction.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" +#include +#include +#include // local includes -#include "actions/dummyaction.h" -#include "actions/switchscreenaction.h" -#include "bobbyerrorhandler.h" #include "buildserver.h" -#include "displays/menus/otamenu.h" -#include "icons/back.h" -#include "buildserver.h" -#include "globals.h" +#include "guihelpers/bobbyerrorhandler.h" #include "icons/reboot.h" #include "newsettings.h" +namespace bobby { + namespace { constexpr char TEXT_OTA_NOBUILDSERVERAVAILABLE[] = "E:No server saved."; constexpr char TEXT_OTA_NOBUILDSERVERSELECTED[] = "E:No server selected."; @@ -89,7 +87,7 @@ SelectBuildserverBranchMenu::SelectBuildserverBranchMenu() using namespace buildserver; #define ERR_MESSAGE(text) \ - constructMenuItem, DefaultFont, StaticColor, DummyAction>>(); \ + constructMenuItem, DefaultFont, StaticColor, DummyAction>>(); \ constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); \ return; @@ -158,3 +156,4 @@ void SelectBuildserverBranchMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/selectbuildserverbranch.h b/main/screens/selectbuildserverbranch.h similarity index 77% rename from main/displays/menus/selectbuildserverbranch.h rename to main/screens/selectbuildserverbranch.h index 65f5eda..29f63c4 100644 --- a/main/displays/menus/selectbuildserverbranch.h +++ b/main/screens/selectbuildserverbranch.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class SelectBuildserverBranchMenu : public BobbyMenuDisplay { @@ -14,3 +16,4 @@ public: void update() override; void back() override; }; +} // namespace bobby diff --git a/main/displays/menus/selectbuildservermenu.cpp b/main/screens/selectbuildservermenu.cpp similarity index 93% rename from main/displays/menus/selectbuildservermenu.cpp rename to main/screens/selectbuildservermenu.cpp index 15bd240..338026b 100644 --- a/main/displays/menus/selectbuildservermenu.cpp +++ b/main/screens/selectbuildservermenu.cpp @@ -4,15 +4,19 @@ #include // 3rdparty lib includes +#include #include #include #include -#include +#include +#include // local includes #include "buildserver.h" -#include "utils.h" #include "newsettings.h" +#include "utils.h" + +namespace bobby { using namespace buildserver::SelectBuild; @@ -65,7 +69,7 @@ SelectBuildServerMenu::SelectBuildServerMenu() if (menuItemCount() < 1) { - constructMenuItem, DefaultFont, StaticColor, DummyAction>>(); + constructMenuItem, DefaultFont, StaticColor, DummyAction>>(); } constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); @@ -80,3 +84,4 @@ void SelectBuildServerMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/selectbuildservermenu.h b/main/screens/selectbuildservermenu.h similarity index 71% rename from main/displays/menus/selectbuildservermenu.h rename to main/screens/selectbuildservermenu.h index 7a3b26e..0928bf3 100644 --- a/main/displays/menus/selectbuildservermenu.h +++ b/main/screens/selectbuildservermenu.h @@ -1,9 +1,9 @@ #pragma once -// 3rdparty lib includes - // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class SelectBuildServerMenu : public BobbyMenuDisplay { @@ -14,3 +14,4 @@ public: void back() override; }; +} // namespace bobby diff --git a/main/displays/menus/selectmodemenu.cpp b/main/screens/selectmodemenu.cpp similarity index 99% rename from main/displays/menus/selectmodemenu.cpp rename to main/screens/selectmodemenu.cpp index 8c90ca4..e03148f 100644 --- a/main/displays/menus/selectmodemenu.cpp +++ b/main/screens/selectmodemenu.cpp @@ -23,6 +23,8 @@ #include "accessors/globalaccessors.h" #include "mainmenu.h" +namespace bobby { + namespace { constexpr char TEXT_SELECTMODE[] = "Select mode"; constexpr char TEXT_DEFAULT[] = "Default"; @@ -116,3 +118,4 @@ void SelectModeMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/selectmodemenu.h b/main/screens/selectmodemenu.h similarity index 75% rename from main/displays/menus/selectmodemenu.h rename to main/screens/selectmodemenu.h index 73d6c50..e2eb342 100644 --- a/main/displays/menus/selectmodemenu.h +++ b/main/screens/selectmodemenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class SelectModeMenu : public BobbyMenuDisplay { @@ -15,3 +17,4 @@ public: void start() override; void back() override; }; +} // namespace bobby diff --git a/main/displays/menus/selectotabuildmenu.cpp b/main/screens/selectotabuildmenu.cpp similarity index 88% rename from main/displays/menus/selectotabuildmenu.cpp rename to main/screens/selectotabuildmenu.cpp index e940724..d4945f1 100644 --- a/main/displays/menus/selectotabuildmenu.cpp +++ b/main/screens/selectotabuildmenu.cpp @@ -1,24 +1,26 @@ #include "selectotabuildmenu.h" // 3rdparty lib includes -#include -#include +#include +#include +#include #include +#include +#include +#include +#include // local includes -#include "actions/dummyaction.h" -#include "actions/popscreenaction.h" -#include "actions/pushscreenaction.h" -#include "bobbyerrorhandler.h" #include "buildserver.h" -#include "buildserver.h" -#include "displays/menus/otamenu.h" +#include "screens/otamenu.h" #include "globals.h" -#include "icons/back.h" +#include "guihelpers/bobbyerrorhandler.h" #include "newsettings.h" #include "utils.h" -#define MESSAGE(text) constructMenuItem, DefaultFont, StaticColor, DummyAction>>() +namespace bobby { + +#define MESSAGE(text) constructMenuItem, DefaultFont, StaticColor, DummyAction>>() using namespace espgui; using namespace buildserver::SelectBuild; @@ -82,7 +84,7 @@ SelectBuildMenu::SelectBuildMenu() std::string serverUrl = configs.otaServerUrl.value(); if (serverUrl.substr(serverUrl.length() - 4) == ".bin") { - auto &menuitem = constructMenuItem>(); + auto &menuitem = constructMenuItem>(); std::size_t last_slash_index = serverUrl.find_last_of("/"); auto filename = serverUrl.substr(last_slash_index+1); auto hash = filename.substr(0, filename.length() - 4); @@ -129,13 +131,13 @@ void SelectBuildMenu::update() void SelectBuildMenu::buildMenuFromJson() { - auto &latest = constructMenuItem>(); + auto &latest = constructMenuItem>(); latest.setHash("latest"); latest.setUrl(url_for_latest); for (const std::string &hash : availableVersions) { - auto &menuitem = constructMenuItem>(); + auto &menuitem = constructMenuItem>(); menuitem.setHash(hash); menuitem.setUrl(fmt::format(fmt::runtime(url_for_hashes), hash)); } @@ -146,3 +148,5 @@ void SelectBuildMenu::back() { popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/selectotabuildmenu.h b/main/screens/selectotabuildmenu.h similarity index 77% rename from main/displays/menus/selectotabuildmenu.h rename to main/screens/selectotabuildmenu.h index efb434a..ff00875 100644 --- a/main/displays/menus/selectotabuildmenu.h +++ b/main/screens/selectotabuildmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class SelectBuildMenu : public BobbyMenuDisplay { @@ -18,3 +20,5 @@ public: private: void buildMenuFromJson(); }; + +} // namespace bobby diff --git a/main/displays/menus/settingsmenu.cpp b/main/screens/settingsmenu.cpp similarity index 89% rename from main/displays/menus/settingsmenu.cpp rename to main/screens/settingsmenu.cpp index b26e076..5c6d30e 100644 --- a/main/displays/menus/settingsmenu.cpp +++ b/main/screens/settingsmenu.cpp @@ -5,30 +5,14 @@ #include #include #include +#include #include // local includes #include "accessors/settingsaccessors.h" -#include "bobbycheckbox.h" -#include "displays/bobbychangevaluedisplay.h" -#include "displays/menus/aboutmenu.h" -#include "displays/menus/blesettingsmenu.h" -#include "displays/menus/bluetoothsettingsmenu.h" -#include "displays/menus/boardcomputerhardwaresettingsmenu.h" -#include "displays/menus/buzzermenu.h" -#include "displays/menus/cloudsettingsmenu.h" -#include "displays/menus/controllerhardwaresettingsmenu.h" -#include "displays/menus/crashmenu.h" -#include "displays/menus/espnowmenu.h" -#include "displays/menus/featureflagsmenu.h" -#include "displays/menus/gitmenu.h" -#include "displays/menus/limitssettingsmenu.h" -#include "displays/menus/modessettingsmenu.h" -#include "displays/menus/networksettingsmenu.h" -#include "displays/menus/selectbuildservermenu.h" -#include "displays/menus/timesettingsmenu.h" -#include "displays/menus/udpcloudsettingsmenu.h" #include "globals.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "guihelpers/bobbycheckbox.h" #include "icons/bluetooth.h" #include "icons/buzzer.h" #include "icons/demos.h" @@ -38,6 +22,25 @@ #include "icons/time.h" #include "icons/update.h" #include "icons/wifi.h" +#include "screens/aboutmenu.h" +#include "screens/blesettingsmenu.h" +#include "screens/bluetoothsettingsmenu.h" +#include "screens/boardcomputerhardwaresettingsmenu.h" +#include "screens/buzzermenu.h" +#include "screens/cloudsettingsmenu.h" +#include "screens/controllerhardwaresettingsmenu.h" +#include "screens/crashmenu.h" +#include "screens/espnowmenu.h" +#include "screens/featureflagsmenu.h" +#include "screens/gitmenu.h" +#include "screens/limitssettingsmenu.h" +#include "screens/modessettingsmenu.h" +#include "screens/networksettingsmenu.h" +#include "screens/selectbuildservermenu.h" +#include "screens/timesettingsmenu.h" +#include "screens/udpcloudsettingsmenu.h" + +namespace bobby { namespace { constexpr char TEXT_SETTINGS[] = "Settings"; @@ -148,3 +151,4 @@ void SettingsMenu::back() { popScreen(); } +} // namespace bobby diff --git a/main/screens/settingsmenu.h b/main/screens/settingsmenu.h new file mode 100644 index 0000000..589fd07 --- /dev/null +++ b/main/screens/settingsmenu.h @@ -0,0 +1,17 @@ +#pragma once + +// local includes +#include "guihelpers/menudisplaywithtime.h" + +namespace bobby { + +class SettingsMenu : public bobby::MenuDisplayWithTime +{ +public: + SettingsMenu(); + + std::string text() const override; + + void back() override; +}; +} // namespace bobby diff --git a/main/displays/setup/ask_calibrate_other_buttons.cpp b/main/screens/setup/ask_calibrate_other_buttons.cpp similarity index 78% rename from main/displays/setup/ask_calibrate_other_buttons.cpp rename to main/screens/setup/ask_calibrate_other_buttons.cpp index e641d13..32777c1 100644 --- a/main/displays/setup/ask_calibrate_other_buttons.cpp +++ b/main/screens/setup/ask_calibrate_other_buttons.cpp @@ -4,20 +4,22 @@ #include // local includes -#include "displays/menus/extrabuttoncalibratemenu.h" -#include "displays/setup/final_information.h" +#include "screens/extrabuttoncalibratemenu.h" +#include "screens/setup/final_information.h" #include "setup.h" #include "utils.h" +namespace bobby { + namespace { constexpr char const askSetupOtherButtonsText[] = "Do you want to setup other\nbuttons?\n(Blinker, Profile Buttons, etc.)\n\nPress LEFT to skip other buttons.\nPress RIGHT to setup buttons."; } // namespace -void SetupAskCalibrateOtherButtonsDisplay::initScreen() +void SetupAskCalibrateOtherButtonsDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); - drawLargeText(askSetupOtherButtonsText); + drawLargeText(tft, askSetupOtherButtonsText); } void SetupAskCalibrateOtherButtonsDisplay::start() @@ -54,3 +56,4 @@ std::string SetupAskCalibrateOtherButtonsDisplay::text() const { return "Other Buttons"; } +} // namespace bobby diff --git a/main/displays/setup/ask_calibrate_other_buttons.h b/main/screens/setup/ask_calibrate_other_buttons.h similarity index 70% rename from main/displays/setup/ask_calibrate_other_buttons.h rename to main/screens/setup/ask_calibrate_other_buttons.h index e1a0a3c..02cb406 100644 --- a/main/displays/setup/ask_calibrate_other_buttons.h +++ b/main/screens/setup/ask_calibrate_other_buttons.h @@ -1,13 +1,15 @@ #pragma once // local includes -#include "displays/bobbydisplaywithtitle.h" +#include "guihelpers/bobbydisplaywithtitle.h" + +namespace bobby { class SetupAskCalibrateOtherButtonsDisplay : public virtual BobbyDisplayWithTitle { using Base = BobbyDisplayWithTitle; public: - void initScreen() override; + void initScreen(espgui::TftInterface &tft) override; void start() override; void buttonPressed(espgui::Button button) override; @@ -16,3 +18,4 @@ public: private: bool m_next_screen{false}; }; +} // namespace bobby diff --git a/main/displays/setup/ask_setup_clouds.cpp b/main/screens/setup/ask_setup_clouds.cpp similarity index 81% rename from main/displays/setup/ask_setup_clouds.cpp rename to main/screens/setup/ask_setup_clouds.cpp index 383c53b..0ab5370 100644 --- a/main/displays/setup/ask_setup_clouds.cpp +++ b/main/screens/setup/ask_setup_clouds.cpp @@ -4,21 +4,23 @@ #include // local includes -#include "displays/setup/ask_calibrate_other_buttons.h" -#include "displays/setup/setup_cloud.h" +#include "screens/setup/ask_calibrate_other_buttons.h" +#include "screens/setup/setup_cloud.h" #include "setup.h" #include "taskmanager.h" #include "utils.h" +namespace bobby { + namespace { constexpr char const askCloudText[] = "Do you want to setup cloud?\nWith this, you will be able\nto send data to graphana,\nremote control things like Buttons\nand NVS and more!\n\nPress LEFT to skip cloud.\nPress RIGHT to setup cloud."; } // namespace -void SetupAskSetupCloudsDisplay::initScreen() +void SetupAskSetupCloudsDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); - drawLargeText(askCloudText); + drawLargeText(tft, askCloudText); } void SetupAskSetupCloudsDisplay::start() @@ -51,3 +53,4 @@ std::string SetupAskSetupCloudsDisplay::text() const { return "Cloud Setup"; } +} // namespace bobby diff --git a/main/displays/setup/ask_setup_clouds.h b/main/screens/setup/ask_setup_clouds.h similarity index 67% rename from main/displays/setup/ask_setup_clouds.h rename to main/screens/setup/ask_setup_clouds.h index 0a80598..dc6b5c4 100644 --- a/main/displays/setup/ask_setup_clouds.h +++ b/main/screens/setup/ask_setup_clouds.h @@ -1,16 +1,19 @@ #pragma once // local includes -#include "displays/bobbydisplaywithtitle.h" +#include "guihelpers/bobbydisplaywithtitle.h" + +namespace bobby { class SetupAskSetupCloudsDisplay : public virtual BobbyDisplayWithTitle { using Base = BobbyDisplayWithTitle; public: - void initScreen() override; + void initScreen(espgui::TftInterface &tft) override; void start() override; void buttonPressed(espgui::Button button) override; [[nodiscard]] std::string text() const override; }; +} // namespace bobby diff --git a/main/displays/setup/basic_buttons.cpp b/main/screens/setup/basic_buttons.cpp similarity index 74% rename from main/displays/setup/basic_buttons.cpp rename to main/screens/setup/basic_buttons.cpp index 5c47178..187d0a1 100644 --- a/main/displays/setup/basic_buttons.cpp +++ b/main/screens/setup/basic_buttons.cpp @@ -5,25 +5,28 @@ // 3rdparty lib includes #include -#include +#include +#include // local includes -#include "bobbyerrorhandler.h" -#include "displays/setup/calibrate_potis.h" +#include "guihelpers/bobbyerrorhandler.h" +#include "screens/setup/calibrate_potis.h" #include "setup.h" #include "utils.h" +namespace bobby { + namespace { constexpr char const buttonText[] = "Please press the highlighted\n buttons!"; constexpr const char * const TAG = "SETUP-BUTTONS"; } -void SetupBasicButtonsDisplay::initScreen() +void SetupBasicButtonsDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); - drawLargeText(buttonText); - drawButtons(m_button_cal_status); + drawLargeText(tft, buttonText); + drawButtons(tft, m_button_cal_status); } void SetupBasicButtonsDisplay::start() @@ -58,11 +61,6 @@ void SetupBasicButtonsDisplay::update() Base::update(); } -void SetupBasicButtonsDisplay::redraw() -{ - Base::redraw(); -} - void SetupBasicButtonsDisplay::rawButtonPressed(uint8_t button) { if (m_button_cal_status == FINISHED) @@ -102,7 +100,7 @@ void SetupBasicButtonsDisplay::rawButtonPressed(uint8_t button) } } - drawButtons(m_button_cal_status); + m_button_rerender_needed = true; Base::rawButtonPressed(button); } @@ -168,7 +166,16 @@ void SetupBasicButtonsDisplay::saveButtons() const } } -void SetupBasicButtonsDisplay::drawButtons(const SetupBasicButtonsDisplay::CurrentButton button) +void SetupBasicButtonsDisplay::redraw(espgui::TftInterface &tft) +{ + if (m_button_rerender_needed) + { + m_button_rerender_needed = false; + drawButtons(tft, m_button_cal_status); + } +} + +void SetupBasicButtonsDisplay::drawButtons(espgui::TftInterface &tft, const SetupBasicButtonsDisplay::CurrentButton button) { using namespace espgui; @@ -191,15 +198,15 @@ void SetupBasicButtonsDisplay::drawButtons(const SetupBasicButtonsDisplay::Curre const auto right_x = x_mid + offset; const auto right_y = y_mid; - tft.fillCircle(up_x, up_y, radius-subtract, TFT_BLACK); - tft.fillCircle(down_x, down_y, radius-subtract, TFT_BLACK); - tft.fillCircle(left_x, left_y, radius-subtract, TFT_BLACK); - tft.fillCircle(right_x, right_y, radius-subtract, TFT_BLACK); + tft.fillCircle(up_x, up_y, radius-subtract, espgui::TFT_BLACK); + tft.fillCircle(down_x, down_y, radius-subtract, espgui::TFT_BLACK); + tft.fillCircle(left_x, left_y, radius-subtract, espgui::TFT_BLACK); + tft.fillCircle(right_x, right_y, radius-subtract, espgui::TFT_BLACK); - tft.drawCircle(up_x, up_y, radius, TFT_WHITE); - tft.drawCircle(down_x, down_y, radius, TFT_WHITE); - tft.drawCircle(left_x, left_y, radius, TFT_WHITE); - tft.drawCircle(right_x, right_y, radius, TFT_WHITE); + tft.drawCircle(up_x, up_y, radius, espgui::TFT_WHITE); + tft.drawCircle(down_x, down_y, radius, espgui::TFT_WHITE); + tft.drawCircle(left_x, left_y, radius, espgui::TFT_WHITE); + tft.drawCircle(right_x, right_y, radius, espgui::TFT_WHITE); if (m_button_cal_finished) { @@ -209,22 +216,23 @@ void SetupBasicButtonsDisplay::drawButtons(const SetupBasicButtonsDisplay::Curre switch(button) { case UP: - tft.fillCircle(up_x, up_y, radius-subtract, m_lastButton ? TFT_YELLOW : TFT_WHITE); + tft.fillCircle(up_x, up_y, radius-subtract, m_lastButton ? espgui::TFT_YELLOW : espgui::TFT_WHITE); break; case DOWN: - tft.fillCircle(down_x, down_y, radius-subtract, m_lastButton ? TFT_YELLOW : TFT_WHITE); + tft.fillCircle(down_x, down_y, radius-subtract, m_lastButton ? espgui::TFT_YELLOW : espgui::TFT_WHITE); break; case LEFT: - tft.fillCircle(left_x, left_y, radius-subtract, m_lastButton ? TFT_YELLOW : TFT_WHITE); + tft.fillCircle(left_x, left_y, radius-subtract, m_lastButton ? espgui::TFT_YELLOW : espgui::TFT_WHITE); break; case RIGHT: - tft.fillCircle(right_x, right_y, radius-subtract, m_lastButton ? TFT_YELLOW : TFT_WHITE); + tft.fillCircle(right_x, right_y, radius-subtract, m_lastButton ? espgui::TFT_YELLOW : espgui::TFT_WHITE); break; default:; } if (m_button_cal_status == FINISHED) { - tft.fillCircle(right_x, right_y, radius-subtract, TFT_GREEN); + tft.fillCircle(right_x, right_y, radius-subtract, espgui::TFT_GREEN); } } +} // namespace bobby diff --git a/main/displays/setup/basic_buttons.h b/main/screens/setup/basic_buttons.h similarity index 74% rename from main/displays/setup/basic_buttons.h rename to main/screens/setup/basic_buttons.h index 88853fa..c086ff7 100644 --- a/main/displays/setup/basic_buttons.h +++ b/main/screens/setup/basic_buttons.h @@ -3,8 +3,13 @@ // system includes #include +// 3rdparty lib includes +#include + // local includes -#include "displays/bobbydisplaywithtitle.h" +#include "guihelpers/bobbydisplaywithtitle.h" + +namespace bobby { class SetupBasicButtonsDisplay : public virtual BobbyDisplayWithTitle { @@ -23,10 +28,10 @@ public: m_early_return{early_return} {} - void initScreen() override; + void initScreen(espgui::TftInterface &tft) override; void start() override; void update() override; - void redraw() override; + void redraw(espgui::TftInterface &tft) override; void rawButtonPressed(uint8_t button) override; void rawButtonReleased(uint8_t button) override; @@ -45,7 +50,10 @@ private: bool m_button_cal_finished; + bool m_button_rerender_needed; + void saveButtons() const; - void drawButtons(CurrentButton button); + void drawButtons(espgui::TftInterface &tft, CurrentButton button); }; +} // namespace bobby diff --git a/main/displays/setup/calibrate_potis.cpp b/main/screens/setup/calibrate_potis.cpp similarity index 74% rename from main/displays/setup/calibrate_potis.cpp rename to main/screens/setup/calibrate_potis.cpp index 435e3ea..c133c6e 100644 --- a/main/displays/setup/calibrate_potis.cpp +++ b/main/screens/setup/calibrate_potis.cpp @@ -3,30 +3,30 @@ // 3rdparty lib includes #include #include -#include +#include +#include // local includes -#include "displays/setup/ask_setup_clouds.h" +#include "screens/setup/ask_setup_clouds.h" #include "globals.h" #include "setup.h" +namespace bobby { + using namespace espgui; -void SetupCalibratePotisDisplay::initScreen() +void SetupCalibratePotisDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); - tft.setTextFont(4); - tft.setTextColor(TFT_WHITE, TFT_BLACK); - - tft.drawString("gas:", 25, 47); - tft.drawString("brems:", 25, 147); + tft.drawString("gas:", 25, 47, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + tft.drawString("brems:", 25, 147, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); for (auto &label : m_labels) - label.start(); + label.start(tft); for (auto &progressBar : m_progressBars) - progressBar.start(); + progressBar.start(tft); m_renderedButton = -1; } @@ -58,41 +58,27 @@ void SetupCalibratePotisDisplay::update() m_brems = std::nullopt; } -void SetupCalibratePotisDisplay::redraw() +void SetupCalibratePotisDisplay::redraw(espgui::TftInterface &tft) { - Base::redraw(); + Base::redraw(tft); - m_labels[0].redraw(m_gas ? fmt::format("{:.02f}", *m_gas) : "?"); - m_labels[1].redraw(raw_gas ? std::to_string(*raw_gas) : "?"); - if (m_status == Status::GasMin) - espgui::tft.setTextColor(TFT_RED, TFT_BLACK); - m_labels[2].redraw(std::to_string(m_gasMin)); - if (m_status == Status::GasMin) - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - if (m_status == Status::GasMax) - espgui::tft.setTextColor(TFT_RED, TFT_BLACK); - m_labels[3].redraw(std::to_string(m_gasMax)); - if (m_status == Status::GasMax) - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); + m_labels[0].redraw(tft, m_gas ? fmt::format("{:.02f}", *m_gas) : "?", espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_labels[1].redraw(tft, raw_gas ? std::to_string(*raw_gas) : "?", espgui::TFT_WHITE, espgui::TFT_BLACK, 4); - m_progressBars[0].redraw(m_gas ? *m_gas : 0); + m_labels[2].redraw(tft, std::to_string(m_gasMin), (m_status == Status::GasMin) ? espgui::TFT_RED : espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_labels[3].redraw(tft, std::to_string(m_gasMax), (m_status == Status::GasMax) ? espgui::TFT_RED : espgui::TFT_WHITE, espgui::TFT_BLACK, 4); - m_labels[4].redraw(m_brems ? fmt::format("{:.02f}", *m_brems) : "?"); - m_labels[5].redraw(raw_brems ? std::to_string(*raw_brems) : "?"); - if (m_status == Status::BremsMin) - espgui::tft.setTextColor(TFT_RED, TFT_BLACK); - m_labels[6].redraw(std::to_string(m_bremsMin)); - if (m_status == Status::BremsMin) - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - if (m_status == Status::BremsMax) - espgui::tft.setTextColor(TFT_RED, TFT_BLACK); - m_labels[7].redraw(std::to_string(m_bremsMax)); - if (m_status == Status::BremsMax) - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); + m_progressBars[0].redraw(tft, m_gas ? *m_gas : 0); - m_progressBars[1].redraw(m_brems ? *m_brems : 0); + m_labels[4].redraw(tft, m_brems ? fmt::format("{:.02f}", *m_brems) : "?", espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_labels[5].redraw(tft, raw_brems ? std::to_string(*raw_brems) : "?", espgui::TFT_WHITE, espgui::TFT_BLACK, 4); - m_labels[8].redraw([&](){ + m_labels[6].redraw(tft, std::to_string(m_bremsMin), (m_status == Status::BremsMin) ? espgui::TFT_RED : espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_labels[7].redraw(tft, std::to_string(m_bremsMax), (m_status == Status::BremsMax) ? espgui::TFT_RED : espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + + m_progressBars[1].redraw(tft, m_brems ? *m_brems : 0); + + m_labels[8].redraw(tft, [&](){ switch (m_status) { case Status::Begin: return "Start calibrating?"; @@ -106,13 +92,12 @@ void SetupCalibratePotisDisplay::redraw() case Status::Confirm: return "Verify"; } __builtin_unreachable(); - }()); + }(), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); { const auto failed = !m_gas || !m_brems || (m_status == Status::Confirm && (*m_gas > 100 || *m_brems > 100)); - const auto color = failed ? TFT_DARKGREY : TFT_WHITE; - espgui::tft.setTextColor(color, TFT_BLACK); - m_labels[9].redraw([&](){ + const auto color = failed ? espgui::TFT_DARKGREY : espgui::TFT_WHITE; + m_labels[9].redraw(tft, [&](){ switch (m_status) { case Status::Begin: return "Yes"; @@ -126,14 +111,13 @@ void SetupCalibratePotisDisplay::redraw() case Status::Confirm: return "Save"; } __builtin_unreachable(); - }()); + }(), color, espgui::TFT_BLACK, 4); if (m_selectedButton != m_renderedButton && (m_selectedButton == 0 || m_renderedButton == 0)) - espgui::tft.drawRect(3, 275, 100, 27, m_selectedButton == 0 ? color : TFT_BLACK); + tft.drawRect(3, 275, 100, 27, m_selectedButton == 0 ? color : espgui::TFT_BLACK); } - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - m_labels[10].redraw([&](){ + m_labels[10].redraw(tft, [&](){ switch (m_status) { case Status::Begin: return "No"; @@ -147,10 +131,10 @@ void SetupCalibratePotisDisplay::redraw() case Status::Confirm: return "Abort"; } __builtin_unreachable(); - }()); + }(), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); if (m_selectedButton != m_renderedButton && (m_selectedButton == 1 || m_renderedButton == 1)) - espgui::tft.drawRect(123, 275, 100, 27, m_selectedButton == 1 ? TFT_WHITE : TFT_BLACK); + tft.drawRect(123, 275, 100, 27, m_selectedButton == 1 ? espgui::TFT_WHITE : espgui::TFT_BLACK); m_renderedButton = m_selectedButton; } @@ -307,3 +291,4 @@ void SetupCalibratePotisDisplay::copyToSettings() const configs.write_config(configs.bremsMin, m_bremsMin); configs.write_config(configs.bremsMax, m_bremsMax); } +} // namespace bobby diff --git a/main/displays/setup/calibrate_potis.h b/main/screens/setup/calibrate_potis.h similarity index 89% rename from main/displays/setup/calibrate_potis.h rename to main/screens/setup/calibrate_potis.h index 059238e..6c039f4 100644 --- a/main/displays/setup/calibrate_potis.h +++ b/main/screens/setup/calibrate_potis.h @@ -5,11 +5,14 @@ #include // 3rdparty lib includes +#include #include #include // local includes -#include "displays/bobbydisplaywithtitle.h" +#include "guihelpers/bobbydisplaywithtitle.h" + +namespace bobby { class SetupCalibratePotisDisplay : public virtual BobbyDisplayWithTitle { @@ -19,10 +22,10 @@ public: m_early_return{early_return} {} - void initScreen() override; + void initScreen(espgui::TftInterface &tft) override; void start() override; void update() override; - void redraw() override; + void redraw(espgui::TftInterface &tft) override; void stop() override; void buttonPressed(espgui::Button button) override; @@ -84,3 +87,4 @@ private: ; std::optional m_gas, m_brems; }; +} // namespace bobby diff --git a/main/displays/setup/final_information.cpp b/main/screens/setup/final_information.cpp similarity index 79% rename from main/displays/setup/final_information.cpp rename to main/screens/setup/final_information.cpp index d934f09..98990ba 100644 --- a/main/displays/setup/final_information.cpp +++ b/main/screens/setup/final_information.cpp @@ -4,23 +4,25 @@ #include // local includes -#include "displays/menus/extrabuttoncalibratemenu.h" -#include "displays/statusdisplay.h" +#include "screens/extrabuttoncalibratemenu.h" +#include "screens/statusdisplay.h" #include "newsettings.h" #include "setup.h" #include "utils.h" +namespace bobby { + using namespace std::chrono_literals; namespace { constexpr char const finalInformationText[] = "Setup is done!\nIf cloud is setup, go to\nhttps://service.bobbycar.cloud/\nand register this bobbycar!\nThis is also used\nto setup udp cloud.\nPress any button to exit."; } // namespace -void SetupFinalInformationDisplay::initScreen() +void SetupFinalInformationDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); - drawLargeText(finalInformationText); + drawLargeText(tft, finalInformationText); } void SetupFinalInformationDisplay::start() @@ -56,3 +58,4 @@ std::string SetupFinalInformationDisplay::text() const { return "All done!"; } +} // namespace bobby diff --git a/main/displays/setup/final_information.h b/main/screens/setup/final_information.h similarity index 72% rename from main/displays/setup/final_information.h rename to main/screens/setup/final_information.h index a56303a..d5003d0 100644 --- a/main/displays/setup/final_information.h +++ b/main/screens/setup/final_information.h @@ -4,13 +4,15 @@ #include // local includes -#include "displays/bobbydisplaywithtitle.h" +#include "guihelpers/bobbydisplaywithtitle.h" + +namespace bobby { class SetupFinalInformationDisplay : public virtual BobbyDisplayWithTitle { using Base = BobbyDisplayWithTitle; public: - void initScreen() override; + void initScreen(espgui::TftInterface &tft) override; void start() override; void stop() override; @@ -18,3 +20,4 @@ public: [[nodiscard]] std::string text() const override; }; +} // namespace bobby diff --git a/main/displays/setup/information.cpp b/main/screens/setup/information.cpp similarity index 65% rename from main/displays/setup/information.cpp rename to main/screens/setup/information.cpp index 53fec57..c5b5c04 100644 --- a/main/displays/setup/information.cpp +++ b/main/screens/setup/information.cpp @@ -2,25 +2,30 @@ // 3rdparty lib includes #include +#include // local includes -#include "displays/setup/basic_buttons.h" +#include "screens/setup/basic_buttons.h" #include "setup.h" #include "utils.h" +namespace bobby { + using namespace std::chrono_literals; namespace { constexpr char const informationText[] = "Congratulations on your new\nbobbycar! This guide will help\nyou through initial setup,\ncalibrate everything and\nget you ready!"; } // namespace -void SetupInformationDisplay::initScreen() +void SetupInformationDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); - m_init_text_progressbar.start(); + m_init_text_progressbar.construct(10, tft.height()/2, tft.width()-20, 30, 0, 100); - drawLargeText(informationText); + m_init_text_progressbar->start(tft); + + drawLargeText(tft, informationText); } void SetupInformationDisplay::start() @@ -34,19 +39,19 @@ void SetupInformationDisplay::start() void SetupInformationDisplay::update() { + Base::update(); + if (espchrono::ago(m_menu_opened_timestamp) > 5s) { espgui::switchScreen(); } - - Base::update(); } -void SetupInformationDisplay::redraw() +void SetupInformationDisplay::redraw(espgui::TftInterface &tft) { - m_init_text_progressbar.redraw(espchrono::ago(m_menu_opened_timestamp) / 50ms); + Base::redraw(tft); - Base::redraw(); + m_init_text_progressbar->redraw(tft, espchrono::ago(m_menu_opened_timestamp) / 50ms); } void SetupInformationDisplay::buttonPressed(espgui::Button button) @@ -61,4 +66,4 @@ void SetupInformationDisplay::buttonPressed(espgui::Button button) { return "First Steps"; } - +} // namespace bobby diff --git a/main/displays/setup/information.h b/main/screens/setup/information.h similarity index 58% rename from main/displays/setup/information.h rename to main/screens/setup/information.h index fe7e09f..7c6f0e4 100644 --- a/main/displays/setup/information.h +++ b/main/screens/setup/information.h @@ -1,26 +1,30 @@ #pragma once // 3rdparty lib includes +#include #include -#include +#include #include // local includes -#include "displays/bobbydisplaywithtitle.h" +#include "guihelpers/bobbydisplaywithtitle.h" + +namespace bobby { class SetupInformationDisplay : public virtual BobbyDisplayWithTitle { using Base = BobbyDisplayWithTitle; public: - void initScreen() override; + void initScreen(espgui::TftInterface &tft) override; void start() override; void update() override; - void redraw() override; + void redraw(espgui::TftInterface &tft) override; void buttonPressed(espgui::Button button) override; [[nodiscard]] std::string text() const override; private: espchrono::millis_clock::time_point m_menu_opened_timestamp; - espgui::ProgressBar m_init_text_progressbar{10, espgui::tft.height()/2, espgui::tft.width()-20, 30, 0, 100}; + cpputils::DelayedConstruction m_init_text_progressbar; }; +} // namespace bobby diff --git a/main/displays/setup/setup_cloud.cpp b/main/screens/setup/setup_cloud.cpp similarity index 94% rename from main/displays/setup/setup_cloud.cpp rename to main/screens/setup/setup_cloud.cpp index e7885d3..c121bc2 100644 --- a/main/displays/setup/setup_cloud.cpp +++ b/main/screens/setup/setup_cloud.cpp @@ -7,11 +7,13 @@ // local includes #include "accessors/settingsaccessors.h" -#include "bobbycheckbox.h" -#include "displays/bobbychangevaluedisplay.h" -#include "displays/setup/ask_calibrate_other_buttons.h" +#include "guihelpers/bobbycheckbox.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "screens/setup/ask_calibrate_other_buttons.h" #include "setup.h" +namespace bobby { + using namespace espgui; namespace { @@ -100,4 +102,4 @@ std::string SetupCloudDisplay::text() const { return "WebSocket Cloud"; } - +} // namespace bobby diff --git a/main/displays/setup/setup_cloud.h b/main/screens/setup/setup_cloud.h similarity index 82% rename from main/displays/setup/setup_cloud.h rename to main/screens/setup/setup_cloud.h index 3db4996..166f480 100644 --- a/main/displays/setup/setup_cloud.h +++ b/main/screens/setup/setup_cloud.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class SetupCloudDisplay : public virtual BobbyMenuDisplay { @@ -18,3 +20,4 @@ public: private: const bool m_early_return; }; +} // namespace bobby diff --git a/main/displays/menus/setupquickactionsmenu.cpp b/main/screens/setupquickactionsmenu.cpp similarity index 94% rename from main/displays/menus/setupquickactionsmenu.cpp rename to main/screens/setupquickactionsmenu.cpp index ebf0e2f..b02cf22 100644 --- a/main/displays/menus/setupquickactionsmenu.cpp +++ b/main/screens/setupquickactionsmenu.cpp @@ -1,16 +1,18 @@ #include "setupquickactionsmenu.h" // 3rdparty lib includes +#include +#include +#include #include // local includes #include "accessors/settingsaccessors.h" -#include "actions/popscreenaction.h" -#include "actions/pushscreenaction.h" #include "bobbyquickactions.h" #include "changevaluedisplay_bobbyquickactions.h" -#include "displays/bobbychangevaluedisplay.h" -#include "icons/back.h" +#include "guihelpers/bobbychangevaluedisplay.h" + +namespace bobby { namespace { constexpr char TEXT_SETUPQUICKACTIONS[] = "Setup QuickActions"; @@ -58,3 +60,4 @@ void SetupQuickActionsMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/setupquickactionsmenu.h b/main/screens/setupquickactionsmenu.h similarity index 70% rename from main/displays/menus/setupquickactionsmenu.h rename to main/screens/setupquickactionsmenu.h index 6f12331..a1e4b4b 100644 --- a/main/displays/menus/setupquickactionsmenu.h +++ b/main/screens/setupquickactionsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class SetupQuickActionsMenu : public BobbyMenuDisplay { @@ -12,3 +14,4 @@ public: void back() override; }; +} // namespace bobby diff --git a/main/screens/speedinfodisplay.cpp b/main/screens/speedinfodisplay.cpp new file mode 100644 index 0000000..78bc2bb --- /dev/null +++ b/main/screens/speedinfodisplay.cpp @@ -0,0 +1,97 @@ +#include "speedinfodisplay.h" + +// 3rdparty lib includes +#include +#include +#include +#include + +// local includes +#include "screens/batteryinfodisplay.h" +#include "screens/mainmenu.h" +#include "screens/statusdisplay.h" +#include "drivingstatistics.h" + +namespace bobby { +void SpeedInfoDisplay::initScreen(espgui::TftInterface &tft) +{ + Base::initScreen(tft); + + m_dischargingBar.construct(10, 110, tft.width()/2 - 10, 25, 0, 40, TFT_GREEN); + m_chargingBar.construct(tft.width()/2, 110, tft.width()/2 - 10, 25, 0, 40, TFT_RED); + + m_labelSpeed.start(tft); + + m_dischargingBar->start(tft); + m_chargingBar->start(tft); + + m_batteryPercentLabel.start(tft); + m_voltageLabel.start(tft); + m_distanceLabel.start(tft); + m_currentPowerLabel.start(tft); +} + +void SpeedInfoDisplay::redraw(espgui::TftInterface &tft) +{ + using namespace espgui; + + Base::redraw(tft); + + tft.setTextSize(4); + + m_labelSpeed.redraw(tft, + std::abs(avgSpeedKmh) < 10 ? fmt::format("{:.2f}", avgSpeedKmh) : + (std::abs(avgSpeedKmh) < 100 ? fmt::format("{:.1f}", avgSpeedKmh) : fmt::format("{:.0f}", avgSpeedKmh)), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + + tft.setTextSize(1); + m_batteryPercentLabel.redraw(tft, getBatteryPercentageString(), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + + if (const auto avgVoltage = controllers.getAvgVoltage(); avgVoltage) + { + auto watt = sumCurrent * *avgVoltage; + + m_voltageLabel.redraw(tft, fmt::format("{:.1f} V", avgVoltage.value()), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + tft.setTextSize(2); + m_currentPowerLabel.redraw(tft, fmt::format("{:.0f} W", watt), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + tft.setTextSize(1); + } + else + { + m_voltageLabel.redraw(tft, "No voltage", espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_currentPowerLabel.redraw(tft, "No power", espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + } + + m_distanceLabel.redraw(tft, + drivingStatistics.meters_driven > 1000 ? fmt::format("{:.3f} km", drivingStatistics.meters_driven / 1000) : + (drivingStatistics.meters_driven > 100 ? fmt::format("{:.1f} m", drivingStatistics.meters_driven) : fmt::format("{:.2f} m", drivingStatistics.meters_driven)), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + + tft.setTextSize(1); + + m_dischargingBar->redraw(tft, sumCurrent < 0.f ? (-sumCurrent) : 0.f); + m_chargingBar->redraw(tft, sumCurrent > 0.f ? sumCurrent : 0.f); +} + +void SpeedInfoDisplay::buttonPressed(espgui::Button button) +{ + Base::buttonPressed(button); + + switch (button) + { + using espgui::Button; + case Button::Right: + espgui::pushScreen(); + break; + case Button::Up: + espgui::switchScreen(); + break; + case Button::Down: +#ifdef FEATURE_BMS + espgui::switchScreen(); +#else + espgui::switchScreen(); +#endif + break; + default:; + } +} +} // namespace bobby diff --git a/main/displays/speedinfodisplay.h b/main/screens/speedinfodisplay.h similarity index 60% rename from main/displays/speedinfodisplay.h rename to main/screens/speedinfodisplay.h index 7881b52..a5cc1c5 100644 --- a/main/displays/speedinfodisplay.h +++ b/main/screens/speedinfodisplay.h @@ -1,28 +1,31 @@ #pragma once // 3rdparty lib includes -#include +#include +#include #include #include #include // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplay.h" + +namespace bobby { class SpeedInfoDisplay : public BobbyDisplay { using Base = BobbyDisplay; public: - void initScreen() override; - void redraw() override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; void buttonPressed(espgui::Button button) override; private: espgui::Label m_labelSpeed{5, 5}; - espgui::ReverseProgressBar m_dischargingBar{10, 110, espgui::tft.width()/2 - 10, 25, 0, 40, TFT_GREEN}; - espgui::ProgressBar m_chargingBar{espgui::tft.width()/2, 110, espgui::tft.width()/2 - 10, 25, 0, 40, TFT_RED}; + cpputils::DelayedConstruction m_dischargingBar; + cpputils::DelayedConstruction m_chargingBar; #define START_Y 150 espgui::Label m_batteryPercentLabel{5, START_Y}; @@ -30,3 +33,4 @@ private: espgui::Label m_distanceLabel{5, START_Y + 29 * 2}; espgui::Label m_currentPowerLabel{5, START_Y + 29 * 3}; }; +} // namespace bobby diff --git a/main/displays/spirodisplay.cpp b/main/screens/spirodisplay.cpp similarity index 84% rename from main/displays/spirodisplay.cpp rename to main/screens/spirodisplay.cpp index eed469e..837979f 100644 --- a/main/displays/spirodisplay.cpp +++ b/main/screens/spirodisplay.cpp @@ -5,32 +5,35 @@ #include #include #include -#include +#include +#include // local includes #include "screens.h" +namespace bobby { + namespace { typedef unsigned char byte; } // namespace -void SpiroDisplay::initScreen() +void SpiroDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); disableScreenFlip(true); - espgui::tft.setRotation(3); + tft.setRotation(3); } -void SpiroDisplay::redraw() +void SpiroDisplay::redraw(espgui::TftInterface &tft) { - Base::redraw(); + Base::redraw(tft); for (int j = 0; j < std::max(1, n); j++) { if (i == 0) { - espgui::tft.fillScreen(TFT_BLACK); + tft.fillScreen(espgui::TFT_BLACK); n = cpputils::randomNumber(2, 23, espcpputils::esp_random_device{}); r = cpputils::randomNumber(20, 100, espcpputils::esp_random_device{}); colour = 0; //rainbow(); @@ -48,7 +51,7 @@ void SpiroDisplay::redraw() sx = std::sin(((i % 360) - 90) * DEG2RAD); x1 = sx * r + x0; yy1 = sy * r + yy0; - espgui::tft.drawPixel(x1, yy1, rainbow(cpputils::mapValue(i%360,0,360,0,127))); //colour); + tft.drawPixel(x1, yy1, rainbow(cpputils::mapValue(i%360,0,360,0,127))); //colour); } if (i == (360 * n)) @@ -70,7 +73,7 @@ void SpiroDisplay::redraw() sx = std::sin(((new_i % 360) - 90) * DEG2RAD); x1 = sx * r + x0; yy1 = sy * r + yy0; - espgui::tft.drawPixel(x1, yy1, rainbow(cpputils::mapValue(new_i%360,0,360,0,127))); //colour); + tft.drawPixel(x1, yy1, rainbow(cpputils::mapValue(new_i%360,0,360,0,127))); //colour); } i++; @@ -133,3 +136,4 @@ unsigned int SpiroDisplay::rainbow(int value) } return (red << 11) + (green << 5) + blue; } +} // namespace bobby diff --git a/main/displays/spirodisplay.h b/main/screens/spirodisplay.h similarity index 71% rename from main/displays/spirodisplay.h rename to main/screens/spirodisplay.h index 4974500..9db07d4 100644 --- a/main/displays/spirodisplay.h +++ b/main/screens/spirodisplay.h @@ -4,15 +4,17 @@ #include // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplay.h" + +namespace bobby { class SpiroDisplay : public BobbyDisplay { using Base = BobbyDisplay; public: - void initScreen() override; - void redraw() override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; void stop() override; void buttonPressed(espgui::Button button) override; @@ -28,3 +30,4 @@ private: long i{0}; int n{}, r{}, colour{}; }; +} // namespace bobby diff --git a/main/displays/starfielddisplay.cpp b/main/screens/starfielddisplay.cpp similarity index 82% rename from main/displays/starfielddisplay.cpp rename to main/screens/starfielddisplay.cpp index 5495805..1b6c213 100644 --- a/main/displays/starfielddisplay.cpp +++ b/main/screens/starfielddisplay.cpp @@ -1,16 +1,19 @@ #include "starfielddisplay.h" // 3rdparty lib includes -#include #include -#include +#include #include +#include +#include // local includes -#include "displays/menus/demosmenu.h" +#include "screens/demosmenu.h" #include "globals.h" #include "screens.h" +namespace bobby { + StarfieldDisplay::StarfieldDisplay() : za(cpputils::randomNumber(espcpputils::esp_random_device{})), zb(cpputils::randomNumber(espcpputils::esp_random_device{})), @@ -19,14 +22,14 @@ StarfieldDisplay::StarfieldDisplay() : { } -void StarfieldDisplay::initScreen() +void StarfieldDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); disableScreenFlip(true); - espgui::tft.fillScreen(TFT_BLACK); - espgui::tft.setRotation(1); + tft.fillScreen(espgui::TFT_BLACK); + tft.setRotation(1); // fastSetup() must be used immediately before fastPixel() to prepare screen // It must be called after any other graphics drawing function call if fastPixel() @@ -34,9 +37,9 @@ void StarfieldDisplay::initScreen() //tft.fastSetup(); // Prepare plot window range for fast pixel plotting } -void StarfieldDisplay::redraw() +void StarfieldDisplay::redraw(espgui::TftInterface &tft) { - Base::redraw(); + Base::redraw(tft); uint8_t spawnDepthVariation = 255; @@ -54,7 +57,7 @@ void StarfieldDisplay::redraw() int old_screen_y = ((int)sy[i] - 120) * 256 / sz[i] + 120; // This is a faster pixel drawing function for occassions where many single pixels must be drawn - espgui::tft.drawPixel(old_screen_x, old_screen_y,TFT_BLACK); + tft.drawPixel(old_screen_x, old_screen_y,TFT_BLACK); sz[i] -= 2; if (sz[i] > 1) @@ -66,7 +69,7 @@ void StarfieldDisplay::redraw() { uint8_t r, g, b; r = g = b = 255 - sz[i]; - espgui::tft.drawPixel(screen_x, screen_y, color565(r,g,b)); + tft.drawPixel(screen_x, screen_y, color565(r,g,b)); } else sz[i] = 0; // Out of screen, die. @@ -94,3 +97,5 @@ void StarfieldDisplay::buttonPressed(espgui::Button button) default:; } } + +} // namespace bobby diff --git a/main/displays/starfielddisplay.h b/main/screens/starfielddisplay.h similarity index 64% rename from main/displays/starfielddisplay.h rename to main/screens/starfielddisplay.h index b0ddf11..563e582 100644 --- a/main/displays/starfielddisplay.h +++ b/main/screens/starfielddisplay.h @@ -3,8 +3,13 @@ // system includes #include +// 3rdparty lib includes +#include + // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplay.h" + +namespace bobby { class StarfieldDisplay : public BobbyDisplay { @@ -13,8 +18,8 @@ class StarfieldDisplay : public BobbyDisplay public: StarfieldDisplay(); - void initScreen() override; - void redraw() override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; void stop() override; void buttonPressed(espgui::Button button) override; @@ -28,3 +33,5 @@ private: uint8_t za, zb, zc, zx; }; + +} // namespace bobby diff --git a/main/displays/menus/statisticsmenu.cpp b/main/screens/statisticsmenu.cpp similarity index 97% rename from main/displays/menus/statisticsmenu.cpp rename to main/screens/statisticsmenu.cpp index f7f651d..a92b2a4 100644 --- a/main/displays/menus/statisticsmenu.cpp +++ b/main/screens/statisticsmenu.cpp @@ -1,19 +1,21 @@ #include "statisticsmenu.h" // 3rdparty lib includes +#include +#include +#include +#include +#include #include -#include "actions/dummyaction.h" -#include "actions/popscreenaction.h" -#include "actioninterface.h" -#include "fmt/core.h" -#include "icons/back.h" // local includes -#include "utils.h" -#include "icons/time.h" -#include "icons/reboot.h" -#include "icons/update.h" #include "drivingstatistics.h" +#include "icons/reboot.h" +#include "icons/time.h" +#include "icons/update.h" +#include "utils.h" + +namespace bobby { namespace { constexpr char TEXT_STATISTICSMENU[] = "Statistics"; @@ -198,3 +200,4 @@ void StatisticsMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/screens/statisticsmenu.h b/main/screens/statisticsmenu.h new file mode 100644 index 0000000..6284e39 --- /dev/null +++ b/main/screens/statisticsmenu.h @@ -0,0 +1,17 @@ +#pragma once + +// Local includes +#include "guihelpers/menudisplaywithtime.h" + +namespace bobby { + +class StatisticsMenu : public bobby::MenuDisplayWithTime +{ +public: + StatisticsMenu(); + + std::string text() const override; + + void back() override; +}; +} // namespace bobby diff --git a/main/screens/statusdisplay.cpp b/main/screens/statusdisplay.cpp new file mode 100644 index 0000000..6bc6b4e --- /dev/null +++ b/main/screens/statusdisplay.cpp @@ -0,0 +1,319 @@ +#include "statusdisplay.h" + +// esp-idf includes +#include + +// 3rdparty lib includes +#include +#include +#include +#include + +// local includes +#include "screens/batteryinfodisplay.h" +#include "screens/speedinfodisplay.h" +#ifdef FEATURE_BMS +#include "screens/bmsdisplay.h" +#endif +#include "screens/mainmenu.h" +#include "screens/metersdisplay.h" +#include "drivingstatistics.h" +#include "modes/defaultmode.h" +#include "newsettings.h" +#include "taskmanager.h" +#include "udpcloud.h" + +namespace bobby { + +using namespace std::chrono_literals; +using namespace espgui; + +namespace { +constexpr const char * const TAG = "STATUS"; +} // namespace + +void StatusDisplay::initScreen(espgui::TftInterface &tft) +{ + Base::initScreen(tft); + + tft.drawString("gas", 0, 0, espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelRawGas.start(tft); + m_labelGas.start(tft); + m_progressBarGas.start(tft); + tft.drawString("brems", 0, 15, espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelRawBrems.start(tft); + m_labelBrems.start(tft); + m_progressBarBrems.start(tft); + + m_batterypercent.start(tft); + m_watthoursleft.start(tft); + m_kilometersleft.start(tft); + + m_frontStatus.start(tft); + m_backStatus.start(tft); + + tft.drawString("WiFi:", 0, bottomLines[0], espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelWifiStatus.start(tft); + tft.drawString("Lim0:", 173, bottomLines[0], espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelLimit0.start(tft); + tft.drawString("IP:", 0, bottomLines[1], espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelIpAddress.start(tft); + m_labelSignal.start(tft); + tft.drawString("Lim1:", 173, bottomLines[1], espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelLimit1.start(tft); + tft.drawString("Perf:", 0, bottomLines[2], espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelPerformance.start(tft); + m_labelFreeMem.start(tft); + tft.drawString("Mode:", 125, bottomLines[2], espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelMode.start(tft); + tft.drawString("Name:", 0, bottomLines[3], espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelName.start(tft); + m_labelProfile.start(tft); +} + +void StatusDisplay::redraw(espgui::TftInterface &tft) +{ + Base::redraw(tft); + + { + const auto now = espchrono::millis_clock::now(); + if (now - lastRedraw < 50ms) + return; + lastRedraw = now; + } + + { + static bool handbremse_fill_with_black; + if (configs.handbremse.enable.value() && configs.handbremse.visualize.value() && handbremse::angezogen) + { + tft.fillRect(0, tft.height()-6, tft.width(), 6, espgui::TFT_RED); + handbremse_fill_with_black = true; + } + else if (configs.handbremse.enable.value() && configs.handbremse.visualize.value() && handbremse::stateWish == handbremse::StateWish::brake) + { + tft.fillRect(0, tft.height()-6, tft.width(), 6, espgui::TFT_YELLOW); + handbremse_fill_with_black = true; + } + else if (handbremse_fill_with_black) + { + handbremse_fill_with_black = false; + tft.fillRect(0, tft.height()-6, tft.width(), 6, espgui::TFT_BLACK); + } + } + + if(configs.feature.ledstrip.isEnabled.value()) + { + static bool blink_fill_with_black; + if (configs.ledstrip.enableVisualizeBlink.value() && (espchrono::utc_clock::now().time_since_epoch() % 750ms < 375ms) && (blinkAnimation > 0)) + { + if (BLINK_LEFT_EXPR) + tft.fillRect(0, 0, tft.width() / 2, 6, espgui::TFT_YELLOW); + if (BLINK_RIGHT_EXPR) + tft.fillRect(tft.width() / 2, 0, tft.width() / 2, 6, espgui::TFT_YELLOW); + + blink_fill_with_black = true; + } + else if (blink_fill_with_black) + { + blink_fill_with_black = false; + tft.fillRect(0, 0, tft.width(), 6, espgui::TFT_BLACK); + tft.drawString("gas", 0, 0, espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelRawGas.start(tft); + m_labelGas.start(tft); + m_progressBarGas.start(tft); + } + } + + m_labelRawGas.redraw(tft, raw_gas ? std::to_string(*raw_gas) : "?", espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelGas.redraw(tft, gas ? fmt::format("{:.2f}", *gas) : "?", espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_progressBarGas.redraw(tft, gas ? *gas : 0); + m_labelRawBrems.redraw(tft, raw_brems ? std::to_string(*raw_brems) : "?", espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelBrems.redraw(tft, brems ? fmt::format("{:.2f}", *brems) : "?", espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_progressBarBrems.redraw(tft, brems ? *brems : 0); + + m_batterypercent.redraw(tft, getBatteryPercentageString(), espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_watthoursleft.redraw(tft, getBatteryRemainingWattHoursString(), espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_kilometersleft.redraw(tft, getRemainingRangeString(), getEfficiencyClassColor(), espgui::TFT_BLACK, 2); + + m_frontStatus.redraw(tft, controllers.front); + m_backStatus.redraw(tft, controllers.back); + + if (configs.feature.udpcloud.isEnabled.value()) + { + if(configs.udpCloudSettings.udpCloudEnabled.value() && configs.udpCloudSettings.enableCloudDebug.value()) + { + tft.fillRect(125, 258, 8, 8, (visualSendUdpPacket) ? espgui::TFT_DARKGREY : espgui::TFT_BLACK); + } +// else // is not needed because of redraw +// { +// tft.fillRect(125, 258, 8, 8, espgui::TFT_BLACK); +// } + } + + const auto staStatus = wifi_stack::get_sta_status(); + if (staStatus == wifi_stack::WiFiStaStatus::CONNECTED) + { + if (const auto result = wifi_stack::get_sta_ap_info(); result) + { + m_labelWifiStatus.redraw(tft, std::string_view{reinterpret_cast(result->ssid)}, espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelSignal.redraw(tft, fmt::format("{}dB", result->rssi), (result->rssi < -80) ? espgui::TFT_ORANGE : espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + } + else + { + ESP_LOGW(TAG, "get_sta_ap_info() failed with %.*s", result.error().size(), result.error().data()); + goto showStaStatus; + } + } + else + { +showStaStatus: + m_labelWifiStatus.redraw(tft, wifi_stack::toString(staStatus), espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelSignal.clear(tft, espgui::TFT_BLACK); + } + + m_labelLimit0.redraw(tft, fmt::format("{}A", controllers.front.command.left.iMotMax), espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + + if (staStatus == wifi_stack::WiFiStaStatus::CONNECTED) + { + if (const auto result = wifi_stack::get_ip_info(wifi_stack::esp_netifs[ESP_IF_WIFI_STA]); result) + m_labelIpAddress.redraw(tft, wifi_stack::toString(result->ip), espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + else + { + ESP_LOGW(TAG, "get_ip_info() failed with %.*s", result.error().size(), result.error().data()); + goto clearIp; + } + } + else + { +clearIp: + m_labelIpAddress.clear(tft, espgui::TFT_BLACK); + } + + m_labelLimit1.redraw(tft, fmt::format("{}A", controllers.front.command.left.iDcMax), espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + + m_labelPerformance.redraw(tft, std::to_string(drivingModeTask.callCount()), (drivingModeTask.callCount() < 35) ? espgui::TFT_ORANGE : espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + + { + const auto freeMem = heap_caps_get_free_size(MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT); + m_labelFreeMem.redraw(tft, fmt::format("{}K", freeMem/1000), (freeMem < 70000) ? espgui::TFT_ORANGE : espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + } + + m_labelMode.redraw(tft, currentMode->displayName(), espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + m_labelName.redraw(tft, configs.wifiApName.value(), espgui::TFT_WHITE, espgui::TFT_BLACK, 2); + const auto profile = settingsPersister.currentlyOpenProfileIndex(); + m_labelProfile.redraw(tft, profile ? std::to_string(*profile) : "-", espgui::TFT_WHITE, espgui::TFT_BLACK, 2); +} + +void StatusDisplay::buttonPressed(espgui::Button button) +{ + Base::buttonPressed(button); + + switch (button) + { + using espgui::Button; + case Button::Right: + pushScreen(); + break; + case Button::Up: + if (simplified) + return; +#ifdef FEATURE_BMS + switchScreen(); +#else + switchScreen(); +#endif + break; + case Button::Down: + if (simplified) + return; + switchScreen(); + break; + default:; + } +} + +StatusDisplay::BoardStatus::BoardStatus(int y) : + m_y{y}, + m_labelLeftPwm{65, y}, // 80, 22 + m_labelRightPwm{155, y}, // 80, 22 + m_labelVoltage{30, y+25}, // 85, 22 + m_labelTemperature{150, y+25}, // 85, 22 + m_leftMotor{y+50}, + m_rightMotor{y+75} +{} + +void StatusDisplay::BoardStatus::start(espgui::TftInterface &tft) +{ + tft.drawString("pwm:", 0, m_y, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_labelLeftPwm.start(tft); + m_labelRightPwm.start(tft); + m_initialRedraw = true; +} + +void StatusDisplay::BoardStatus::redraw(espgui::TftInterface &tft, const Controller &controller) +{ + m_labelLeftPwm.redraw(tft, std::to_string(controller.command.left.pwm), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_labelRightPwm.redraw(tft, std::to_string(controller.command.right.pwm), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + + if (controller.feedbackValid != m_lastFeedbackValid || m_initialRedraw) + { + tft.fillRect(0, m_y+25, tft.width(), 75, espgui::TFT_BLACK); + + if (controller.feedbackValid) + { + tft.drawString("U=", 0, m_y+25, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_labelVoltage.start(tft); + tft.drawString("T=", 120, m_y+25, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_labelTemperature.start(tft); + tft.drawString("l:", 0, m_y+50, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_leftMotor.start(tft); + tft.drawString("r:", 0, m_y+75, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_rightMotor.start(tft); + } + else + { + tft.drawString("No data!", 60, m_y+50, espgui::TFT_RED, espgui::TFT_BLACK, 4); + + tft.setSwapBytes(true); + tft.pushImage(10, m_y+40, bobbyicons::alert.WIDTH, bobbyicons::alert.HEIGHT, bobbyicons::alert.buffer); + tft.setSwapBytes(false); + } + + m_lastFeedbackValid = controller.feedbackValid; + m_initialRedraw = false; + } + + if (controller.feedbackValid) + { + m_labelVoltage.redraw(tft, fmt::format("{:.2f}V", controller.getCalibratedVoltage()), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_labelTemperature.redraw(tft, fmt::format("{:.2f}C", fixBoardTemp(controller.feedback.boardTemp)), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_leftMotor.redraw(tft, controller.feedback.left); + m_rightMotor.redraw(tft, controller.feedback.right); + } +} + +StatusDisplay::BoardStatus::MotorStatus::MotorStatus(int y) : + m_labelError{18, y}, // 18, 22, + m_labelCurrent{40, y}, // 85, 22 + m_labelSpeed{135, y}, // 75, 22 + m_labelHallSensors{210, y} // 30, 15 +{} + +void StatusDisplay::BoardStatus::MotorStatus::start(espgui::TftInterface &tft) +{ + m_labelError.start(tft); + m_labelCurrent.start(tft); + m_labelSpeed.start(tft); + m_labelHallSensors.start(tft); +} + +void StatusDisplay::BoardStatus::MotorStatus::redraw(espgui::TftInterface &tft, const bobbycar::protocol::serial::MotorFeedback &motor) +{ + m_labelError.redraw(tft, std::to_string(motor.error), motor.error ? espgui::TFT_RED : espgui::TFT_GREEN, espgui::TFT_BLACK, 4); + + m_labelCurrent.redraw(tft, fmt::format("{:.2f}A", fixCurrent(motor.dcLink)), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_labelSpeed.redraw(tft, fmt::format("{:.2f}", convertToKmh(motor.speed)), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + + m_labelHallSensors.redraw(tft, hallString(motor), espgui::TFT_WHITE, espgui::TFT_BLACK, 2); +} +} // namespace bobby diff --git a/main/displays/statusdisplay.h b/main/screens/statusdisplay.h similarity index 83% rename from main/displays/statusdisplay.h rename to main/screens/statusdisplay.h index ddeffd2..27f1470 100644 --- a/main/displays/statusdisplay.h +++ b/main/screens/statusdisplay.h @@ -10,19 +10,21 @@ // local includes #include "battery.h" -#include "bobbydisplay.h" #include "globals.h" +#include "guihelpers/bobbydisplay.h" #include "icons/alert.h" #include "modeinterface.h" #include "utils.h" +namespace bobby { + class StatusDisplay : public BobbyDisplay { using Base = BobbyDisplay; public: - void initScreen() override; - void redraw() override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; void buttonPressed(espgui::Button button) override; @@ -32,8 +34,8 @@ private: public: BoardStatus(int y); - void start(); - void redraw(const Controller &controller); + void start(espgui::TftInterface &tft); + void redraw(espgui::TftInterface &tft, const Controller &controller); private: class MotorStatus @@ -41,8 +43,8 @@ private: public: MotorStatus(int y); - void start(); - void redraw(const bobbycar::protocol::serial::MotorFeedback &motor); + void start(espgui::TftInterface &tft); + void redraw(espgui::TftInterface &tft, const bobbycar::protocol::serial::MotorFeedback &motor); private: espgui::Label m_labelError; @@ -96,3 +98,4 @@ private: static const constexpr int bottomLines[4] { 251, 266, 281, 296 }; }; +} // namespace bobby diff --git a/main/displays/menus/taskmanagermenu.cpp b/main/screens/taskmanagermenu.cpp similarity index 96% rename from main/displays/menus/taskmanagermenu.cpp rename to main/screens/taskmanagermenu.cpp index 9680365..acb7d81 100644 --- a/main/displays/menus/taskmanagermenu.cpp +++ b/main/screens/taskmanagermenu.cpp @@ -1,15 +1,17 @@ #include "taskmanagermenu.h" // 3rdparty lib includes -#include -#include #include -#include +#include #include +#include +#include // local includes #include "taskmanager.h" +namespace bobby { + using namespace espgui; using namespace std::chrono_literals; @@ -49,3 +51,4 @@ void TaskmanagerMenu::back() { popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/taskmanagermenu.h b/main/screens/taskmanagermenu.h similarity index 69% rename from main/displays/menus/taskmanagermenu.h rename to main/screens/taskmanagermenu.h index 59facf4..606adf8 100644 --- a/main/displays/menus/taskmanagermenu.h +++ b/main/screens/taskmanagermenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class TaskmanagerMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/tempomatmodesettingsmenu.cpp b/main/screens/tempomatmodesettingsmenu.cpp similarity index 96% rename from main/displays/menus/tempomatmodesettingsmenu.cpp rename to main/screens/tempomatmodesettingsmenu.cpp index daf3324..73f7bc0 100644 --- a/main/displays/menus/tempomatmodesettingsmenu.cpp +++ b/main/screens/tempomatmodesettingsmenu.cpp @@ -1,20 +1,22 @@ #include "tempomatmodesettingsmenu.h" // 3rdparty lib includes -#include -#include -#include #include +#include +#include #include +#include #include // local includes -#include "displays/bobbychangevaluedisplay.h" -#include "utils.h" -#include "changevaluedisplay_unifiedmodelmode.h" -#include "accessors/settingsaccessors.h" #include "accessors/globalaccessors.h" +#include "accessors/settingsaccessors.h" #include "actions/tempomatmodeapplycurrentpeedaction.h" +#include "changevaluedisplay_unifiedmodelmode.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "utils.h" + +namespace bobby { namespace { constexpr char TEXT_TEMPOMATMODESETTINGS[] = "Tempomat mode settings"; @@ -59,3 +61,4 @@ void TempomatModeSettingsMenu::back() { popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/tempomatmodesettingsmenu.h b/main/screens/tempomatmodesettingsmenu.h similarity index 71% rename from main/displays/menus/tempomatmodesettingsmenu.h rename to main/screens/tempomatmodesettingsmenu.h index 9b14d60..eadef5a 100644 --- a/main/displays/menus/tempomatmodesettingsmenu.h +++ b/main/screens/tempomatmodesettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class TempomatModeSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,4 @@ public: void back() override; }; +} // namespace bobby diff --git a/main/displays/menus/timersmenu.cpp b/main/screens/timersmenu.cpp similarity index 79% rename from main/displays/menus/timersmenu.cpp rename to main/screens/timersmenu.cpp index fa67fa0..c0bec85 100644 --- a/main/displays/menus/timersmenu.cpp +++ b/main/screens/timersmenu.cpp @@ -1,15 +1,17 @@ #include "timersmenu.h" // 3rdparty lib includes -#include "actions/pushscreenaction.h" -#include "actions/popscreenaction.h" -#include "changevaluedisplay.h" -#include "icons/back.h" +#include +#include +#include +#include // local includes -#include "displays/bobbychangevaluedisplay.h" #include "accessors/settingsaccessors.h" -#include "displays/menus/boardcomputerhardwaresettingsmenu.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "screens/boardcomputerhardwaresettingsmenu.h" + +namespace bobby { namespace { constexpr char TEXT_TIMERS[] = "Timers"; @@ -41,3 +43,5 @@ void TimersMenu::back() { espgui::popScreen(); } + +} // namespace bobby diff --git a/main/displays/menus/timersmenu.h b/main/screens/timersmenu.h similarity index 67% rename from main/displays/menus/timersmenu.h rename to main/screens/timersmenu.h index f3a08e0..150d315 100644 --- a/main/displays/menus/timersmenu.h +++ b/main/screens/timersmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class TimersMenu : public BobbyMenuDisplay { @@ -12,3 +14,5 @@ public: void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/timesettingsmenu.cpp b/main/screens/timesettingsmenu.cpp similarity index 91% rename from main/displays/menus/timesettingsmenu.cpp rename to main/screens/timesettingsmenu.cpp index 521b865..030514d 100644 --- a/main/displays/menus/timesettingsmenu.cpp +++ b/main/screens/timesettingsmenu.cpp @@ -3,25 +3,27 @@ #include "sdkconfig.h" // 3rdparty lib includes +#include +#include +#include +#include +#include +#include +#include #include +#include #include -#include "changevaluedisplay.h" -#include "changevaluedisplay_daylightsavingmode.h" -#include "changevaluedisplay_sntp_sync_mode_t.h" -#include "changevaluedisplay_string.h" -#include "actions/pushscreenaction.h" -#include "actions/popscreenaction.h" -#include "actions/dummyaction.h" -#include "icons/back.h" -#include "espstrutils.h" +#include #include // local includes -#include "displays/bobbychangevaluedisplay.h" -#include "utils.h" #include "accessors/settingsaccessors.h" -#include "displays/menus/settingsmenu.h" -#include "bobbycheckbox.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "screens/settingsmenu.h" +#include "guihelpers/bobbycheckbox.h" +#include "utils.h" + +namespace bobby { namespace { constexpr char TEXT_TIME[] = "Time"; @@ -146,3 +148,4 @@ void TimeSettingsMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/screens/timesettingsmenu.h b/main/screens/timesettingsmenu.h new file mode 100644 index 0000000..cb32798 --- /dev/null +++ b/main/screens/timesettingsmenu.h @@ -0,0 +1,17 @@ +#pragma once + +// local includes +#include "guihelpers/menudisplaywithtime.h" + +namespace bobby { + +class TimeSettingsMenu : public bobby::MenuDisplayWithTime +{ +public: + TimeSettingsMenu(); + + std::string text() const override; + + void back() override; +}; +} // namespace bobby diff --git a/main/displays/menus/typesafeenumchangemenu.cpp b/main/screens/typesafeenumchangemenu.cpp similarity index 100% rename from main/displays/menus/typesafeenumchangemenu.cpp rename to main/screens/typesafeenumchangemenu.cpp diff --git a/main/displays/menus/typesafeenumchangemenu.h b/main/screens/typesafeenumchangemenu.h similarity index 96% rename from main/displays/menus/typesafeenumchangemenu.h rename to main/screens/typesafeenumchangemenu.h index 035c170..0574545 100644 --- a/main/displays/menus/typesafeenumchangemenu.h +++ b/main/screens/typesafeenumchangemenu.h @@ -1,17 +1,19 @@ #pragma once // 3rdparty lib includes +#include +#include +#include #include #include #include -#include -#include -#include // local includes +#include "guihelpers/bobbymenudisplay.h" #include "globals.h" -#include "displays/bobbymenudisplay.h" -#include "bobbyerrorhandler.h" +#include "guihelpers/bobbyerrorhandler.h" + +namespace bobby { namespace typesafeenumchangemenu { constexpr char TEXT_BACK[] = "Back"; @@ -148,3 +150,5 @@ public: private: ConfigWrapper* m_config; }; + +} // namespace bobby diff --git a/main/displays/menus/udpcloudsettingsmenu.cpp b/main/screens/udpcloudsettingsmenu.cpp similarity index 88% rename from main/displays/menus/udpcloudsettingsmenu.cpp rename to main/screens/udpcloudsettingsmenu.cpp index ca3373b..542edff 100644 --- a/main/displays/menus/udpcloudsettingsmenu.cpp +++ b/main/screens/udpcloudsettingsmenu.cpp @@ -1,17 +1,19 @@ #include "udpcloudsettingsmenu.h" // 3rdparty lib includes -#include -#include -#include -#include -#include -#include +#include "actions/popscreenaction.h" +#include "actions/pushscreenaction.h" +#include "changevaluedisplay_string.h" +#include "fmt/core.h" +#include "icons/back.h" +#include "menuitem.h" // local includes #include "accessors/settingsaccessors.h" -#include "bobbycheckbox.h" -#include "displays/bobbychangevaluedisplay.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "guihelpers/bobbycheckbox.h" + +namespace bobby { namespace { constexpr char TEXT_UDPCLOUDSETTINGS[] = "UDP Cloud settings"; @@ -66,3 +68,4 @@ void UdpCloudSettingsMenu::back() { espgui::popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/udpcloudsettingsmenu.h b/main/screens/udpcloudsettingsmenu.h similarity index 70% rename from main/displays/menus/udpcloudsettingsmenu.h rename to main/screens/udpcloudsettingsmenu.h index 9719e0a..44ea0b2 100644 --- a/main/displays/menus/udpcloudsettingsmenu.h +++ b/main/screens/udpcloudsettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class UdpCloudSettingsMenu : public BobbyMenuDisplay { @@ -12,3 +14,4 @@ public: void back() override; }; +} // namespace bobby diff --git a/main/screens/updatedisplay.cpp b/main/screens/updatedisplay.cpp new file mode 100644 index 0000000..5a38503 --- /dev/null +++ b/main/screens/updatedisplay.cpp @@ -0,0 +1,112 @@ +#include "updatedisplay.h" + +// system includes +#include +#include + +// esp-idf includes +#include + +// 3rdparty lib includes +#include +#include +#include +#include +#include + +// local includes +#include "globals.h" +#include "newsettings.h" +#include "ota.h" + +namespace bobby { + +void UpdateDisplay::initScreen(espgui::TftInterface &tft) +{ + Base::initScreen(tft); + + tft.drawString("Status:", 20, m_statusLabel.y(), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_statusLabel.start(tft); + + tft.drawString("Progress:", 20, m_progressLabel.y(), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_progressLabel.start(tft); + + tft.drawString("Total:", 20, m_totalLabel.y(), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_totalLabel.start(tft); + + m_messageLabel.start(tft); + + m_progressBar.start(tft); + + if (const esp_app_desc_t *app_desc = esp_ota_get_app_description()) + { + tft.drawString(app_desc->version, 20, 250, TFT_ORANGE, TFT_BLACK, 4); + } + + m_newVersionLabel.start(tft); +} + +void UpdateDisplay::redraw(espgui::TftInterface &tft) +{ + Base::redraw(tft); + + if (asyncOta) + { + m_statusLabel.redraw(tft, toString(asyncOta->status()), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + const auto progress = asyncOta->progress(); + m_progressLabel.redraw(tft, std::to_string(progress), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + if (const auto totalSize = asyncOta->totalSize(); totalSize && *totalSize > 0) + { + m_totalLabel.redraw(tft, std::to_string(*totalSize), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_progressBar.redraw(tft, float(progress) / *totalSize * 100); + } + else + { + m_totalLabel.clear(tft, TFT_BLACK); + m_progressBar.redraw(tft, 0); + } + m_messageLabel.redraw(tft, asyncOta->message(), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + + if (const auto &appDesc = asyncOta->appDesc()) + { + m_newVersionLabel.redraw(tft, appDesc->version, espgui::TFT_GREEN, espgui::TFT_BLACK, 4); + } + else + m_newVersionLabel.clear(tft, espgui::TFT_BLACK); + } + else + { + m_statusLabel.clear(tft, espgui::TFT_BLACK); + m_progressLabel.clear(tft, espgui::TFT_BLACK); + m_totalLabel.clear(tft, espgui::TFT_BLACK); + m_messageLabel.clear(tft, espgui::TFT_BLACK); + + m_progressBar.redraw(tft, 0); + + m_newVersionLabel.clear(tft, espgui::TFT_BLACK); + } +} + +void UpdateDisplay::buttonPressed(espgui::Button button) +{ + Base::buttonPressed(button); + + switch (button) + { + using espgui::Button; + case Button::Left: + espgui::popScreen(); + break; + case Button::Right: + if (const auto result = triggerOta(configs.otaUrl.value()); !result) + ESP_LOGE("BOBBY", "triggerOta() failed with %.*s", result.error().size(), result.error().data()); + break; + default:; + } +} + +std::string UpdateDisplay::text() const +{ + return "Update"; +} +} // namespace bobby diff --git a/main/displays/updatedisplay.h b/main/screens/updatedisplay.h similarity index 59% rename from main/displays/updatedisplay.h rename to main/screens/updatedisplay.h index 6a7e9d6..722b79c 100644 --- a/main/displays/updatedisplay.h +++ b/main/screens/updatedisplay.h @@ -5,15 +5,19 @@ #include // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplaywithtitle.h" -class UpdateDisplay : public BobbyDisplay +namespace bobby { + +class UpdateDisplay : public BobbyDisplayWithTitle { - using Base = BobbyDisplay; + using Base = BobbyDisplayWithTitle; public: - void initScreen() override; - void redraw() override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; + + std::string text() const override; void buttonPressed(espgui::Button button) override; @@ -27,3 +31,4 @@ private: espgui::Label m_newVersionLabel{20, 275}; }; +} // namespace bobby diff --git a/main/displays/menus/wifiapclientsmenu.cpp b/main/screens/wifiapclientsmenu.cpp similarity index 97% rename from main/displays/menus/wifiapclientsmenu.cpp rename to main/screens/wifiapclientsmenu.cpp index 38af0b7..12c2390 100644 --- a/main/displays/menus/wifiapclientsmenu.cpp +++ b/main/screens/wifiapclientsmenu.cpp @@ -1,25 +1,27 @@ #include "wifiapclientsmenu.h" // esp-idf includes +#include #include #include -#include #include <../lwip/esp_netif_lwip_internal.h> // 3rdparty lib includes -#include #include #include -#include -#include -#include -#include #include +#include +#include +#include +#include +#include // local includes #include "wifiapsettingsmenu.h" #include "wifiguiutils.h" +namespace bobby { + using namespace std::chrono_literals; using namespace std::string_literals; using namespace espgui; @@ -153,3 +155,4 @@ void WifiApClientMenuItem::updateIp() } } // namespace +} // namespace bobby diff --git a/main/displays/menus/wifiapclientsmenu.h b/main/screens/wifiapclientsmenu.h similarity index 84% rename from main/displays/menus/wifiapclientsmenu.h rename to main/screens/wifiapclientsmenu.h index 3a9b3df..a370922 100644 --- a/main/displays/menus/wifiapclientsmenu.h +++ b/main/screens/wifiapclientsmenu.h @@ -4,7 +4,9 @@ #include // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class WifiApClientsMenu : public BobbyMenuDisplay, @@ -26,3 +28,4 @@ private: private: espchrono::millis_clock::time_point m_lastSync; }; +} // namespace bobby diff --git a/main/displays/menus/wifiapsettingsmenu.cpp b/main/screens/wifiapsettingsmenu.cpp similarity index 97% rename from main/displays/menus/wifiapsettingsmenu.cpp rename to main/screens/wifiapsettingsmenu.cpp index 28ac7bd..016add8 100644 --- a/main/displays/menus/wifiapsettingsmenu.cpp +++ b/main/screens/wifiapsettingsmenu.cpp @@ -4,26 +4,28 @@ #include // 3rdparty lib includes -#include #include -#include #include -#include -#include +#include #include +#include +#include +#include #include // local includes -#include "displays/bobbychangevaluedisplay.h" -#include "changevaluedisplay.h" -#include "changevaluedisplay_string.h" -#include "changevaluedisplay_ip_address_t.h" -#include "changevaluedisplay_wifi_auth_mode_t.h" -#include "wifiapclientsmenu.h" -#include "networksettingsmenu.h" #include "accessors/wifiapconfigaccessors.h" +#include "changevaluedisplay.h" +#include "changevaluedisplay_ip_address_t.h" +#include "changevaluedisplay_string.h" +#include "changevaluedisplay_wifi_auth_mode_t.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "guihelpers/bobbycheckbox.h" +#include "networksettingsmenu.h" #include "texthelpers/wifiaptexthelpers.h" -#include "bobbycheckbox.h" +#include "wifiapclientsmenu.h" + +namespace bobby { using namespace espgui; @@ -140,3 +142,5 @@ void WifiApClientsAction::triggered() ESP_LOGW(TAG, "esp_wifi_ap_get_sta_list() failed with %s", esp_err_to_name(result)); } } // namespace + +} // namespace bobby diff --git a/main/displays/menus/wifiapsettingsmenu.h b/main/screens/wifiapsettingsmenu.h similarity index 70% rename from main/displays/menus/wifiapsettingsmenu.h rename to main/screens/wifiapsettingsmenu.h index 813419b..1a8c56c 100644 --- a/main/displays/menus/wifiapsettingsmenu.h +++ b/main/screens/wifiapsettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class WifiApSettingsMenu : public BobbyMenuDisplay { @@ -11,3 +13,4 @@ public: std::string text() const override; void back() override; }; +} // namespace bobby diff --git a/main/displays/menus/wifistaconfigentrymenu.cpp b/main/screens/wifistaconfigentrymenu.cpp similarity index 98% rename from main/displays/menus/wifistaconfigentrymenu.cpp rename to main/screens/wifistaconfigentrymenu.cpp index ad2af3c..e7d9798 100644 --- a/main/displays/menus/wifistaconfigentrymenu.cpp +++ b/main/screens/wifistaconfigentrymenu.cpp @@ -1,23 +1,25 @@ #include "wifistaconfigentrymenu.h" // 3rdparty lib includes -#include #include -#include #include -#include -#include +#include #include -#include #include +#include +#include +#include +#include #include // local includes -#include "displays/bobbychangevaluedisplay.h" #include "accessors/wifistaconfigaccessors.h" -#include "wifistaconfigsmenu.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "guihelpers/bobbycheckbox.h" #include "newsettings.h" -#include "bobbycheckbox.h" +#include "wifistaconfigsmenu.h" + +namespace bobby { namespace { constexpr char TEXT_SSID_TITLE[] = "WiFi {} SSID"; @@ -153,3 +155,5 @@ void ClearConfigAction::triggered() configs.reset_config(config.staticDns2); } } // namespace + +} // namespace bobby diff --git a/main/displays/menus/wifistaconfigentrymenu.h b/main/screens/wifistaconfigentrymenu.h similarity index 74% rename from main/displays/menus/wifistaconfigentrymenu.h rename to main/screens/wifistaconfigentrymenu.h index c926654..258c4a9 100644 --- a/main/displays/menus/wifistaconfigentrymenu.h +++ b/main/screens/wifistaconfigentrymenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class WifiStaConfigEntryMenu : public BobbyMenuDisplay { @@ -14,3 +16,5 @@ public: private: const int m_index; }; + +} // namespace bobby diff --git a/main/displays/menus/wifistaconfigsmenu.cpp b/main/screens/wifistaconfigsmenu.cpp similarity index 98% rename from main/displays/menus/wifistaconfigsmenu.cpp rename to main/screens/wifistaconfigsmenu.cpp index b8388c6..32da749 100644 --- a/main/displays/menus/wifistaconfigsmenu.cpp +++ b/main/screens/wifistaconfigsmenu.cpp @@ -1,20 +1,22 @@ #include "wifistaconfigsmenu.h" // 3rdparty lib includes -#include #include -#include #include -#include -#include -#include -#include +#include #include +#include +#include +#include +#include +#include // local includes -#include "wifistasettingsmenu.h" -#include "wifistaconfigentrymenu.h" #include "newsettings.h" +#include "wifistaconfigentrymenu.h" +#include "wifistasettingsmenu.h" + +namespace bobby { using namespace espgui; @@ -76,3 +78,4 @@ std::string WifiStaConfigurationMenuItem::text() const } } // namespace +} // namespace bobby diff --git a/main/displays/menus/wifistaconfigsmenu.h b/main/screens/wifistaconfigsmenu.h similarity index 69% rename from main/displays/menus/wifistaconfigsmenu.h rename to main/screens/wifistaconfigsmenu.h index 97650f6..e304fa1 100644 --- a/main/displays/menus/wifistaconfigsmenu.h +++ b/main/screens/wifistaconfigsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class WifiStaConfigsMenu : public BobbyMenuDisplay { @@ -11,3 +13,5 @@ public: std::string text() const override; void back() override; }; + +} // namespace bobby diff --git a/main/displays/menus/wifistascanentrymenu.cpp b/main/screens/wifistascanentrymenu.cpp similarity index 99% rename from main/displays/menus/wifistascanentrymenu.cpp rename to main/screens/wifistascanentrymenu.cpp index fa09783..ee49938 100644 --- a/main/displays/menus/wifistascanentrymenu.cpp +++ b/main/screens/wifistascanentrymenu.cpp @@ -7,22 +7,24 @@ #include // 3rdparty lib includes -#include #include -#include #include -#include -#include -#include +#include #include +#include +#include +#include #include +#include #include // local includes -#include "wifistascanmenu.h" -#include "wifistaconfigentrymenu.h" -#include "wifiguiutils.h" #include "newsettings.h" +#include "wifiguiutils.h" +#include "wifistaconfigentrymenu.h" +#include "wifistascanmenu.h" + +namespace bobby { using namespace std::string_literals; using namespace espgui; @@ -133,3 +135,4 @@ void SaveNewWifiConfigAction::triggered() } } // namespace +} // namespace bobby diff --git a/main/displays/menus/wifistascanentrymenu.h b/main/screens/wifistascanentrymenu.h similarity index 72% rename from main/displays/menus/wifistascanentrymenu.h rename to main/screens/wifistascanentrymenu.h index b1175ab..0efcb54 100644 --- a/main/displays/menus/wifistascanentrymenu.h +++ b/main/screens/wifistascanentrymenu.h @@ -1,10 +1,12 @@ #pragma once // esp-idf includes -#include +#include "esp_wifi_types.h" // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class WifiStaScanEntryMenu : public BobbyMenuDisplay { @@ -17,3 +19,4 @@ public: private: const wifi_ap_record_t m_info; }; +} // namespace bobby diff --git a/main/displays/menus/wifistascanmenu.cpp b/main/screens/wifistascanmenu.cpp similarity index 99% rename from main/displays/menus/wifistascanmenu.cpp rename to main/screens/wifistascanmenu.cpp index 4265ec2..cdb7a69 100644 --- a/main/displays/menus/wifistascanmenu.cpp +++ b/main/screens/wifistascanmenu.cpp @@ -4,23 +4,25 @@ #include // 3rdparty lib includes -#include -#include #include -#include -#include -#include +#include #include #include +#include +#include +#include #include +#include #include // local includes #include "actions/wifistascanaction.h" #include "actions/wifistascanclearaction.h" +#include "newsettings.h" #include "wifiguiutils.h" #include "wifistascanentrymenu.h" -#include "newsettings.h" + +namespace bobby { using namespace espgui; @@ -148,3 +150,4 @@ std::string WifiStaScanMenuItem::text() const } } // namespace +} // namespace bobby diff --git a/main/displays/menus/wifistascanmenu.h b/main/screens/wifistascanmenu.h similarity index 79% rename from main/displays/menus/wifistascanmenu.h rename to main/screens/wifistascanmenu.h index e3fdd7d..6b2c263 100644 --- a/main/displays/menus/wifistascanmenu.h +++ b/main/screens/wifistascanmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class WifiStaScanMenu : public BobbyMenuDisplay { @@ -19,3 +21,4 @@ public: private: bool m_wasScanning; }; +} // namespace bobby diff --git a/main/displays/menus/wifistasettingsmenu.cpp b/main/screens/wifistasettingsmenu.cpp similarity index 96% rename from main/displays/menus/wifistasettingsmenu.cpp rename to main/screens/wifistasettingsmenu.cpp index d2aa16e..bedd956 100644 --- a/main/displays/menus/wifistasettingsmenu.cpp +++ b/main/screens/wifistasettingsmenu.cpp @@ -1,22 +1,24 @@ #include "wifistasettingsmenu.h" // 3rdparty lib includes -#include #include -#include #include -#include -#include +#include #include +#include +#include +#include #include // local includes -#include "displays/bobbychangevaluedisplay.h" -#include "wifistascanmenu.h" -#include "wifistaconfigsmenu.h" #include "accessors/wifistaconfigaccessors.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "guihelpers/bobbycheckbox.h" #include "texthelpers/wifistatexthelpers.h" -#include "bobbycheckbox.h" +#include "wifistaconfigsmenu.h" +#include "wifistascanmenu.h" + +namespace bobby { using namespace espgui; @@ -68,3 +70,4 @@ void WifiStaSettingsMenu::back() { popScreen(); } +} // namespace bobby diff --git a/main/displays/menus/wifistasettingsmenu.h b/main/screens/wifistasettingsmenu.h similarity index 70% rename from main/displays/menus/wifistasettingsmenu.h rename to main/screens/wifistasettingsmenu.h index dc7feae..7afa5eb 100644 --- a/main/displays/menus/wifistasettingsmenu.h +++ b/main/screens/wifistasettingsmenu.h @@ -1,7 +1,9 @@ #pragma once // local includes -#include "displays/bobbymenudisplay.h" +#include "guihelpers/bobbymenudisplay.h" + +namespace bobby { class WifiStaSettingsMenu : public BobbyMenuDisplay { @@ -11,3 +13,4 @@ public: std::string text() const override; void back() override; }; +} // namespace bobby diff --git a/main/displays/xydebugdisplay.cpp b/main/screens/xydebugdisplay.cpp similarity index 64% rename from main/displays/xydebugdisplay.cpp rename to main/screens/xydebugdisplay.cpp index 53d10c9..3e32170 100644 --- a/main/displays/xydebugdisplay.cpp +++ b/main/screens/xydebugdisplay.cpp @@ -3,30 +3,36 @@ // 3rdparty lib includes #include #include -#include +#include +#include // local includes #include "bobbybuttons.h" +namespace bobby { + XYDebugDisplay::XYDebugDisplay() : m_labelCoordinates{5, 5} {} -void XYDebugDisplay::initScreen() +void XYDebugDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); - m_labelCoordinates.start(); + Base::initScreen(tft); + m_labelCoordinates.start(tft); + + m_height = tft.height(); + m_width = tft.width(); } -void XYDebugDisplay::redraw() +void XYDebugDisplay::redraw(espgui::TftInterface &tft) { using namespace espgui; - Base::redraw(); - m_labelCoordinates.redraw(fmt::format("X: {}, Y: {}", m_current_cursor.x, m_current_cursor.y)); + Base::redraw(tft); + m_labelCoordinates.redraw(tft, fmt::format("X: {}, Y: {}", m_current_cursor.x, m_current_cursor.y), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); 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); + tft.fillCircle(m_last_cursor.x, m_last_cursor.y, 2, espgui::TFT_BLACK); + tft.fillCircle(m_current_cursor.x, m_current_cursor.y, 2, espgui::TFT_WHITE); m_last_cursor = m_current_cursor; } @@ -55,7 +61,7 @@ void XYDebugDisplay::buttonPressed(espgui::Button button) } break; case BobbyButton::Right2: - if (m_current_cursor.x < espgui::tft.width() - 1) + if (m_current_cursor.x < m_width - 1) { ++m_current_cursor.x; } @@ -67,7 +73,7 @@ void XYDebugDisplay::buttonPressed(espgui::Button button) } break; case BobbyButton::Down2: - if (m_current_cursor.y < espgui::tft.height() - 1) + if (m_current_cursor.y < m_height - 1) { ++m_current_cursor.y; } @@ -75,3 +81,4 @@ void XYDebugDisplay::buttonPressed(espgui::Button button) default:; } } +} // namespace bobby diff --git a/main/displays/xydebugdisplay.h b/main/screens/xydebugdisplay.h similarity index 63% rename from main/displays/xydebugdisplay.h rename to main/screens/xydebugdisplay.h index a1d6946..1fc24cf 100644 --- a/main/displays/xydebugdisplay.h +++ b/main/screens/xydebugdisplay.h @@ -1,10 +1,13 @@ #pragma once // 3rdparty lib includes +#include #include // local includes -#include "bobbydisplay.h" +#include "guihelpers/bobbydisplay.h" + +namespace bobby { class XYDebugDisplay : public BobbyDisplay { @@ -12,8 +15,8 @@ class XYDebugDisplay : public BobbyDisplay public: XYDebugDisplay(); - void initScreen() override; - void redraw() override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; void buttonPressed(espgui::Button button) override; @@ -26,4 +29,8 @@ private: cursor_pos_t m_current_cursor{0, 0}; cursor_pos_t m_last_cursor{0, 0}; espgui::Label m_labelCoordinates; + + uint16_t m_width; + uint16_t m_height; }; +} // namespace bobby diff --git a/main/statustexthelper.cpp b/main/statustexthelper.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/taskmanager.cpp b/main/taskmanager.cpp index 16d595b..51e0170 100644 --- a/main/taskmanager.cpp +++ b/main/taskmanager.cpp @@ -88,8 +88,8 @@ BobbySchedulerTask schedulerTasksArr[] { BobbySchedulerTask { "drivingmode", initDrivingMode, updateDrivingMode, 20ms, false }, BobbySchedulerTask { "drivingstatistics", initStatistics, calculateStatistics, 100ms, false }, BobbySchedulerTask { "dnsannounce", init_dns_announce, handle_dns_announce, 100ms, false }, - BobbySchedulerTask { "updateDisp", not_needed, updateDisplay, 20ms, true }, - BobbySchedulerTask { "redrawDisp", not_needed, redrawDisplay, 40ms, true }, + BobbySchedulerTask { "updateDisp", not_needed, bobby::updateDisplay, 20ms, true }, + BobbySchedulerTask { "redrawDisp", not_needed, bobby::redrawDisplay, 40ms, true }, BobbySchedulerTask { "feedbackEmulator", feedbackemulator::init, feedbackemulator::update, 500ms, false}, }; } // namespace diff --git a/main/bletexthelpers.h b/main/texthelpers/bletexthelpers.h similarity index 100% rename from main/bletexthelpers.h rename to main/texthelpers/bletexthelpers.h diff --git a/main/bluetoothtexthelpers.h b/main/texthelpers/bluetoothtexthelpers.h similarity index 98% rename from main/bluetoothtexthelpers.h rename to main/texthelpers/bluetoothtexthelpers.h index ebc86cc..c7171ae 100644 --- a/main/bluetoothtexthelpers.h +++ b/main/texthelpers/bluetoothtexthelpers.h @@ -1,7 +1,7 @@ #pragma once // 3rdparty lib includes -#include +#include "fmt/core.h" // local includes #include "textinterface.h" diff --git a/main/cloudtexthelpers.cpp b/main/texthelpers/cloudtexthelpers.cpp similarity index 96% rename from main/cloudtexthelpers.cpp rename to main/texthelpers/cloudtexthelpers.cpp index f2ee868..166feed 100644 --- a/main/cloudtexthelpers.cpp +++ b/main/texthelpers/cloudtexthelpers.cpp @@ -1,7 +1,7 @@ #include "cloudtexthelpers.h" // 3rdparty lib includes -#include +#include "fmt/core.h" // local includes #include "cloud.h" diff --git a/main/cloudtexthelpers.h b/main/texthelpers/cloudtexthelpers.h similarity index 100% rename from main/cloudtexthelpers.h rename to main/texthelpers/cloudtexthelpers.h diff --git a/main/debugtexthelpers.h b/main/texthelpers/debugtexthelpers.h similarity index 99% rename from main/debugtexthelpers.h rename to main/texthelpers/debugtexthelpers.h index a57f9d4..e172366 100644 --- a/main/debugtexthelpers.h +++ b/main/texthelpers/debugtexthelpers.h @@ -1,7 +1,7 @@ #pragma once // 3rdparty lib includes -#include +#include "fmt/core.h" // local includes #include "textinterface.h" diff --git a/main/esptexthelpers.h b/main/texthelpers/esptexthelpers.h similarity index 97% rename from main/esptexthelpers.h rename to main/texthelpers/esptexthelpers.h index ff1c331..0a39442 100644 --- a/main/esptexthelpers.h +++ b/main/texthelpers/esptexthelpers.h @@ -1,13 +1,13 @@ #pragma once // esp-idf includes -#include -#include -#include +#include "esp_chip_info.h" +#include "esp_heap_caps.h" +#include "esp_idf_version.h" // 3rdparty lib includes -#include -#include +#include "espstrutils.h" +#include "fmt/core.h" // local includes #include "can.h" diff --git a/main/statustexthelper.h b/main/texthelpers/statustexthelper.h similarity index 100% rename from main/statustexthelper.h rename to main/texthelpers/statustexthelper.h diff --git a/main/types.cpp b/main/types.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/utils.cpp b/main/utils.cpp index cd47e76..ec14ef4 100644 --- a/main/utils.cpp +++ b/main/utils.cpp @@ -1,10 +1,8 @@ #include "utils.h" -// system includes -#include - // 3rdparty lib includes -#include +#include +#include // local includes #include "globals.h" @@ -430,7 +428,7 @@ std::optional checkIfInCalibration() return std::nullopt; } -void drawLargeText(const std::string&& text) +void drawLargeText(espgui::TftInterface &tft, const std::string&& text) { using namespace espgui; @@ -442,8 +440,6 @@ void drawLargeText(const std::string&& text) int x = leftMargin + 5; int y = topMargin + 5; - tft.setTextColor(TFT_WHITE); - for (char c : text) { if (c == '\n' || x > tft.width() - rightMargin - 10) @@ -454,7 +450,7 @@ void drawLargeText(const std::string&& text) if (c != '\n') { - const auto addedWidth = tft.drawChar(tft.decodeUTF8(c), x, y, 2); + const int16_t addedWidth = tft.drawChar(tft.decodeUTF8(c), x, y, espgui::TFT_WHITE, espgui::TFT_BLACK, 2); x += addedWidth; } diff --git a/main/utils.h b/main/utils.h index 51e5d43..cca3b5c 100644 --- a/main/utils.h +++ b/main/utils.h @@ -103,7 +103,7 @@ bool is_valid_timestamp(espchrono::utc_clock::time_point timestamp); std::string toString(esp_chip_model_t esp_chip_model); std::optional checkIfInCalibration(); -void drawLargeText(const std::string&& text); +void drawLargeText(espgui::TftInterface &tft, const std::string&& text); namespace bobbydpad { #ifdef FEATURE_DPAD diff --git a/main/widgets/doubleprogressbar.cpp b/main/widgets/doubleprogressbar.cpp index 49fee73..fc9f83e 100644 --- a/main/widgets/doubleprogressbar.cpp +++ b/main/widgets/doubleprogressbar.cpp @@ -2,41 +2,40 @@ // 3rdparty lib includes #include - -// local includes -#include "tftinstance.h" +#include +#include using namespace espgui; -namespace bobbygui { +namespace bobby { DoubleProgressBar::DoubleProgressBar(int x, int y, int width, int height, int min, int max, uint32_t color1, uint32_t color2) : m_x{x}, m_y{y}, m_width{width}, m_height{height}, m_min{min}, m_max{max}, m_color1{color1}, m_color2{color2} { } -void DoubleProgressBar::start() +void DoubleProgressBar::start(espgui::TftInterface &tft) { m_lastValue1 = m_x+1; m_lastValue2 = m_x+1; - tft.drawRect(m_x, m_y, m_width, m_height, TFT_WHITE); + tft.drawRect(m_x, m_y, m_width, m_height, espgui::TFT_WHITE); } -void DoubleProgressBar::redraw(int value1, int value2) +void DoubleProgressBar::redraw(espgui::TftInterface &tft, int value1, int value2) { value1 = cpputils::mapValueClamped(value1, m_min, m_max, m_x+1, m_x+m_width-1); value2 = cpputils::mapValueClamped(value2, m_min, m_max, m_x+1, m_x+m_width-1); if (value1 < m_lastValue1) - tft.fillRect(value1, m_y+1, m_lastValue1-value1, (m_height-2) / 2, TFT_BLACK); + tft.fillRect(value1, m_y+1, m_lastValue1-value1, (m_height-2) / 2, espgui::TFT_BLACK); else if (value1 > m_lastValue1) tft.fillRect(m_lastValue1, m_y+1, value1-m_lastValue1, (m_height-2) / 2, m_color1); if (value2 < m_lastValue2) - tft.fillRect(value2, m_y+1+(m_height-2)/2, m_lastValue2-value2, (m_height-2) / 2, TFT_BLACK); + tft.fillRect(value2, m_y+1+(m_height-2)/2, m_lastValue2-value2, (m_height-2) / 2, espgui::TFT_BLACK); else if (value2 > m_lastValue2) tft.fillRect(m_lastValue2, m_y+1+(m_height-2)/2, value2-m_lastValue2, (m_height-2) / 2, m_color2); m_lastValue1 = value1; m_lastValue2 = value2; } -} // namespace bobbygui +} // namespace bobby diff --git a/main/widgets/doubleprogressbar.h b/main/widgets/doubleprogressbar.h index 947add6..16510da 100644 --- a/main/widgets/doubleprogressbar.h +++ b/main/widgets/doubleprogressbar.h @@ -4,16 +4,17 @@ #include // 3rdparty lib includes -#include +#include +#include -namespace bobbygui { +namespace bobby { class DoubleProgressBar { public: - DoubleProgressBar(int x, int y, int width, int height, int min, int max, uint32_t color1=TFT_YELLOW, uint32_t color2=TFT_YELLOW); + DoubleProgressBar(int x, int y, int width, int height, int min, int max, uint32_t color1=espgui::TFT_YELLOW, uint32_t color2=espgui::TFT_YELLOW); - void start(); - void redraw(int value1, int value2); + void start(espgui::TftInterface &tft); + void redraw(espgui::TftInterface &tft, int value1, int value2); private: const int m_x; From 1852f17f564a5f571fb9c9d835c16318a87f45db Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Sun, 25 Dec 2022 14:11:16 +0100 Subject: [PATCH 2/9] Fixed compiling --- components/TFT_eSPI | 2 +- components/esp-gui-lib | 2 +- configs/sdkconfig_comred_new | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/components/TFT_eSPI b/components/TFT_eSPI index 39dd567..499a38c 160000 --- a/components/TFT_eSPI +++ b/components/TFT_eSPI @@ -1 +1 @@ -Subproject commit 39dd567a9ed2de0ef8f655d7b23cbccc15666320 +Subproject commit 499a38ccea2fecd0c50f541692338a0ae029b091 diff --git a/components/esp-gui-lib b/components/esp-gui-lib index cc95378..8c891bb 160000 --- a/components/esp-gui-lib +++ b/components/esp-gui-lib @@ -1 +1 @@ -Subproject commit cc95378d7a9a06a39d65c71bd3b0d07e4f4d2248 +Subproject commit 8c891bb55653d0f6d61a71a2c54fbd0e58a7f3db diff --git a/configs/sdkconfig_comred_new b/configs/sdkconfig_comred_new index 925bb8d..22111da 100644 --- a/configs/sdkconfig_comred_new +++ b/configs/sdkconfig_comred_new @@ -1795,11 +1795,11 @@ CONFIG_TFT_RST=2 # CONFIG_TFT_LOAD_GLCD is not set CONFIG_TFT_LOAD_FONT2=y CONFIG_TFT_LOAD_FONT4=y -CONFIG_TFT_LOAD_FONT6=y +# CONFIG_TFT_LOAD_FONT6 is not set CONFIG_TFT_LOAD_FONT7=y -CONFIG_TFT_LOAD_FONT8=y -CONFIG_TFT_LOAD_GFXFF=y -CONFIG_TFT_SMOOTH_FONT=y +# CONFIG_TFT_LOAD_FONT8 is not set +# CONFIG_TFT_LOAD_GFXFF is not set +# CONFIG_TFT_SMOOTH_FONT is not set # CONFIG_TFT_IS_AUTOBAHN is not set # end of Fonts From 18b4113a3f72816afdb8e859bdcf4ef58e65bcf7 Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Sun, 25 Dec 2022 14:14:50 +0100 Subject: [PATCH 3/9] Updated sdkconfigs --- configs/sdkconfig_feedc0de | 11 ++++++----- configs/sdkconfig_feedc0de_new | 11 ++++++----- configs/sdkconfig_gernot | 11 ++++++----- configs/sdkconfig_mick | 11 ++++++----- configs/sdkconfig_nofeatures | 11 ++++++----- configs/sdkconfig_peter | 11 ++++++----- configs/sdkconfig_seatbot | 11 ++++++----- configs/sdkconfig_testdevice2 | 10 +++++----- 8 files changed, 47 insertions(+), 40 deletions(-) diff --git a/configs/sdkconfig_feedc0de b/configs/sdkconfig_feedc0de index e81c154..8b38432 100644 --- a/configs/sdkconfig_feedc0de +++ b/configs/sdkconfig_feedc0de @@ -1767,12 +1767,13 @@ CONFIG_TFT_RST=2 # # CONFIG_TFT_LOAD_GLCD is not set CONFIG_TFT_LOAD_FONT2=y -# CONFIG_TFT_LOAD_FONT4 is not set -CONFIG_TFT_LOAD_FONT6=y +CONFIG_TFT_LOAD_FONT4=y +# CONFIG_TFT_LOAD_FONT6 is not set CONFIG_TFT_LOAD_FONT7=y -CONFIG_TFT_LOAD_FONT8=y -CONFIG_TFT_LOAD_GFXFF=y -CONFIG_TFT_SMOOTH_FONT=y +# CONFIG_TFT_LOAD_FONT8 is not set +# CONFIG_TFT_LOAD_GFXFF is not set +# CONFIG_TFT_SMOOTH_FONT is not set +# CONFIG_TFT_IS_AUTOBAHN is not set # end of Fonts # diff --git a/configs/sdkconfig_feedc0de_new b/configs/sdkconfig_feedc0de_new index fbfa3d2..bc3f6ac 100644 --- a/configs/sdkconfig_feedc0de_new +++ b/configs/sdkconfig_feedc0de_new @@ -1768,12 +1768,13 @@ CONFIG_TFT_RST=2 # # CONFIG_TFT_LOAD_GLCD is not set CONFIG_TFT_LOAD_FONT2=y -# CONFIG_TFT_LOAD_FONT4 is not set -CONFIG_TFT_LOAD_FONT6=y +CONFIG_TFT_LOAD_FONT4=y +# CONFIG_TFT_LOAD_FONT6 is not set CONFIG_TFT_LOAD_FONT7=y -CONFIG_TFT_LOAD_FONT8=y -CONFIG_TFT_LOAD_GFXFF=y -CONFIG_TFT_SMOOTH_FONT=y +# CONFIG_TFT_LOAD_FONT8 is not set +# CONFIG_TFT_LOAD_GFXFF is not set +# CONFIG_TFT_SMOOTH_FONT is not set +# CONFIG_TFT_IS_AUTOBAHN is not set # end of Fonts # diff --git a/configs/sdkconfig_gernot b/configs/sdkconfig_gernot index bbb6272..e141e13 100644 --- a/configs/sdkconfig_gernot +++ b/configs/sdkconfig_gernot @@ -1766,12 +1766,13 @@ CONFIG_TFT_RST=2 # # CONFIG_TFT_LOAD_GLCD is not set CONFIG_TFT_LOAD_FONT2=y -# CONFIG_TFT_LOAD_FONT4 is not set -CONFIG_TFT_LOAD_FONT6=y +CONFIG_TFT_LOAD_FONT4=y +# CONFIG_TFT_LOAD_FONT6 is not set CONFIG_TFT_LOAD_FONT7=y -CONFIG_TFT_LOAD_FONT8=y -CONFIG_TFT_LOAD_GFXFF=y -CONFIG_TFT_SMOOTH_FONT=y +# CONFIG_TFT_LOAD_FONT8 is not set +# CONFIG_TFT_LOAD_GFXFF is not set +# CONFIG_TFT_SMOOTH_FONT is not set +# CONFIG_TFT_IS_AUTOBAHN is not set # end of Fonts # diff --git a/configs/sdkconfig_mick b/configs/sdkconfig_mick index bbb6272..e141e13 100644 --- a/configs/sdkconfig_mick +++ b/configs/sdkconfig_mick @@ -1766,12 +1766,13 @@ CONFIG_TFT_RST=2 # # CONFIG_TFT_LOAD_GLCD is not set CONFIG_TFT_LOAD_FONT2=y -# CONFIG_TFT_LOAD_FONT4 is not set -CONFIG_TFT_LOAD_FONT6=y +CONFIG_TFT_LOAD_FONT4=y +# CONFIG_TFT_LOAD_FONT6 is not set CONFIG_TFT_LOAD_FONT7=y -CONFIG_TFT_LOAD_FONT8=y -CONFIG_TFT_LOAD_GFXFF=y -CONFIG_TFT_SMOOTH_FONT=y +# CONFIG_TFT_LOAD_FONT8 is not set +# CONFIG_TFT_LOAD_GFXFF is not set +# CONFIG_TFT_SMOOTH_FONT is not set +# CONFIG_TFT_IS_AUTOBAHN is not set # end of Fonts # diff --git a/configs/sdkconfig_nofeatures b/configs/sdkconfig_nofeatures index 2a86437..2d58a4e 100644 --- a/configs/sdkconfig_nofeatures +++ b/configs/sdkconfig_nofeatures @@ -1766,12 +1766,13 @@ CONFIG_TFT_RST=2 # # CONFIG_TFT_LOAD_GLCD is not set CONFIG_TFT_LOAD_FONT2=y -# CONFIG_TFT_LOAD_FONT4 is not set -CONFIG_TFT_LOAD_FONT6=y +CONFIG_TFT_LOAD_FONT4=y +# CONFIG_TFT_LOAD_FONT6 is not set CONFIG_TFT_LOAD_FONT7=y -CONFIG_TFT_LOAD_FONT8=y -CONFIG_TFT_LOAD_GFXFF=y -CONFIG_TFT_SMOOTH_FONT=y +# CONFIG_TFT_LOAD_FONT8 is not set +# CONFIG_TFT_LOAD_GFXFF is not set +# CONFIG_TFT_SMOOTH_FONT is not set +# CONFIG_TFT_IS_AUTOBAHN is not set # end of Fonts # diff --git a/configs/sdkconfig_peter b/configs/sdkconfig_peter index bbb6272..e141e13 100644 --- a/configs/sdkconfig_peter +++ b/configs/sdkconfig_peter @@ -1766,12 +1766,13 @@ CONFIG_TFT_RST=2 # # CONFIG_TFT_LOAD_GLCD is not set CONFIG_TFT_LOAD_FONT2=y -# CONFIG_TFT_LOAD_FONT4 is not set -CONFIG_TFT_LOAD_FONT6=y +CONFIG_TFT_LOAD_FONT4=y +# CONFIG_TFT_LOAD_FONT6 is not set CONFIG_TFT_LOAD_FONT7=y -CONFIG_TFT_LOAD_FONT8=y -CONFIG_TFT_LOAD_GFXFF=y -CONFIG_TFT_SMOOTH_FONT=y +# CONFIG_TFT_LOAD_FONT8 is not set +# CONFIG_TFT_LOAD_GFXFF is not set +# CONFIG_TFT_SMOOTH_FONT is not set +# CONFIG_TFT_IS_AUTOBAHN is not set # end of Fonts # diff --git a/configs/sdkconfig_seatbot b/configs/sdkconfig_seatbot index bbb6272..e141e13 100644 --- a/configs/sdkconfig_seatbot +++ b/configs/sdkconfig_seatbot @@ -1766,12 +1766,13 @@ CONFIG_TFT_RST=2 # # CONFIG_TFT_LOAD_GLCD is not set CONFIG_TFT_LOAD_FONT2=y -# CONFIG_TFT_LOAD_FONT4 is not set -CONFIG_TFT_LOAD_FONT6=y +CONFIG_TFT_LOAD_FONT4=y +# CONFIG_TFT_LOAD_FONT6 is not set CONFIG_TFT_LOAD_FONT7=y -CONFIG_TFT_LOAD_FONT8=y -CONFIG_TFT_LOAD_GFXFF=y -CONFIG_TFT_SMOOTH_FONT=y +# CONFIG_TFT_LOAD_FONT8 is not set +# CONFIG_TFT_LOAD_GFXFF is not set +# CONFIG_TFT_SMOOTH_FONT is not set +# CONFIG_TFT_IS_AUTOBAHN is not set # end of Fonts # diff --git a/configs/sdkconfig_testdevice2 b/configs/sdkconfig_testdevice2 index 4d84b15..1d7ceb8 100644 --- a/configs/sdkconfig_testdevice2 +++ b/configs/sdkconfig_testdevice2 @@ -1769,12 +1769,12 @@ CONFIG_TFT_RST=2 # # CONFIG_TFT_LOAD_GLCD is not set CONFIG_TFT_LOAD_FONT2=y -# CONFIG_TFT_LOAD_FONT4 is not set -CONFIG_TFT_LOAD_FONT6=y +CONFIG_TFT_LOAD_FONT4=y +# CONFIG_TFT_LOAD_FONT6 is not set CONFIG_TFT_LOAD_FONT7=y -CONFIG_TFT_LOAD_FONT8=y -CONFIG_TFT_LOAD_GFXFF=y -CONFIG_TFT_SMOOTH_FONT=y +# CONFIG_TFT_LOAD_FONT8 is not set +# CONFIG_TFT_LOAD_GFXFF is not set +# CONFIG_TFT_SMOOTH_FONT is not set # CONFIG_TFT_IS_AUTOBAHN is not set # end of Fonts From 83649cd859a26305b95695737f2671bd8235a659 Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Sun, 25 Dec 2022 14:40:23 +0100 Subject: [PATCH 4/9] More compilation fixes --- configs/config_gernot.cmake | 28 ++++---- configs/config_greyhash.cmake | 28 ++++---- configs/config_mick.cmake | 28 ++++---- configs/config_nofeatures.cmake | 28 ++++---- configs/config_peter.cmake | 28 ++++---- configs/config_seatbot.cmake | 28 ++++---- configs/config_testdevice.cmake | 28 ++++---- configs/config_testdevice2.cmake | 28 ++++---- configs/sdkconfig_peter | 106 +++++++++++++++++++--------- main/screens/powersupplydisplay.cpp | 32 ++++----- main/screens/powersupplydisplay.h | 10 ++- 11 files changed, 207 insertions(+), 165 deletions(-) diff --git a/configs/config_gernot.cmake b/configs/config_gernot.cmake index 85055ca..ae94651 100644 --- a/configs/config_gernot.cmake +++ b/configs/config_gernot.cmake @@ -1,20 +1,20 @@ set(BOBBY_APP_NAME bobbyquad_gernot) set(BOBBY_DEFAULT_USERNAME gernot) -add_definitions( - -DUSER_SETUP_LOADED=1 - -DLOAD_GLCD=1 - -DLOAD_FONT2=1 - -DLOAD_FONT4=1 - -DLOAD_FONT7=1 - -DILI9341_DRIVER=1 - -DTFT_MOSI=13 - -DTFT_SCLK=15 - -DTFT_CS=14 - -DTFT_DC=12 - -DTFT_RST=2 - -DSPI_FREQUENCY=40000000 -) +#add_definitions( +# -DUSER_SETUP_LOADED=1 +# -DLOAD_GLCD=1 +# -DLOAD_FONT2=1 +# -DLOAD_FONT4=1 +# -DLOAD_FONT7=1 +# -DILI9341_DRIVER=1 +# -DTFT_MOSI=13 +# -DTFT_SCLK=15 +# -DTFT_CS=14 +# -DTFT_DC=12 +# -DTFT_RST=2 +# -DSPI_FREQUENCY=40000000 +#) set(BOBBYCAR_BUILDFLAGS # Pins diff --git a/configs/config_greyhash.cmake b/configs/config_greyhash.cmake index 23ef7f0..9969108 100644 --- a/configs/config_greyhash.cmake +++ b/configs/config_greyhash.cmake @@ -1,20 +1,20 @@ set(BOBBY_APP_NAME bobbyquad_greyhash) set(BOBBY_DEFAULT_USERNAME greyhash) -add_definitions( - -DUSER_SETUP_LOADED=1 - -DLOAD_GLCD=1 - -DLOAD_FONT2=1 - -DLOAD_FONT4=1 - -DLOAD_FONT7=1 - -DILI9341_DRIVER=1 - -DTFT_MOSI=13 - -DTFT_SCLK=15 - -DTFT_CS=14 - -DTFT_DC=12 - -DTFT_RST=2 - -DSPI_FREQUENCY=40000000 -) +#add_definitions( +# -DUSER_SETUP_LOADED=1 +# -DLOAD_GLCD=1 +# -DLOAD_FONT2=1 +# -DLOAD_FONT4=1 +# -DLOAD_FONT7=1 +# -DILI9341_DRIVER=1 +# -DTFT_MOSI=13 +# -DTFT_SCLK=15 +# -DTFT_CS=14 +# -DTFT_DC=12 +# -DTFT_RST=2 +# -DSPI_FREQUENCY=40000000 +#) set(BOBBYCAR_BUILDFLAGS # Pins diff --git a/configs/config_mick.cmake b/configs/config_mick.cmake index 7e88d34..0a83639 100644 --- a/configs/config_mick.cmake +++ b/configs/config_mick.cmake @@ -1,20 +1,20 @@ set(BOBBY_APP_NAME bobbyquad_mick) set(BOBBY_DEFAULT_USERNAME mick) -add_definitions( - -DUSER_SETUP_LOADED=1 - -DLOAD_GLCD=1 - -DLOAD_FONT2=1 - -DLOAD_FONT4=1 - -DLOAD_FONT7=1 - -DILI9341_DRIVER=1 - -DTFT_MOSI=13 - -DTFT_SCLK=15 - -DTFT_CS=14 - -DTFT_DC=12 - -DTFT_RST=2 - -DSPI_FREQUENCY=27000000 -) +#add_definitions( +# -DUSER_SETUP_LOADED=1 +# -DLOAD_GLCD=1 +# -DLOAD_FONT2=1 +# -DLOAD_FONT4=1 +# -DLOAD_FONT7=1 +# -DILI9341_DRIVER=1 +# -DTFT_MOSI=13 +# -DTFT_SCLK=15 +# -DTFT_CS=14 +# -DTFT_DC=12 +# -DTFT_RST=2 +# -DSPI_FREQUENCY=27000000 +#) set(BOBBYCAR_BUILDFLAGS # Pins diff --git a/configs/config_nofeatures.cmake b/configs/config_nofeatures.cmake index bc02294..bf239a9 100644 --- a/configs/config_nofeatures.cmake +++ b/configs/config_nofeatures.cmake @@ -1,20 +1,20 @@ set(BOBBY_APP_NAME bobbyquad_nofeatures) set(BOBBY_DEFAULT_USERNAME nofeatures) -add_definitions( - -DUSER_SETUP_LOADED=1 - -DLOAD_GLCD=1 - -DLOAD_FONT2=1 - -DLOAD_FONT4=1 - -DLOAD_FONT7=1 - -DILI9341_DRIVER=1 - -DTFT_MOSI=13 - -DTFT_SCLK=15 - -DTFT_CS=14 - -DTFT_DC=12 - -DTFT_RST=2 - -DSPI_FREQUENCY=40000000 -) +#add_definitions( +# -DUSER_SETUP_LOADED=1 +# -DLOAD_GLCD=1 +# -DLOAD_FONT2=1 +# -DLOAD_FONT4=1 +# -DLOAD_FONT7=1 +# -DILI9341_DRIVER=1 +# -DTFT_MOSI=13 +# -DTFT_SCLK=15 +# -DTFT_CS=14 +# -DTFT_DC=12 +# -DTFT_RST=2 +# -DSPI_FREQUENCY=40000000 +#) set(BOBBYCAR_BUILDFLAGS # Pins diff --git a/configs/config_peter.cmake b/configs/config_peter.cmake index 5f5c000..4a21114 100644 --- a/configs/config_peter.cmake +++ b/configs/config_peter.cmake @@ -1,20 +1,20 @@ set(BOBBY_APP_NAME bobbyquad_peter) set(BOBBY_DEFAULT_USERNAME peter) -add_definitions( - -DUSER_SETUP_LOADED=1 - -DLOAD_GLCD=1 - -DLOAD_FONT2=1 - -DLOAD_FONT4=1 - -DLOAD_FONT7=1 - -DILI9341_DRIVER=1 - -DTFT_MOSI=13 - -DTFT_SCLK=15 - -DTFT_CS=14 - -DTFT_DC=12 - -DTFT_RST=2 - -DSPI_FREQUENCY=40000000 -) +# add_definitions( +# -DUSER_SETUP_LOADED=1 +# -DLOAD_GLCD=1 +# -DLOAD_FONT2=1 +# -DLOAD_FONT4=1 +# -DLOAD_FONT7=1 +# -DILI9341_DRIVER=1 +# -DTFT_MOSI=13 +# -DTFT_SCLK=15 +# -DTFT_CS=14 +# -DTFT_DC=12 +# -DTFT_RST=2 +# -DSPI_FREQUENCY=40000000 +# ) set(BOBBYCAR_BUILDFLAGS # Pins diff --git a/configs/config_seatbot.cmake b/configs/config_seatbot.cmake index 34500bc..1392ac1 100644 --- a/configs/config_seatbot.cmake +++ b/configs/config_seatbot.cmake @@ -1,20 +1,20 @@ set(BOBBY_APP_NAME bobbyquad_seatbot) set(BOBBY_DEFAULT_USERNAME seatbot) -add_definitions( - -DUSER_SETUP_LOADED=1 - -DLOAD_GLCD=1 - -DLOAD_FONT2=1 - -DLOAD_FONT4=1 - -DLOAD_FONT7=1 - -DILI9341_DRIVER=1 - -DTFT_MOSI=13 - -DTFT_SCLK=15 - -DTFT_CS=14 - -DTFT_DC=12 - -DTFT_RST=2 - -DSPI_FREQUENCY=40000000 -) +#add_definitions( +# -DUSER_SETUP_LOADED=1 +# -DLOAD_GLCD=1 +# -DLOAD_FONT2=1 +# -DLOAD_FONT4=1 +# -DLOAD_FONT7=1 +# -DILI9341_DRIVER=1 +# -DTFT_MOSI=13 +# -DTFT_SCLK=15 +# -DTFT_CS=14 +# -DTFT_DC=12 +# -DTFT_RST=2 +# -DSPI_FREQUENCY=40000000 +#) set(BOBBYCAR_BUILDFLAGS # Pins diff --git a/configs/config_testdevice.cmake b/configs/config_testdevice.cmake index 235c2fd..23d3850 100644 --- a/configs/config_testdevice.cmake +++ b/configs/config_testdevice.cmake @@ -1,20 +1,20 @@ set(BOBBY_APP_NAME testdevice) set(BOBBY_DEFAULT_USERNAME testdevice) -add_definitions( - -DUSER_SETUP_LOADED=1 - -DLOAD_GLCD=1 - -DLOAD_FONT2=1 - -DLOAD_FONT4=1 - -DLOAD_FONT7=1 - -DILI9341_DRIVER=1 - -DTFT_MOSI=13 - -DTFT_SCLK=15 - -DTFT_CS=14 - -DTFT_DC=12 - -DTFT_RST=2 - -DSPI_FREQUENCY=40000000 -) +#add_definitions( +# -DUSER_SETUP_LOADED=1 +# -DLOAD_GLCD=1 +# -DLOAD_FONT2=1 +# -DLOAD_FONT4=1 +# -DLOAD_FONT7=1 +# -DILI9341_DRIVER=1 +# -DTFT_MOSI=13 +# -DTFT_SCLK=15 +# -DTFT_CS=14 +# -DTFT_DC=12 +# -DTFT_RST=2 +# -DSPI_FREQUENCY=40000000 +#) set(BOBBYCAR_BUILDFLAGS # Pins diff --git a/configs/config_testdevice2.cmake b/configs/config_testdevice2.cmake index 4326734..e8697ff 100644 --- a/configs/config_testdevice2.cmake +++ b/configs/config_testdevice2.cmake @@ -1,20 +1,20 @@ set(BOBBY_APP_NAME testdevice2) set(BOBBY_DEFAULT_USERNAME testdevice2) -add_definitions( - -DUSER_SETUP_LOADED=1 - -DLOAD_GLCD=1 - -DLOAD_FONT2=1 - -DLOAD_FONT4=1 - -DLOAD_FONT7=1 - -DST7789_DRIVER=1 - -DTFT_MOSI=13 - -DTFT_SCLK=15 - -DTFT_CS=14 - -DTFT_DC=12 - -DTFT_RST=2 - -DSPI_FREQUENCY=40000000 -) +#add_definitions( +# -DUSER_SETUP_LOADED=1 +# -DLOAD_GLCD=1 +# -DLOAD_FONT2=1 +# -DLOAD_FONT4=1 +# -DLOAD_FONT7=1 +# -DST7789_DRIVER=1 +# -DTFT_MOSI=13 +# -DTFT_SCLK=15 +# -DTFT_CS=14 +# -DTFT_DC=12 +# -DTFT_RST=2 +# -DSPI_FREQUENCY=40000000 +#) set(BOBBYCAR_BUILDFLAGS # Pins diff --git a/configs/sdkconfig_peter b/configs/sdkconfig_peter index e141e13..d03fbef 100644 --- a/configs/sdkconfig_peter +++ b/configs/sdkconfig_peter @@ -5,7 +5,7 @@ CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined" CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined" CONFIG_SOC_DPORT_WORKAROUND="Not determined" -CONFIG_SOC_CAPS_ECO_VER_MAX=3 +CONFIG_SOC_CAPS_ECO_VER_MAX=301 CONFIG_SOC_ADC_SUPPORTED=y CONFIG_SOC_DAC_SUPPORTED=y CONFIG_SOC_MCPWM_SUPPORTED=y @@ -53,7 +53,6 @@ CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2 CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20 CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 -CONFIG_SOC_RTC_SLOW_CLOCK_SUPPORT_8MD256=y CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=5 CONFIG_SOC_CPU_CORES_NUM=2 @@ -62,27 +61,26 @@ CONFIG_SOC_CPU_HAS_FPU=y CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINT_SIZE=64 -CONFIG_SOC_DAC_PERIPH_NUM=2 +CONFIG_SOC_DAC_CHAN_NUM=2 CONFIG_SOC_DAC_RESOLUTION=8 +CONFIG_SOC_DAC_DMA_16BIT_ALIGN=y CONFIG_SOC_GPIO_PORT=1 CONFIG_SOC_GPIO_PIN_COUNT=40 CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF +CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0xEF0FEA CONFIG_SOC_GPIO_SUPPORT_SLP_SWITCH=y CONFIG_SOC_I2C_NUM=2 CONFIG_SOC_I2C_FIFO_LEN=32 CONFIG_SOC_I2C_SUPPORT_SLAVE=y CONFIG_SOC_I2C_SUPPORT_APB=y -CONFIG_SOC_CLK_APLL_SUPPORTED=y -CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 -CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 -CONFIG_SOC_APLL_MIN_HZ=5303031 -CONFIG_SOC_APLL_MAX_HZ=125000000 CONFIG_SOC_I2S_NUM=2 CONFIG_SOC_I2S_HW_VERSION_1=y CONFIG_SOC_I2S_SUPPORTS_APLL=y CONFIG_SOC_I2S_SUPPORTS_PDM=y CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y +CONFIG_SOC_I2S_PDM_MAX_TX_LINES=1 CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y +CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 CONFIG_SOC_I2S_SUPPORTS_ADC_DAC=y CONFIG_SOC_I2S_SUPPORTS_ADC=y CONFIG_SOC_I2S_SUPPORTS_DAC=y @@ -97,7 +95,8 @@ CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y CONFIG_SOC_LEDC_CHANNEL_NUM=8 -CONFIG_SOC_LEDC_TIMER_BIT_WIDE_NUM=20 +CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 +CONFIG_SOC_LEDC_GAMMA_FADE_RANGE_MAX=1 CONFIG_SOC_MCPWM_GROUPS=2 CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 @@ -108,6 +107,7 @@ CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 +CONFIG_SOC_MCPWM_CLK_SUPPORT_PLL160M=y CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 CONFIG_SOC_PCNT_GROUPS=1 @@ -147,7 +147,9 @@ CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y CONFIG_SOC_TOUCH_VERSION_1=y CONFIG_SOC_TOUCH_SENSOR_NUM=10 CONFIG_SOC_TOUCH_PAD_MEASURE_WAIT_MAX=0xFF +CONFIG_SOC_TWAI_CONTROLLER_NUM=1 CONFIG_SOC_TWAI_BRP_MIN=2 +CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y CONFIG_SOC_UART_NUM=3 CONFIG_SOC_UART_SUPPORT_APB_CLK=y @@ -174,12 +176,21 @@ CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y CONFIG_SOC_PM_SUPPORT_RTC_FAST_MEM_PD=y CONFIG_SOC_PM_SUPPORT_RTC_SLOW_MEM_PD=y +CONFIG_SOC_CLK_APLL_SUPPORTED=y +CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 +CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 +CONFIG_SOC_APLL_MIN_HZ=5303031 +CONFIG_SOC_APLL_MAX_HZ=125000000 +CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y +CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y +CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y CONFIG_SOC_SDMMC_USE_IOMUX=y CONFIG_SOC_SDMMC_NUM_SLOTS=2 CONFIG_SOC_WIFI_WAPI_SUPPORT=y CONFIG_SOC_WIFI_CSI_SUPPORT=y CONFIG_SOC_WIFI_MESH_SUPPORT=y CONFIG_SOC_BLE_SUPPORTED=y +CONFIG_SOC_BLE_MESH_SUPPORTED=y CONFIG_SOC_BT_CLASSIC_SUPPORTED=y CONFIG_IDF_CMAKE=y CONFIG_IDF_TARGET_ARCH_XTENSA=y @@ -255,8 +266,8 @@ CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 CONFIG_ESP_ROM_HAS_CRC_LE=y CONFIG_ESP_ROM_HAS_CRC_BE=y +CONFIG_ESP_ROM_HAS_MZ_CRC32=y CONFIG_ESP_ROM_HAS_JPEG_DECODE=y -CONFIG_ESP_ROM_SUPPORT_MULTIPLE_UART=y CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y # @@ -519,6 +530,7 @@ CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY=y CONFIG_BT_NIMBLE_MAX_PERIODIC_SYNCS=0 # CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EN is not set CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_DIS=y +# CONFIG_BT_NIMBLE_52_FEATURE_SUPPORT is not set CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EFF=0 CONFIG_BT_NIMBLE_WHITELIST_SIZE=12 # CONFIG_BT_NIMBLE_TEST_THROUGHPUT_TEST is not set @@ -665,6 +677,7 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y # MCPWM Configuration # # CONFIG_MCPWM_ISR_IRAM_SAFE is not set +# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set # CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set # end of MCPWM Configuration @@ -676,6 +689,16 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_I2S_ENABLE_DEBUG_LOG is not set # end of I2S Configuration + +# +# DAC Configuration +# +# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set +# CONFIG_DAC_ISR_IRAM_SAFE is not set +# CONFIG_DAC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_DAC_ENABLE_DEBUG_LOG is not set +CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y +# end of DAC Configuration # end of Driver Configurations # @@ -781,6 +804,26 @@ CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP=y # Hardware Settings # +# +# Chip revision +# +CONFIG_ESP32_REV_MIN_0=y +# CONFIG_ESP32_REV_MIN_1 is not set +# CONFIG_ESP32_REV_MIN_1_1 is not set +# CONFIG_ESP32_REV_MIN_2 is not set +# CONFIG_ESP32_REV_MIN_3 is not set +# CONFIG_ESP32_REV_MIN_3_1 is not set +CONFIG_ESP32_REV_MIN=0 +CONFIG_ESP32_REV_MIN_FULL=0 +CONFIG_ESP_REV_MIN_FULL=0 + +# +# Maximum Supported ESP32 Revision (Rev v3.99) +# +CONFIG_ESP32_REV_MAX_FULL=399 +CONFIG_ESP_REV_MAX_FULL=399 +# end of Chip revision + # # MAC Config # @@ -788,6 +831,7 @@ CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y # CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 @@ -827,12 +871,6 @@ CONFIG_MMU_PAGE_MODE="64KB" CONFIG_MMU_PAGE_SIZE=0x10000 # end of MMU Config -CONFIG_ESP32_REV_MIN_0=y -# CONFIG_ESP32_REV_MIN_1 is not set -# CONFIG_ESP32_REV_MIN_2 is not set -# CONFIG_ESP32_REV_MIN_3 is not set -CONFIG_ESP32_REV_MIN=0 - # # Main XTAL Config # @@ -1026,10 +1064,11 @@ CONFIG_ESP32_WIFI_RX_IRAM_OPT=y CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set -# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set +CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y # CONFIG_ESP_WIFI_GMAC_SUPPORT is not set CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y # CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set +CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=6 # end of Wi-Fi # @@ -1044,18 +1083,11 @@ CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y # FAT Filesystem support # CONFIG_FATFS_VOLUME_COUNT=2 +CONFIG_FATFS_LFN_NONE=y +# CONFIG_FATFS_LFN_HEAP is not set +# CONFIG_FATFS_LFN_STACK is not set # CONFIG_FATFS_SECTOR_512 is not set -# CONFIG_FATFS_SECTOR_1024 is not set -# CONFIG_FATFS_SECTOR_2048 is not set CONFIG_FATFS_SECTOR_4096=y -CONFIG_FATFS_SECTORS_PER_CLUSTER_1=y -# CONFIG_FATFS_SECTORS_PER_CLUSTER_2 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_4 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_8 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_16 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_32 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_64 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_128 is not set # CONFIG_FATFS_CODEPAGE_DYNAMIC is not set CONFIG_FATFS_CODEPAGE_437=y # CONFIG_FATFS_CODEPAGE_720 is not set @@ -1078,13 +1110,7 @@ CONFIG_FATFS_CODEPAGE_437=y # CONFIG_FATFS_CODEPAGE_936 is not set # CONFIG_FATFS_CODEPAGE_949 is not set # CONFIG_FATFS_CODEPAGE_950 is not set -CONFIG_FATFS_AUTO_TYPE=y -# CONFIG_FATFS_FAT12 is not set -# CONFIG_FATFS_FAT16 is not set CONFIG_FATFS_CODEPAGE=437 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set -# CONFIG_FATFS_LFN_STACK is not set CONFIG_FATFS_FS_LOCK=0 CONFIG_FATFS_TIMEOUT_MS=10000 CONFIG_FATFS_PER_FILE_CACHE=y @@ -1114,6 +1140,7 @@ CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 +CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set # end of Kernel @@ -1122,6 +1149,7 @@ CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 # Port # # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set +CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y CONFIG_FREERTOS_ISR_STACKSIZE=2048 @@ -1134,7 +1162,6 @@ CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set # CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y # end of Port @@ -1247,6 +1274,7 @@ CONFIG_LWIP_TCP_SYNMAXRTX=12 CONFIG_LWIP_TCP_MSS=1440 CONFIG_LWIP_TCP_TMR_INTERVAL=250 CONFIG_LWIP_TCP_MSL=60000 +CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 CONFIG_LWIP_TCP_WND_DEFAULT=5744 CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 @@ -1785,9 +1813,17 @@ CONFIG_TFT_LOAD_FONT7=y # # ESP-NimBLE-CPP configuration # +CONFIG_NIMBLE_CPP_LOG_LEVEL_NONE=y +# CONFIG_NIMBLE_CPP_LOG_LEVEL_ERROR is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_WARNING is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_INFO is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_DEBUG is not set +CONFIG_NIMBLE_CPP_LOG_LEVEL=0 # CONFIG_NIMBLE_CPP_ENABLE_RETURN_CODE_TEXT is not set # CONFIG_NIMBLE_CPP_ENABLE_GAP_EVENT_CODE_TEXT is not set -# CONFIG_NIMBLE_CPP_ENABLE_ADVERTISMENT_TYPE_TEXT is not set +# CONFIG_NIMBLE_CPP_ENABLE_ADVERTISEMENT_TYPE_TEXT is not set +# CONFIG_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED is not set +CONFIG_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH=20 # end of ESP-NimBLE-CPP configuration # end of Component config diff --git a/main/screens/powersupplydisplay.cpp b/main/screens/powersupplydisplay.cpp index 484cf93..4312850 100644 --- a/main/screens/powersupplydisplay.cpp +++ b/main/screens/powersupplydisplay.cpp @@ -1,34 +1,33 @@ #include "powersupplydisplay.h" // 3rdparty lib includes - #include +#include +#include // local includes #include "globals.h" #if defined(FEATURE_CAN) && defined(FEATURE_POWERSUPPLY) -void PowerSupplyDisplay::initScreen() + +namespace bobby { + +void PowerSupplyDisplay::initScreen(espgui::TftInterface &tft) { - Base::initScreen(); + Base::initScreen(tft); - espgui::tft.fillScreen(TFT_BLACK); - espgui::tft.setTextColor(TFT_WHITE, TFT_BLACK); - - espgui::tft.setTextFont(4); - - espgui::tft.drawString("Voltage:", 0, m_voltageLabel.y()); - m_voltageLabel.start(); - espgui::tft.drawString("Current:", 0, m_currentLabel.y()); - m_currentLabel.start(); + tft.drawString("Voltage:", 0, m_voltageLabel.y(), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_voltageLabel.start(tft); + tft.drawString("Current:", 0, m_currentLabel.y(), espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_currentLabel.start(tft); } -void PowerSupplyDisplay::redraw() +void PowerSupplyDisplay::redraw(espgui::TftInterface &tft) { - Base::redraw(); + Base::redraw(tft); - m_voltageLabel.redraw(std::to_string(50.4) + 'V'); - m_currentLabel.redraw(std::to_string(15.1) + 'A'); + m_voltageLabel.redraw(tft, std::to_string(50.4) + 'V', espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + m_currentLabel.redraw(tft, std::to_string(15.1) + 'A', espgui::TFT_WHITE, espgui::TFT_BLACK, 4); } void PowerSupplyDisplay::buttonPressed(espgui::Button button) @@ -45,4 +44,5 @@ void PowerSupplyDisplay::buttonPressed(espgui::Button button) default:; } } +} // namespace bobby #endif diff --git a/main/screens/powersupplydisplay.h b/main/screens/powersupplydisplay.h index e674f40..229e8fe 100644 --- a/main/screens/powersupplydisplay.h +++ b/main/screens/powersupplydisplay.h @@ -1,23 +1,29 @@ #pragma once // 3rdparty lib includes +#include #include // local includes #include "guihelpers/bobbydisplay.h" #if defined(FEATURE_CAN) && defined(FEATURE_POWERSUPPLY) + +namespace bobby { + class PowerSupplyDisplay : public BobbyDisplay { using Base = BobbyDisplay; public: - void initScreen() override; - void redraw() override; + void initScreen(espgui::TftInterface &tft) override; + void redraw(espgui::TftInterface &tft) override; void buttonPressed(espgui::Button button) override; espgui::Label m_voltageLabel{120, 50}; espgui::Label m_currentLabel{120, 75}; }; + +} // namespace bobby #endif From c45f18d5035b796dfc367f13cd9d6b21ea828658 Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Sun, 25 Dec 2022 16:08:43 +0100 Subject: [PATCH 5/9] More fixes for compilation --- configs/config_allfeatures.cmake | 15 ---- configs/config_comred_new.cmake | 15 ---- configs/config_gernot.cmake | 15 ---- configs/config_greyhash.cmake | 15 ---- configs/config_mick.cmake | 15 ---- configs/config_nofeatures.cmake | 15 ---- configs/config_peter.cmake | 15 ---- configs/config_seatbot.cmake | 15 ---- configs/config_testdevice.cmake | 15 ---- configs/config_testdevice2.cmake | 15 ---- configs/sdkconfig_allfeatures | 117 ++++++++++++++++--------- configs/sdkconfig_feedc0de | 119 +++++++++++++++++--------- configs/sdkconfig_feedc0de_new | 119 +++++++++++++++++--------- configs/sdkconfig_seatbot | 106 +++++++++++++++-------- main/CMakeLists.txt | 1 + main/guihelpers/bobbycheckbox.h | 4 +- main/main.cpp | 2 - main/screens.cpp | 1 + main/screens/joystickdebugdisplay.cpp | 20 +++-- main/screens/joystickdebugdisplay.h | 13 ++- main/screens/mosfetsmenu.cpp | 12 +-- main/screens/mosfetsmenu.h | 3 + 22 files changed, 342 insertions(+), 325 deletions(-) diff --git a/configs/config_allfeatures.cmake b/configs/config_allfeatures.cmake index ebb04d0..e71d53e 100644 --- a/configs/config_allfeatures.cmake +++ b/configs/config_allfeatures.cmake @@ -1,21 +1,6 @@ set(BOBBY_APP_NAME bobbyquad_allfeatures) set(BOBBY_DEFAULT_USERNAME allfeatures) -add_definitions( - -DUSER_SETUP_LOADED=1 - -DLOAD_GLCD=1 - -DLOAD_FONT2=1 - -DLOAD_FONT4=1 - -DLOAD_FONT7=1 - -DILI9341_DRIVER=1 - -DTFT_MOSI=13 - -DTFT_SCLK=15 - -DTFT_CS=14 - -DTFT_DC=12 - -DTFT_RST=2 - -DSPI_FREQUENCY=40000000 -) - set(BOBBYCAR_BUILDFLAGS # Pins # -DFEATURE_JOYSTICK diff --git a/configs/config_comred_new.cmake b/configs/config_comred_new.cmake index 331f554..b158210 100644 --- a/configs/config_comred_new.cmake +++ b/configs/config_comred_new.cmake @@ -1,21 +1,6 @@ set(BOBBY_APP_NAME bobbyquad_comred_new) set(BOBBY_DEFAULT_USERNAME comred_new) -# add_definitions( -# -DUSER_SETUP_LOADED=1 -# -DLOAD_GLCD=1 -# -DLOAD_FONT2=1 -# -DLOAD_FONT4=1 -# -DLOAD_FONT7=1 -# -DILI9341_DRIVER=1 -# -DTFT_MOSI=13 -# -DTFT_SCLK=15 -# -DTFT_CS=14 -# -DTFT_DC=12 -# -DTFT_RST=2 -# -DSPI_FREQUENCY=40000000 -# ) - set(BOBBYCAR_BUILDFLAGS # Pins -DPINS_GAS=34 diff --git a/configs/config_gernot.cmake b/configs/config_gernot.cmake index ae94651..b64f850 100644 --- a/configs/config_gernot.cmake +++ b/configs/config_gernot.cmake @@ -1,21 +1,6 @@ set(BOBBY_APP_NAME bobbyquad_gernot) set(BOBBY_DEFAULT_USERNAME gernot) -#add_definitions( -# -DUSER_SETUP_LOADED=1 -# -DLOAD_GLCD=1 -# -DLOAD_FONT2=1 -# -DLOAD_FONT4=1 -# -DLOAD_FONT7=1 -# -DILI9341_DRIVER=1 -# -DTFT_MOSI=13 -# -DTFT_SCLK=15 -# -DTFT_CS=14 -# -DTFT_DC=12 -# -DTFT_RST=2 -# -DSPI_FREQUENCY=40000000 -#) - set(BOBBYCAR_BUILDFLAGS # Pins -DPINS_GAS=34 diff --git a/configs/config_greyhash.cmake b/configs/config_greyhash.cmake index 9969108..bebb0f2 100644 --- a/configs/config_greyhash.cmake +++ b/configs/config_greyhash.cmake @@ -1,21 +1,6 @@ set(BOBBY_APP_NAME bobbyquad_greyhash) set(BOBBY_DEFAULT_USERNAME greyhash) -#add_definitions( -# -DUSER_SETUP_LOADED=1 -# -DLOAD_GLCD=1 -# -DLOAD_FONT2=1 -# -DLOAD_FONT4=1 -# -DLOAD_FONT7=1 -# -DILI9341_DRIVER=1 -# -DTFT_MOSI=13 -# -DTFT_SCLK=15 -# -DTFT_CS=14 -# -DTFT_DC=12 -# -DTFT_RST=2 -# -DSPI_FREQUENCY=40000000 -#) - set(BOBBYCAR_BUILDFLAGS # Pins -DPINS_GAS=34 diff --git a/configs/config_mick.cmake b/configs/config_mick.cmake index 0a83639..9d2962e 100644 --- a/configs/config_mick.cmake +++ b/configs/config_mick.cmake @@ -1,21 +1,6 @@ set(BOBBY_APP_NAME bobbyquad_mick) set(BOBBY_DEFAULT_USERNAME mick) -#add_definitions( -# -DUSER_SETUP_LOADED=1 -# -DLOAD_GLCD=1 -# -DLOAD_FONT2=1 -# -DLOAD_FONT4=1 -# -DLOAD_FONT7=1 -# -DILI9341_DRIVER=1 -# -DTFT_MOSI=13 -# -DTFT_SCLK=15 -# -DTFT_CS=14 -# -DTFT_DC=12 -# -DTFT_RST=2 -# -DSPI_FREQUENCY=27000000 -#) - set(BOBBYCAR_BUILDFLAGS # Pins -DPINS_GAS=34 diff --git a/configs/config_nofeatures.cmake b/configs/config_nofeatures.cmake index bf239a9..5b50d9f 100644 --- a/configs/config_nofeatures.cmake +++ b/configs/config_nofeatures.cmake @@ -1,21 +1,6 @@ set(BOBBY_APP_NAME bobbyquad_nofeatures) set(BOBBY_DEFAULT_USERNAME nofeatures) -#add_definitions( -# -DUSER_SETUP_LOADED=1 -# -DLOAD_GLCD=1 -# -DLOAD_FONT2=1 -# -DLOAD_FONT4=1 -# -DLOAD_FONT7=1 -# -DILI9341_DRIVER=1 -# -DTFT_MOSI=13 -# -DTFT_SCLK=15 -# -DTFT_CS=14 -# -DTFT_DC=12 -# -DTFT_RST=2 -# -DSPI_FREQUENCY=40000000 -#) - set(BOBBYCAR_BUILDFLAGS # Pins -DPINS_GAS=34 diff --git a/configs/config_peter.cmake b/configs/config_peter.cmake index 4a21114..3788e3e 100644 --- a/configs/config_peter.cmake +++ b/configs/config_peter.cmake @@ -1,21 +1,6 @@ set(BOBBY_APP_NAME bobbyquad_peter) set(BOBBY_DEFAULT_USERNAME peter) -# add_definitions( -# -DUSER_SETUP_LOADED=1 -# -DLOAD_GLCD=1 -# -DLOAD_FONT2=1 -# -DLOAD_FONT4=1 -# -DLOAD_FONT7=1 -# -DILI9341_DRIVER=1 -# -DTFT_MOSI=13 -# -DTFT_SCLK=15 -# -DTFT_CS=14 -# -DTFT_DC=12 -# -DTFT_RST=2 -# -DSPI_FREQUENCY=40000000 -# ) - set(BOBBYCAR_BUILDFLAGS # Pins -DPINS_GAS=34 diff --git a/configs/config_seatbot.cmake b/configs/config_seatbot.cmake index 1392ac1..3bd8149 100644 --- a/configs/config_seatbot.cmake +++ b/configs/config_seatbot.cmake @@ -1,21 +1,6 @@ set(BOBBY_APP_NAME bobbyquad_seatbot) set(BOBBY_DEFAULT_USERNAME seatbot) -#add_definitions( -# -DUSER_SETUP_LOADED=1 -# -DLOAD_GLCD=1 -# -DLOAD_FONT2=1 -# -DLOAD_FONT4=1 -# -DLOAD_FONT7=1 -# -DILI9341_DRIVER=1 -# -DTFT_MOSI=13 -# -DTFT_SCLK=15 -# -DTFT_CS=14 -# -DTFT_DC=12 -# -DTFT_RST=2 -# -DSPI_FREQUENCY=40000000 -#) - set(BOBBYCAR_BUILDFLAGS # Pins -DPINS_GAS=34 diff --git a/configs/config_testdevice.cmake b/configs/config_testdevice.cmake index 23d3850..252cb2c 100644 --- a/configs/config_testdevice.cmake +++ b/configs/config_testdevice.cmake @@ -1,21 +1,6 @@ set(BOBBY_APP_NAME testdevice) set(BOBBY_DEFAULT_USERNAME testdevice) -#add_definitions( -# -DUSER_SETUP_LOADED=1 -# -DLOAD_GLCD=1 -# -DLOAD_FONT2=1 -# -DLOAD_FONT4=1 -# -DLOAD_FONT7=1 -# -DILI9341_DRIVER=1 -# -DTFT_MOSI=13 -# -DTFT_SCLK=15 -# -DTFT_CS=14 -# -DTFT_DC=12 -# -DTFT_RST=2 -# -DSPI_FREQUENCY=40000000 -#) - set(BOBBYCAR_BUILDFLAGS # Pins -DPINS_GAS=34 diff --git a/configs/config_testdevice2.cmake b/configs/config_testdevice2.cmake index e8697ff..5416f8b 100644 --- a/configs/config_testdevice2.cmake +++ b/configs/config_testdevice2.cmake @@ -1,21 +1,6 @@ set(BOBBY_APP_NAME testdevice2) set(BOBBY_DEFAULT_USERNAME testdevice2) -#add_definitions( -# -DUSER_SETUP_LOADED=1 -# -DLOAD_GLCD=1 -# -DLOAD_FONT2=1 -# -DLOAD_FONT4=1 -# -DLOAD_FONT7=1 -# -DST7789_DRIVER=1 -# -DTFT_MOSI=13 -# -DTFT_SCLK=15 -# -DTFT_CS=14 -# -DTFT_DC=12 -# -DTFT_RST=2 -# -DSPI_FREQUENCY=40000000 -#) - set(BOBBYCAR_BUILDFLAGS # Pins -DPINS_GAS=34 diff --git a/configs/sdkconfig_allfeatures b/configs/sdkconfig_allfeatures index bbb6272..d03fbef 100644 --- a/configs/sdkconfig_allfeatures +++ b/configs/sdkconfig_allfeatures @@ -5,7 +5,7 @@ CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined" CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined" CONFIG_SOC_DPORT_WORKAROUND="Not determined" -CONFIG_SOC_CAPS_ECO_VER_MAX=3 +CONFIG_SOC_CAPS_ECO_VER_MAX=301 CONFIG_SOC_ADC_SUPPORTED=y CONFIG_SOC_DAC_SUPPORTED=y CONFIG_SOC_MCPWM_SUPPORTED=y @@ -53,7 +53,6 @@ CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2 CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20 CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 -CONFIG_SOC_RTC_SLOW_CLOCK_SUPPORT_8MD256=y CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=5 CONFIG_SOC_CPU_CORES_NUM=2 @@ -62,27 +61,26 @@ CONFIG_SOC_CPU_HAS_FPU=y CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINT_SIZE=64 -CONFIG_SOC_DAC_PERIPH_NUM=2 +CONFIG_SOC_DAC_CHAN_NUM=2 CONFIG_SOC_DAC_RESOLUTION=8 +CONFIG_SOC_DAC_DMA_16BIT_ALIGN=y CONFIG_SOC_GPIO_PORT=1 CONFIG_SOC_GPIO_PIN_COUNT=40 CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF +CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0xEF0FEA CONFIG_SOC_GPIO_SUPPORT_SLP_SWITCH=y CONFIG_SOC_I2C_NUM=2 CONFIG_SOC_I2C_FIFO_LEN=32 CONFIG_SOC_I2C_SUPPORT_SLAVE=y CONFIG_SOC_I2C_SUPPORT_APB=y -CONFIG_SOC_CLK_APLL_SUPPORTED=y -CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 -CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 -CONFIG_SOC_APLL_MIN_HZ=5303031 -CONFIG_SOC_APLL_MAX_HZ=125000000 CONFIG_SOC_I2S_NUM=2 CONFIG_SOC_I2S_HW_VERSION_1=y CONFIG_SOC_I2S_SUPPORTS_APLL=y CONFIG_SOC_I2S_SUPPORTS_PDM=y CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y +CONFIG_SOC_I2S_PDM_MAX_TX_LINES=1 CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y +CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 CONFIG_SOC_I2S_SUPPORTS_ADC_DAC=y CONFIG_SOC_I2S_SUPPORTS_ADC=y CONFIG_SOC_I2S_SUPPORTS_DAC=y @@ -97,7 +95,8 @@ CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y CONFIG_SOC_LEDC_CHANNEL_NUM=8 -CONFIG_SOC_LEDC_TIMER_BIT_WIDE_NUM=20 +CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 +CONFIG_SOC_LEDC_GAMMA_FADE_RANGE_MAX=1 CONFIG_SOC_MCPWM_GROUPS=2 CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 @@ -108,6 +107,7 @@ CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 +CONFIG_SOC_MCPWM_CLK_SUPPORT_PLL160M=y CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 CONFIG_SOC_PCNT_GROUPS=1 @@ -147,7 +147,9 @@ CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y CONFIG_SOC_TOUCH_VERSION_1=y CONFIG_SOC_TOUCH_SENSOR_NUM=10 CONFIG_SOC_TOUCH_PAD_MEASURE_WAIT_MAX=0xFF +CONFIG_SOC_TWAI_CONTROLLER_NUM=1 CONFIG_SOC_TWAI_BRP_MIN=2 +CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y CONFIG_SOC_UART_NUM=3 CONFIG_SOC_UART_SUPPORT_APB_CLK=y @@ -174,12 +176,21 @@ CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y CONFIG_SOC_PM_SUPPORT_RTC_FAST_MEM_PD=y CONFIG_SOC_PM_SUPPORT_RTC_SLOW_MEM_PD=y +CONFIG_SOC_CLK_APLL_SUPPORTED=y +CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 +CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 +CONFIG_SOC_APLL_MIN_HZ=5303031 +CONFIG_SOC_APLL_MAX_HZ=125000000 +CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y +CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y +CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y CONFIG_SOC_SDMMC_USE_IOMUX=y CONFIG_SOC_SDMMC_NUM_SLOTS=2 CONFIG_SOC_WIFI_WAPI_SUPPORT=y CONFIG_SOC_WIFI_CSI_SUPPORT=y CONFIG_SOC_WIFI_MESH_SUPPORT=y CONFIG_SOC_BLE_SUPPORTED=y +CONFIG_SOC_BLE_MESH_SUPPORTED=y CONFIG_SOC_BT_CLASSIC_SUPPORTED=y CONFIG_IDF_CMAKE=y CONFIG_IDF_TARGET_ARCH_XTENSA=y @@ -255,8 +266,8 @@ CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 CONFIG_ESP_ROM_HAS_CRC_LE=y CONFIG_ESP_ROM_HAS_CRC_BE=y +CONFIG_ESP_ROM_HAS_MZ_CRC32=y CONFIG_ESP_ROM_HAS_JPEG_DECODE=y -CONFIG_ESP_ROM_SUPPORT_MULTIPLE_UART=y CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y # @@ -519,6 +530,7 @@ CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY=y CONFIG_BT_NIMBLE_MAX_PERIODIC_SYNCS=0 # CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EN is not set CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_DIS=y +# CONFIG_BT_NIMBLE_52_FEATURE_SUPPORT is not set CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EFF=0 CONFIG_BT_NIMBLE_WHITELIST_SIZE=12 # CONFIG_BT_NIMBLE_TEST_THROUGHPUT_TEST is not set @@ -665,6 +677,7 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y # MCPWM Configuration # # CONFIG_MCPWM_ISR_IRAM_SAFE is not set +# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set # CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set # end of MCPWM Configuration @@ -676,6 +689,16 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_I2S_ENABLE_DEBUG_LOG is not set # end of I2S Configuration + +# +# DAC Configuration +# +# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set +# CONFIG_DAC_ISR_IRAM_SAFE is not set +# CONFIG_DAC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_DAC_ENABLE_DEBUG_LOG is not set +CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y +# end of DAC Configuration # end of Driver Configurations # @@ -781,6 +804,26 @@ CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP=y # Hardware Settings # +# +# Chip revision +# +CONFIG_ESP32_REV_MIN_0=y +# CONFIG_ESP32_REV_MIN_1 is not set +# CONFIG_ESP32_REV_MIN_1_1 is not set +# CONFIG_ESP32_REV_MIN_2 is not set +# CONFIG_ESP32_REV_MIN_3 is not set +# CONFIG_ESP32_REV_MIN_3_1 is not set +CONFIG_ESP32_REV_MIN=0 +CONFIG_ESP32_REV_MIN_FULL=0 +CONFIG_ESP_REV_MIN_FULL=0 + +# +# Maximum Supported ESP32 Revision (Rev v3.99) +# +CONFIG_ESP32_REV_MAX_FULL=399 +CONFIG_ESP_REV_MAX_FULL=399 +# end of Chip revision + # # MAC Config # @@ -788,6 +831,7 @@ CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y # CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 @@ -827,12 +871,6 @@ CONFIG_MMU_PAGE_MODE="64KB" CONFIG_MMU_PAGE_SIZE=0x10000 # end of MMU Config -CONFIG_ESP32_REV_MIN_0=y -# CONFIG_ESP32_REV_MIN_1 is not set -# CONFIG_ESP32_REV_MIN_2 is not set -# CONFIG_ESP32_REV_MIN_3 is not set -CONFIG_ESP32_REV_MIN=0 - # # Main XTAL Config # @@ -1026,10 +1064,11 @@ CONFIG_ESP32_WIFI_RX_IRAM_OPT=y CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set -# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set +CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y # CONFIG_ESP_WIFI_GMAC_SUPPORT is not set CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y # CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set +CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=6 # end of Wi-Fi # @@ -1044,18 +1083,11 @@ CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y # FAT Filesystem support # CONFIG_FATFS_VOLUME_COUNT=2 +CONFIG_FATFS_LFN_NONE=y +# CONFIG_FATFS_LFN_HEAP is not set +# CONFIG_FATFS_LFN_STACK is not set # CONFIG_FATFS_SECTOR_512 is not set -# CONFIG_FATFS_SECTOR_1024 is not set -# CONFIG_FATFS_SECTOR_2048 is not set CONFIG_FATFS_SECTOR_4096=y -CONFIG_FATFS_SECTORS_PER_CLUSTER_1=y -# CONFIG_FATFS_SECTORS_PER_CLUSTER_2 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_4 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_8 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_16 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_32 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_64 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_128 is not set # CONFIG_FATFS_CODEPAGE_DYNAMIC is not set CONFIG_FATFS_CODEPAGE_437=y # CONFIG_FATFS_CODEPAGE_720 is not set @@ -1078,13 +1110,7 @@ CONFIG_FATFS_CODEPAGE_437=y # CONFIG_FATFS_CODEPAGE_936 is not set # CONFIG_FATFS_CODEPAGE_949 is not set # CONFIG_FATFS_CODEPAGE_950 is not set -CONFIG_FATFS_AUTO_TYPE=y -# CONFIG_FATFS_FAT12 is not set -# CONFIG_FATFS_FAT16 is not set CONFIG_FATFS_CODEPAGE=437 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set -# CONFIG_FATFS_LFN_STACK is not set CONFIG_FATFS_FS_LOCK=0 CONFIG_FATFS_TIMEOUT_MS=10000 CONFIG_FATFS_PER_FILE_CACHE=y @@ -1114,6 +1140,7 @@ CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 +CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set # end of Kernel @@ -1122,6 +1149,7 @@ CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 # Port # # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set +CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y CONFIG_FREERTOS_ISR_STACKSIZE=2048 @@ -1134,7 +1162,6 @@ CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set # CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y # end of Port @@ -1247,6 +1274,7 @@ CONFIG_LWIP_TCP_SYNMAXRTX=12 CONFIG_LWIP_TCP_MSS=1440 CONFIG_LWIP_TCP_TMR_INTERVAL=250 CONFIG_LWIP_TCP_MSL=60000 +CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 CONFIG_LWIP_TCP_WND_DEFAULT=5744 CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 @@ -1766,12 +1794,13 @@ CONFIG_TFT_RST=2 # # CONFIG_TFT_LOAD_GLCD is not set CONFIG_TFT_LOAD_FONT2=y -# CONFIG_TFT_LOAD_FONT4 is not set -CONFIG_TFT_LOAD_FONT6=y +CONFIG_TFT_LOAD_FONT4=y +# CONFIG_TFT_LOAD_FONT6 is not set CONFIG_TFT_LOAD_FONT7=y -CONFIG_TFT_LOAD_FONT8=y -CONFIG_TFT_LOAD_GFXFF=y -CONFIG_TFT_SMOOTH_FONT=y +# CONFIG_TFT_LOAD_FONT8 is not set +# CONFIG_TFT_LOAD_GFXFF is not set +# CONFIG_TFT_SMOOTH_FONT is not set +# CONFIG_TFT_IS_AUTOBAHN is not set # end of Fonts # @@ -1784,9 +1813,17 @@ CONFIG_TFT_SMOOTH_FONT=y # # ESP-NimBLE-CPP configuration # +CONFIG_NIMBLE_CPP_LOG_LEVEL_NONE=y +# CONFIG_NIMBLE_CPP_LOG_LEVEL_ERROR is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_WARNING is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_INFO is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_DEBUG is not set +CONFIG_NIMBLE_CPP_LOG_LEVEL=0 # CONFIG_NIMBLE_CPP_ENABLE_RETURN_CODE_TEXT is not set # CONFIG_NIMBLE_CPP_ENABLE_GAP_EVENT_CODE_TEXT is not set -# CONFIG_NIMBLE_CPP_ENABLE_ADVERTISMENT_TYPE_TEXT is not set +# CONFIG_NIMBLE_CPP_ENABLE_ADVERTISEMENT_TYPE_TEXT is not set +# CONFIG_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED is not set +CONFIG_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH=20 # end of ESP-NimBLE-CPP configuration # end of Component config diff --git a/configs/sdkconfig_feedc0de b/configs/sdkconfig_feedc0de index 8b38432..b9f209d 100644 --- a/configs/sdkconfig_feedc0de +++ b/configs/sdkconfig_feedc0de @@ -5,7 +5,7 @@ CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined" CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined" CONFIG_SOC_DPORT_WORKAROUND="Not determined" -CONFIG_SOC_CAPS_ECO_VER_MAX=3 +CONFIG_SOC_CAPS_ECO_VER_MAX=301 CONFIG_SOC_ADC_SUPPORTED=y CONFIG_SOC_DAC_SUPPORTED=y CONFIG_SOC_MCPWM_SUPPORTED=y @@ -53,7 +53,6 @@ CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2 CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20 CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 -CONFIG_SOC_RTC_SLOW_CLOCK_SUPPORT_8MD256=y CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=5 CONFIG_SOC_CPU_CORES_NUM=2 @@ -62,27 +61,26 @@ CONFIG_SOC_CPU_HAS_FPU=y CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINT_SIZE=64 -CONFIG_SOC_DAC_PERIPH_NUM=2 +CONFIG_SOC_DAC_CHAN_NUM=2 CONFIG_SOC_DAC_RESOLUTION=8 +CONFIG_SOC_DAC_DMA_16BIT_ALIGN=y CONFIG_SOC_GPIO_PORT=1 CONFIG_SOC_GPIO_PIN_COUNT=40 CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF +CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0xEF0FEA CONFIG_SOC_GPIO_SUPPORT_SLP_SWITCH=y CONFIG_SOC_I2C_NUM=2 CONFIG_SOC_I2C_FIFO_LEN=32 CONFIG_SOC_I2C_SUPPORT_SLAVE=y CONFIG_SOC_I2C_SUPPORT_APB=y -CONFIG_SOC_CLK_APLL_SUPPORTED=y -CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 -CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 -CONFIG_SOC_APLL_MIN_HZ=5303031 -CONFIG_SOC_APLL_MAX_HZ=125000000 CONFIG_SOC_I2S_NUM=2 CONFIG_SOC_I2S_HW_VERSION_1=y CONFIG_SOC_I2S_SUPPORTS_APLL=y CONFIG_SOC_I2S_SUPPORTS_PDM=y CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y +CONFIG_SOC_I2S_PDM_MAX_TX_LINES=1 CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y +CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 CONFIG_SOC_I2S_SUPPORTS_ADC_DAC=y CONFIG_SOC_I2S_SUPPORTS_ADC=y CONFIG_SOC_I2S_SUPPORTS_DAC=y @@ -97,7 +95,8 @@ CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y CONFIG_SOC_LEDC_CHANNEL_NUM=8 -CONFIG_SOC_LEDC_TIMER_BIT_WIDE_NUM=20 +CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 +CONFIG_SOC_LEDC_GAMMA_FADE_RANGE_MAX=1 CONFIG_SOC_MCPWM_GROUPS=2 CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 @@ -108,6 +107,7 @@ CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 +CONFIG_SOC_MCPWM_CLK_SUPPORT_PLL160M=y CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 CONFIG_SOC_PCNT_GROUPS=1 @@ -147,7 +147,9 @@ CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y CONFIG_SOC_TOUCH_VERSION_1=y CONFIG_SOC_TOUCH_SENSOR_NUM=10 CONFIG_SOC_TOUCH_PAD_MEASURE_WAIT_MAX=0xFF +CONFIG_SOC_TWAI_CONTROLLER_NUM=1 CONFIG_SOC_TWAI_BRP_MIN=2 +CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y CONFIG_SOC_UART_NUM=3 CONFIG_SOC_UART_SUPPORT_APB_CLK=y @@ -174,12 +176,21 @@ CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y CONFIG_SOC_PM_SUPPORT_RTC_FAST_MEM_PD=y CONFIG_SOC_PM_SUPPORT_RTC_SLOW_MEM_PD=y +CONFIG_SOC_CLK_APLL_SUPPORTED=y +CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 +CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 +CONFIG_SOC_APLL_MIN_HZ=5303031 +CONFIG_SOC_APLL_MAX_HZ=125000000 +CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y +CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y +CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y CONFIG_SOC_SDMMC_USE_IOMUX=y CONFIG_SOC_SDMMC_NUM_SLOTS=2 CONFIG_SOC_WIFI_WAPI_SUPPORT=y CONFIG_SOC_WIFI_CSI_SUPPORT=y CONFIG_SOC_WIFI_MESH_SUPPORT=y CONFIG_SOC_BLE_SUPPORTED=y +CONFIG_SOC_BLE_MESH_SUPPORTED=y CONFIG_SOC_BT_CLASSIC_SUPPORTED=y CONFIG_IDF_CMAKE=y CONFIG_IDF_TARGET_ARCH_XTENSA=y @@ -255,8 +266,8 @@ CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 CONFIG_ESP_ROM_HAS_CRC_LE=y CONFIG_ESP_ROM_HAS_CRC_BE=y +CONFIG_ESP_ROM_HAS_MZ_CRC32=y CONFIG_ESP_ROM_HAS_JPEG_DECODE=y -CONFIG_ESP_ROM_SUPPORT_MULTIPLE_UART=y CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y # @@ -406,8 +417,8 @@ CONFIG_LOG_LOCAL_LEVEL_WIFI_STACK=3 # # Compiler options # -CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y -# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set +# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set +CONFIG_COMPILER_OPTIMIZATION_SIZE=y # CONFIG_COMPILER_OPTIMIZATION_PERF is not set # CONFIG_COMPILER_OPTIMIZATION_NONE is not set CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y @@ -519,6 +530,7 @@ CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY=y CONFIG_BT_NIMBLE_MAX_PERIODIC_SYNCS=0 # CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EN is not set CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_DIS=y +# CONFIG_BT_NIMBLE_52_FEATURE_SUPPORT is not set CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EFF=0 CONFIG_BT_NIMBLE_WHITELIST_SIZE=12 # CONFIG_BT_NIMBLE_TEST_THROUGHPUT_TEST is not set @@ -665,6 +677,7 @@ CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT=y # MCPWM Configuration # # CONFIG_MCPWM_ISR_IRAM_SAFE is not set +# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set # CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set # end of MCPWM Configuration @@ -676,6 +689,16 @@ CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT=y # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_I2S_ENABLE_DEBUG_LOG is not set # end of I2S Configuration + +# +# DAC Configuration +# +# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set +# CONFIG_DAC_ISR_IRAM_SAFE is not set +# CONFIG_DAC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_DAC_ENABLE_DEBUG_LOG is not set +CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y +# end of DAC Configuration # end of Driver Configurations # @@ -781,6 +804,26 @@ CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP=y # Hardware Settings # +# +# Chip revision +# +CONFIG_ESP32_REV_MIN_0=y +# CONFIG_ESP32_REV_MIN_1 is not set +# CONFIG_ESP32_REV_MIN_1_1 is not set +# CONFIG_ESP32_REV_MIN_2 is not set +# CONFIG_ESP32_REV_MIN_3 is not set +# CONFIG_ESP32_REV_MIN_3_1 is not set +CONFIG_ESP32_REV_MIN=0 +CONFIG_ESP32_REV_MIN_FULL=0 +CONFIG_ESP_REV_MIN_FULL=0 + +# +# Maximum Supported ESP32 Revision (Rev v3.99) +# +CONFIG_ESP32_REV_MAX_FULL=399 +CONFIG_ESP_REV_MAX_FULL=399 +# end of Chip revision + # # MAC Config # @@ -788,6 +831,7 @@ CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y # CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 @@ -827,12 +871,6 @@ CONFIG_MMU_PAGE_MODE="64KB" CONFIG_MMU_PAGE_SIZE=0x10000 # end of MMU Config -CONFIG_ESP32_REV_MIN_0=y -# CONFIG_ESP32_REV_MIN_1 is not set -# CONFIG_ESP32_REV_MIN_2 is not set -# CONFIG_ESP32_REV_MIN_3 is not set -CONFIG_ESP32_REV_MIN=0 - # # Main XTAL Config # @@ -1026,10 +1064,11 @@ CONFIG_ESP32_WIFI_RX_IRAM_OPT=y CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set -# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set +CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y # CONFIG_ESP_WIFI_GMAC_SUPPORT is not set CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y # CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set +CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=6 # end of Wi-Fi # @@ -1044,18 +1083,11 @@ CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y # FAT Filesystem support # CONFIG_FATFS_VOLUME_COUNT=2 +CONFIG_FATFS_LFN_NONE=y +# CONFIG_FATFS_LFN_HEAP is not set +# CONFIG_FATFS_LFN_STACK is not set # CONFIG_FATFS_SECTOR_512 is not set -# CONFIG_FATFS_SECTOR_1024 is not set -# CONFIG_FATFS_SECTOR_2048 is not set CONFIG_FATFS_SECTOR_4096=y -CONFIG_FATFS_SECTORS_PER_CLUSTER_1=y -# CONFIG_FATFS_SECTORS_PER_CLUSTER_2 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_4 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_8 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_16 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_32 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_64 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_128 is not set # CONFIG_FATFS_CODEPAGE_DYNAMIC is not set CONFIG_FATFS_CODEPAGE_437=y # CONFIG_FATFS_CODEPAGE_720 is not set @@ -1078,13 +1110,7 @@ CONFIG_FATFS_CODEPAGE_437=y # CONFIG_FATFS_CODEPAGE_936 is not set # CONFIG_FATFS_CODEPAGE_949 is not set # CONFIG_FATFS_CODEPAGE_950 is not set -CONFIG_FATFS_AUTO_TYPE=y -# CONFIG_FATFS_FAT12 is not set -# CONFIG_FATFS_FAT16 is not set CONFIG_FATFS_CODEPAGE=437 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set -# CONFIG_FATFS_LFN_STACK is not set CONFIG_FATFS_FS_LOCK=0 CONFIG_FATFS_TIMEOUT_MS=10000 CONFIG_FATFS_PER_FILE_CACHE=y @@ -1114,6 +1140,7 @@ CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 +CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set # end of Kernel @@ -1121,8 +1148,8 @@ CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 # # Port # -CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set +CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y CONFIG_FREERTOS_ISR_STACKSIZE=1536 @@ -1135,7 +1162,6 @@ CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set # CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y # end of Port @@ -1248,6 +1274,7 @@ CONFIG_LWIP_TCP_SYNMAXRTX=12 CONFIG_LWIP_TCP_MSS=1440 CONFIG_LWIP_TCP_TMR_INTERVAL=250 CONFIG_LWIP_TCP_MSL=60000 +CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 CONFIG_LWIP_TCP_WND_DEFAULT=5744 CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 @@ -1786,9 +1813,17 @@ CONFIG_TFT_LOAD_FONT7=y # # ESP-NimBLE-CPP configuration # +CONFIG_NIMBLE_CPP_LOG_LEVEL_NONE=y +# CONFIG_NIMBLE_CPP_LOG_LEVEL_ERROR is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_WARNING is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_INFO is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_DEBUG is not set +CONFIG_NIMBLE_CPP_LOG_LEVEL=0 # CONFIG_NIMBLE_CPP_ENABLE_RETURN_CODE_TEXT is not set # CONFIG_NIMBLE_CPP_ENABLE_GAP_EVENT_CODE_TEXT is not set -# CONFIG_NIMBLE_CPP_ENABLE_ADVERTISMENT_TYPE_TEXT is not set +# CONFIG_NIMBLE_CPP_ENABLE_ADVERTISEMENT_TYPE_TEXT is not set +# CONFIG_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED is not set +CONFIG_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH=20 # end of ESP-NimBLE-CPP configuration # end of Component config @@ -1811,10 +1846,10 @@ CONFIG_LOG_BOOTLOADER_LEVEL=3 CONFIG_FLASHMODE_DIO=y # CONFIG_FLASHMODE_DOUT is not set CONFIG_MONITOR_BAUD=115200 -CONFIG_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y -# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set -# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set +# CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set +CONFIG_OPTIMIZATION_LEVEL_RELEASE=y +CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y # CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set # CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set diff --git a/configs/sdkconfig_feedc0de_new b/configs/sdkconfig_feedc0de_new index bc3f6ac..d5645cf 100644 --- a/configs/sdkconfig_feedc0de_new +++ b/configs/sdkconfig_feedc0de_new @@ -5,7 +5,7 @@ CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined" CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined" CONFIG_SOC_DPORT_WORKAROUND="Not determined" -CONFIG_SOC_CAPS_ECO_VER_MAX=3 +CONFIG_SOC_CAPS_ECO_VER_MAX=301 CONFIG_SOC_ADC_SUPPORTED=y CONFIG_SOC_DAC_SUPPORTED=y CONFIG_SOC_MCPWM_SUPPORTED=y @@ -53,7 +53,6 @@ CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2 CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20 CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 -CONFIG_SOC_RTC_SLOW_CLOCK_SUPPORT_8MD256=y CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=5 CONFIG_SOC_CPU_CORES_NUM=2 @@ -62,27 +61,26 @@ CONFIG_SOC_CPU_HAS_FPU=y CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINT_SIZE=64 -CONFIG_SOC_DAC_PERIPH_NUM=2 +CONFIG_SOC_DAC_CHAN_NUM=2 CONFIG_SOC_DAC_RESOLUTION=8 +CONFIG_SOC_DAC_DMA_16BIT_ALIGN=y CONFIG_SOC_GPIO_PORT=1 CONFIG_SOC_GPIO_PIN_COUNT=40 CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF +CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0xEF0FEA CONFIG_SOC_GPIO_SUPPORT_SLP_SWITCH=y CONFIG_SOC_I2C_NUM=2 CONFIG_SOC_I2C_FIFO_LEN=32 CONFIG_SOC_I2C_SUPPORT_SLAVE=y CONFIG_SOC_I2C_SUPPORT_APB=y -CONFIG_SOC_CLK_APLL_SUPPORTED=y -CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 -CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 -CONFIG_SOC_APLL_MIN_HZ=5303031 -CONFIG_SOC_APLL_MAX_HZ=125000000 CONFIG_SOC_I2S_NUM=2 CONFIG_SOC_I2S_HW_VERSION_1=y CONFIG_SOC_I2S_SUPPORTS_APLL=y CONFIG_SOC_I2S_SUPPORTS_PDM=y CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y +CONFIG_SOC_I2S_PDM_MAX_TX_LINES=1 CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y +CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 CONFIG_SOC_I2S_SUPPORTS_ADC_DAC=y CONFIG_SOC_I2S_SUPPORTS_ADC=y CONFIG_SOC_I2S_SUPPORTS_DAC=y @@ -97,7 +95,8 @@ CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y CONFIG_SOC_LEDC_CHANNEL_NUM=8 -CONFIG_SOC_LEDC_TIMER_BIT_WIDE_NUM=20 +CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 +CONFIG_SOC_LEDC_GAMMA_FADE_RANGE_MAX=1 CONFIG_SOC_MCPWM_GROUPS=2 CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 @@ -108,6 +107,7 @@ CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 +CONFIG_SOC_MCPWM_CLK_SUPPORT_PLL160M=y CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 CONFIG_SOC_PCNT_GROUPS=1 @@ -147,7 +147,9 @@ CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y CONFIG_SOC_TOUCH_VERSION_1=y CONFIG_SOC_TOUCH_SENSOR_NUM=10 CONFIG_SOC_TOUCH_PAD_MEASURE_WAIT_MAX=0xFF +CONFIG_SOC_TWAI_CONTROLLER_NUM=1 CONFIG_SOC_TWAI_BRP_MIN=2 +CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y CONFIG_SOC_UART_NUM=3 CONFIG_SOC_UART_SUPPORT_APB_CLK=y @@ -174,12 +176,21 @@ CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y CONFIG_SOC_PM_SUPPORT_RTC_FAST_MEM_PD=y CONFIG_SOC_PM_SUPPORT_RTC_SLOW_MEM_PD=y +CONFIG_SOC_CLK_APLL_SUPPORTED=y +CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 +CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 +CONFIG_SOC_APLL_MIN_HZ=5303031 +CONFIG_SOC_APLL_MAX_HZ=125000000 +CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y +CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y +CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y CONFIG_SOC_SDMMC_USE_IOMUX=y CONFIG_SOC_SDMMC_NUM_SLOTS=2 CONFIG_SOC_WIFI_WAPI_SUPPORT=y CONFIG_SOC_WIFI_CSI_SUPPORT=y CONFIG_SOC_WIFI_MESH_SUPPORT=y CONFIG_SOC_BLE_SUPPORTED=y +CONFIG_SOC_BLE_MESH_SUPPORTED=y CONFIG_SOC_BT_CLASSIC_SUPPORTED=y CONFIG_IDF_CMAKE=y CONFIG_IDF_TARGET_ARCH_XTENSA=y @@ -255,8 +266,8 @@ CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 CONFIG_ESP_ROM_HAS_CRC_LE=y CONFIG_ESP_ROM_HAS_CRC_BE=y +CONFIG_ESP_ROM_HAS_MZ_CRC32=y CONFIG_ESP_ROM_HAS_JPEG_DECODE=y -CONFIG_ESP_ROM_SUPPORT_MULTIPLE_UART=y CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y # @@ -406,8 +417,8 @@ CONFIG_LOG_LOCAL_LEVEL_WIFI_STACK=3 # # Compiler options # -CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y -# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set +# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set +CONFIG_COMPILER_OPTIMIZATION_SIZE=y # CONFIG_COMPILER_OPTIMIZATION_PERF is not set # CONFIG_COMPILER_OPTIMIZATION_NONE is not set CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y @@ -519,6 +530,7 @@ CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY=y CONFIG_BT_NIMBLE_MAX_PERIODIC_SYNCS=0 # CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EN is not set CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_DIS=y +# CONFIG_BT_NIMBLE_52_FEATURE_SUPPORT is not set CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EFF=0 CONFIG_BT_NIMBLE_WHITELIST_SIZE=12 # CONFIG_BT_NIMBLE_TEST_THROUGHPUT_TEST is not set @@ -665,6 +677,7 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y # MCPWM Configuration # # CONFIG_MCPWM_ISR_IRAM_SAFE is not set +# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set # CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set # end of MCPWM Configuration @@ -676,6 +689,16 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_I2S_ENABLE_DEBUG_LOG is not set # end of I2S Configuration + +# +# DAC Configuration +# +# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set +# CONFIG_DAC_ISR_IRAM_SAFE is not set +# CONFIG_DAC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_DAC_ENABLE_DEBUG_LOG is not set +CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y +# end of DAC Configuration # end of Driver Configurations # @@ -781,6 +804,26 @@ CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP=y # Hardware Settings # +# +# Chip revision +# +CONFIG_ESP32_REV_MIN_0=y +# CONFIG_ESP32_REV_MIN_1 is not set +# CONFIG_ESP32_REV_MIN_1_1 is not set +# CONFIG_ESP32_REV_MIN_2 is not set +# CONFIG_ESP32_REV_MIN_3 is not set +# CONFIG_ESP32_REV_MIN_3_1 is not set +CONFIG_ESP32_REV_MIN=0 +CONFIG_ESP32_REV_MIN_FULL=0 +CONFIG_ESP_REV_MIN_FULL=0 + +# +# Maximum Supported ESP32 Revision (Rev v3.99) +# +CONFIG_ESP32_REV_MAX_FULL=399 +CONFIG_ESP_REV_MAX_FULL=399 +# end of Chip revision + # # MAC Config # @@ -788,6 +831,7 @@ CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y # CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 @@ -827,12 +871,6 @@ CONFIG_MMU_PAGE_MODE="64KB" CONFIG_MMU_PAGE_SIZE=0x10000 # end of MMU Config -CONFIG_ESP32_REV_MIN_0=y -# CONFIG_ESP32_REV_MIN_1 is not set -# CONFIG_ESP32_REV_MIN_2 is not set -# CONFIG_ESP32_REV_MIN_3 is not set -CONFIG_ESP32_REV_MIN=0 - # # Main XTAL Config # @@ -1026,10 +1064,11 @@ CONFIG_ESP32_WIFI_RX_IRAM_OPT=y CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set -# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set +CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y # CONFIG_ESP_WIFI_GMAC_SUPPORT is not set CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y # CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set +CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=6 # end of Wi-Fi # @@ -1044,18 +1083,11 @@ CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y # FAT Filesystem support # CONFIG_FATFS_VOLUME_COUNT=2 +CONFIG_FATFS_LFN_NONE=y +# CONFIG_FATFS_LFN_HEAP is not set +# CONFIG_FATFS_LFN_STACK is not set # CONFIG_FATFS_SECTOR_512 is not set -# CONFIG_FATFS_SECTOR_1024 is not set -# CONFIG_FATFS_SECTOR_2048 is not set CONFIG_FATFS_SECTOR_4096=y -CONFIG_FATFS_SECTORS_PER_CLUSTER_1=y -# CONFIG_FATFS_SECTORS_PER_CLUSTER_2 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_4 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_8 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_16 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_32 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_64 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_128 is not set # CONFIG_FATFS_CODEPAGE_DYNAMIC is not set CONFIG_FATFS_CODEPAGE_437=y # CONFIG_FATFS_CODEPAGE_720 is not set @@ -1078,13 +1110,7 @@ CONFIG_FATFS_CODEPAGE_437=y # CONFIG_FATFS_CODEPAGE_936 is not set # CONFIG_FATFS_CODEPAGE_949 is not set # CONFIG_FATFS_CODEPAGE_950 is not set -CONFIG_FATFS_AUTO_TYPE=y -# CONFIG_FATFS_FAT12 is not set -# CONFIG_FATFS_FAT16 is not set CONFIG_FATFS_CODEPAGE=437 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set -# CONFIG_FATFS_LFN_STACK is not set CONFIG_FATFS_FS_LOCK=0 CONFIG_FATFS_TIMEOUT_MS=10000 CONFIG_FATFS_PER_FILE_CACHE=y @@ -1114,6 +1140,7 @@ CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 +CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set # end of Kernel @@ -1121,8 +1148,8 @@ CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 # # Port # -CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set +CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y CONFIG_FREERTOS_ISR_STACKSIZE=1536 @@ -1135,7 +1162,6 @@ CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set # CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y # end of Port @@ -1248,6 +1274,7 @@ CONFIG_LWIP_TCP_SYNMAXRTX=12 CONFIG_LWIP_TCP_MSS=1440 CONFIG_LWIP_TCP_TMR_INTERVAL=250 CONFIG_LWIP_TCP_MSL=60000 +CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 CONFIG_LWIP_TCP_WND_DEFAULT=5744 CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 @@ -1787,9 +1814,17 @@ CONFIG_TFT_LOAD_FONT7=y # # ESP-NimBLE-CPP configuration # +CONFIG_NIMBLE_CPP_LOG_LEVEL_NONE=y +# CONFIG_NIMBLE_CPP_LOG_LEVEL_ERROR is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_WARNING is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_INFO is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_DEBUG is not set +CONFIG_NIMBLE_CPP_LOG_LEVEL=0 # CONFIG_NIMBLE_CPP_ENABLE_RETURN_CODE_TEXT is not set # CONFIG_NIMBLE_CPP_ENABLE_GAP_EVENT_CODE_TEXT is not set -# CONFIG_NIMBLE_CPP_ENABLE_ADVERTISMENT_TYPE_TEXT is not set +# CONFIG_NIMBLE_CPP_ENABLE_ADVERTISEMENT_TYPE_TEXT is not set +# CONFIG_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED is not set +CONFIG_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH=20 # end of ESP-NimBLE-CPP configuration # end of Component config @@ -1812,10 +1847,10 @@ CONFIG_LOG_BOOTLOADER_LEVEL=3 CONFIG_FLASHMODE_DIO=y # CONFIG_FLASHMODE_DOUT is not set CONFIG_MONITOR_BAUD=115200 -CONFIG_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y -# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set -# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set +# CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set +CONFIG_OPTIMIZATION_LEVEL_RELEASE=y +CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y # CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set # CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set diff --git a/configs/sdkconfig_seatbot b/configs/sdkconfig_seatbot index e141e13..d03fbef 100644 --- a/configs/sdkconfig_seatbot +++ b/configs/sdkconfig_seatbot @@ -5,7 +5,7 @@ CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined" CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined" CONFIG_SOC_DPORT_WORKAROUND="Not determined" -CONFIG_SOC_CAPS_ECO_VER_MAX=3 +CONFIG_SOC_CAPS_ECO_VER_MAX=301 CONFIG_SOC_ADC_SUPPORTED=y CONFIG_SOC_DAC_SUPPORTED=y CONFIG_SOC_MCPWM_SUPPORTED=y @@ -53,7 +53,6 @@ CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2 CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20 CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 -CONFIG_SOC_RTC_SLOW_CLOCK_SUPPORT_8MD256=y CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=5 CONFIG_SOC_CPU_CORES_NUM=2 @@ -62,27 +61,26 @@ CONFIG_SOC_CPU_HAS_FPU=y CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINT_SIZE=64 -CONFIG_SOC_DAC_PERIPH_NUM=2 +CONFIG_SOC_DAC_CHAN_NUM=2 CONFIG_SOC_DAC_RESOLUTION=8 +CONFIG_SOC_DAC_DMA_16BIT_ALIGN=y CONFIG_SOC_GPIO_PORT=1 CONFIG_SOC_GPIO_PIN_COUNT=40 CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF +CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0xEF0FEA CONFIG_SOC_GPIO_SUPPORT_SLP_SWITCH=y CONFIG_SOC_I2C_NUM=2 CONFIG_SOC_I2C_FIFO_LEN=32 CONFIG_SOC_I2C_SUPPORT_SLAVE=y CONFIG_SOC_I2C_SUPPORT_APB=y -CONFIG_SOC_CLK_APLL_SUPPORTED=y -CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 -CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 -CONFIG_SOC_APLL_MIN_HZ=5303031 -CONFIG_SOC_APLL_MAX_HZ=125000000 CONFIG_SOC_I2S_NUM=2 CONFIG_SOC_I2S_HW_VERSION_1=y CONFIG_SOC_I2S_SUPPORTS_APLL=y CONFIG_SOC_I2S_SUPPORTS_PDM=y CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y +CONFIG_SOC_I2S_PDM_MAX_TX_LINES=1 CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y +CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 CONFIG_SOC_I2S_SUPPORTS_ADC_DAC=y CONFIG_SOC_I2S_SUPPORTS_ADC=y CONFIG_SOC_I2S_SUPPORTS_DAC=y @@ -97,7 +95,8 @@ CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y CONFIG_SOC_LEDC_CHANNEL_NUM=8 -CONFIG_SOC_LEDC_TIMER_BIT_WIDE_NUM=20 +CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 +CONFIG_SOC_LEDC_GAMMA_FADE_RANGE_MAX=1 CONFIG_SOC_MCPWM_GROUPS=2 CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 @@ -108,6 +107,7 @@ CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 +CONFIG_SOC_MCPWM_CLK_SUPPORT_PLL160M=y CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 CONFIG_SOC_PCNT_GROUPS=1 @@ -147,7 +147,9 @@ CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y CONFIG_SOC_TOUCH_VERSION_1=y CONFIG_SOC_TOUCH_SENSOR_NUM=10 CONFIG_SOC_TOUCH_PAD_MEASURE_WAIT_MAX=0xFF +CONFIG_SOC_TWAI_CONTROLLER_NUM=1 CONFIG_SOC_TWAI_BRP_MIN=2 +CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y CONFIG_SOC_UART_NUM=3 CONFIG_SOC_UART_SUPPORT_APB_CLK=y @@ -174,12 +176,21 @@ CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y CONFIG_SOC_PM_SUPPORT_RTC_FAST_MEM_PD=y CONFIG_SOC_PM_SUPPORT_RTC_SLOW_MEM_PD=y +CONFIG_SOC_CLK_APLL_SUPPORTED=y +CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 +CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 +CONFIG_SOC_APLL_MIN_HZ=5303031 +CONFIG_SOC_APLL_MAX_HZ=125000000 +CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y +CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y +CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y CONFIG_SOC_SDMMC_USE_IOMUX=y CONFIG_SOC_SDMMC_NUM_SLOTS=2 CONFIG_SOC_WIFI_WAPI_SUPPORT=y CONFIG_SOC_WIFI_CSI_SUPPORT=y CONFIG_SOC_WIFI_MESH_SUPPORT=y CONFIG_SOC_BLE_SUPPORTED=y +CONFIG_SOC_BLE_MESH_SUPPORTED=y CONFIG_SOC_BT_CLASSIC_SUPPORTED=y CONFIG_IDF_CMAKE=y CONFIG_IDF_TARGET_ARCH_XTENSA=y @@ -255,8 +266,8 @@ CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 CONFIG_ESP_ROM_HAS_CRC_LE=y CONFIG_ESP_ROM_HAS_CRC_BE=y +CONFIG_ESP_ROM_HAS_MZ_CRC32=y CONFIG_ESP_ROM_HAS_JPEG_DECODE=y -CONFIG_ESP_ROM_SUPPORT_MULTIPLE_UART=y CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y # @@ -519,6 +530,7 @@ CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY=y CONFIG_BT_NIMBLE_MAX_PERIODIC_SYNCS=0 # CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EN is not set CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_DIS=y +# CONFIG_BT_NIMBLE_52_FEATURE_SUPPORT is not set CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EFF=0 CONFIG_BT_NIMBLE_WHITELIST_SIZE=12 # CONFIG_BT_NIMBLE_TEST_THROUGHPUT_TEST is not set @@ -665,6 +677,7 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y # MCPWM Configuration # # CONFIG_MCPWM_ISR_IRAM_SAFE is not set +# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set # CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set # end of MCPWM Configuration @@ -676,6 +689,16 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_I2S_ENABLE_DEBUG_LOG is not set # end of I2S Configuration + +# +# DAC Configuration +# +# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set +# CONFIG_DAC_ISR_IRAM_SAFE is not set +# CONFIG_DAC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_DAC_ENABLE_DEBUG_LOG is not set +CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y +# end of DAC Configuration # end of Driver Configurations # @@ -781,6 +804,26 @@ CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP=y # Hardware Settings # +# +# Chip revision +# +CONFIG_ESP32_REV_MIN_0=y +# CONFIG_ESP32_REV_MIN_1 is not set +# CONFIG_ESP32_REV_MIN_1_1 is not set +# CONFIG_ESP32_REV_MIN_2 is not set +# CONFIG_ESP32_REV_MIN_3 is not set +# CONFIG_ESP32_REV_MIN_3_1 is not set +CONFIG_ESP32_REV_MIN=0 +CONFIG_ESP32_REV_MIN_FULL=0 +CONFIG_ESP_REV_MIN_FULL=0 + +# +# Maximum Supported ESP32 Revision (Rev v3.99) +# +CONFIG_ESP32_REV_MAX_FULL=399 +CONFIG_ESP_REV_MAX_FULL=399 +# end of Chip revision + # # MAC Config # @@ -788,6 +831,7 @@ CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y # CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 @@ -827,12 +871,6 @@ CONFIG_MMU_PAGE_MODE="64KB" CONFIG_MMU_PAGE_SIZE=0x10000 # end of MMU Config -CONFIG_ESP32_REV_MIN_0=y -# CONFIG_ESP32_REV_MIN_1 is not set -# CONFIG_ESP32_REV_MIN_2 is not set -# CONFIG_ESP32_REV_MIN_3 is not set -CONFIG_ESP32_REV_MIN=0 - # # Main XTAL Config # @@ -1026,10 +1064,11 @@ CONFIG_ESP32_WIFI_RX_IRAM_OPT=y CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set -# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set +CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y # CONFIG_ESP_WIFI_GMAC_SUPPORT is not set CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y # CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set +CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=6 # end of Wi-Fi # @@ -1044,18 +1083,11 @@ CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y # FAT Filesystem support # CONFIG_FATFS_VOLUME_COUNT=2 +CONFIG_FATFS_LFN_NONE=y +# CONFIG_FATFS_LFN_HEAP is not set +# CONFIG_FATFS_LFN_STACK is not set # CONFIG_FATFS_SECTOR_512 is not set -# CONFIG_FATFS_SECTOR_1024 is not set -# CONFIG_FATFS_SECTOR_2048 is not set CONFIG_FATFS_SECTOR_4096=y -CONFIG_FATFS_SECTORS_PER_CLUSTER_1=y -# CONFIG_FATFS_SECTORS_PER_CLUSTER_2 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_4 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_8 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_16 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_32 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_64 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_128 is not set # CONFIG_FATFS_CODEPAGE_DYNAMIC is not set CONFIG_FATFS_CODEPAGE_437=y # CONFIG_FATFS_CODEPAGE_720 is not set @@ -1078,13 +1110,7 @@ CONFIG_FATFS_CODEPAGE_437=y # CONFIG_FATFS_CODEPAGE_936 is not set # CONFIG_FATFS_CODEPAGE_949 is not set # CONFIG_FATFS_CODEPAGE_950 is not set -CONFIG_FATFS_AUTO_TYPE=y -# CONFIG_FATFS_FAT12 is not set -# CONFIG_FATFS_FAT16 is not set CONFIG_FATFS_CODEPAGE=437 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set -# CONFIG_FATFS_LFN_STACK is not set CONFIG_FATFS_FS_LOCK=0 CONFIG_FATFS_TIMEOUT_MS=10000 CONFIG_FATFS_PER_FILE_CACHE=y @@ -1114,6 +1140,7 @@ CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 +CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set # end of Kernel @@ -1122,6 +1149,7 @@ CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 # Port # # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set +CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y CONFIG_FREERTOS_ISR_STACKSIZE=2048 @@ -1134,7 +1162,6 @@ CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set # CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y # end of Port @@ -1247,6 +1274,7 @@ CONFIG_LWIP_TCP_SYNMAXRTX=12 CONFIG_LWIP_TCP_MSS=1440 CONFIG_LWIP_TCP_TMR_INTERVAL=250 CONFIG_LWIP_TCP_MSL=60000 +CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 CONFIG_LWIP_TCP_WND_DEFAULT=5744 CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 @@ -1785,9 +1813,17 @@ CONFIG_TFT_LOAD_FONT7=y # # ESP-NimBLE-CPP configuration # +CONFIG_NIMBLE_CPP_LOG_LEVEL_NONE=y +# CONFIG_NIMBLE_CPP_LOG_LEVEL_ERROR is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_WARNING is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_INFO is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_DEBUG is not set +CONFIG_NIMBLE_CPP_LOG_LEVEL=0 # CONFIG_NIMBLE_CPP_ENABLE_RETURN_CODE_TEXT is not set # CONFIG_NIMBLE_CPP_ENABLE_GAP_EVENT_CODE_TEXT is not set -# CONFIG_NIMBLE_CPP_ENABLE_ADVERTISMENT_TYPE_TEXT is not set +# CONFIG_NIMBLE_CPP_ENABLE_ADVERTISEMENT_TYPE_TEXT is not set +# CONFIG_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED is not set +CONFIG_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH=20 # end of ESP-NimBLE-CPP configuration # end of Component config diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 595a78d..d0df916 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -554,4 +554,5 @@ target_compile_options(${COMPONENT_TARGET} -DGIT_BRANCH="${GIT_BRANCH}" -DBOBBY_DEFAULT_USERNAME="${BOBBY_DEFAULT_USERNAME}" ${BOBBYCAR_BUILDFLAGS} + -Werror=unused-but-set-variable ) diff --git a/main/guihelpers/bobbycheckbox.h b/main/guihelpers/bobbycheckbox.h index e40d7b9..8fd9bc9 100644 --- a/main/guihelpers/bobbycheckbox.h +++ b/main/guihelpers/bobbycheckbox.h @@ -1,8 +1,8 @@ #pragma once // 3rdparty lib includes -#include "../../components/esp-gui-lib/src/actions/toggleboolaction.h" -#include "../../components/esp-gui-lib/src/checkboxicon.h" +#include +#include // local includes #include "bobbyerrorhandler.h" diff --git a/main/main.cpp b/main/main.cpp index 670b6a7..33cf1cf 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -75,8 +75,6 @@ extern "C" void app_main() while (true) { - const auto now = espchrono::millis_clock::now(); - for (auto &schedulerTask : schedulerTasks) { if (schedulerTask.isInitialized()) diff --git a/main/screens.cpp b/main/screens.cpp index ead03db..39f7d72 100644 --- a/main/screens.cpp +++ b/main/screens.cpp @@ -4,6 +4,7 @@ #include #include #include +#include // local includes #include "globals.h" diff --git a/main/screens/joystickdebugdisplay.cpp b/main/screens/joystickdebugdisplay.cpp index 97129bb..c32aea5 100644 --- a/main/screens/joystickdebugdisplay.cpp +++ b/main/screens/joystickdebugdisplay.cpp @@ -2,8 +2,9 @@ #include "joystickdebugdisplay.h" // 3rdparty lib includes - #include +#include +#include // local includes #include "screens/statusdisplay.h" @@ -12,6 +13,8 @@ #include "utils.h" #include "globals.h" +namespace bobby { + using namespace espgui; namespace { @@ -49,16 +52,22 @@ void JoystickDebugDisplay::update() m_y = map_analog_stick(m_bremsMitte, m_bremsMin, m_bremsMax, configs.deadband.value(), *raw_brems); } -void JoystickDebugDisplay::redraw() +void JoystickDebugDisplay::redraw(espgui::TftInterface &tft) { - Base::redraw(); + Base::redraw(tft); if (m_x && m_y) { tft.drawPixel( (tft.width() / 2) + *m_x / 10, (tft.height() / 2) + *m_y / 10, - TFT_WHITE); + espgui::TFT_WHITE); + } + + if (m_clear) + { + tft.fillScreen(espgui::TFT_BLACK); + m_clear = false; } } @@ -80,7 +89,7 @@ void JoystickDebugDisplay::buttonPressed(espgui::Button button) { using espgui::Button; case Button::Right: - tft.fillScreen(TFT_BLACK); + m_clear = true; break; case Button::Left: espgui::popScreen(); @@ -88,4 +97,5 @@ void JoystickDebugDisplay::buttonPressed(espgui::Button button) default:; } } +} // namespace bobby #endif diff --git a/main/screens/joystickdebugdisplay.h b/main/screens/joystickdebugdisplay.h index 27e7de7..a44aa23 100644 --- a/main/screens/joystickdebugdisplay.h +++ b/main/screens/joystickdebugdisplay.h @@ -3,12 +3,18 @@ // system libs #include +// 3rdparty lib includes +#include + // local includes -#include "../guihelpers/bobbydisplaywithtitle.h" +#include "guihelpers/bobbydisplaywithtitle.h" #include "modeinterface.h" #include "modes/ignoreinputmode.h" #ifdef FEATURE_JOYSTICK + +namespace bobby { + class JoystickDebugDisplay : public BobbyDisplayWithTitle { using Base = BobbyDisplayWithTitle; @@ -19,7 +25,7 @@ public: std::string text() const override; void start() override; void update() override; - void redraw() override; + void redraw(espgui::TftInterface &tft) override; void buttonPressed(espgui::Button button) override; @@ -30,5 +36,8 @@ private: std::optional m_y; int16_t m_gasMin, m_gasMax, m_bremsMin, m_bremsMax, m_gasMitte, m_bremsMitte; + + bool m_clear{false}; }; +} // namespace bobby #endif diff --git a/main/screens/mosfetsmenu.cpp b/main/screens/mosfetsmenu.cpp index d7fd96c..5b7bdf9 100644 --- a/main/screens/mosfetsmenu.cpp +++ b/main/screens/mosfetsmenu.cpp @@ -5,14 +5,16 @@ #include // 3rdparty lib includes -#include "accessorinterface.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" +#include +#include +#include // local includes -#include "bobbycheckbox.h" +#include "guihelpers/bobbycheckbox.h" #include "types.h" +namespace bobby { + namespace { constexpr char TEXT_MOSFETS[] = "Mosfets"; constexpr char TEXT_MOSFET0[] = "Mosfet0"; @@ -51,5 +53,5 @@ void MosfetsMenu::back() { espgui::popScreen(); } - +} // namespace bobby #endif diff --git a/main/screens/mosfetsmenu.h b/main/screens/mosfetsmenu.h index 8145838..d7d45c3 100644 --- a/main/screens/mosfetsmenu.h +++ b/main/screens/mosfetsmenu.h @@ -5,6 +5,8 @@ // local includes #include "guihelpers/bobbymenudisplay.h" +namespace bobby { + class MosfetsMenu : public BobbyMenuDisplay { public: @@ -14,4 +16,5 @@ public: void back() override; }; +} // namespace bobby #endif From de6752b1c23df2284a59298f40ee9dac776e1401 Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Sun, 25 Dec 2022 16:34:20 +0100 Subject: [PATCH 6/9] Remove unused code --- configs/sdkconfig_nofeatures | 106 +++++++++++++++++++++++------------ main/potis.cpp | 2 + 2 files changed, 73 insertions(+), 35 deletions(-) diff --git a/configs/sdkconfig_nofeatures b/configs/sdkconfig_nofeatures index 2d58a4e..202d62e 100644 --- a/configs/sdkconfig_nofeatures +++ b/configs/sdkconfig_nofeatures @@ -5,7 +5,7 @@ CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined" CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined" CONFIG_SOC_DPORT_WORKAROUND="Not determined" -CONFIG_SOC_CAPS_ECO_VER_MAX=3 +CONFIG_SOC_CAPS_ECO_VER_MAX=301 CONFIG_SOC_ADC_SUPPORTED=y CONFIG_SOC_DAC_SUPPORTED=y CONFIG_SOC_MCPWM_SUPPORTED=y @@ -53,7 +53,6 @@ CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2 CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20 CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 -CONFIG_SOC_RTC_SLOW_CLOCK_SUPPORT_8MD256=y CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=5 CONFIG_SOC_CPU_CORES_NUM=2 @@ -62,27 +61,26 @@ CONFIG_SOC_CPU_HAS_FPU=y CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINT_SIZE=64 -CONFIG_SOC_DAC_PERIPH_NUM=2 +CONFIG_SOC_DAC_CHAN_NUM=2 CONFIG_SOC_DAC_RESOLUTION=8 +CONFIG_SOC_DAC_DMA_16BIT_ALIGN=y CONFIG_SOC_GPIO_PORT=1 CONFIG_SOC_GPIO_PIN_COUNT=40 CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF +CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0xEF0FEA CONFIG_SOC_GPIO_SUPPORT_SLP_SWITCH=y CONFIG_SOC_I2C_NUM=2 CONFIG_SOC_I2C_FIFO_LEN=32 CONFIG_SOC_I2C_SUPPORT_SLAVE=y CONFIG_SOC_I2C_SUPPORT_APB=y -CONFIG_SOC_CLK_APLL_SUPPORTED=y -CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 -CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 -CONFIG_SOC_APLL_MIN_HZ=5303031 -CONFIG_SOC_APLL_MAX_HZ=125000000 CONFIG_SOC_I2S_NUM=2 CONFIG_SOC_I2S_HW_VERSION_1=y CONFIG_SOC_I2S_SUPPORTS_APLL=y CONFIG_SOC_I2S_SUPPORTS_PDM=y CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y +CONFIG_SOC_I2S_PDM_MAX_TX_LINES=1 CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y +CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 CONFIG_SOC_I2S_SUPPORTS_ADC_DAC=y CONFIG_SOC_I2S_SUPPORTS_ADC=y CONFIG_SOC_I2S_SUPPORTS_DAC=y @@ -97,7 +95,8 @@ CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y CONFIG_SOC_LEDC_CHANNEL_NUM=8 -CONFIG_SOC_LEDC_TIMER_BIT_WIDE_NUM=20 +CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 +CONFIG_SOC_LEDC_GAMMA_FADE_RANGE_MAX=1 CONFIG_SOC_MCPWM_GROUPS=2 CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 @@ -108,6 +107,7 @@ CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 +CONFIG_SOC_MCPWM_CLK_SUPPORT_PLL160M=y CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 CONFIG_SOC_PCNT_GROUPS=1 @@ -147,7 +147,9 @@ CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y CONFIG_SOC_TOUCH_VERSION_1=y CONFIG_SOC_TOUCH_SENSOR_NUM=10 CONFIG_SOC_TOUCH_PAD_MEASURE_WAIT_MAX=0xFF +CONFIG_SOC_TWAI_CONTROLLER_NUM=1 CONFIG_SOC_TWAI_BRP_MIN=2 +CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y CONFIG_SOC_UART_NUM=3 CONFIG_SOC_UART_SUPPORT_APB_CLK=y @@ -174,12 +176,21 @@ CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y CONFIG_SOC_PM_SUPPORT_RTC_FAST_MEM_PD=y CONFIG_SOC_PM_SUPPORT_RTC_SLOW_MEM_PD=y +CONFIG_SOC_CLK_APLL_SUPPORTED=y +CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 +CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 +CONFIG_SOC_APLL_MIN_HZ=5303031 +CONFIG_SOC_APLL_MAX_HZ=125000000 +CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y +CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y +CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y CONFIG_SOC_SDMMC_USE_IOMUX=y CONFIG_SOC_SDMMC_NUM_SLOTS=2 CONFIG_SOC_WIFI_WAPI_SUPPORT=y CONFIG_SOC_WIFI_CSI_SUPPORT=y CONFIG_SOC_WIFI_MESH_SUPPORT=y CONFIG_SOC_BLE_SUPPORTED=y +CONFIG_SOC_BLE_MESH_SUPPORTED=y CONFIG_SOC_BT_CLASSIC_SUPPORTED=y CONFIG_IDF_CMAKE=y CONFIG_IDF_TARGET_ARCH_XTENSA=y @@ -255,8 +266,8 @@ CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 CONFIG_ESP_ROM_HAS_CRC_LE=y CONFIG_ESP_ROM_HAS_CRC_BE=y +CONFIG_ESP_ROM_HAS_MZ_CRC32=y CONFIG_ESP_ROM_HAS_JPEG_DECODE=y -CONFIG_ESP_ROM_SUPPORT_MULTIPLE_UART=y CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y # @@ -519,6 +530,7 @@ CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY=y CONFIG_BT_NIMBLE_MAX_PERIODIC_SYNCS=0 # CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EN is not set CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_DIS=y +# CONFIG_BT_NIMBLE_52_FEATURE_SUPPORT is not set CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EFF=0 CONFIG_BT_NIMBLE_WHITELIST_SIZE=12 # CONFIG_BT_NIMBLE_TEST_THROUGHPUT_TEST is not set @@ -665,6 +677,7 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y # MCPWM Configuration # # CONFIG_MCPWM_ISR_IRAM_SAFE is not set +# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set # CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set # end of MCPWM Configuration @@ -676,6 +689,16 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_I2S_ENABLE_DEBUG_LOG is not set # end of I2S Configuration + +# +# DAC Configuration +# +# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set +# CONFIG_DAC_ISR_IRAM_SAFE is not set +# CONFIG_DAC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_DAC_ENABLE_DEBUG_LOG is not set +CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y +# end of DAC Configuration # end of Driver Configurations # @@ -781,6 +804,26 @@ CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP=y # Hardware Settings # +# +# Chip revision +# +CONFIG_ESP32_REV_MIN_0=y +# CONFIG_ESP32_REV_MIN_1 is not set +# CONFIG_ESP32_REV_MIN_1_1 is not set +# CONFIG_ESP32_REV_MIN_2 is not set +# CONFIG_ESP32_REV_MIN_3 is not set +# CONFIG_ESP32_REV_MIN_3_1 is not set +CONFIG_ESP32_REV_MIN=0 +CONFIG_ESP32_REV_MIN_FULL=0 +CONFIG_ESP_REV_MIN_FULL=0 + +# +# Maximum Supported ESP32 Revision (Rev v3.99) +# +CONFIG_ESP32_REV_MAX_FULL=399 +CONFIG_ESP_REV_MAX_FULL=399 +# end of Chip revision + # # MAC Config # @@ -788,6 +831,7 @@ CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y # CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 @@ -827,12 +871,6 @@ CONFIG_MMU_PAGE_MODE="64KB" CONFIG_MMU_PAGE_SIZE=0x10000 # end of MMU Config -CONFIG_ESP32_REV_MIN_0=y -# CONFIG_ESP32_REV_MIN_1 is not set -# CONFIG_ESP32_REV_MIN_2 is not set -# CONFIG_ESP32_REV_MIN_3 is not set -CONFIG_ESP32_REV_MIN=0 - # # Main XTAL Config # @@ -1026,10 +1064,11 @@ CONFIG_ESP32_WIFI_RX_IRAM_OPT=y CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set -# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set +CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y # CONFIG_ESP_WIFI_GMAC_SUPPORT is not set CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y # CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set +CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=6 # end of Wi-Fi # @@ -1044,18 +1083,11 @@ CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y # FAT Filesystem support # CONFIG_FATFS_VOLUME_COUNT=2 +CONFIG_FATFS_LFN_NONE=y +# CONFIG_FATFS_LFN_HEAP is not set +# CONFIG_FATFS_LFN_STACK is not set # CONFIG_FATFS_SECTOR_512 is not set -# CONFIG_FATFS_SECTOR_1024 is not set -# CONFIG_FATFS_SECTOR_2048 is not set CONFIG_FATFS_SECTOR_4096=y -CONFIG_FATFS_SECTORS_PER_CLUSTER_1=y -# CONFIG_FATFS_SECTORS_PER_CLUSTER_2 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_4 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_8 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_16 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_32 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_64 is not set -# CONFIG_FATFS_SECTORS_PER_CLUSTER_128 is not set # CONFIG_FATFS_CODEPAGE_DYNAMIC is not set CONFIG_FATFS_CODEPAGE_437=y # CONFIG_FATFS_CODEPAGE_720 is not set @@ -1078,13 +1110,7 @@ CONFIG_FATFS_CODEPAGE_437=y # CONFIG_FATFS_CODEPAGE_936 is not set # CONFIG_FATFS_CODEPAGE_949 is not set # CONFIG_FATFS_CODEPAGE_950 is not set -CONFIG_FATFS_AUTO_TYPE=y -# CONFIG_FATFS_FAT12 is not set -# CONFIG_FATFS_FAT16 is not set CONFIG_FATFS_CODEPAGE=437 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set -# CONFIG_FATFS_LFN_STACK is not set CONFIG_FATFS_FS_LOCK=0 CONFIG_FATFS_TIMEOUT_MS=10000 CONFIG_FATFS_PER_FILE_CACHE=y @@ -1114,6 +1140,7 @@ CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 +CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set # end of Kernel @@ -1122,6 +1149,7 @@ CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 # Port # # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set +CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y CONFIG_FREERTOS_ISR_STACKSIZE=2048 @@ -1134,7 +1162,6 @@ CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set # CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y # end of Port @@ -1247,6 +1274,7 @@ CONFIG_LWIP_TCP_SYNMAXRTX=12 CONFIG_LWIP_TCP_MSS=1440 CONFIG_LWIP_TCP_TMR_INTERVAL=250 CONFIG_LWIP_TCP_MSL=60000 +CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 CONFIG_LWIP_TCP_WND_DEFAULT=5744 CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 @@ -1785,9 +1813,17 @@ CONFIG_TFT_LOAD_FONT7=y # # ESP-NimBLE-CPP configuration # +CONFIG_NIMBLE_CPP_LOG_LEVEL_NONE=y +# CONFIG_NIMBLE_CPP_LOG_LEVEL_ERROR is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_WARNING is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_INFO is not set +# CONFIG_NIMBLE_CPP_LOG_LEVEL_DEBUG is not set +CONFIG_NIMBLE_CPP_LOG_LEVEL=0 # CONFIG_NIMBLE_CPP_ENABLE_RETURN_CODE_TEXT is not set # CONFIG_NIMBLE_CPP_ENABLE_GAP_EVENT_CODE_TEXT is not set -# CONFIG_NIMBLE_CPP_ENABLE_ADVERTISMENT_TYPE_TEXT is not set +# CONFIG_NIMBLE_CPP_ENABLE_ADVERTISEMENT_TYPE_TEXT is not set +# CONFIG_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED is not set +CONFIG_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH=20 # end of ESP-NimBLE-CPP configuration # end of Component config diff --git a/main/potis.cpp b/main/potis.cpp index e77a1ab..e88e32c 100644 --- a/main/potis.cpp +++ b/main/potis.cpp @@ -73,6 +73,7 @@ void readPotis() // sum += analogRead(pin); // return sum / sampleCount; // }; +#if defined(FEATURE_ADC_IN) || defined(FEATURE_GAMETRAK) constexpr auto sampleMultipleTimes = [](adc_channel_t channel){ int sum{}; const auto sampleCount = configs.sampleCount.value(); @@ -85,6 +86,7 @@ void readPotis() } return sum / sampleCount; }; +#endif raw_gas = std::nullopt; raw_brems = std::nullopt; From 9e3ca7f605899ae9cbdc90dbba373421f32e4809 Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Sun, 25 Dec 2022 17:05:28 +0100 Subject: [PATCH 7/9] Updated submodule, add debug information, changed timings --- components/esp-gui-lib | 2 +- configs/sdkconfig_comred_new | 1 + main/screens/dynamicdebugmenu.cpp | 48 ++++++++++++++++++++++++------- main/screens/mainmenu.cpp | 2 +- main/taskmanager.cpp | 14 ++++----- 5 files changed, 47 insertions(+), 20 deletions(-) diff --git a/components/esp-gui-lib b/components/esp-gui-lib index 8c891bb..7f24e4b 160000 --- a/components/esp-gui-lib +++ b/components/esp-gui-lib @@ -1 +1 @@ -Subproject commit 8c891bb55653d0f6d61a71a2c54fbd0e58a7f3db +Subproject commit 7f24e4bc37755249e762edfa974f4388742224d7 diff --git a/configs/sdkconfig_comred_new b/configs/sdkconfig_comred_new index 22111da..8f0f73a 100644 --- a/configs/sdkconfig_comred_new +++ b/configs/sdkconfig_comred_new @@ -356,6 +356,7 @@ CONFIG_ARDUINO_SELECTIVE_Wire=y # ESP Gui settings # CONFIG_ESPGUI_MENUDISPLAY_ROWS=10 +CONFIG_ESPGUI_ICONS_SWAPBYTES=y # end of ESP Gui settings # diff --git a/main/screens/dynamicdebugmenu.cpp b/main/screens/dynamicdebugmenu.cpp index ec4da1d..f97cc75 100644 --- a/main/screens/dynamicdebugmenu.cpp +++ b/main/screens/dynamicdebugmenu.cpp @@ -5,17 +5,19 @@ #include // 3rdparty lib includes -#include "espchrono.h" -#include "fmt/core.h" -#include "randomutils.h" -#include "esprandom.h" -#include "menuitem.h" -#include "actions/dummyaction.h" -#include "icons/back.h" -#include "changevaluedisplay.h" -#include "changevaluedisplay_bool.h" -#include "actions/pushscreenaction.h" -#include "actions/popscreenaction.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // local includes #include "guihelpers/bobbychangevaluedisplay.h" @@ -42,6 +44,17 @@ constexpr char TEXT_LOCKTOGGLE[] = "Lock toggle"; constexpr char TEXT_DEBUGTOGGLE[] = "Toggle"; constexpr char TEXT_DEBUGTOGGLEMENU[] = "Toggle (with menu)"; constexpr char TEXT_OPENPOPUP[] = "Open popup"; +constexpr char TEXT_RED[] = "Red"; +constexpr char TEXT_GREEN[] = "Green"; +constexpr char TEXT_BLUE[] = "Blue"; +constexpr char TEXT_YELLOW[] = "Yellow"; +constexpr char TEXT_WHITE[] = "White"; +constexpr char TEXT_GRAY[] = "Gray"; +constexpr char TEXT_ORANGE[] = "Orange"; +constexpr char TEXT_PURPLE[] = "Purple"; +constexpr char TEXT_CYAN[] = "Cyan"; +constexpr char TEXT_BROWN[] = "Brown"; +constexpr char TEXT_PINK[] = "Pink"; constexpr char TEXT_BACK[] = "Back"; bool toggleLocked{}; @@ -130,6 +143,19 @@ DynamicDebugMenu::DynamicDebugMenu() constructMenuItem, DummyAction>>(); constructMenuItem, DummyAction>>(); + // color tests + constructMenuItem, StaticColor, DummyAction>>(); + constructMenuItem, StaticColor, DummyAction>>(); + constructMenuItem, StaticColor, DummyAction>>(); + constructMenuItem, StaticColor, DummyAction>>(); + constructMenuItem, StaticColor, DummyAction>>(); + constructMenuItem, StaticColor, DummyAction>>(); + constructMenuItem, StaticColor, DummyAction>>(); + constructMenuItem, StaticColor, DummyAction>>(); + constructMenuItem, StaticColor, DummyAction>>(); + constructMenuItem, StaticColor, DummyAction>>(); + constructMenuItem, StaticColor, DummyAction>>(); + // the interesting bits constructMenuItem, OpenPopupAction>>(); constructMenuItem>(); diff --git a/main/screens/mainmenu.cpp b/main/screens/mainmenu.cpp index 3b8a028..8e56381 100644 --- a/main/screens/mainmenu.cpp +++ b/main/screens/mainmenu.cpp @@ -117,7 +117,7 @@ MainMenu::MainMenu() constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::demos>>>(); if (SHOWITEM) { constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::presets>>>(); } if (SHOWITEM) { constructMenuItem,PushScreenAction, StaticMenuItemIcon<&bobbyicons::presets>>>(); } - if (SHOWITEM) { constructMenuItem, PushScreenAction>>(); } + constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::poweroff>>>(); constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::reboot>>>(); diff --git a/main/taskmanager.cpp b/main/taskmanager.cpp index 51e0170..70f8aae 100644 --- a/main/taskmanager.cpp +++ b/main/taskmanager.cpp @@ -78,18 +78,18 @@ BobbySchedulerTask schedulerTasksArr[] { #ifdef FEATURE_SERIAL BobbySchedulerTask { "serial", initSerial, updateSerial, 50ms, false }, #endif - BobbySchedulerTask { "ota", initOta, handleOta, 50ms, false }, + BobbySchedulerTask { "ota", initOta, handleOta, 75ms, false }, BobbySchedulerTask { "ble", initBle, handleBle, 100ms, false }, BobbySchedulerTask { "webserver", initWebserver, handleWebserver, 100ms, false }, - BobbySchedulerTask { "ledstrip", initLedStrip, updateLedStrip, 30ms, false }, - BobbySchedulerTask { "espnow", espnow::initESPNow, espnow::handle, 100ms, false }, + BobbySchedulerTask { "ledstrip", initLedStrip, updateLedStrip, 24ms, false }, + BobbySchedulerTask { "espnow", espnow::initESPNow, espnow::handle, 150ms, false }, BobbySchedulerTask { "cloud", initCloud, updateCloud, 50ms, false }, BobbySchedulerTask { "udpcloud", udpCloudInit, udpCloudUpdate, 50ms, false }, - BobbySchedulerTask { "drivingmode", initDrivingMode, updateDrivingMode, 20ms, false }, - BobbySchedulerTask { "drivingstatistics", initStatistics, calculateStatistics, 100ms, false }, - BobbySchedulerTask { "dnsannounce", init_dns_announce, handle_dns_announce, 100ms, false }, + BobbySchedulerTask { "drivingmode", initDrivingMode, updateDrivingMode, 15ms, false }, + BobbySchedulerTask { "drivingstatistics", initStatistics, calculateStatistics, 150ms, false }, + BobbySchedulerTask { "dnsannounce", init_dns_announce, handle_dns_announce, 250ms, false }, BobbySchedulerTask { "updateDisp", not_needed, bobby::updateDisplay, 20ms, true }, - BobbySchedulerTask { "redrawDisp", not_needed, bobby::redrawDisplay, 40ms, true }, + BobbySchedulerTask { "redrawDisp", not_needed, bobby::redrawDisplay, 80ms, true }, BobbySchedulerTask { "feedbackEmulator", feedbackemulator::init, feedbackemulator::update, 500ms, false}, }; } // namespace From eee58bdd510b803c8e44d3a9f3dbaefc5b4ef78e Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Sun, 25 Dec 2022 17:35:58 +0100 Subject: [PATCH 8/9] Adding our own back/checked/unchecked icons --- icons/back.png | Bin 0 -> 9724 bytes icons/checked.png | Bin 0 -> 450 bytes icons/unchecked.png | Bin 0 -> 471 bytes main/CMakeLists.txt | 23 +++++++++----- main/changevaluedisplay_bluetoothmode.h | 2 +- main/changevaluedisplay_bobbyquickactions.cpp | 4 +-- main/changevaluedisplay_controlmode.cpp | 4 +-- main/changevaluedisplay_controltype.cpp | 4 +-- main/changevaluedisplay_handbremsmode.cpp | 4 +-- main/changevaluedisplay_larsmmode_mode.cpp | 4 +-- main/changevaluedisplay_unifiedmodelmode.cpp | 4 +-- main/guihelpers/bobbycheckbox.h | 4 +-- main/guihelpers/bobbycheckboxicon.h | 20 ++++++++++++ main/icons/back.cpp | 30 ++++++++++++++++++ main/icons/back.h | 7 ++++ main/icons/checked.cpp | 30 ++++++++++++++++++ main/icons/checked.h | 7 ++++ main/icons/unchecked.cpp | 30 ++++++++++++++++++ main/icons/unchecked.h | 7 ++++ main/screens/aboutmenu.cpp | 5 ++- main/screens/batterydebugmenu.cpp | 16 +++++----- main/screens/batterymenu.cpp | 5 ++- main/screens/blesettingsmenu.cpp | 6 ++-- main/screens/bluetoothsettingsmenu.h | 2 +- main/screens/bmsmenu.cpp | 2 +- .../boardcomputerhardwaresettingsmenu.cpp | 4 +-- main/screens/buzzermenu.cpp | 18 +++++------ main/screens/calibratevoltagedisplay.cpp | 13 +++----- main/screens/candebugmenu.cpp | 16 ++++------ main/screens/cloudsettingsmenu.cpp | 22 ++++++------- main/screens/commanddebugmenu.h | 2 +- .../controllerhardwaresettingsmenu.cpp | 18 +++++------ main/screens/crashmenu.cpp | 6 ++-- main/screens/debugmenu.cpp | 4 +-- main/screens/defaultmodesettingsmenu.cpp | 6 ++-- main/screens/demosmenu.cpp | 12 +++---- main/screens/dynamicdebugmenu.cpp | 8 ++--- main/screens/enablemenu.cpp | 2 +- main/screens/espnowmenu.cpp | 5 ++- main/screens/espnowsettingsmenu.cpp | 8 ++--- main/screens/extrabuttoncalibratemenu.cpp | 6 ++-- main/screens/featureflagsmenu.cpp | 10 +++--- main/screens/feedbackdebugmenu.h | 4 +-- main/screens/gametrakmodesettingsmenu.h | 2 +- main/screens/garagemenu.cpp | 13 ++++---- main/screens/gitmenu.cpp | 4 +-- main/screens/graphsmenu.cpp | 4 +-- main/screens/greenpassmenu.cpp | 8 ++--- main/screens/handbremssettingsmenu.cpp | 6 ++-- main/screens/invertmenu.cpp | 6 ++-- main/screens/larsmmodesettingsmenu.cpp | 4 +-- main/screens/ledstripcolorsdisplay.cpp | 2 +- main/screens/ledstripmenu.cpp | 12 +++---- main/screens/ledstripselectblinkmenu.cpp | 4 +-- main/screens/ledstripselectotamode.cpp | 4 +-- main/screens/limitssettingsmenu.cpp | 4 +-- main/screens/lockscreensettingsmenu.cpp | 6 ++-- main/screens/mainmenu.cpp | 5 +-- main/screens/manageprofilesmenu.cpp | 4 +-- main/screens/mickmodesettingsmenu.cpp | 4 +-- main/screens/modessettingsmenu.cpp | 4 +-- main/screens/mosfetsmenu.cpp | 4 +-- main/screens/motorfeedbackdebugmenu.h | 10 +++--- main/screens/motorstatedebugmenu.h | 4 +-- main/screens/motortestmodesettingsmenu.cpp | 4 +-- main/screens/networksettingsmenu.cpp | 6 ++-- main/screens/otamenu.cpp | 8 ++--- main/screens/profilesmenu.cpp | 4 +-- main/screens/recoverymenu.cpp | 4 ++- .../screens/remotecontrolmodesettingsmenu.cpp | 4 +-- main/screens/selectbatterytypemenu.cpp | 6 ++-- main/screens/selectbuildserverbranch.cpp | 6 ++-- main/screens/selectbuildservermenu.cpp | 4 +-- main/screens/selectmodemenu.cpp | 4 +-- main/screens/selectotabuildmenu.cpp | 14 ++++---- main/screens/settingsmenu.cpp | 4 +-- main/screens/setupquickactionsmenu.cpp | 4 +-- main/screens/statisticsmenu.cpp | 4 +-- main/screens/taskmanagermenu.cpp | 4 +-- main/screens/tempomatmodesettingsmenu.cpp | 4 +-- main/screens/timersmenu.cpp | 4 +-- main/screens/timesettingsmenu.cpp | 6 ++-- main/screens/typesafeenumchangemenu.h | 6 ++-- main/screens/udpcloudsettingsmenu.cpp | 14 ++++---- main/screens/wifiapclientsmenu.cpp | 4 +-- main/screens/wifiapsettingsmenu.cpp | 4 +-- main/screens/wifistaconfigentrymenu.cpp | 4 +-- main/screens/wifistaconfigsmenu.cpp | 4 +-- main/screens/wifistascanentrymenu.cpp | 4 +-- main/screens/wifistascanmenu.cpp | 4 +-- main/screens/wifistasettingsmenu.cpp | 4 +-- 91 files changed, 384 insertions(+), 256 deletions(-) create mode 100644 icons/back.png create mode 100644 icons/checked.png create mode 100644 icons/unchecked.png create mode 100644 main/guihelpers/bobbycheckboxicon.h create mode 100644 main/icons/back.cpp create mode 100644 main/icons/back.h create mode 100644 main/icons/checked.cpp create mode 100644 main/icons/checked.h create mode 100644 main/icons/unchecked.cpp create mode 100644 main/icons/unchecked.h diff --git a/icons/back.png b/icons/back.png new file mode 100644 index 0000000000000000000000000000000000000000..c19f8d85307dfc83494c178bb85ef77ea4c5821d GIT binary patch literal 9724 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuL~WU4|UN`ey06$*;-(=u~X z6-p`#QWa7wGSe6sDsHWvomnPhIc@3xWYN7WXATz`%)4y8;_3HtMs-)sDOYEfYKaJG zmM@ol!&_d_aOU6o|J7&yKin_WY-%`lR`j`P|C74UmhW5n?eFz>^Uodo{rvao>(%eR zUqAa@dfs%V_`|=mU(P>Y9_PQm?!j-X$KS8}{@wHV^>e5B=KJ&{O484pzkaS%d3XQy z*gr8V-hTJZ+xjQw)ra@5|I~cYd-}PWf405&?*A{}KYPx-QDEuR9f2R}*u~%c-MsI7 z%lF-%tv@Y)Y#jFf-uulDy}90P7GnBz`*CgU)^F(zb=;q>mp?oIqQ3sS`-j^9d*uFg zr2ae7k^k>kn|D3`Ki-f1((Ug>f8M`8qy5OgpBD4)KVMUIuFn5@vf84b!GYImT;1&t zv+wla`F`AJKi7WY`_q4~{D|nZqZ%Y?eDL@RP*ks`+X?< z{c`^ATcx`4>)4)ZzM5{muSHBO@^j*^T&D-A|M!ZOzrX$NuUhE-H$^p9to7Uu{r{@} z`TpLY^Zyt<_h~(G^OvmlwWpzrbev~io?p||vg7l~=v|Eeetq@a|2NQnik760`I)Kg zZ_4&~_dKb)8n&a7uSW0V*R2zbQ)~4cI(C#N8R|`7oE__-XC1vq|D51)uO=()?~1=1 z*bb2yqnW;~a+Xr1*vu)?o97t0aXl`xll?w-cl^xX+driR{oVfQ z+5h^P#$I>-yFKGs`8)mIze!tF=gl@xUe7HWEd9dn-uWquxqkOP&oAfgis!Jg->`dpO2KgJ zwAs$R0a}(DZUkJq6KEgA*b&rpU-SH}ui0;BMECFWeWIok^3Q5{xYX-CJJ(f)j#u{vHi-s1>w6SAH>I= zURmq5=vS2Ap1XH6rd-RY3VCmRJz|?y>vNM$52}{TuhhSIeRh$tLxOeY_LIw_?{|J$ zE}-#!?!u*Wf4^MUzl=lhmss*S)3*!QqPN6-E}LFwR8bNno$1L?bp1ud!$^_NYjJnD zzIfkX{?jPNf95`2zp3F0N4MRTm^@$9;_{YPY7vIj-U)M2OM9-Tvzq9FWz^xcB@jE8BPgP1x zVo6}CpEyTt`Y#EQHOf5OcVGFjOUBjj?{Y`!Wf$CLR~CQgJSG~@7i4(SGn2dXN8A6U z!T;6c&;D&&B=_aqN8Uf8*S5dCn()O@iS?WzZEPo^1ba22O5t|-ymH1ScdPy1=j zBae=|S%qpH_peYc>n?G;ao&)ccRh#x4sJwrS?ceUD ztB-zjN!-Cz@!9c_eqGiU4~e54Dz7wo|7_4;P+DXD-tKM^*-2BWy*iKa~^)+9^!zFhPwr)WvF8|hbZzPTyXEk10A*^z= zbA#wgQ|(I`iy{oFLqiz&Z+1K>J0vOo>)qc)Ro=hTc#iDXJ!ADixeVO4c@ z-ST4Hm-rneQk?Hg)W=A%d%(>-Ujab>+bZhoQv{^%wuLh@KV<0+~oP}0jf9lt-GShc64F4YqOlx z=`9LLoc&2BM5o3t*et!%^)%!9?8_To>0gX%`1107OGUF-QQjrtL()-i?2K;CVLPx_ zww~kCqzyY7UzIF(=(gE8_0qCUpNc*Ut&@MMWg+)MbLVg6PfC-@pL`2Z(kWej`W{2G zgk=pgV}AdNR}3sMlHS{8W4INVruQyk^j^)SzfvP=n#o}&k0qg3_i}`**lyb5KI@|v z&$?#6TaPd9dY5%Yw=!fNo2=OCwZ7(>yE-S?GR&OQVUc99DExDl@ZQQ5MXOFM-drQM zXTQ(w7mHn``9!YQrg3qq)db#Hbmp_1c$w4%i4K2Zxh)E>kJ$3%i7#BNr^YqkN#^9g ztpX2a@8vW+p7W}V-}l1_4uu~KtsMtUem*)7EORHDu~n~XO;qPhDa%DwGxjxK{HTzv zk$hD`AnJe~!<6#MSve{P1C!@Z3jY6R%8Z~H2TWonsBAI}T98)zx}X0=UR~Fe|K1l= zrZ-6Z;yiyL`Qr_(tXivSjZwVe&MY<8RyrpMzh19)eF9S}lbr8Wsjpp0i!1{~CY=7p zo#W-yB0raHjZ>BSQe(%Q4M`z81x-rs+Db29)evZO)F^tola-O}aa(K0>v!5!i(2(A z1s}+cH<*3GLHmi3REAs~>-m6L8@^17dipqzIo#&UhXb2;=(sK@K65F+MECwX*Ucv? z8Wg8&Immu_lYzm6-(UIa03N<0tGE%8`62ykmLouZUy4?CzUGr7i`1 zo%^Tsk>5-ug+;+%J3Y9%GaWlhudZ(_Fn`dj=O9=T9msmXM{uTZ)!!=r9qxX5mTx$( z*8Q~o<^BAUV}qm)Q{Ba`3htDk82L@d&rRla5mt;;68f8=c5LnRIe|}FdeqzkpUPyp zZ%MkYZNC1HU(}2qw|nh3AAgZvp(9~nQuQ{5E%jokgtyp@7qD$A_tqpsA3Vc#zXRmCndcG?6kDheFVfMF& zni-BZ-e5d%OioKQhh@=)wYm$;Z5y|1x=ONak^W<2)ALPm$(66q(+;iS`z1PSLBe(O zH=Nt&@?KrmdBEb^Mp4mT|C3_5lRH|ci|rC%a^J46>b70P*N~UrqI~`YSM3Cm4Brm{ za<4Z?$vpT}VtenD=ydZ%f*wqgHB*FKoPC@2+swN1Ms4G!#(!%!a(`frwCJ^Ldlr$J zKat7Q_T)mFoTcF_j9qrFWfV0uJ!Wxl&P1$IwndLz+7vgLRi5*i-EMboq-t|K52o)|0W?x53i=TA|7VBaZg3 zd>53`<}7#=9XM^{<4u$A%W29qYUVk3X5OvTE?(h&NPqv$O5vrliT%sxO4;(RlQrFV zR`hZEs;U6RBMWm}UMp;xYLh>;t9b7k`A6D6cMEROIMCGj@`dp%?XKTD)gLe>Hk|YL zy-mTgi_zTU#X{40aw2RyHon}TyH9{|oA4iw+9W%p6}NcyM6S3p)#dG`z>7gFH?pHF zyW;cj6ex+ybAA1(`p|pQdaKPED-M6)>oMu%b?qw}A`t8w|Ph9>v?*yAP~`{mxpnC@d= zvXA$TqI`b8Dx3S0rJV;lq%x|fWL?$PSXa0_xqsV=_Qm%Wha3#s!7b?V>-KEv`A=nU z*10%cao+er>(<#|32DLPpA3ADyOmZXCLN!AHa4I>VcU+*cMA_Iy|^%EX{2)9XTG)o z6TjKwTO^a_{np)mU%*UPtR*4)R>f@JseiAO1c?9oZENzhXstcR^1nr=MRu;{;GTcs z=Zza~{THI!nm$UUc*{=JpWNlMbfrp~$<~LAOh{`MeJ%m|C=P zu&nQlV#vTu<3{;rw1nc8h;EB&9aV z$}$NCu*$x*<>b41sCnZvy~*LnjGxY$=@!Of_vw!B)*9{2fuBB#+%dhR##L&2?p0@6 z9I-A_|u7O6Ik9h~}Fm*Zs_*y>|Y!O<`B&pE;Zt zp7l?~x+2J!A%(^DjrOyJ;U+s)%-j?2w^H*FKJ z-z${aB;zxA>N2Z}$5Z@Ii+UzMU!i?%-M&9rqG#fley_S7#(Af>D0$B?iw1sncHX@5Q;(;g zJp+^YpZn9ed>8&|zc@dAfoz2QK@Mx@Jj<-jyvnNF6W3)QaPr|@Z}Rl9Bkz}$^K!xq z9x@&N`d;_J!pL7Du^vGpMsZt&FTTz95}v;O_8S9TJ~rNljZ5YB#fY%hmfkU)E?+OC6Jz++X$ne)HjXPhuaPJkBCLan`J! zLzaGe66aeh8*@%ZxUud1=JDgWo#{+xTF#}BQPUeAxa0tH+TX7+w)?-!ZM1h{ZhmWFufgKH^x9|d!!ze)pZl`%XiE00 zuG3D(bNy8m_#aJ(m6tlO=&R4^z~7G@FNe0W-{_g~YRC7MF9&t97&UdT?=hXWV|K}g z7$>)YTDh6Zd@a`tnnUj1*1Qxpjq7Q`7l+3x_Drmc;^vyMmS5&eFaDDH@c7z0UCsNp ze#|*#{xBo^ezy8wLBAhrbAH}z_-T3Qp=W;d#nhsU%k4<7z(7>=jbcb1_~c zeq$B)q9ek!oy$IR*x%~>C6$`~$Y_JW49j=^&h6$C1$OrNBy6xp=+b1RhbtMb zbyYbOCr^yk+-Sn7yIRlb$-xF!<@18aAl z4pZe&-1&Z0(}}Bgvn6W|ozUz6*D#8Ufe4!V@=B~$y48?^`^3muFLm+`SIV%5Z8_6)|->fpDmgmV0BU3zw3A0 zv6GSC=ARSjOv%*g@mkyxaO_57%zX8i-zPaccj;({z3>U?-2O%C+@W8m?WV*WxSG46 zZGZ2S>$*a>;;RqbEB5t&^6|upS?X%NOu6ZkZ_|{vX;KqIcdD)ZduySTo%pQG!xFif@?viaDh`x`9H_iehEaR%?F$jW;WJB2s3va88Ebg0b}IhJLm-B^3nke}6~`SRy)eUr*WbUv+o zvBUj>XZ1Ml<^|`Bh7fC`A5fN#5~o zPyfXC$r(rZmYBbuDC#G-bl>&W5_*c8l@EITII|}AzLHAptxO}UA6}02&l=;ZljItM z*X}O1JH>G9^O1SCmVI9F{X{F9Sf|->HI*uNjvS6pPq=PuTqyX@y^4<|{QIQB7oEEg z_RnvTFyY#p%(OxG?w;+|2N(8zlI6(=n(^M-GMnGgNqY~YL99$d=fX&#Z5mmxu4jC% zxIa&q>wZAag?nK~Qxhg>C3_Z?J>S%67Q@;9R8wHVmAdAuE9#qKJgp8XJWRNCx4WTl zhbG%pnT7?Ev`tLjzH?j3B9Nc8A+E8tv*PA02KP?EZAI<^3G08cik-|~)w7~g_@a=2 ztpMA@QE*Erc(nUdau~__Vx`ZHL|4 zwTl~q8MGOz9^Nubl6djV(&4I$=OP=k>q{SZ?9!IXlCp@c409_jY0DCSe$nrG*m^ZX z&Bg7$F>l{~&b%K!k;!TL1I>)M^a-8mTzz@3S@b zv&8>yR+gmOXPM;A7ZP6n>CZB>b6*P!E4?+@%~+seyY6+(w3XL?1b$nfvU*a`ULEKE zr`kM}PPK{5c@p=u@6o*VEc*|JduxB(!Xj@f%4jKbPR1(mQjq7-JmHmM)`{|;76iBZ zehvCn_w|s{mX$B>h0Wy)+>^L-+u~{4IQOI}Oqg%Vu+2%zEJ{&sXWWvvr^UGM{r@C! z`kB1nFjraM+5MeRT3XU_#S-c5Dz9xnR>Wq0DZk+lB2i3%)K3(&uW))srSZAPMIkO_DS#H|Gh9rWfe*; z_f$78U<&ozE3W>*;o705DoKup_kI61>FB&WRnREUcP((0{(@Vte}2u9lC3TlZ_2w6 zdDQS@LdXvBT@TX>CzQ9pl$&|Zqm|pD$hq3N?_*Y;GkI#59B{*0 z<$=t`$NH7om$%-$mN8xFNqp!IbMd`x9oJb(A1eokt~q6G_TuP_2A>N%H?Cnm$h@{S zdFSDUja$#`yp--Ko0KRxH;*ymbm^a!jVebg_kFK8+p+7|qrlo0le@l~{(N_Cd}ePU z+Y$Wk4s(c-Nx10Zds`#bEgc<|j?7vyxs6++XxiS8`zf`VN21(b&3`PG&K1a3`^dC4 z!^&o{^CgGp28XZjUVr=A6Zb9^j?j;mbJC@2dR{;A&-rINljX&N2O7>5*Rt)ym+xLY zKW#$Zx{|fWZ2hmWZ?JkN@_XU49fuvX6oPk01{XYH&$u`#W9Oom@-7|LO25PYdo5^S zR4@xldiB9+NlvosWw*J1+%_m?IOxqyw^8!WZB-V!cXPkV3)4&gs=SPo=AQoGv2VWf zcCY1&XPKJt9ep*Wv5WTsU-{uDFLahJxqoAQ(S?-tT#iS4N*SlL>h0Ye-g0CK!Lue5D7%ZRR6&i~3fHf4XY zZONAyV`2GKY6YI|A}cjENEEW1TA1*G@ABC+5>Qm)AHN%edOJ>>)YxFKwPme^Rc6A;^vfrc zqu3stxp_&vQ$%uwE&EB|f(yP0t9AeWw%KFXYIKKvu33fUJDZM@bzUfWihF#W^o>4%Tq zeXQ~PmskCEtwasWUG^t}tbbHE^e-$-us+bHcwuAttFQC874EWbDY&w#ZHsP}hDpWO zQ;nLcpL4g?|IT`|zv8ie{L_mUo3H3K{NI{*s5W7KVekBBiK+K~UcIzXevWpk><7VPwl_Wi_XwdnjT@jc7AJ}(pG5R1C=?^Ym>rI(kPBm+n1 ziL8RIC0;WkJ6CgPNjrEg|9Bu$w|v?8OkIg{`!=6{|7D$;`GrY-?;cJ0e5JAV&X@J} z%dXq|a=SV1Q{Qv!R!1aq6?Bvld;imrR?vA?iXJOQ@sRF3(vn zPCVF~w@-NPx}9Cmc3Z{lo73%F>|?+r`P%5>CHq;oZ;336SdnqHt+C|3@|+Kr%_=Xr zwp{w%uKwjgs*uT=E0>Q%zMgN>v-0u05UrdCB|V22ex9#csIlL2%KVtKQJ?=a$Zlh? zHYoa{#K6GVlIiRm;OXoPn>FBb^67335 zyu!8CYDUa2R$r+}BI51`w?24qJn8Deqmkk4;f?}-7z&F@f=VU|{huxpb)=%;PJj7# zx$^f6^@|UM7+dhIn3cL@GNX$UE!3eDy=`}RGeABEo5I5TlTZJ_+p~{`5vj6Uu+7e zL}-+4xN~q#%8DbwM+{xBYTTb+8u@U~(a5z|B3{q?)B14FwoPYBXE}Q$33>}CI=Jzs zh9oHZt#<3`GtlOLP^AAFy8_Ry1-*&==nvHIKo8Zxz% zHKyI&w!c4jcO?_cyhiP{Z`YeO%=EwXI#;)h#bsM#_v>wH?-{3CA2={sPjZqnYsN2b z)(3xk_Gz+zxzA*qotMA1c8(o`#2@8*afU$V8 zRW$qSo&#}JR>b3=1`=7fsYz1#bK&-YR%zNI*ptw^m67qbuR(N#!mXffJ9Lvym!Lp<|3jet?CAZ^UyMR#T(+Cdc#=wz#a*M!U8|pd~|{*L#3 z?9XFMT@MxT?T-@9U#-3C)}n{!GnZbIzVtd|L73J`yV!MS%Wgh)ZGBMS8dE!YV=Kpn z?OYmj85j&YDjUiK<2FnF^X7NAdVgnY>D^yfZ$H z(L48M7y6&EU<%{NP;{7cuq{SHo#ia6$zz3MiU$>2xmy-5jL^C&?0>}kNb z*Y9HQ&$p}l5z0|_yLLnUufUR*d#mMkq@L~NFVlb5>8W>NgTvh-6CL-<1}xW_dKwMI zjzwf#Qn;kx`eCWlU3CGL?xTyZSMu%uG&P-{@3k@et3$hN^UgotzvuO>+4&U?XW}2s zUFp#iE_yFFVh(S^=OYuQJ1q3nFcmqqnQNbtLH2Tz~CB#_AXj-h9(+D)kg6IwYoq455y0`eO<%|am`Mi>w#lo^9E+x1$ zsAYJrFjvj$Ww?`3knAvNfv2-E+xdV!R-siU+r0%1rgIA^cE+!mvn8@bI>Bbc%m?Cgs0^4Q=i{|Bj z($+@&YHe7_v~ntkpPWP0+p_vkJKNpnq~t4IpBMRVcVeEWvUTi-uQ@F0YLzs6ZEp$Pw7<@kWj7&0Y4veATd#9dcfNb~ z?e*+KPwyRF`Nz82{QlFDI~%^=nf%?}&{WDMa*fYl%iL6}*t-(4Ula9xQ?xe*-SwzZPUx@*>|2sNgr{RnV0iNbnB;ie@_2C z^{AP98sla42G#kjN!Np(-sntb%~hY<_u+o0&sD#DH&hNn?7y5p?s3XHqm4AoHVApeR=lJ>eJHn6E{4atNeJos~k>v7AeN0 z>RjRz2>K_VvFpe0qt4nZYM!W1|8YEakt!T5Iaey<}A0>}2h(VXGL z8MVxF;xRq5uBjV8uelOsVApVOZ{u@m7VXo!oep}fNlL#ox83!?rG||jnH*-{**)jn zWq#^_4wWC+M3599R}A9UR#5rLb`0?U_6mzVJM$ zSTK>1GpATGy;OMGJ{I4(&GJh#?A2a;nIxf{^LUe7Kl7Zb^_$v1H%D7P>)&>*wxw9V z>mXaU>6{9_rw<*N(qr4JH~d;XH(ktSrPzM{b{?;b4Jz)^RV(?=3$Wf!QfX%O{K0#A z!xz_e8_pWAM*iP?#Xb1>(fNUqzb2^o*m>3dnLfoR!0D0#zXE5d$4dX*(D zulAXFL$#`D`r4XQ&K>i(n6eDS-_^BsbEakt!T5GctluFAf#d0EqVd%% z{S4|F_YO!ms4qCi(8(5|l3`%@jqQf?15OR~4dxS+1>{#+zs^aPH%Qp@b;~i;BnOPsM{_rYBKI>dXJa?zMZ1(5N|&(`q@&8c;nj}ElnfWd}XuQ zxpTJ3)I-~L@J{^HJ@eXYC5L>AzZ<3r2dS^msn8R>^0b^mOnk+*>*p>g^Odj*_j;^- zn||-WyM$Y6O#%~+1s$z^STVgfOVOm^?B3royrNtR_y*WDtR0f zJ^NpsubRO0=&9o4`O_*NK6^2(^^Utp=JcQO&b$XE7kQqD@(5ki#l=_Z6?an~Q|i z!M{RMOO{y7+_|v&QC^dAK0Ffe$!`njxgN@xNAi7>?2 literal 0 HcmV?d00001 diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index d0df916..d019917 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -70,18 +70,25 @@ set(BOBBY_HEADERS globals.h guihelpers/bobbychangevaluedisplay.h guihelpers/bobbycheckbox.h + guihelpers/bobbycheckboxicon.h guihelpers/bobbydisplay.h guihelpers/bobbydisplaywithtitle.h guihelpers/bobbyerrorhandler.h + guihelpers/bobbygraphdisplay.h guihelpers/bobbymenudisplay.h guihelpers/bobbypopupdisplay.h + guihelpers/bobbysplitgraphdisplay.h + guihelpers/menudisplaywithtime.cpp + guihelpers/menudisplaywithtime.h handbremse.h icons/alert.h + icons/back.h icons/battery.h icons/bluetooth.h icons/bms.h icons/bobbycar.h icons/buzzer.h + icons/checked.h icons/close.h icons/demos.h icons/git.h @@ -101,6 +108,7 @@ set(BOBBY_HEADERS icons/shortcircuit.h icons/statistics.h icons/time.h + icons/unchecked.h icons/update.h icons/wifi.h ledstrip.h @@ -136,8 +144,6 @@ set(BOBBY_HEADERS screens/bmsdisplay.h screens/bmsmenu.h screens/boardcomputerhardwaresettingsmenu.h - guihelpers/bobbygraphdisplay.h - guihelpers/bobbysplitgraphdisplay.h screens/buzzermenu.h screens/calibratevoltagedisplay.h screens/candebugmenu.h @@ -176,8 +182,6 @@ set(BOBBY_HEADERS screens/lockscreensettingsmenu.h screens/mainmenu.h screens/manageprofilesmenu.h - guihelpers/menudisplaywithtime.cpp - guihelpers/menudisplaywithtime.h screens/metersdisplay.h screens/mickmodesettingsmenu.h screens/modessettingsmenu.h @@ -188,7 +192,7 @@ set(BOBBY_HEADERS screens/networksettingsmenu.h screens/otamenu.h screens/pingpongdisplay.h - screens/poweroffdisplay.h + screens/poweroffdisplay.h screens/powersupplydisplay.h screens/profilesmenu.h screens/qrcodedebug.h @@ -308,15 +312,19 @@ set(BOBBY_SOURCES guihelpers/bobbydisplay.cpp guihelpers/bobbydisplaywithtitle.cpp guihelpers/bobbyerrorhandler.cpp + guihelpers/bobbygraphdisplay.cpp guihelpers/bobbymenudisplay.cpp guihelpers/bobbypopupdisplay.cpp + guihelpers/bobbysplitgraphdisplay.cpp handbremse.cpp icons/alert.cpp + icons/back.cpp icons/battery.cpp icons/bluetooth.cpp icons/bms.cpp icons/bobbycar.cpp icons/buzzer.cpp + icons/checked.cpp icons/close.cpp icons/demos.cpp icons/git.cpp @@ -336,6 +344,7 @@ set(BOBBY_SOURCES icons/shortcircuit.cpp icons/statistics.cpp icons/time.cpp + icons/unchecked.cpp icons/update.cpp icons/wifi.cpp ledstrip.cpp @@ -367,8 +376,6 @@ set(BOBBY_SOURCES screens/bmsdisplay.cpp screens/bmsmenu.cpp screens/boardcomputerhardwaresettingsmenu.cpp - guihelpers/bobbygraphdisplay.cpp - guihelpers/bobbysplitgraphdisplay.cpp screens/buzzermenu.cpp screens/calibratevoltagedisplay.cpp screens/candebugmenu.cpp @@ -411,7 +418,7 @@ set(BOBBY_SOURCES screens/networksettingsmenu.cpp screens/otamenu.cpp screens/pingpongdisplay.cpp - screens/poweroffdisplay.cpp + screens/poweroffdisplay.cpp screens/powersupplydisplay.cpp screens/profilesmenu.cpp screens/qrcodedebug.cpp diff --git a/main/changevaluedisplay_bluetoothmode.h b/main/changevaluedisplay_bluetoothmode.h index 96b8468..303ca7f 100644 --- a/main/changevaluedisplay_bluetoothmode.h +++ b/main/changevaluedisplay_bluetoothmode.h @@ -32,7 +32,7 @@ ChangeValueDisplay::ChangeValueDisplay() constructMenuItem, StaticText>>(BluetoothMode::Off, *this, *this); constructMenuItem, StaticText>>(BluetoothMode::Master, *this, *this); constructMenuItem, StaticText>>(BluetoothMode::Slave, *this, *this); - constructMenuItem, StaticMenuItemIcon<&espgui::icons::back>>>(*this); + constructMenuItem, StaticMenuItemIcon<&bobbyicons::back>>>(*this); } void ChangeValueDisplay::start() diff --git a/main/changevaluedisplay_bobbyquickactions.cpp b/main/changevaluedisplay_bobbyquickactions.cpp index c85d9a0..bd8033f 100644 --- a/main/changevaluedisplay_bobbyquickactions.cpp +++ b/main/changevaluedisplay_bobbyquickactions.cpp @@ -9,9 +9,9 @@ // 3rdparty lib includes #include #include -#include // local includes +#include "icons/back.h" #include "utils.h" namespace espgui { @@ -41,7 +41,7 @@ ChangeValueDisplay::ChangeValueDisplay() constructMenuItem, StaticText>>(BobbyQuickActions::PWMOMAT, *this, *this, *this); constructMenuItem, StaticText>>(BobbyQuickActions::COMPRESSOR_TOGGLE, *this, *this, *this); constructMenuItem, StaticText>>(BobbyQuickActions::HUPE, *this, *this, *this); - constructMenuItem, StaticMenuItemIcon<&espgui::icons::back>>>(*this); + constructMenuItem, StaticMenuItemIcon<&bobbyicons::back>>>(*this); } void ChangeValueDisplay::start() diff --git a/main/changevaluedisplay_controlmode.cpp b/main/changevaluedisplay_controlmode.cpp index 12ee662..b95a5e1 100644 --- a/main/changevaluedisplay_controlmode.cpp +++ b/main/changevaluedisplay_controlmode.cpp @@ -9,9 +9,9 @@ // 3rdparty lib includes #include #include -#include // local includes +#include "icons/back.h" #include "utils.h" namespace espgui { @@ -32,7 +32,7 @@ ChangeValueDisplay::ChangeValueDisplay() constructMenuItem, StaticText>>(ControlMode::Voltage, *this, *this, *this); constructMenuItem, StaticText>>(ControlMode::Speed, *this, *this, *this); constructMenuItem, StaticText>>(ControlMode::Torque, *this, *this, *this); - constructMenuItem, StaticMenuItemIcon<&espgui::icons::back>>>(*this); + constructMenuItem, StaticMenuItemIcon<&bobbyicons::back>>>(*this); } void ChangeValueDisplay::start() diff --git a/main/changevaluedisplay_controltype.cpp b/main/changevaluedisplay_controltype.cpp index c23e134..29607e6 100644 --- a/main/changevaluedisplay_controltype.cpp +++ b/main/changevaluedisplay_controltype.cpp @@ -9,9 +9,9 @@ // 3rdparty lib includes #include #include -#include // local includes +#include "icons/back.h" #include "utils.h" namespace espgui { @@ -30,7 +30,7 @@ ChangeValueDisplay::ChangeValueDisplay() constructMenuItem, StaticText>>(ControlType::Commutation, *this, *this, *this); constructMenuItem, StaticText>>(ControlType::Sinusoidal, *this, *this, *this); constructMenuItem, StaticText>>(ControlType::FieldOrientedControl, *this, *this, *this); - constructMenuItem, StaticMenuItemIcon<&espgui::icons::back>>>(*this); + constructMenuItem, StaticMenuItemIcon<&bobbyicons::back>>>(*this); } void ChangeValueDisplay::start() diff --git a/main/changevaluedisplay_handbremsmode.cpp b/main/changevaluedisplay_handbremsmode.cpp index a11e444..e798ad3 100644 --- a/main/changevaluedisplay_handbremsmode.cpp +++ b/main/changevaluedisplay_handbremsmode.cpp @@ -9,9 +9,9 @@ // 3rdparty lib includes #include #include -#include // local includes +#include "icons/back.h" #include "utils.h" namespace espgui { @@ -30,7 +30,7 @@ ChangeValueDisplay::ChangeValueDisplay() constructMenuItem, StaticText>>(HandbremseMode::MOSFETS_OFF, *this, *this, *this); constructMenuItem, StaticText>>(HandbremseMode::OPENMODE, *this, *this, *this); constructMenuItem, StaticText>>(HandbremseMode::SPEED_0, *this, *this, *this); - constructMenuItem, StaticMenuItemIcon<&espgui::icons::back>>>(*this); + constructMenuItem, StaticMenuItemIcon<&bobbyicons::back>>>(*this); } void ChangeValueDisplay::start() diff --git a/main/changevaluedisplay_larsmmode_mode.cpp b/main/changevaluedisplay_larsmmode_mode.cpp index 274ebc7..2250add 100644 --- a/main/changevaluedisplay_larsmmode_mode.cpp +++ b/main/changevaluedisplay_larsmmode_mode.cpp @@ -9,9 +9,9 @@ // 3rdparty lib inclues #include #include -#include // local includes +#include "icons/back.h" #include "utils.h" namespace espgui { @@ -31,7 +31,7 @@ ChangeValueDisplay::ChangeValueDisplay() constructMenuItem, StaticText>>(LarsmModeMode::Mode2, *this, *this, *this); constructMenuItem, StaticText>>(LarsmModeMode::Mode3, *this, *this, *this); constructMenuItem, StaticText>>(LarsmModeMode::Mode4, *this, *this, *this); - constructMenuItem, StaticMenuItemIcon<&espgui::icons::back>>>(*this); + constructMenuItem, StaticMenuItemIcon<&bobbyicons::back>>>(*this); } void ChangeValueDisplay::start() diff --git a/main/changevaluedisplay_unifiedmodelmode.cpp b/main/changevaluedisplay_unifiedmodelmode.cpp index c33a2c5..fe4acde 100644 --- a/main/changevaluedisplay_unifiedmodelmode.cpp +++ b/main/changevaluedisplay_unifiedmodelmode.cpp @@ -9,9 +9,9 @@ // 3rdparty lib includes #include #include -#include // local includes +#include "icons/back.h" #include "utils.h" namespace espgui { @@ -33,7 +33,7 @@ ChangeValueDisplay::ChangeValueDisplay() constructMenuItem, StaticText>>(UnifiedModelMode::FocVoltage, *this, *this, *this); constructMenuItem, StaticText>>(UnifiedModelMode::FocSpeed, *this, *this, *this); constructMenuItem, StaticText>>(UnifiedModelMode::FocTorque, *this, *this, *this); - constructMenuItem, StaticMenuItemIcon<&espgui::icons::back>>>(*this); + constructMenuItem, StaticMenuItemIcon<&bobbyicons::back>>>(*this); } void ChangeValueDisplay::start() diff --git a/main/guihelpers/bobbycheckbox.h b/main/guihelpers/bobbycheckbox.h index 8fd9bc9..c50b43f 100644 --- a/main/guihelpers/bobbycheckbox.h +++ b/main/guihelpers/bobbycheckbox.h @@ -2,16 +2,16 @@ // 3rdparty lib includes #include -#include // local includes +#include "bobbycheckboxicon.h" #include "bobbyerrorhandler.h" namespace bobby { class BobbyCheckbox : public virtual espgui::ToggleBoolAction, - public virtual espgui::CheckboxIcon, + public virtual BobbyCheckboxIcon, public virtual BobbyErrorHandler { }; diff --git a/main/guihelpers/bobbycheckboxicon.h b/main/guihelpers/bobbycheckboxicon.h new file mode 100644 index 0000000..22f0138 --- /dev/null +++ b/main/guihelpers/bobbycheckboxicon.h @@ -0,0 +1,20 @@ +#pragma once + +// 3rdparty lib includes +#include +#include + +// local includes +#include "icons/checked.h" +#include "icons/unchecked.h" + +namespace bobby { +class BobbyCheckboxIcon : public virtual espgui::MenuItemIconInterface, public virtual espgui::AccessorInterface +{ +public: + const espgui::MenuItemIcon *icon() const override + { + return getValue() ? &bobbyicons::checked : &bobbyicons::unchecked; + } +}; +} // namespace bobby diff --git a/main/icons/back.cpp b/main/icons/back.cpp new file mode 100644 index 0000000..b130eb4 --- /dev/null +++ b/main/icons/back.cpp @@ -0,0 +1,30 @@ +#include "back.h" + +namespace bobbyicons { +const espgui::Icon<24, 24> back{{ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x016C,0x014B,0x010B,0x01AC,0x018C,0x018C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x014B,0x0009,0x0000,0x2AD0,0x3331,0x00CB,0x09CD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x012B,0x0007,0x0000,0x1A6F,0x5CD7,0x5C96,0x0003,0x09ED,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x010B,0x0006,0xFFFF,0x022F,0x6518,0x75FB,0x5C96,0x0000,0x1AB0,0x2312,0x22F1,0x1AB0,0x1A6F,0x0A0E,0x016C,0x0048,0x00EA,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x010A,0x0029,0x0000,0x022F,0x6538,0x761B,0x761B,0x5CD7,0x024F,0x22D0,0x22D0,0x1AB0,0x1A6F,0x124F,0x01CD,0x002A,0x0000,0x018C,0x0007,0x014B,0x0000,0x0000, + 0x0002,0x0003,0x0A2E,0x0000,0x1A90,0x6518,0x7E3C,0x761C,0x761C,0x6E1C,0x65BB,0x5D9A,0x5D7A,0x5539,0x54F8,0x4CB7,0x4C76,0x3BD4,0x2B11,0x1A6F,0x016C,0x43F5,0x012B,0x00A6, + 0x0006,0x024F,0x0000,0x22F1,0x6518,0x7E3C,0x7E5C,0x765C,0x765C,0x6E3C,0x661C,0x65FC,0x5DBB,0x559A,0x4D5A,0x44F9,0x44D8,0x3C97,0x4456,0x3BD4,0x2AF1,0x09CD,0x5D7C,0x00AA, + 0x022F,0x0000,0x2AF1,0x6518,0x863C,0x7E3C,0x6E3C,0x663C,0x663D,0x5E3D,0x5E1C,0x5DFC,0x55DB,0x559B,0x4D5A,0x4519,0x3CB8,0x3477,0x3436,0x33F5,0x3BD4,0x2AF1,0x018C,0x0000, + 0x014B,0x22B0,0x54B7,0x5D9A,0x4D7A,0x3D7B,0x357B,0x2D9C,0x2DDC,0x2DDC,0x2DBC,0x2D7B,0x355A,0x3D5A,0x453A,0x4519,0x3CD8,0x3477,0x3436,0x2BD5,0x2BB5,0x3394,0x1A6F,0x014C, + 0x016B,0x1A90,0x3436,0x24D9,0x14D9,0x1D1A,0x1D5B,0x1D9C,0x25DD,0x25DD,0x1D9C,0x1D5B,0x1D1A,0x1CD9,0x1CB8,0x2CB8,0x3CB8,0x3477,0x2C36,0x2BD5,0x2394,0x33D5,0x22F1,0x11CC, + 0x022F,0x0004,0x1AD0,0x2C57,0x24F9,0x1D1A,0x1D5B,0x1D7C,0x1DBC,0x25BC,0x1D9C,0x1D5B,0x1D1A,0x1CD9,0x1C98,0x1457,0x1C37,0x2C36,0x2C16,0x23D5,0x2394,0x23B5,0x2B32,0x11CD, + 0x0000,0x0A0E,0x0000,0x22F1,0x2C77,0x251A,0x1D3A,0x1D5B,0x1D7B,0x1D7B,0x1D5B,0x1D3A,0x1CFA,0x1CB9,0x1C78,0x1457,0x1416,0x13D5,0x23D5,0x23B5,0x1B94,0x1B94,0x2B52,0x11ED, + 0x0023,0x0000,0x0A4F,0x0000,0x22F1,0x3497,0x251A,0x1D1A,0x1D3A,0x2D5B,0x2D3A,0x2D1A,0x24F9,0x24D9,0x1478,0x1437,0x13F6,0x13B5,0x1394,0x1B74,0x1B74,0x1B94,0x2B52,0x11ED, + 0x0000,0x0087,0x0000,0x124F,0x0000,0x1AB0,0x3497,0x1D1A,0x1CFA,0x3497,0x1B32,0x2373,0x2393,0x2BD4,0x3415,0x2C57,0x13F6,0x1395,0x1374,0x1353,0x1354,0x2394,0x2B32,0x11ED, + 0x0000,0x0000,0x0000,0x00EA,0x00EA,0x0000,0x126F,0x3497,0x24D9,0x3435,0x0000,0x1270,0x0000,0x0029,0x01AC,0x22F1,0x33F5,0x1395,0x1354,0x1333,0x0B33,0x2394,0x22F1,0x22B0, + 0x0000,0x0000,0x0000,0x0000,0x010B,0x0008,0x0000,0x1A6F,0x3477,0x3435,0x0006,0x09ED,0x0027,0x00EA,0x01AC,0x0000,0x22B0,0x2BB4,0x0B33,0x1333,0x0B34,0x2B73,0x22B0,0x09AD, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x012B,0x0009,0x0000,0x1A90,0x3352,0x004A,0x09CD,0x0000,0x0000,0x010A,0x012B,0x09CD,0x2B53,0x1354,0x0B33,0x1B54,0x2B32,0x228F,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x014B,0x010B,0x0007,0x018D,0x01AC,0x01AC,0x0000,0x0000,0x0000,0x014B,0x09CD,0x2B32,0x1374,0x0B33,0x2353,0x2AF1,0x08EA,0x1A0D, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01AD,0x09ED,0x00CA,0x018C,0x018C,0x0000,0x0000,0x0000,0x018C,0x09ED,0x2B53,0x1354,0x1B53,0x2B32,0x224E,0x2B11,0x0800, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00A8,0x09ED,0x122E,0x2B73,0x1B54,0x2B53,0x32D0,0x43D4,0x0004,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0049,0x451B,0x1AB0,0x2BB4,0x2B53,0x32F0,0x5D3A,0x0008,0x00C9,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x018C,0x010B,0x3332,0x3393,0x2AD0,0x873F,0x012B,0x11ED,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0109,0x01AD,0x018C,0x22B0,0x32F0,0x761E,0x016C,0x1A2E,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x014B,0x018C,0x018C,0x09CD,0x4C77,0x012B,0x1A0E,0x0000,0x0000,0x0000,0x0000, +}, "back"}; +} // namespace bobbyicons diff --git a/main/icons/back.h b/main/icons/back.h new file mode 100644 index 0000000..6443a6c --- /dev/null +++ b/main/icons/back.h @@ -0,0 +1,7 @@ +#pragma once + +#include "icon.h" + +namespace bobbyicons { +extern const espgui::Icon<24, 24> back; +} // namespace bobbyicons diff --git a/main/icons/checked.cpp b/main/icons/checked.cpp new file mode 100644 index 0000000..af6e4d7 --- /dev/null +++ b/main/icons/checked.cpp @@ -0,0 +1,30 @@ +#include "checked.h" + +namespace bobbyicons { +const espgui::Icon<24, 24> checked{{ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0395,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0000,0x0000,0x0000, + 0x0000,0x0396,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x4499,0xBEDD,0xEFBF,0xFFFF,0xBEDD,0x5D3A,0x0376,0x0356,0x0000, + 0x0000,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x7DBB,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x7DBB,0x0376,0x0395, + 0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x653A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x4499,0x0376, + 0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0xBEDD,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xBEDD,0x0376, + 0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xEFBF,0x0376, + 0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0xEFBF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x0376, + 0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0xBEDD,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xBEDD,0x0377, + 0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x4499,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x5D3A,0x0376, + 0x0395,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x85BB,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x85BB,0x0376,0x0000, + 0x0000,0x0396,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x653A,0xBEDD,0xFFFF,0xEFBF,0xBEDD,0x4499,0x0376,0x0356,0x0000, + 0x0000,0x0000,0x0000,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0376,0x0395,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +}, "checked"}; +} // namespace bobbyicons diff --git a/main/icons/checked.h b/main/icons/checked.h new file mode 100644 index 0000000..ab05115 --- /dev/null +++ b/main/icons/checked.h @@ -0,0 +1,7 @@ +#pragma once + +#include "icon.h" + +namespace bobbyicons { +extern const espgui::Icon<24, 24> checked; +} // namespace bobbyicons diff --git a/main/icons/unchecked.cpp b/main/icons/unchecked.cpp new file mode 100644 index 0000000..555d8bd --- /dev/null +++ b/main/icons/unchecked.cpp @@ -0,0 +1,30 @@ +#include "unchecked.h" + +namespace bobbyicons { +const espgui::Icon<24, 24> unchecked{{ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x7410,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x0000,0x0000,0x0000, + 0x0000,0x7410,0x73F0,0x73F0,0x73D0,0x7410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x73D0,0x73F0,0x73F0,0x7410,0x0000, + 0x0000,0x73F0,0x73F0,0x7410,0x73F0,0x73F0,0x73F0,0x73F0,0x7410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x73F0,0x73F0,0x7390, + 0x73F0,0x73F0,0x7410,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x7410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x73F0,0x73F0, + 0x73F0,0x7410,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x73D0,0x73F0, + 0x73F0,0x0000,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7410,0x73F0, + 0x73F0,0x7390,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x73F0, + 0x73F0,0x7410,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x73D0,0x73F0, + 0x73F0,0x73F0,0x7410,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x7410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x73F0,0x73F0, + 0x7410,0x73F0,0x73F0,0x7410,0x73F0,0x73F0,0x73F0,0x73F0,0x7410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x73F0,0x73F0,0x0000, + 0x0000,0x7410,0x73F0,0x73F0,0x7410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7410,0x7410,0x73F0,0x73F0,0x7410,0x0000, + 0x0000,0x0000,0x0000,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x73F0,0x7410,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +}, "unchecked"}; +} // namespace bobbyicons diff --git a/main/icons/unchecked.h b/main/icons/unchecked.h new file mode 100644 index 0000000..aa956a0 --- /dev/null +++ b/main/icons/unchecked.h @@ -0,0 +1,7 @@ +#pragma once + +#include "icon.h" + +namespace bobbyicons { +extern const espgui::Icon<24, 24> unchecked; +} // namespace bobbyicons diff --git a/main/screens/aboutmenu.cpp b/main/screens/aboutmenu.cpp index 07ffc35..acc562b 100644 --- a/main/screens/aboutmenu.cpp +++ b/main/screens/aboutmenu.cpp @@ -7,11 +7,10 @@ #include #include #include -#include // local includes +#include "icons/back.h" #include "texthelpers/esptexthelpers.h" -#include "utils.h" namespace bobby { namespace { @@ -59,7 +58,7 @@ AboutMenu::AboutMenu() constructMenuItem, DisabledColor, DummyAction>>(); constructMenuItem, DisabledColor, DummyAction>>(); constructMenuItem, DisabledColor, DummyAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string AboutMenu::text() const diff --git a/main/screens/batterydebugmenu.cpp b/main/screens/batterydebugmenu.cpp index 8e78913..312d1a2 100644 --- a/main/screens/batterydebugmenu.cpp +++ b/main/screens/batterydebugmenu.cpp @@ -1,17 +1,17 @@ #include "batterydebugmenu.h" // 3rdparty lib includes -#include "menuitem.h" -#include "icons/back.h" -#include "actions/dummyaction.h" -#include "actions/popscreenaction.h" -#include "fmt/core.h" +#include +#include +#include +#include // local includes #include "accessors/settingsaccessors.h" -#include "utils.h" -#include "icons/settings.h" #include "battery.h" +#include "icons/back.h" +#include "icons/settings.h" +#include "utils.h" namespace bobby { @@ -83,7 +83,7 @@ BatteryDebugMenu::BatteryDebugMenu() constructMenuItem>(); constructMenuItem>(); constructMenuItem>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string BatteryDebugMenu::text() const diff --git a/main/screens/batterymenu.cpp b/main/screens/batterymenu.cpp index f0f38d2..cc5c5b7 100644 --- a/main/screens/batterymenu.cpp +++ b/main/screens/batterymenu.cpp @@ -5,7 +5,6 @@ #include #include #include -#include #include #include #include @@ -15,12 +14,12 @@ #include "accessors/settingsaccessors.h" #include "battery.h" #include "guihelpers/bobbychangevaluedisplay.h" +#include "icons/back.h" #include "icons/graph.h" #include "icons/settings.h" #include "screens/batterygraphdisplay.h" #include "screens/calibratevoltagedisplay.h" #include "typesafeenumchangemenu.h" -#include "utils.h" namespace bobby { @@ -85,7 +84,7 @@ BatteryMenu::BatteryMenu() constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::graph>>>(); constructMenuItem>(); constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::settings>>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string BatteryMenu::text() const diff --git a/main/screens/blesettingsmenu.cpp b/main/screens/blesettingsmenu.cpp index 013f8bd..958954c 100644 --- a/main/screens/blesettingsmenu.cpp +++ b/main/screens/blesettingsmenu.cpp @@ -6,14 +6,14 @@ #include #include #include -#include #include // local includes #include "accessors/settingsaccessors.h" #include "guihelpers/bobbychangevaluedisplay.h" -#include "screens/settingsmenu.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" +#include "screens/settingsmenu.h" #include "texthelpers/bletexthelpers.h" namespace bobby { @@ -43,7 +43,7 @@ BleSettingsMenu::BleSettingsMenu() constructMenuItem>(); constructMenuItem>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string BleSettingsMenu::text() const diff --git a/main/screens/bluetoothsettingsmenu.h b/main/screens/bluetoothsettingsmenu.h index e2042ec..1fffdb8 100644 --- a/main/screens/bluetoothsettingsmenu.h +++ b/main/screens/bluetoothsettingsmenu.h @@ -56,7 +56,7 @@ public: constructMenuItem, BluetoothEndAction>>(); constructMenuItem, BluetoothDisconnectAction>>(); // constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } }; #endif diff --git a/main/screens/bmsmenu.cpp b/main/screens/bmsmenu.cpp index d0c16a1..927499e 100644 --- a/main/screens/bmsmenu.cpp +++ b/main/screens/bmsmenu.cpp @@ -26,7 +26,7 @@ BmsMenu::BmsMenu() constructMenuItem, BmsTurnOffChargeAction>>(); constructMenuItem, BmsTurnOnDischargeAction>>(); constructMenuItem, BmsTurnOffDischargeAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } void BmsMenu::back() diff --git a/main/screens/boardcomputerhardwaresettingsmenu.cpp b/main/screens/boardcomputerhardwaresettingsmenu.cpp index 822e27d..7fa43b4 100644 --- a/main/screens/boardcomputerhardwaresettingsmenu.cpp +++ b/main/screens/boardcomputerhardwaresettingsmenu.cpp @@ -6,7 +6,6 @@ #include #include #include -#include #include // local includes @@ -14,6 +13,7 @@ #include "actions/setupactions.h" #include "guihelpers/bobbychangevaluedisplay.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" #include "icons/lock.h" #include "screens/extrabuttoncalibratemenu.h" #include "screens/lockscreensettingsmenu.h" @@ -227,7 +227,7 @@ BoardcomputerHardwareSettingsMenu::BoardcomputerHardwareSettingsMenu() #endif constructMenuItem>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string BoardcomputerHardwareSettingsMenu::text() const diff --git a/main/screens/buzzermenu.cpp b/main/screens/buzzermenu.cpp index 1741034..bfaef96 100644 --- a/main/screens/buzzermenu.cpp +++ b/main/screens/buzzermenu.cpp @@ -1,19 +1,17 @@ #include "buzzermenu.h" // 3rdparty lib includes -#include "changevaluedisplay.h" -#include "menuitem.h" -#include "actions/pushscreenaction.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" +#include +#include +#include +#include // local includes -#include "guihelpers/bobbychangevaluedisplay.h" -#include "utils.h" -#include "globals.h" #include "accessors/settingsaccessors.h" -#include "screens/settingsmenu.h" +#include "globals.h" +#include "guihelpers/bobbychangevaluedisplay.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" namespace bobby { @@ -109,7 +107,7 @@ BuzzerMenu::BuzzerMenu() constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string BuzzerMenu::text() const diff --git a/main/screens/calibratevoltagedisplay.cpp b/main/screens/calibratevoltagedisplay.cpp index 27689d2..5f3e613 100644 --- a/main/screens/calibratevoltagedisplay.cpp +++ b/main/screens/calibratevoltagedisplay.cpp @@ -2,21 +2,18 @@ // 3rdparty lib includes #include -#include #include #include #include #include // Local includes -#include "utils.h" -#include "icons/settings.h" -#include "battery.h" -#include "batterymenu.h" -#include "newsettings.h" -#include "screens/batterymenu.h" #include "accessors/settingsaccessors.h" +#include "batterymenu.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" +#include "newsettings.h" +#include "utils.h" namespace bobby { @@ -124,7 +121,7 @@ CalibrateVoltageDisplay::CalibrateVoltageDisplay() constructMenuItem, Save30VCalibrationAction>>(); constructMenuItem, Save50VCalibrationAction>>(); constructMenuItem, BobbyCheckbox, BatteryApplyCalibrationAccessor>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); constructMenuItem>(); diff --git a/main/screens/candebugmenu.cpp b/main/screens/candebugmenu.cpp index 2a5a433..795d992 100644 --- a/main/screens/candebugmenu.cpp +++ b/main/screens/candebugmenu.cpp @@ -9,17 +9,15 @@ #include "esp_log.h" // 3rdparty lib includes -#include "fmt/core.h" - -// 3rdparty lib includes -#include "menuitem.h" -#include "actions/popscreenaction.h" -#include "actions/dummyaction.h" -#include "icons/back.h" -#include "screenmanager.h" +#include +#include +#include +#include +#include // local includes #include "guihelpers/bobbyerrorhandler.h" +#include "icons/back.h" namespace bobby { @@ -259,7 +257,7 @@ CanDebugMenu::CanDebugMenu() constructMenuItem, CanStartAction>>(); constructMenuItem, CanUninstallAction>>(); constructMenuItem, CanInstallAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string CanDebugMenu::text() const diff --git a/main/screens/cloudsettingsmenu.cpp b/main/screens/cloudsettingsmenu.cpp index 2bb3ff6..0d96acb 100644 --- a/main/screens/cloudsettingsmenu.cpp +++ b/main/screens/cloudsettingsmenu.cpp @@ -1,23 +1,23 @@ #include "cloudsettingsmenu.h" // 3rdparty lib includes -#include "actions/dummyaction.h" -#include "actions/popscreenaction.h" -#include "actions/pushscreenaction.h" -#include "changevaluedisplay.h" -#include "changevaluedisplay_string.h" -#include "fmt/core.h" -#include "icons/back.h" -#include "menuitem.h" +#include +#include +#include +#include +#include +#include +#include // local includes #include "accessors/settingsaccessors.h" -#include "guihelpers/bobbycheckbox.h" #include "cloud.h" -#include "texthelpers/cloudtexthelpers.h" #include "guihelpers/bobbychangevaluedisplay.h" +#include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" #include "screens/settingsmenu.h" +#include "texthelpers/cloudtexthelpers.h" namespace bobby { @@ -97,7 +97,7 @@ CloudSettingsMenu::CloudSettingsMenu() constructMenuItem>(); constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PushScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string CloudSettingsMenu::text() const diff --git a/main/screens/commanddebugmenu.h b/main/screens/commanddebugmenu.h index b58db6d..238fc8e 100644 --- a/main/screens/commanddebugmenu.h +++ b/main/screens/commanddebugmenu.h @@ -25,7 +25,7 @@ public: constructMenuItem>(); constructMenuItem>(); constructMenuItem>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } private: diff --git a/main/screens/controllerhardwaresettingsmenu.cpp b/main/screens/controllerhardwaresettingsmenu.cpp index f115186..02b8982 100644 --- a/main/screens/controllerhardwaresettingsmenu.cpp +++ b/main/screens/controllerhardwaresettingsmenu.cpp @@ -4,20 +4,20 @@ #include // 3rdparty lib includes -#include "actions/popscreenaction.h" -#include "actions/pushscreenaction.h" -#include "changevaluedisplay.h" -#include "icons/back.h" +#include +#include +#include // local includes -#include "guihelpers/bobbychangevaluedisplay.h" -#include "utils.h" -#include "globals.h" #include "accessors/settingsaccessors.h" +#include "globals.h" +#include "guihelpers/bobbychangevaluedisplay.h" +#include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" #include "screens/enablemenu.h" #include "screens/invertmenu.h" #include "screens/settingsmenu.h" -#include "guihelpers/bobbycheckbox.h" +#include "utils.h" namespace bobby { @@ -96,7 +96,7 @@ ControllerHardwareSettingsMenu::ControllerHardwareSettingsMenu() constructMenuItem, BobbyCheckbox, CanResetOnErrorAccessor>>(); constructMenuItem, BobbyCheckbox, CanReinstallDriverAccessor>>(); #endif - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string ControllerHardwareSettingsMenu::text() const diff --git a/main/screens/crashmenu.cpp b/main/screens/crashmenu.cpp index add7177..a01103f 100644 --- a/main/screens/crashmenu.cpp +++ b/main/screens/crashmenu.cpp @@ -1,12 +1,12 @@ #include "crashmenu.h" // 3rdparty lib includes -#include "actions/popscreenaction.h" -#include "icons/back.h" +#include // local includes #include "actions/assertaction.h" #include "actions/dividebyzeroaction.h" +#include "icons/back.h" namespace bobby { @@ -22,7 +22,7 @@ CrashMenu::CrashMenu() using namespace espgui; constructMenuItem, AssertAction>>(); constructMenuItem, DivideByZeroAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string CrashMenu::text() const diff --git a/main/screens/debugmenu.cpp b/main/screens/debugmenu.cpp index 53f7fa1..dc735f3 100644 --- a/main/screens/debugmenu.cpp +++ b/main/screens/debugmenu.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include @@ -18,6 +17,7 @@ #include "screens/taskmanagermenu.h" #include "screens/qrcodedebug.h" #include "screens/xydebugdisplay.h" +#include "icons/back.h" #include "icons/battery.h" #include "icons/info.h" #include "icons/lock.h" @@ -117,7 +117,7 @@ DebugMenu::DebugMenu() constructMenuItem>(); constructMenuItem, ResetNVSAction, StaticMenuItemIcon<&bobbyicons::info>>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string DebugMenu::text() const diff --git a/main/screens/defaultmodesettingsmenu.cpp b/main/screens/defaultmodesettingsmenu.cpp index a164876..94c60a6 100644 --- a/main/screens/defaultmodesettingsmenu.cpp +++ b/main/screens/defaultmodesettingsmenu.cpp @@ -5,15 +5,15 @@ #include #include #include -#include #include #include // local includes #include "accessors/settingsaccessors.h" #include "changevaluedisplay_unifiedmodelmode.h" -#include "guihelpers/bobbycheckbox.h" #include "guihelpers/bobbychangevaluedisplay.h" +#include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" #include "screens/handbremssettingsmenu.h" #include "utils.h" @@ -140,7 +140,7 @@ DefaultModeSettingsMenu::DefaultModeSettingsMenu() constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string DefaultModeSettingsMenu::text() const diff --git a/main/screens/demosmenu.cpp b/main/screens/demosmenu.cpp index 967bbe0..dade16a 100644 --- a/main/screens/demosmenu.cpp +++ b/main/screens/demosmenu.cpp @@ -1,16 +1,16 @@ #include "demosmenu.h" // 3rdparty lib includes -#include -#include #include -#include -#include +#include +#include +#include #include #include -#include +#include // local includes +#include "icons/back.h" #include "utils.h" namespace bobby { @@ -31,7 +31,7 @@ DemosMenu::DemosMenu() constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string DemosMenu::text() const diff --git a/main/screens/dynamicdebugmenu.cpp b/main/screens/dynamicdebugmenu.cpp index f97cc75..9da122e 100644 --- a/main/screens/dynamicdebugmenu.cpp +++ b/main/screens/dynamicdebugmenu.cpp @@ -14,17 +14,17 @@ #include #include #include -#include #include #include #include // local includes #include "guihelpers/bobbychangevaluedisplay.h" -#include "utils.h" -#include "icons/lock.h" #include "guihelpers/bobbycheckbox.h" #include "guihelpers/bobbyerrorhandler.h" +#include "icons/back.h" +#include "icons/lock.h" +#include "utils.h" namespace bobby { @@ -176,7 +176,7 @@ DynamicDebugMenu::DynamicDebugMenu() constructMenuItem, DummyAction>>(); constructMenuItem, DummyAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } void DynamicDebugMenu::back() diff --git a/main/screens/enablemenu.cpp b/main/screens/enablemenu.cpp index fafca72..0f62bd2 100644 --- a/main/screens/enablemenu.cpp +++ b/main/screens/enablemenu.cpp @@ -24,7 +24,7 @@ EnableMenu::EnableMenu() constructMenuItem, BobbyCheckbox, FrontRightEnabledAccessor>>(); constructMenuItem, BobbyCheckbox, BackLeftEnabledAccessor>>(); constructMenuItem, BobbyCheckbox, BackRightEnabledAccessor>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string EnableMenu::text() const diff --git a/main/screens/espnowmenu.cpp b/main/screens/espnowmenu.cpp index 5608075..6638c67 100644 --- a/main/screens/espnowmenu.cpp +++ b/main/screens/espnowmenu.cpp @@ -6,13 +6,12 @@ #include #include #include -#include -#include #include // local includes #include "espnowfunctions.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" #include "icons/settings.h" #include "icons/time.h" #include "screens/espnowsettingsmenu.h" @@ -63,7 +62,7 @@ EspNowMenu::EspNowMenu() constructMenuItem, BobbyCheckbox, ReceiveTimeStampAccessor>>(); constructMenuItem, BobbyCheckbox, ReceiveTsFromOtherBobbycarsAccessor>>(); constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::settings>>>(); - constructMenuItem, PushScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string EspNowMenu::text() const diff --git a/main/screens/espnowsettingsmenu.cpp b/main/screens/espnowsettingsmenu.cpp index 5a3b121..d0fa886 100644 --- a/main/screens/espnowsettingsmenu.cpp +++ b/main/screens/espnowsettingsmenu.cpp @@ -1,13 +1,13 @@ #include "espnowsettingsmenu.h" // 3rdparty lib includes -#include "actions/popscreenaction.h" -#include "icons/back.h" -#include "textinterface.h" +#include +#include // local includes #include "accessors/settingsaccessors.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" namespace bobby { @@ -26,7 +26,7 @@ EspNowSettingsMenu::EspNowSettingsMenu() constructMenuItem, BobbyCheckbox, ESPNowSyncTimeEnabledAccessor>>(); constructMenuItem, BobbyCheckbox, ESPNowSyncTimeWithOthersEnabledAccessor>>(); constructMenuItem, BobbyCheckbox, ESPNowSyncBlinkEnabledAccessor>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string EspNowSettingsMenu::text() const diff --git a/main/screens/extrabuttoncalibratemenu.cpp b/main/screens/extrabuttoncalibratemenu.cpp index 0134546..0f6e0b7 100644 --- a/main/screens/extrabuttoncalibratemenu.cpp +++ b/main/screens/extrabuttoncalibratemenu.cpp @@ -5,7 +5,6 @@ // 3rd party includes #include -#include #include #include #include @@ -13,9 +12,10 @@ // local includes #include "accessors/settingsaccessors.h" -#include "screens/boardcomputerhardwaresettingsmenu.h" #include "globals.h" #include "guihelpers/bobbyerrorhandler.h" +#include "icons/back.h" +#include "screens/boardcomputerhardwaresettingsmenu.h" namespace bobby { @@ -97,7 +97,7 @@ ExtraButtonCalibrateMenu::ExtraButtonCalibrateMenu() constructMenuItem>(); constructMenuItem>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } void ExtraButtonCalibrateMenu::start() diff --git a/main/screens/featureflagsmenu.cpp b/main/screens/featureflagsmenu.cpp index fc9846b..bc3a0a7 100644 --- a/main/screens/featureflagsmenu.cpp +++ b/main/screens/featureflagsmenu.cpp @@ -2,15 +2,13 @@ // 3rdparty lib includes #include -#include -#include -#include -#include // local includes -#include "guihelpers/bobbypopupdisplay.h" #include "guihelpers/bobbycheckbox.h" #include "guihelpers/bobbyerrorhandler.h" +#include "guihelpers/bobbypopupdisplay.h" +#include "icons/checked.h" +#include "icons/unchecked.h" #include "newsettings.h" #include "taskmanager.h" @@ -84,7 +82,7 @@ public: const espgui::MenuItemIcon *icon() const override { - return m_flag.isEnabled.value() ? &espgui::icons::checked : &espgui::icons::unchecked; + return m_flag.isEnabled.value() ? &bobbyicons::checked : &bobbyicons::unchecked; } private: ConfiguredFeatureFlag &m_flag; diff --git a/main/screens/feedbackdebugmenu.h b/main/screens/feedbackdebugmenu.h index 96c1a44..8897b90 100644 --- a/main/screens/feedbackdebugmenu.h +++ b/main/screens/feedbackdebugmenu.h @@ -3,12 +3,12 @@ // 3rdparty lib includes #include #include -#include #include // local includes #include "debugcolorhelpers.h" #include "guihelpers/bobbymenudisplay.h" +#include "icons/back.h" #include "screens/debugmenu.h" #include "texthelpers/debugtexthelpers.h" #include "utils.h" @@ -30,7 +30,7 @@ public: //constructMenuItem, DummyAction>>(); constructMenuItem, DummyAction>>(); constructMenuItem, ColorInterface, DummyAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } private: diff --git a/main/screens/gametrakmodesettingsmenu.h b/main/screens/gametrakmodesettingsmenu.h index 95f771f..b28275f 100644 --- a/main/screens/gametrakmodesettingsmenu.h +++ b/main/screens/gametrakmodesettingsmenu.h @@ -16,7 +16,7 @@ class ContainerModeSettingsMenu : public: ContainerModeSettingsMenu() { - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string text() const override diff --git a/main/screens/garagemenu.cpp b/main/screens/garagemenu.cpp index 0273432..48a0b3c 100644 --- a/main/screens/garagemenu.cpp +++ b/main/screens/garagemenu.cpp @@ -1,16 +1,17 @@ #include "garagemenu.h" +// esp-idf includes +#include + // 3rd party libs -#include "icons/back.h" -#include "menuitem.h" -#include "actioninterface.h" -#include "esp_log.h" -#include "menuitem.h" +#include +#include // local includes #include "actions/popscreenaction.h" #include "espnowfunctions.h" #include "globals.h" +#include "icons/back.h" #include "newsettings.h" namespace bobby { @@ -43,7 +44,7 @@ GarageMenu::GarageMenu() menuitem.setTitle(wirelessDoor.doorId.value()); } - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string GarageMenu::text() const diff --git a/main/screens/gitmenu.cpp b/main/screens/gitmenu.cpp index 66ab999..7e0c508 100644 --- a/main/screens/gitmenu.cpp +++ b/main/screens/gitmenu.cpp @@ -4,10 +4,10 @@ #include #include #include -#include // local includes #include "guihelpers/bobbyerrorhandler.h" +#include "icons/back.h" #include "icons/info.h" #include "icons/modes.h" #include "screens/qrdisplay.h" @@ -62,7 +62,7 @@ GitMenu::GitMenu() constructMenuItem, DummyAction>>(); constructMenuItem, OpenPopupAction, StaticMenuItemIcon<&bobbyicons::info>>>(); constructMenuItem, GitQrAction, StaticMenuItemIcon<&bobbyicons::modes>>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string GitMenu::text() const diff --git a/main/screens/graphsmenu.cpp b/main/screens/graphsmenu.cpp index 537e5d0..4eb3c08 100644 --- a/main/screens/graphsmenu.cpp +++ b/main/screens/graphsmenu.cpp @@ -4,12 +4,12 @@ #include #include #include -#include #include // local includes #include "guihelpers/bobbygraphdisplay.h" #include "guihelpers/bobbysplitgraphdisplay.h" +#include "icons/back.h" #include "statistics.h" namespace bobby { @@ -211,7 +211,7 @@ GraphsMenu::GraphsMenu() #endif constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string GraphsMenu::text() const diff --git a/main/screens/greenpassmenu.cpp b/main/screens/greenpassmenu.cpp index ad995b5..8937279 100644 --- a/main/screens/greenpassmenu.cpp +++ b/main/screens/greenpassmenu.cpp @@ -7,14 +7,14 @@ #include #include #include -#include // local includes #include "actions/qraction.h" +#include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" +#include "qrimport.h" #include "screens/qrdisplay.h" #include "screens/qrimportdisplay.h" -#include "guihelpers/bobbycheckbox.h" -#include "qrimport.h" namespace bobby { @@ -89,7 +89,7 @@ GreenPassMenu::GreenPassMenu() } constructMenuItem, BobbyCheckbox, DeleteModeAccessor>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string GreenPassMenu::text() const diff --git a/main/screens/handbremssettingsmenu.cpp b/main/screens/handbremssettingsmenu.cpp index 78c49e7..0acacbb 100644 --- a/main/screens/handbremssettingsmenu.cpp +++ b/main/screens/handbremssettingsmenu.cpp @@ -5,15 +5,15 @@ #include #include #include -#include #include // local includes #include "accessors/settingsaccessors.h" #include "changevaluedisplay_handbremsmode.h" #include "guihelpers/bobbychangevaluedisplay.h" -#include "screens/typesafeenumchangemenu.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" +#include "screens/typesafeenumchangemenu.h" namespace bobby { @@ -43,7 +43,7 @@ HandbremsSettingsMenu::HandbremsSettingsMenu() constructMenuItem, BobbyCheckbox, HandbremsVisualizeAccessor>>(); constructMenuItem>(&configs.handbremse.mode); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string HandbremsSettingsMenu::text() const diff --git a/main/screens/invertmenu.cpp b/main/screens/invertmenu.cpp index 03225e3..d570394 100644 --- a/main/screens/invertmenu.cpp +++ b/main/screens/invertmenu.cpp @@ -1,12 +1,10 @@ #include "invertmenu.h" -// 3rdparty lib includes -#include - // local includes #include "accessors/settingsaccessors.h" #include "actions/popscreenaction.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" namespace bobby { @@ -26,7 +24,7 @@ InvertMenu::InvertMenu() constructMenuItem, BobbyCheckbox, FrontRightInvertedAccessor>>(); constructMenuItem, BobbyCheckbox, BackLeftInvertedAccessor>>(); constructMenuItem, BobbyCheckbox, BackRightInvertedAccessor>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string InvertMenu::text() const diff --git a/main/screens/larsmmodesettingsmenu.cpp b/main/screens/larsmmodesettingsmenu.cpp index e7427d0..51fda01 100644 --- a/main/screens/larsmmodesettingsmenu.cpp +++ b/main/screens/larsmmodesettingsmenu.cpp @@ -5,13 +5,13 @@ #include #include #include -#include // local includes #include "accessors/settingsaccessors.h" #include "changevaluedisplay_larsmmode_mode.h" #include "changevaluedisplay_unifiedmodelmode.h" #include "guihelpers/bobbychangevaluedisplay.h" +#include "icons/back.h" #include "utils.h" namespace bobby { @@ -53,7 +53,7 @@ LarsmModeSettingsMenu::LarsmModeSettingsMenu() constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string LarsmModeSettingsMenu::text() const diff --git a/main/screens/ledstripcolorsdisplay.cpp b/main/screens/ledstripcolorsdisplay.cpp index 57b5b26..7b6fb9c 100644 --- a/main/screens/ledstripcolorsdisplay.cpp +++ b/main/screens/ledstripcolorsdisplay.cpp @@ -4,7 +4,6 @@ #include // 3rdparty lib includes -#include #include #include #include @@ -12,6 +11,7 @@ // local includes #include "globals.h" +#include "icons/back.h" #include "icons/bobbycar.h" #include "utils.h" diff --git a/main/screens/ledstripmenu.cpp b/main/screens/ledstripmenu.cpp index 63b09cb..62abab9 100644 --- a/main/screens/ledstripmenu.cpp +++ b/main/screens/ledstripmenu.cpp @@ -5,21 +5,21 @@ #include #include #include -#include #include #include // local includes #include "accessors/settingsaccessors.h" +#include "globals.h" #include "guihelpers/bobbychangevaluedisplay.h" +#include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" +#include "ledstrip.h" +#include "ledstripselectblinkmenu.h" #include "screens/ledstripcolorsdisplay.h" #include "screens/ledstripselectotamode.h" #include "screens/mainmenu.h" #include "screens/typesafeenumchangemenu.h" -#include "globals.h" -#include "guihelpers/bobbycheckbox.h" -#include "ledstrip.h" -#include "ledstripselectblinkmenu.h" namespace bobby { @@ -182,7 +182,7 @@ LedstripMenu::LedstripMenu() if (!simplified) { constructMenuItem>>(); } constructMenuItem, BobbyCheckbox, LedstripBrakeLightUseAccelAccessor>>(); constructMenuItem, BobbyCheckbox, LedstripBrakeLightUsePowerAccessor>>(); - constructMenuItem, espgui::PushScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, espgui::PushScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string LedstripMenu::text() const diff --git a/main/screens/ledstripselectblinkmenu.cpp b/main/screens/ledstripselectblinkmenu.cpp index 6ee6de3..fa2647a 100644 --- a/main/screens/ledstripselectblinkmenu.cpp +++ b/main/screens/ledstripselectblinkmenu.cpp @@ -3,12 +3,12 @@ // 3rdparty lib includes #include #include -#include // local includes #include "accessors/settingsaccessors.h" #include "actions/ledstripblinkactions.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" #include "ledstrip.h" #include "ledstripdefines.h" @@ -43,7 +43,7 @@ LedstripSelectBlinkMenu::LedstripSelectBlinkMenu() constructMenuItem, LedstripAnimationBlinkBothAction>>(); constructMenuItem, BobbyCheckbox, LedstripEnableBlinkAnimationAccessor>>(); constructMenuItem, BobbyCheckbox, LedstripEnableVisualizeBlinkAnimationAccessor>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string LedstripSelectBlinkMenu::text() const diff --git a/main/screens/ledstripselectotamode.cpp b/main/screens/ledstripselectotamode.cpp index 146ad1d..8c62c0d 100644 --- a/main/screens/ledstripselectotamode.cpp +++ b/main/screens/ledstripselectotamode.cpp @@ -3,9 +3,9 @@ // 3rdparty lib includes #include #include -#include // local includes +#include "icons/back.h" #include "ledstrip.h" #include "newsettings.h" #include "utils.h" @@ -36,7 +36,7 @@ LedstripOtaAnimationChangeMenu::LedstripOtaAnimationChangeMenu() constructMenuItem, LedstripChangeOtaAnimModeAction>>(); constructMenuItem, LedstripChangeOtaAnimModeAction>>(); constructMenuItem, LedstripChangeOtaAnimModeAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string LedstripOtaAnimationChangeMenu::text() const diff --git a/main/screens/limitssettingsmenu.cpp b/main/screens/limitssettingsmenu.cpp index 485596f..224be10 100644 --- a/main/screens/limitssettingsmenu.cpp +++ b/main/screens/limitssettingsmenu.cpp @@ -4,13 +4,13 @@ #include #include #include -#include #include #include // local includes #include "accessors/settingsaccessors.h" #include "guihelpers/bobbychangevaluedisplay.h" +#include "icons/back.h" #include "utils.h" namespace bobby { @@ -79,7 +79,7 @@ LimitsSettingsMenu::LimitsSettingsMenu() constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string LimitsSettingsMenu::text() const diff --git a/main/screens/lockscreensettingsmenu.cpp b/main/screens/lockscreensettingsmenu.cpp index bd45298..bd8ed04 100644 --- a/main/screens/lockscreensettingsmenu.cpp +++ b/main/screens/lockscreensettingsmenu.cpp @@ -4,15 +4,15 @@ #include #include #include -#include #include #include // local includes #include "accessors/settingsaccessors.h" -#include "guihelpers/bobbychangevaluedisplay.h" #include "globals.h" +#include "guihelpers/bobbychangevaluedisplay.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" namespace bobby { @@ -68,7 +68,7 @@ LockscreenSettingsMenu::LockscreenSettingsMenu() constructMenuItem>, PushScreenAction>>(); constructMenuItem>, PushScreenAction>>(); constructMenuItem>, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string LockscreenSettingsMenu::text() const diff --git a/main/screens/mainmenu.cpp b/main/screens/mainmenu.cpp index 8e56381..0ba66df 100644 --- a/main/screens/mainmenu.cpp +++ b/main/screens/mainmenu.cpp @@ -3,7 +3,6 @@ // 3rdparty lib includes #include #include -#include // local includes #include "screens/selectmodemenu.h" @@ -46,6 +45,8 @@ #include "icons/greenpass.h" #include "icons/time.h" #include "screens/statusdisplay.h" +#include "icons/back.h" + namespace bobby { @@ -86,7 +87,7 @@ MainMenu::MainMenu() using namespace espgui; // constructMenuItem>>(); - constructMenuItem, PushScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); if (configs.feature.ledstrip.isEnabled.value()) { constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::neopixel>>>(); diff --git a/main/screens/manageprofilesmenu.cpp b/main/screens/manageprofilesmenu.cpp index f247372..b26b7d0 100644 --- a/main/screens/manageprofilesmenu.cpp +++ b/main/screens/manageprofilesmenu.cpp @@ -3,11 +3,11 @@ // 3rdparty lib includes #include #include -#include // local includes #include "globals.h" #include "guihelpers/bobbyerrorhandler.h" +#include "icons/back.h" #include "mainmenu.h" #include "presets.h" #include "settingsutils.h" @@ -231,7 +231,7 @@ ManageProfilesMenu::ManageProfilesMenu() constructMenuItem(*this, i); } constructMenuItem(*this); - constructMenuItem, espgui::PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, espgui::PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } void ManageProfilesMenu::start() diff --git a/main/screens/mickmodesettingsmenu.cpp b/main/screens/mickmodesettingsmenu.cpp index 71fa9dc..acc50ab 100644 --- a/main/screens/mickmodesettingsmenu.cpp +++ b/main/screens/mickmodesettingsmenu.cpp @@ -4,13 +4,13 @@ #include #include #include -#include #include // local includes #include "accessors/settingsaccessors.h" #include "changevaluedisplay_unifiedmodelmode.h" #include "guihelpers/bobbychangevaluedisplay.h" +#include "icons/back.h" namespace bobby { @@ -42,7 +42,7 @@ MickModeSettingsMenu::MickModeSettingsMenu() constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string MickModeSettingsMenu::text() const diff --git a/main/screens/modessettingsmenu.cpp b/main/screens/modessettingsmenu.cpp index 38d219f..f5f7b2e 100644 --- a/main/screens/modessettingsmenu.cpp +++ b/main/screens/modessettingsmenu.cpp @@ -2,10 +2,10 @@ // 3rdparty lib includes #include -#include #include // local includes +#include "icons/back.h" #include "screens/defaultmodesettingsmenu.h" #include "screens/gametrakmodesettingsmenu.h" #include "screens/larsmmodesettingsmenu.h" @@ -34,7 +34,7 @@ ModesSettingsMenu::ModesSettingsMenu() #ifdef FEATURE_GAMETRAK constructMenuItem, SwitchScreenAction>>(); #endif - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string ModesSettingsMenu::text() const diff --git a/main/screens/mosfetsmenu.cpp b/main/screens/mosfetsmenu.cpp index 5b7bdf9..acfdba3 100644 --- a/main/screens/mosfetsmenu.cpp +++ b/main/screens/mosfetsmenu.cpp @@ -7,10 +7,10 @@ // 3rdparty lib includes #include #include -#include // local includes #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" #include "types.h" namespace bobby { @@ -41,7 +41,7 @@ MosfetsMenu::MosfetsMenu() constructMenuItem, BobbyCheckbox, Mosfet0Accessor>>(); constructMenuItem, BobbyCheckbox, Mosfet1Accessor>>(); constructMenuItem, BobbyCheckbox, Mosfet2Accessor>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string MosfetsMenu::text() const diff --git a/main/screens/motorfeedbackdebugmenu.h b/main/screens/motorfeedbackdebugmenu.h index bbda55f..526e8a5 100644 --- a/main/screens/motorfeedbackdebugmenu.h +++ b/main/screens/motorfeedbackdebugmenu.h @@ -1,14 +1,14 @@ #pragma once // 3rdparty lib includes -#include "actions/dummyaction.h" -#include "actions/popscreenaction.h" -#include "icons/back.h" -#include "menuitem.h" +#include +#include +#include // local includes #include "debugcolorhelpers.h" #include "guihelpers/bobbymenudisplay.h" +#include "icons/back.h" #include "texthelpers/debugtexthelpers.h" #include "utils.h" @@ -41,7 +41,7 @@ public: constructMenuItem, DummyAction>>(); constructMenuItem, DummyAction>>(); constructMenuItem, DummyAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } private: diff --git a/main/screens/motorstatedebugmenu.h b/main/screens/motorstatedebugmenu.h index b6c46a0..5129d8a 100644 --- a/main/screens/motorstatedebugmenu.h +++ b/main/screens/motorstatedebugmenu.h @@ -3,11 +3,11 @@ // 3rdparty lib includes #include #include -#include #include // local includes #include "guihelpers/bobbymenudisplay.h" +#include "icons/back.h" #include "texthelpers/debugtexthelpers.h" #include "utils.h" @@ -34,7 +34,7 @@ public: constructMenuItem>(); constructMenuItem>(); constructMenuItem>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } private: diff --git a/main/screens/motortestmodesettingsmenu.cpp b/main/screens/motortestmodesettingsmenu.cpp index 6ce702c..c07eb0c 100644 --- a/main/screens/motortestmodesettingsmenu.cpp +++ b/main/screens/motortestmodesettingsmenu.cpp @@ -4,12 +4,12 @@ #include #include #include -#include #include // local includes #include "accessors/settingsaccessors.h" #include "guihelpers/bobbychangevaluedisplay.h" +#include "icons/back.h" #include "utils.h" namespace bobby { @@ -43,7 +43,7 @@ MotortestModeSettingsMenu::MotortestModeSettingsMenu() { constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string MotortestModeSettingsMenu::text() const diff --git a/main/screens/networksettingsmenu.cpp b/main/screens/networksettingsmenu.cpp index 58e5361..85a18f9 100644 --- a/main/screens/networksettingsmenu.cpp +++ b/main/screens/networksettingsmenu.cpp @@ -5,13 +5,13 @@ #include #include #include -#include #include #include // local includes -#include "screens/qrdisplay.h" #include "globals.h" +#include "icons/back.h" +#include "screens/qrdisplay.h" #include "texthelpers/networktexthelpers.h" #include "utils.h" #include "wifiapsettingsmenu.h" @@ -39,7 +39,7 @@ NetworkSettingsMenu::NetworkSettingsMenu() constructMenuItem>(uint8_t{1}); constructMenuItem>(uint8_t{2}); constructMenuItem>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string NetworkSettingsMenu::text() const diff --git a/main/screens/otamenu.cpp b/main/screens/otamenu.cpp index 9b4f173..984477b 100644 --- a/main/screens/otamenu.cpp +++ b/main/screens/otamenu.cpp @@ -5,15 +5,15 @@ #include #include #include -#include // local includes +#include "icons/back.h" +#include "icons/presets.h" +#include "icons/update.h" #include "screens/selectbuildserverbranch.h" #include "screens/selectbuildservermenu.h" #include "screens/selectotabuildmenu.h" #include "screens/updatedisplay.h" -#include "icons/presets.h" -#include "icons/update.h" namespace bobby { @@ -33,7 +33,7 @@ OtaMenu::OtaMenu() constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::update>>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string OtaMenu::text() const diff --git a/main/screens/profilesmenu.cpp b/main/screens/profilesmenu.cpp index ff9902c..7874286 100644 --- a/main/screens/profilesmenu.cpp +++ b/main/screens/profilesmenu.cpp @@ -2,11 +2,11 @@ // 3rdparty lib includes #include -#include #include // local includes #include "actions/switchprofileaction.h" +#include "icons/back.h" namespace bobby { @@ -25,7 +25,7 @@ ProfilesMenu::ProfilesMenu() constructMenuItem, SwitchProfileAction<1>>>(); constructMenuItem, SwitchProfileAction<2>>>(); constructMenuItem, SwitchProfileAction<3>>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string ProfilesMenu::text() const diff --git a/main/screens/recoverymenu.cpp b/main/screens/recoverymenu.cpp index 6601c29..d7428db 100644 --- a/main/screens/recoverymenu.cpp +++ b/main/screens/recoverymenu.cpp @@ -8,8 +8,10 @@ #include "actions/resetnvsaction.h" #include "guihelpers/bobbycheckbox.h" #include "guihelpers/bobbyerrorhandler.h" +#include "icons/checked.h" #include "icons/info.h" #include "icons/reboot.h" +#include "icons/unchecked.h" #include "newsettings.h" #include "screens/rebootscreen.h" @@ -40,7 +42,7 @@ public: const espgui::MenuItemIcon *icon() const override { - return m_flag.isEnabled.value() ? &espgui::icons::checked : &espgui::icons::unchecked; + return m_flag.isEnabled.value() ? &bobbyicons::checked : &bobbyicons::unchecked; } private: ConfiguredFeatureFlag &m_flag; diff --git a/main/screens/remotecontrolmodesettingsmenu.cpp b/main/screens/remotecontrolmodesettingsmenu.cpp index 5d498ef..89dd462 100644 --- a/main/screens/remotecontrolmodesettingsmenu.cpp +++ b/main/screens/remotecontrolmodesettingsmenu.cpp @@ -4,13 +4,13 @@ #include #include #include -#include #include // local includes #include "accessors/settingsaccessors.h" #include "changevaluedisplay_unifiedmodelmode.h" #include "guihelpers/bobbychangevaluedisplay.h" +#include "icons/back.h" namespace bobby { @@ -33,7 +33,7 @@ RemoteControlModeSettingsMenu::RemoteControlModeSettingsMenu() using namespace espgui; constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string RemoteControlModeSettingsMenu::text() const diff --git a/main/screens/selectbatterytypemenu.cpp b/main/screens/selectbatterytypemenu.cpp index 0d9e21b..eaef9db 100644 --- a/main/screens/selectbatterytypemenu.cpp +++ b/main/screens/selectbatterytypemenu.cpp @@ -4,15 +4,15 @@ #include #include #include -#include #include // local includes #include "battery.h" #include "batterymenu.h" +#include "icons/back.h" +#include "newsettings.h" #include "screens/batterymenu.h" #include "screens/mainmenu.h" -#include "newsettings.h" #include "utils.h" namespace bobby { @@ -59,7 +59,7 @@ BatteryTypeMenu::BatteryTypeMenu() constructMenuItem, BatterySelectTypeAction>>(); constructMenuItem, BatterySelectTypeAction>>(); constructMenuItem, BatterySelectTypeAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string BatteryTypeMenu::text() const diff --git a/main/screens/selectbuildserverbranch.cpp b/main/screens/selectbuildserverbranch.cpp index e322f35..8d50630 100644 --- a/main/screens/selectbuildserverbranch.cpp +++ b/main/screens/selectbuildserverbranch.cpp @@ -4,13 +4,13 @@ #include #include #include -#include #include #include // local includes #include "buildserver.h" #include "guihelpers/bobbyerrorhandler.h" +#include "icons/back.h" #include "icons/reboot.h" #include "newsettings.h" @@ -88,7 +88,7 @@ SelectBuildserverBranchMenu::SelectBuildserverBranchMenu() #define ERR_MESSAGE(text) \ constructMenuItem, DefaultFont, StaticColor, DummyAction>>(); \ - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); \ + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); \ return; if (count_available_buildserver() < 1) @@ -147,7 +147,7 @@ void SelectBuildserverBranchMenu::update() constructMenuItem>(); constructMenuItem, ClearBranchAction, StaticMenuItemIcon<&bobbyicons::reboot>>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } Base::update(); } diff --git a/main/screens/selectbuildservermenu.cpp b/main/screens/selectbuildservermenu.cpp index 338026b..56a787e 100644 --- a/main/screens/selectbuildservermenu.cpp +++ b/main/screens/selectbuildservermenu.cpp @@ -7,12 +7,12 @@ #include #include #include -#include #include #include // local includes #include "buildserver.h" +#include "icons/back.h" #include "newsettings.h" #include "utils.h" @@ -72,7 +72,7 @@ SelectBuildServerMenu::SelectBuildServerMenu() constructMenuItem, DefaultFont, StaticColor, DummyAction>>(); } - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string SelectBuildServerMenu::text() const diff --git a/main/screens/selectmodemenu.cpp b/main/screens/selectmodemenu.cpp index e03148f..68329f3 100644 --- a/main/screens/selectmodemenu.cpp +++ b/main/screens/selectmodemenu.cpp @@ -3,7 +3,6 @@ // 3rdparty lib includes #include #include -#include #include #include @@ -22,6 +21,7 @@ #endif #include "accessors/globalaccessors.h" #include "mainmenu.h" +#include "icons/back.h" namespace bobby { @@ -75,7 +75,7 @@ SelectModeMenu::SelectModeMenu() #ifdef FEATURE_JOYSTICK constructMenuItem, MultiAction>>(); #endif - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string SelectModeMenu::text() const diff --git a/main/screens/selectotabuildmenu.cpp b/main/screens/selectotabuildmenu.cpp index d4945f1..a464a2a 100644 --- a/main/screens/selectotabuildmenu.cpp +++ b/main/screens/selectotabuildmenu.cpp @@ -6,16 +6,16 @@ #include #include #include -#include #include #include // local includes #include "buildserver.h" -#include "screens/otamenu.h" #include "globals.h" #include "guihelpers/bobbyerrorhandler.h" +#include "icons/back.h" #include "newsettings.h" +#include "screens/otamenu.h" #include "utils.h" namespace bobby { @@ -64,12 +64,12 @@ SelectBuildMenu::SelectBuildMenu() if (buildserver::count_available_buildserver() < 1) { MESSAGE(TEXT_OTA_NOBUILDSERVERAVAILABLE); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } else if (configs.otaServerUrl.value().empty()) { MESSAGE(TEXT_OTA_NOBUILDSERVERSELECTED); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } else { @@ -77,7 +77,7 @@ SelectBuildMenu::SelectBuildMenu() if (staStatus != wifi_stack::WiFiStaStatus::CONNECTED) { MESSAGE(TEXT_OTA_NOCONNECTION); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } else { @@ -90,7 +90,7 @@ SelectBuildMenu::SelectBuildMenu() auto hash = filename.substr(0, filename.length() - 4); menuitem.setHash(hash); menuitem.setUrl(serverUrl); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } else { @@ -141,7 +141,7 @@ void SelectBuildMenu::buildMenuFromJson() menuitem.setHash(hash); menuitem.setUrl(fmt::format(fmt::runtime(url_for_hashes), hash)); } - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } void SelectBuildMenu::back() diff --git a/main/screens/settingsmenu.cpp b/main/screens/settingsmenu.cpp index 5c6d30e..795981a 100644 --- a/main/screens/settingsmenu.cpp +++ b/main/screens/settingsmenu.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include @@ -13,6 +12,7 @@ #include "globals.h" #include "guihelpers/bobbychangevaluedisplay.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" #include "icons/bluetooth.h" #include "icons/buzzer.h" #include "icons/demos.h" @@ -139,7 +139,7 @@ SettingsMenu::SettingsMenu() constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::demos>>>(); constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::info>>>(); constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::git>>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string SettingsMenu::text() const diff --git a/main/screens/setupquickactionsmenu.cpp b/main/screens/setupquickactionsmenu.cpp index b02cf22..f33a6f2 100644 --- a/main/screens/setupquickactionsmenu.cpp +++ b/main/screens/setupquickactionsmenu.cpp @@ -3,7 +3,6 @@ // 3rdparty lib includes #include #include -#include #include // local includes @@ -11,6 +10,7 @@ #include "bobbyquickactions.h" #include "changevaluedisplay_bobbyquickactions.h" #include "guihelpers/bobbychangevaluedisplay.h" +#include "icons/back.h" namespace bobby { @@ -48,7 +48,7 @@ SetupQuickActionsMenu::SetupQuickActionsMenu() constructMenuItem, PushScreenAction>>>(); constructMenuItem, PushScreenAction>>>(); constructMenuItem, PushScreenAction>>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string SetupQuickActionsMenu::text() const diff --git a/main/screens/statisticsmenu.cpp b/main/screens/statisticsmenu.cpp index a92b2a4..c1b399a 100644 --- a/main/screens/statisticsmenu.cpp +++ b/main/screens/statisticsmenu.cpp @@ -5,11 +5,11 @@ #include #include #include -#include #include // local includes #include "drivingstatistics.h" +#include "icons/back.h" #include "icons/reboot.h" #include "icons/time.h" #include "icons/update.h" @@ -188,7 +188,7 @@ StatisticsMenu::StatisticsMenu() constructMenuItem>(); constructMenuItem, SaveKilometersAction, StaticMenuItemIcon<&bobbyicons::update>>>(); constructMenuItem, ClearCurrentStatsAction, StaticMenuItemIcon<&bobbyicons::reboot>>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string StatisticsMenu::text() const diff --git a/main/screens/taskmanagermenu.cpp b/main/screens/taskmanagermenu.cpp index acb7d81..1387a73 100644 --- a/main/screens/taskmanagermenu.cpp +++ b/main/screens/taskmanagermenu.cpp @@ -4,10 +4,10 @@ #include #include #include -#include #include // local includes +#include "icons/back.h" #include "taskmanager.h" namespace bobby { @@ -39,7 +39,7 @@ TaskmanagerMenu::TaskmanagerMenu() { for (const auto &task : schedulerTasks) constructMenuItem>(task); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string TaskmanagerMenu::text() const diff --git a/main/screens/tempomatmodesettingsmenu.cpp b/main/screens/tempomatmodesettingsmenu.cpp index 73f7bc0..46faa1f 100644 --- a/main/screens/tempomatmodesettingsmenu.cpp +++ b/main/screens/tempomatmodesettingsmenu.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include @@ -14,6 +13,7 @@ #include "actions/tempomatmodeapplycurrentpeedaction.h" #include "changevaluedisplay_unifiedmodelmode.h" #include "guihelpers/bobbychangevaluedisplay.h" +#include "icons/back.h" #include "utils.h" namespace bobby { @@ -49,7 +49,7 @@ TempomatModeSettingsMenu::TempomatModeSettingsMenu() constructMenuItem, TempomatModeApplyCurrentSpeedAction>>(); constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string TempomatModeSettingsMenu::text() const diff --git a/main/screens/timersmenu.cpp b/main/screens/timersmenu.cpp index c0bec85..3a4b11e 100644 --- a/main/screens/timersmenu.cpp +++ b/main/screens/timersmenu.cpp @@ -4,11 +4,11 @@ #include #include #include -#include // local includes #include "accessors/settingsaccessors.h" #include "guihelpers/bobbychangevaluedisplay.h" +#include "icons/back.h" #include "screens/boardcomputerhardwaresettingsmenu.h" namespace bobby { @@ -31,7 +31,7 @@ TimersMenu::TimersMenu() { using namespace espgui; constructMenuItem, espgui::PushScreenAction>>(); - constructMenuItem, espgui::PushScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, espgui::PushScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string TimersMenu::text() const diff --git a/main/screens/timesettingsmenu.cpp b/main/screens/timesettingsmenu.cpp index 030514d..eebe324 100644 --- a/main/screens/timesettingsmenu.cpp +++ b/main/screens/timesettingsmenu.cpp @@ -13,14 +13,14 @@ #include #include #include -#include #include // local includes #include "accessors/settingsaccessors.h" #include "guihelpers/bobbychangevaluedisplay.h" -#include "screens/settingsmenu.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" +#include "screens/settingsmenu.h" #include "utils.h" namespace bobby { @@ -136,7 +136,7 @@ TimeSettingsMenu::TimeSettingsMenu() constructMenuItem, PushScreenAction>>(); constructMenuItem>(); } - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string TimeSettingsMenu::text() const diff --git a/main/screens/typesafeenumchangemenu.h b/main/screens/typesafeenumchangemenu.h index 0574545..938d414 100644 --- a/main/screens/typesafeenumchangemenu.h +++ b/main/screens/typesafeenumchangemenu.h @@ -6,12 +6,12 @@ #include #include #include -#include // local includes -#include "guihelpers/bobbymenudisplay.h" #include "globals.h" #include "guihelpers/bobbyerrorhandler.h" +#include "guihelpers/bobbymenudisplay.h" +#include "icons/back.h" namespace bobby { @@ -74,7 +74,7 @@ public: iterateEnum::iterate([&](TEnum enum_value, const auto &string_value){ constructMenuItem>(enum_value, m_config); }); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string text() const override diff --git a/main/screens/udpcloudsettingsmenu.cpp b/main/screens/udpcloudsettingsmenu.cpp index 542edff..766f94c 100644 --- a/main/screens/udpcloudsettingsmenu.cpp +++ b/main/screens/udpcloudsettingsmenu.cpp @@ -1,17 +1,17 @@ #include "udpcloudsettingsmenu.h" // 3rdparty lib includes -#include "actions/popscreenaction.h" -#include "actions/pushscreenaction.h" -#include "changevaluedisplay_string.h" -#include "fmt/core.h" -#include "icons/back.h" -#include "menuitem.h" +#include +#include +#include +#include +#include // local includes #include "accessors/settingsaccessors.h" #include "guihelpers/bobbychangevaluedisplay.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" namespace bobby { @@ -56,7 +56,7 @@ UdpCloudSettingsMenu::UdpCloudSettingsMenu() constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string UdpCloudSettingsMenu::text() const diff --git a/main/screens/wifiapclientsmenu.cpp b/main/screens/wifiapclientsmenu.cpp index 12c2390..32dc269 100644 --- a/main/screens/wifiapclientsmenu.cpp +++ b/main/screens/wifiapclientsmenu.cpp @@ -12,11 +12,11 @@ #include #include #include -#include #include #include // local includes +#include "icons/back.h" #include "wifiapsettingsmenu.h" #include "wifiguiutils.h" @@ -53,7 +53,7 @@ private: WifiApClientsMenu::WifiApClientsMenu() : espgui::ChangeableText{"AP Clients"s} { - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } void WifiApClientsMenu::back() diff --git a/main/screens/wifiapsettingsmenu.cpp b/main/screens/wifiapsettingsmenu.cpp index 016add8..8fad8b0 100644 --- a/main/screens/wifiapsettingsmenu.cpp +++ b/main/screens/wifiapsettingsmenu.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include @@ -21,6 +20,7 @@ #include "changevaluedisplay_wifi_auth_mode_t.h" #include "guihelpers/bobbychangevaluedisplay.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" #include "networksettingsmenu.h" #include "texthelpers/wifiaptexthelpers.h" #include "wifiapclientsmenu.h" @@ -119,7 +119,7 @@ WifiApSettingsMenu::WifiApSettingsMenu() constructMenuItem, PushScreenAction>>(); constructMenuItem>(); constructMenuItem>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string WifiApSettingsMenu::text() const diff --git a/main/screens/wifistaconfigentrymenu.cpp b/main/screens/wifistaconfigentrymenu.cpp index e7d9798..2ff7353 100644 --- a/main/screens/wifistaconfigentrymenu.cpp +++ b/main/screens/wifistaconfigentrymenu.cpp @@ -7,7 +7,6 @@ #include #include #include -#include #include #include #include @@ -16,6 +15,7 @@ #include "accessors/wifistaconfigaccessors.h" #include "guihelpers/bobbychangevaluedisplay.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" #include "newsettings.h" #include "wifistaconfigsmenu.h" @@ -126,7 +126,7 @@ WifiStaConfigEntryMenu::WifiStaConfigEntryMenu(int index) : constructMenuItem(index); constructMenuItem(index); constructMenuItem>>(index); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string WifiStaConfigEntryMenu::text() const diff --git a/main/screens/wifistaconfigsmenu.cpp b/main/screens/wifistaconfigsmenu.cpp index 32da749..1be8383 100644 --- a/main/screens/wifistaconfigsmenu.cpp +++ b/main/screens/wifistaconfigsmenu.cpp @@ -6,12 +6,12 @@ #include #include #include -#include #include #include #include // local includes +#include "icons/back.h" #include "newsettings.h" #include "wifistaconfigentrymenu.h" #include "wifistasettingsmenu.h" @@ -40,7 +40,7 @@ WifiStaConfigsMenu::WifiStaConfigsMenu() { for (int i = 0; i < configs.wifi_configs.size(); i++) constructMenuItem(i); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string WifiStaConfigsMenu::text() const diff --git a/main/screens/wifistascanentrymenu.cpp b/main/screens/wifistascanentrymenu.cpp index ee49938..e7bd13e 100644 --- a/main/screens/wifistascanentrymenu.cpp +++ b/main/screens/wifistascanentrymenu.cpp @@ -12,13 +12,13 @@ #include #include #include -#include #include #include #include #include // local includes +#include "icons/back.h" #include "newsettings.h" #include "wifiguiutils.h" #include "wifistaconfigentrymenu.h" @@ -100,7 +100,7 @@ WifiStaScanEntryMenu::WifiStaScanEntryMenu(const wifi_ap_record_t &info) : default: return std::to_string(m_info.country.policy); } }())); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string WifiStaScanEntryMenu::text() const diff --git a/main/screens/wifistascanmenu.cpp b/main/screens/wifistascanmenu.cpp index cdb7a69..204232f 100644 --- a/main/screens/wifistascanmenu.cpp +++ b/main/screens/wifistascanmenu.cpp @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include @@ -18,6 +17,7 @@ // local includes #include "actions/wifistascanaction.h" #include "actions/wifistascanclearaction.h" +#include "icons/back.h" #include "newsettings.h" #include "wifiguiutils.h" #include "wifistascanentrymenu.h" @@ -52,7 +52,7 @@ WifiStaScanMenu::WifiStaScanMenu() { constructMenuItem, WifiStaScanAction>>(); constructMenuItem, WifiStaScanClearAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string WifiStaScanMenu::text() const diff --git a/main/screens/wifistasettingsmenu.cpp b/main/screens/wifistasettingsmenu.cpp index bedd956..305fce2 100644 --- a/main/screens/wifistasettingsmenu.cpp +++ b/main/screens/wifistasettingsmenu.cpp @@ -5,7 +5,6 @@ #include #include #include -#include #include #include #include @@ -14,6 +13,7 @@ #include "accessors/wifistaconfigaccessors.h" #include "guihelpers/bobbychangevaluedisplay.h" #include "guihelpers/bobbycheckbox.h" +#include "icons/back.h" #include "texthelpers/wifistatexthelpers.h" #include "wifistaconfigsmenu.h" #include "wifistascanmenu.h" @@ -58,7 +58,7 @@ WifiStaSettingsMenu::WifiStaSettingsMenu() constructMenuItem>(); constructMenuItem>(); constructMenuItem, PushScreenAction>>(); - constructMenuItem, PopScreenAction, StaticMenuItemIcon<&icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&bobbyicons::back>>>(); } std::string WifiStaSettingsMenu::text() const From 437d7cf4d4059c16996121a29a98efcfc0c96d17 Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Sun, 25 Dec 2022 19:03:21 +0100 Subject: [PATCH 9/9] Fixes --- ignore.tar.gz.gpg | Bin 1680 -> 1674 bytes main/screens/batterymenu.cpp | 22 ++++++++++++ main/screens/batterymenu.h | 4 +++ main/screens/qrimportdisplay.cpp | 47 ++++++++++++++++++-------- main/screens/qrimportdisplay.h | 3 ++ main/screens/setup/basic_buttons.cpp | 3 +- main/screens/typesafeenumchangemenu.h | 1 - main/setup.cpp | 10 ++++++ 8 files changed, 74 insertions(+), 16 deletions(-) diff --git a/ignore.tar.gz.gpg b/ignore.tar.gz.gpg index 0f597d7ad1db81d93569d48b48b66c0a9fb8eeac..77c22fd3ecb2580edd0f96a8b1404cd2f5b15d3e 100644 GIT binary patch literal 1674 zcmeC-WnpJ#^0jpS8{?Z@{QuI?9gGEvO#WsZ!}%63<)ho{F8I{2 z9@u%Y-mfs$(M+kQPR{Gl&-x6l_>a5ZSnD)qH0=KLQKxCq0f}9_FT+<`Ph9-|&M}K~ z>jVCzhaT42eW&J+y4R03y`-0)au^kWB zD1~-r^#PLBy&p1|E>9l zCpK3(wN@qONcu!i-ExXUJT2)T;3~c{_DJ2 zR8ZsfyKmP%VF@uvJ|K8~jfbJ3VYJVcEBg~xe)#v*>XnAwR@3agyHbP}Z7Kg!D%2c$ zMB=IDWuXaIWZuQ;-?LZaI6CJE+qL9|X)m|7-SV#HoZ$4O%kTcF?UnC7^mAq9XQ~QD zU;As7KS=QA>F-KM*L!g5{9T7Fm9@2N&<67``(}TBA#q-Dhs@!xwQW0OM~2Rcba-?`*~Hg_J>4; zZ_Ve`J(hPSYE#ebGxY+T`pY=)=<%Pd-8|uDhECY*DM_}I_ynfxdw4MP@uJ90z)OYK4r|)Z7YHm&}ZZWD==v-EO_oK$7FAOCPN3|}r zvk0o(y*-hw+a=&l6wd;w%uOxE?-&znK3->Y)ZMJ`CHm>iZ|cvsdpnD%T0B>urPyp9 zc))Rjg3}kSrN`p^x$AU4?3=&TU4PZKZ9FpyQzu`W!xCouMtH8q12>EB8@YN}Plm6p ztz2^CVNhViylrZdOk4A3ux)8M)RS7)tgP_-OErJow~A|*U3s-wn;Xu)X56<;WTy2g z+sA^r&)bf0CEV10!mQo6_veD;-`8g6e*d)oW5b-21`4(hU;QYYQuJFr)WKJC<9a^R zv#U!wgMA7aW@x{*``&FE99y(%$Bx4n+@I;5xN}yWd!FXfGnTDyMHRcZddk%&ygDcI z*J;jeWxhWuzx(1@F8H@`nsI*O<|?yae#c49JwpAvW!6KtOD{G`{r-7je-4}H^NY96 zY+sQ3HC@rp;*{ zy;nNJJ-zUzrlyuvEGkQVBHtFaq^ob*X7t4}=3>T&sX0={RVTwPukEaN{-6kZ;? zzN4|t-bTo4^JcT2w@M$k3&@pkw!iT!aBlb>hpMGU`%H{%=bsYYe_2HJbpF3PipLyX z3MCYc4{naiT+Mx>@6?Z4@1Db+yZFBSuTCn`xWsHYEj&PN$%jv}NpXI?rH#j{S?}Mf z+WRkimseMCPo==CM$6oy1KSsT@;e>cMQ)+Kq z4mxaXovi0FCFc7j?2MmPDnZwk@|1NL)wYlo8>b4L6q%0zW(+?QsUOuiU z`Q0}v{mDcgL$=$;Uu;XY35|AR7rh?#bzk=DX-D=5ekgcl^8J7BX}dnlP AVgLXD literal 1680 zcmeC-WnpJ#N;$UR$lMHD&i|K=?qf8~?`+kRDcvb?A>}*QPa*T%3$2U&D(+Rp-jDw} zKll+>C3mIJTqD^j=eTDZE2{5(&g%M^N4@u0M(p^jM~;n?CIs!GYPr_Hu)tJ(c;<^GU8n{F}9bQH;4 z!peJn#__9y0UD`6Q)ga(le_g{K^n8bB28cE-`{>~_&*NQm0Y4G!ydTyS&w>sZi!Oq zQJ%sXwaZywF>4ll`MtHW@z`We1%KUw)lZ6?D!5&)TmCjt`5n38Q%Zf*o~_wRS2Ooi z%2fXkRn|Ky$hfY3;g^pWxeU7=dxZC&*4e0V{u9S^RgQ^{{lX^IQY@>_I^Bp5s`_Kj z`Ht_b*4|r{r<>B-U+_wAmt-;tmTdL|*Qw)jp(uWM$6J)>$iSI-S1m*kHC@8-X9IfOi=M_Wi)~F3s(Rdc=*X{^Z9%6yOdK2YIX3p6++C>HU{^CW zP&Q#=vEMVk8~+@eybkX4ObQk6^KIQDR$Nf|wQ>0>Vb|D`>8-^(Y}h|ua*=scckHv} z)er6NU2nH>y~%zfnq1laPLN~IB0-Jc+w)bpKyT&UpP&ApBSb#7|RPmLrF-VD+X^M1B`PkZVcui~Y_Pxd|D9lNV* z`{T>T53N)uug$Ww`77Vj5@vUkvz2GJ;>5L2k3IbGtYrH3dG}WQt*J;*TqfZx`D$`o zNLc&?>yHlopJYB#eCZ^;f4KAZwKf&eu`5(zP+zT(&G>BcZsW^$=y%nGg*Hh zDQo_^?xg9xs?X7%mt6h3qtxr>1g<9r>$QBI3uWDOX3Q*7=)91>;$zo=3lp+e9-kFx zZejU6LM`oM-#533^HM*_UAgVh_@?oUu>8Dbc5h0zSQ%+_gzjDVHhg#F6V)wKq#rU# z3vbpBWqvK|(zy5TjT08r0@t^uS7-c>Xe)d)t?ygZC-22u3OLvTKOPG-d@On}!#Gl4 z&67!Hr}o;Ug&ev+RlDj z!1m3={XQ#r+Y)_vJ{|tSb@B7hqc>%a-k$L_O;?~_PW^LkSww|-r=G!zlrv9b&WkI! z78pD(y0$g+Wk&APKBi6)>q$)_aqgeqXdKs^nj^mG(iD|V%vuxve*3wlNptVD&;IM4 z?qU%V5_@LS_19j@d)sBh9uD8sd!G*b>MuXNb|KH<_d=^4HB1(L$K_Nd@b5RLmiZsw zgAKyJ&$7=pKA@VmT4m9CjSu$@z6){BtnGf0t38P|X=iYXJ^#+yl_nqUzMgd0+mR=- z`qtz<3)S=ItoOY+MfnXYo8oG=&i~(dIIiTS#(Z)}4lCr_(#cU&nBlUbd`92px4&&p z*$IZQ-*0Nam2@c;k- diff --git a/main/screens/batterymenu.cpp b/main/screens/batterymenu.cpp index cc5c5b7..ffdde34 100644 --- a/main/screens/batterymenu.cpp +++ b/main/screens/batterymenu.cpp @@ -105,6 +105,14 @@ void BatteryMenu::redraw(espgui::TftInterface &tft) { Base::redraw(tft); + if (m_fullRedraw) + { + m_fullRedraw = false; + m_doubleProgressBarBatPercentage.start(tft); + m_batPercentBootLabel.clear(tft, espgui::TFT_BLACK); + m_batPercentNowLabel.clear(tft, espgui::TFT_BLACK); + } + if (const auto avgVoltage = controllers.getAvgVoltage(); avgVoltage) { const auto batPercent = getBatteryPercentage(*avgVoltage, BatteryCellType(configs.battery.cellType.value())); @@ -118,6 +126,20 @@ void BatteryMenu::redraw(espgui::TftInterface &tft) } } +void BatteryMenu::buttonPressed(espgui::Button button) +{ + Base::buttonPressed(button); + + switch (button) + { + case espgui::Up: + case espgui::Down: + m_fullRedraw = true; + break; + default:; + } +} + void BatteryMenu::back() { espgui::popScreen(); diff --git a/main/screens/batterymenu.h b/main/screens/batterymenu.h index e9cd7be..36779ab 100644 --- a/main/screens/batterymenu.h +++ b/main/screens/batterymenu.h @@ -24,10 +24,14 @@ public: void redraw(espgui::TftInterface &tft) override; void back() override; + void buttonPressed(espgui::Button button) override; + private: bobby::DoubleProgressBar m_doubleProgressBarBatPercentage{75, 68, 90, 24, 0, 100, espgui::TFT_RED, espgui::TFT_GREEN}; espgui::Label m_batPercentNowLabel {170, 68}; espgui::Label m_batPercentBootLabel{170, 82}; + + bool m_fullRedraw{true}; }; } // namespace bobby diff --git a/main/screens/qrimportdisplay.cpp b/main/screens/qrimportdisplay.cpp index d228bde..daadd0f 100644 --- a/main/screens/qrimportdisplay.cpp +++ b/main/screens/qrimportdisplay.cpp @@ -1,6 +1,7 @@ #include "qrimportdisplay.h" // 3rdparty lib includes +#include #include namespace bobby { @@ -16,18 +17,8 @@ void QrImportDisplay::initScreen(espgui::TftInterface &tft) m_statuslabel.start(tft); - qrimport::setup_request(); - - if (const auto result = qrimport::start_qr_request(); result) - { - ESP_LOGI(TAG, "started request, waiting for result"); - m_waitingForResult = true; - } - else - { - ESP_LOGE(TAG, "could not start request: %.*s", result.error().size(), result.error().data()); - m_result = tl::make_unexpected(std::move(result).error()); - } + if (!m_requestStarted) + start_request(); } void QrImportDisplay::update() @@ -51,7 +42,10 @@ void QrImportDisplay::update() m_result = tl::make_unexpected(fmt::format("saving qr failed: {}", esp_err_to_name(result.error()))); } else - ESP_LOGW(TAG, "failed %.*s => %.*s", m_nvs_key.size(), m_nvs_key.data(), m_result.error().size(), m_result.error().data()); + { + ESP_LOGW(TAG, "failed %.*s => %.*s", m_nvs_key.size(), m_nvs_key.data(), m_result.error().size(), + m_result.error().data()); + } } void QrImportDisplay::redraw(espgui::TftInterface &tft) @@ -66,9 +60,10 @@ void QrImportDisplay::redraw(espgui::TftInterface &tft) else if (!m_result && !m_result.error().empty()) { BobbyErrorHandler{}.errorOccurred(fmt::format("&1Error: {}&6", m_result.error())); + m_statuslabel.redraw(tft, fmt::format("Error: {}", m_result.error()), TFT_RED, TFT_BLACK, 4); m_result.error().clear(); } - else + else if (m_result && !m_result->empty()) { m_statuslabel.redraw(tft, "OK", TFT_GREEN, TFT_BLACK, 4); popScreen(); @@ -92,4 +87,28 @@ void QrImportDisplay::buttonPressed(espgui::Button button) default:; } } + +void QrImportDisplay::start_request() +{ + if (wifi_stack::get_sta_status() != wifi_stack::WiFiStaStatus::CONNECTED) + { + m_result = tl::make_unexpected(std::string{"not connected to wifi"}); + return; + } + + m_requestStarted = true; + + qrimport::setup_request(); + + if (const auto result = qrimport::start_qr_request(); result) + { + ESP_LOGI(TAG, "started request, waiting for result"); + m_waitingForResult = true; + } + else + { + ESP_LOGE(TAG, "could not start request: %.*s", result.error().size(), result.error().data()); + m_result = tl::make_unexpected(result.error()); + } +} } // namespace bobby diff --git a/main/screens/qrimportdisplay.h b/main/screens/qrimportdisplay.h index 42ef075..a7ad776 100644 --- a/main/screens/qrimportdisplay.h +++ b/main/screens/qrimportdisplay.h @@ -37,8 +37,11 @@ public: void redraw(espgui::TftInterface &tft) override; void buttonPressed(espgui::Button button) override; + void start_request(); + private: bool m_waitingForResult{false}; + bool m_requestStarted{false}; espgui::Label m_statuslabel; tl::expected m_result; diff --git a/main/screens/setup/basic_buttons.cpp b/main/screens/setup/basic_buttons.cpp index 187d0a1..e9babc4 100644 --- a/main/screens/setup/basic_buttons.cpp +++ b/main/screens/setup/basic_buttons.cpp @@ -47,9 +47,10 @@ void SetupBasicButtonsDisplay::update() m_button_cal_finished = false; saveButtons(); + setup::unlock(); + if (m_early_return) { - setup::unlock(); espgui::popScreen(); } else diff --git a/main/screens/typesafeenumchangemenu.h b/main/screens/typesafeenumchangemenu.h index 938d414..0318f0b 100644 --- a/main/screens/typesafeenumchangemenu.h +++ b/main/screens/typesafeenumchangemenu.h @@ -70,7 +70,6 @@ public: using namespace espgui; using namespace typesafeenumchangemenu; constructMenuItem>(m_config); - constructMenuItem>(); iterateEnum::iterate([&](TEnum enum_value, const auto &string_value){ constructMenuItem>(enum_value, m_config); }); diff --git a/main/setup.cpp b/main/setup.cpp index d00c52e..0f0a17d 100644 --- a/main/setup.cpp +++ b/main/setup.cpp @@ -11,16 +11,24 @@ IgnoreInputMode setup_mode{0, bobbycar::protocol::ControlType::FieldOrientedCont void lock() { if (currently_locked) + { + ESP_LOGI("setup", "already locked"); return; + } oldMode = currentMode; currentMode = &setup_mode; + + currently_locked = true; } void unlock() { if (!currently_locked) + { + ESP_LOGI("setup", "already unlocked"); return; + } if (currentMode == &setup_mode) { @@ -30,6 +38,8 @@ void unlock() currentMode = oldMode; } + + currently_locked = false; } bool isLocked()