From 9f7a7ea0d001fb1d35b496cf0c0e486b105baff5 Mon Sep 17 00:00:00 2001 From: discip <53649486+discip@users.noreply.github.com> Date: Sat, 25 Sep 2021 00:17:44 +0200 Subject: [PATCH 01/24] show name of accelerometer in debug menu Instead of displaying numbers in debug menu, show the actual name of the accelerometer. --- source/Core/Threads/MOVThread.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/Core/Threads/MOVThread.cpp b/source/Core/Threads/MOVThread.cpp index e0e7c86e..3c1e25d8 100644 --- a/source/Core/Threads/MOVThread.cpp +++ b/source/Core/Threads/MOVThread.cpp @@ -33,7 +33,7 @@ void detectAccelerometerVersion() { #ifdef ACCEL_MMA if (MMA8652FC::detect()) { if (MMA8652FC::initalize()) { - DetectedAccelerometerVersion = 1; + DetectedAccelerometerVersion = MMA; } } else #endif @@ -41,7 +41,7 @@ void detectAccelerometerVersion() { if (LIS2DH12::detect()) { // Setup the ST Accelerometer if (LIS2DH12::initalize()) { - DetectedAccelerometerVersion = 2; + DetectedAccelerometerVersion = LIS; } } else #endif @@ -49,7 +49,7 @@ void detectAccelerometerVersion() { if (BMA223::detect()) { // Setup the BMA223 Accelerometer if (BMA223::initalize()) { - DetectedAccelerometerVersion = 3; + DetectedAccelerometerVersion = BMA; } } else #endif @@ -57,7 +57,7 @@ void detectAccelerometerVersion() { if (MSA301::detect()) { // Setup the MSA301 Accelerometer if (MSA301::initalize()) { - DetectedAccelerometerVersion = 4; + DetectedAccelerometerVersion = MSA; } } else #endif @@ -65,7 +65,7 @@ void detectAccelerometerVersion() { if (SC7A20::detect()) { // Setup the SC7A20 Accelerometer if (SC7A20::initalize()) { - DetectedAccelerometerVersion = 5; + DetectedAccelerometerVersion = SC7; } } else #endif From 69d8d14e0c3e079f59d5d307d7a26901d309c979 Mon Sep 17 00:00:00 2001 From: discip <53649486+discip@users.noreply.github.com> Date: Sat, 25 Sep 2021 00:25:43 +0200 Subject: [PATCH 02/24] Update make_translation.py --- Translations/make_translation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Translations/make_translation.py b/Translations/make_translation.py index 97c9c395..36bd2d8a 100755 --- a/Translations/make_translation.py +++ b/Translations/make_translation.py @@ -124,7 +124,7 @@ def get_debug_menu() -> List[str]: "CTip ", "CHan ", "Vin ", - "PCB ", + "ACC ", "PWR ", "Max ", ] From 2467e6f004cd47a2b62340ba927642aca635e427 Mon Sep 17 00:00:00 2001 From: discip <53649486+discip@users.noreply.github.com> Date: Sat, 25 Sep 2021 00:43:52 +0200 Subject: [PATCH 03/24] Update MOVThread.cpp --- source/Core/Threads/MOVThread.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/source/Core/Threads/MOVThread.cpp b/source/Core/Threads/MOVThread.cpp index 3c1e25d8..791f9169 100644 --- a/source/Core/Threads/MOVThread.cpp +++ b/source/Core/Threads/MOVThread.cpp @@ -33,7 +33,7 @@ void detectAccelerometerVersion() { #ifdef ACCEL_MMA if (MMA8652FC::detect()) { if (MMA8652FC::initalize()) { - DetectedAccelerometerVersion = MMA; + DetectedAccelerometerVersion = "MMA"; } } else #endif @@ -41,7 +41,7 @@ void detectAccelerometerVersion() { if (LIS2DH12::detect()) { // Setup the ST Accelerometer if (LIS2DH12::initalize()) { - DetectedAccelerometerVersion = LIS; + DetectedAccelerometerVersion = "LIS"; } } else #endif @@ -49,7 +49,7 @@ void detectAccelerometerVersion() { if (BMA223::detect()) { // Setup the BMA223 Accelerometer if (BMA223::initalize()) { - DetectedAccelerometerVersion = BMA; + DetectedAccelerometerVersion = "BMA"; } } else #endif @@ -57,7 +57,7 @@ void detectAccelerometerVersion() { if (MSA301::detect()) { // Setup the MSA301 Accelerometer if (MSA301::initalize()) { - DetectedAccelerometerVersion = MSA; + DetectedAccelerometerVersion = "MSA"; } } else #endif @@ -65,7 +65,7 @@ void detectAccelerometerVersion() { if (SC7A20::detect()) { // Setup the SC7A20 Accelerometer if (SC7A20::initalize()) { - DetectedAccelerometerVersion = SC7; + DetectedAccelerometerVersion = "SC7"; } } else #endif @@ -76,32 +76,32 @@ void detectAccelerometerVersion() { } } inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation &rotation) { -#ifdef ACCEL_LIS - if (DetectedAccelerometerVersion == 2) { - LIS2DH12::getAxisReadings(tx, ty, tz); - rotation = LIS2DH12::getOrientation(); - } else -#endif #ifdef ACCEL_MMA - if (DetectedAccelerometerVersion == 1) { + if (DetectedAccelerometerVersion == "MMA") { MMA8652FC::getAxisReadings(tx, ty, tz); rotation = MMA8652FC::getOrientation(); } else #endif +#ifdef ACCEL_LIS + if (DetectedAccelerometerVersion == "LIS") { + LIS2DH12::getAxisReadings(tx, ty, tz); + rotation = LIS2DH12::getOrientation(); + } else +#endif #ifdef ACCEL_BMA - if (DetectedAccelerometerVersion == 3) { + if (DetectedAccelerometerVersion == "BMA") { BMA223::getAxisReadings(tx, ty, tz); rotation = BMA223::getOrientation(); } else #endif #ifdef ACCEL_MSA - if (DetectedAccelerometerVersion == 4) { + if (DetectedAccelerometerVersion == "MSA") { MSA301::getAxisReadings(tx, ty, tz); rotation = MSA301::getOrientation(); } else #endif #ifdef ACCEL_SC7 - if (DetectedAccelerometerVersion == 5) { + if (DetectedAccelerometerVersion == "SC7") { SC7A20::getAxisReadings(tx, ty, tz); rotation = SC7A20::getOrientation(); } else From 92856d802d1a389f66c04885ee60fb750a08311b Mon Sep 17 00:00:00 2001 From: discip <53649486+discip@users.noreply.github.com> Date: Sat, 25 Sep 2021 00:45:24 +0200 Subject: [PATCH 04/24] Update DebugMenu.md --- Documentation/DebugMenu.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Documentation/DebugMenu.md b/Documentation/DebugMenu.md index 6e622999..d9bcb3fe 100644 --- a/Documentation/DebugMenu.md +++ b/Documentation/DebugMenu.md @@ -52,17 +52,15 @@ This is shown in degrees C x10, so 200 == 20.0C The input voltage as read by the internal ADC. Can be used to sanity check its being read correctly. -### PCB +### ACC -This is slightly miss-named, but preserving the name for now. -This indicates the PCB "version" number, which comes from the TS100 changing the model of accelerometer without warning. This indicates the accelerometer that is fitted inside the unit. -- 1 = MMA8652 -- 2 = LIS2DH12 -- 3 = BMA223 -- 4 = MSA301 -- 5 = SC7A20 +- MMA = MMA8652 +- LIS = LIS2DH12 +- BMA = BMA223 +- MSA = MSA301 +- SC7 = SC7A20 - 99 = None detected (running in fallback without movement detection) ### PWR From 46a62bc4f563fd882cf32825db31b2717029e668 Mon Sep 17 00:00:00 2001 From: discip <53649486+discip@users.noreply.github.com> Date: Sat, 25 Sep 2021 00:55:45 +0200 Subject: [PATCH 05/24] Update MOVThread.cpp --- source/Core/Threads/MOVThread.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/source/Core/Threads/MOVThread.cpp b/source/Core/Threads/MOVThread.cpp index 791f9169..5496ff10 100644 --- a/source/Core/Threads/MOVThread.cpp +++ b/source/Core/Threads/MOVThread.cpp @@ -33,7 +33,7 @@ void detectAccelerometerVersion() { #ifdef ACCEL_MMA if (MMA8652FC::detect()) { if (MMA8652FC::initalize()) { - DetectedAccelerometerVersion = "MMA"; + DetectedAccelerometerVersion = MMA; } } else #endif @@ -41,7 +41,7 @@ void detectAccelerometerVersion() { if (LIS2DH12::detect()) { // Setup the ST Accelerometer if (LIS2DH12::initalize()) { - DetectedAccelerometerVersion = "LIS"; + DetectedAccelerometerVersion = LIS; } } else #endif @@ -49,7 +49,7 @@ void detectAccelerometerVersion() { if (BMA223::detect()) { // Setup the BMA223 Accelerometer if (BMA223::initalize()) { - DetectedAccelerometerVersion = "BMA"; + DetectedAccelerometerVersion = BMA; } } else #endif @@ -57,7 +57,7 @@ void detectAccelerometerVersion() { if (MSA301::detect()) { // Setup the MSA301 Accelerometer if (MSA301::initalize()) { - DetectedAccelerometerVersion = "MSA"; + DetectedAccelerometerVersion = MSA; } } else #endif @@ -65,7 +65,7 @@ void detectAccelerometerVersion() { if (SC7A20::detect()) { // Setup the SC7A20 Accelerometer if (SC7A20::initalize()) { - DetectedAccelerometerVersion = "SC7"; + DetectedAccelerometerVersion = SC7; } } else #endif @@ -77,31 +77,31 @@ void detectAccelerometerVersion() { } inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation &rotation) { #ifdef ACCEL_MMA - if (DetectedAccelerometerVersion == "MMA") { + if (DetectedAccelerometerVersion == MMA) { MMA8652FC::getAxisReadings(tx, ty, tz); rotation = MMA8652FC::getOrientation(); } else #endif #ifdef ACCEL_LIS - if (DetectedAccelerometerVersion == "LIS") { + if (DetectedAccelerometerVersion == LIS) { LIS2DH12::getAxisReadings(tx, ty, tz); rotation = LIS2DH12::getOrientation(); } else #endif #ifdef ACCEL_BMA - if (DetectedAccelerometerVersion == "BMA") { + if (DetectedAccelerometerVersion == BMA) { BMA223::getAxisReadings(tx, ty, tz); rotation = BMA223::getOrientation(); } else #endif #ifdef ACCEL_MSA - if (DetectedAccelerometerVersion == "MSA") { + if (DetectedAccelerometerVersion == MSA) { MSA301::getAxisReadings(tx, ty, tz); rotation = MSA301::getOrientation(); } else #endif #ifdef ACCEL_SC7 - if (DetectedAccelerometerVersion == "SC7") { + if (DetectedAccelerometerVersion == SC7) { SC7A20::getAxisReadings(tx, ty, tz); rotation = SC7A20::getOrientation(); } else From 412f1fa60f3fd64e6ee49e6bc2e815c986ab0536 Mon Sep 17 00:00:00 2001 From: discip <53649486+discip@users.noreply.github.com> Date: Sat, 25 Sep 2021 01:10:53 +0200 Subject: [PATCH 06/24] Update MOVThread.cpp --- source/Core/Threads/MOVThread.cpp | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/source/Core/Threads/MOVThread.cpp b/source/Core/Threads/MOVThread.cpp index 5496ff10..81908055 100644 --- a/source/Core/Threads/MOVThread.cpp +++ b/source/Core/Threads/MOVThread.cpp @@ -24,6 +24,14 @@ #include "stdlib.h" #include "task.h" +enum class AccelType { + MMA=1, + LIS=2, + BMA=3, + MSA=4, + SC7=5, + None=99 } + #define MOVFilter 8 uint8_t accelInit = 0; TickType_t lastMovementTime = 0; @@ -33,7 +41,7 @@ void detectAccelerometerVersion() { #ifdef ACCEL_MMA if (MMA8652FC::detect()) { if (MMA8652FC::initalize()) { - DetectedAccelerometerVersion = MMA; + DetectedAccelerometerVersion = AccelType::MMA; } } else #endif @@ -41,7 +49,7 @@ void detectAccelerometerVersion() { if (LIS2DH12::detect()) { // Setup the ST Accelerometer if (LIS2DH12::initalize()) { - DetectedAccelerometerVersion = LIS; + DetectedAccelerometerVersion = AccelType::LIS; } } else #endif @@ -49,7 +57,7 @@ void detectAccelerometerVersion() { if (BMA223::detect()) { // Setup the BMA223 Accelerometer if (BMA223::initalize()) { - DetectedAccelerometerVersion = BMA; + DetectedAccelerometerVersion = AccelType::BMA; } } else #endif @@ -57,7 +65,7 @@ void detectAccelerometerVersion() { if (MSA301::detect()) { // Setup the MSA301 Accelerometer if (MSA301::initalize()) { - DetectedAccelerometerVersion = MSA; + DetectedAccelerometerVersion = AccelType::MSA; } } else #endif @@ -65,7 +73,7 @@ void detectAccelerometerVersion() { if (SC7A20::detect()) { // Setup the SC7A20 Accelerometer if (SC7A20::initalize()) { - DetectedAccelerometerVersion = SC7; + DetectedAccelerometerVersion = AccelType::SC7; } } else #endif @@ -77,31 +85,31 @@ void detectAccelerometerVersion() { } inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation &rotation) { #ifdef ACCEL_MMA - if (DetectedAccelerometerVersion == MMA) { + if (DetectedAccelerometerVersion == AccelType::MMA) { MMA8652FC::getAxisReadings(tx, ty, tz); rotation = MMA8652FC::getOrientation(); } else #endif #ifdef ACCEL_LIS - if (DetectedAccelerometerVersion == LIS) { + if (DetectedAccelerometerVersion == AccelType::LIS) { LIS2DH12::getAxisReadings(tx, ty, tz); rotation = LIS2DH12::getOrientation(); } else #endif #ifdef ACCEL_BMA - if (DetectedAccelerometerVersion == BMA) { + if (DetectedAccelerometerVersion == AccelType::BMA) { BMA223::getAxisReadings(tx, ty, tz); rotation = BMA223::getOrientation(); } else #endif #ifdef ACCEL_MSA - if (DetectedAccelerometerVersion == MSA) { + if (DetectedAccelerometerVersion == AccelType::MSA) { MSA301::getAxisReadings(tx, ty, tz); rotation = MSA301::getOrientation(); } else #endif #ifdef ACCEL_SC7 - if (DetectedAccelerometerVersion == SC7) { + if (DetectedAccelerometerVersion == AccelType::SC7) { SC7A20::getAxisReadings(tx, ty, tz); rotation = SC7A20::getOrientation(); } else From ba0ed93989a7a3276969aa432931ba881366f2f8 Mon Sep 17 00:00:00 2001 From: discip <53649486+discip@users.noreply.github.com> Date: Sat, 25 Sep 2021 01:20:06 +0200 Subject: [PATCH 07/24] Update MOVThread.cpp --- source/Core/Threads/MOVThread.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Core/Threads/MOVThread.cpp b/source/Core/Threads/MOVThread.cpp index 81908055..aaf080bf 100644 --- a/source/Core/Threads/MOVThread.cpp +++ b/source/Core/Threads/MOVThread.cpp @@ -30,7 +30,7 @@ enum class AccelType { BMA=3, MSA=4, SC7=5, - None=99 } + None=99 }; #define MOVFilter 8 uint8_t accelInit = 0; From dd85780447c98c4fca40732c72e743b4df9b4b7d Mon Sep 17 00:00:00 2001 From: discip <53649486+discip@users.noreply.github.com> Date: Sat, 25 Sep 2021 01:29:45 +0200 Subject: [PATCH 08/24] Update MOVThread.cpp --- source/Core/Threads/MOVThread.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/Core/Threads/MOVThread.cpp b/source/Core/Threads/MOVThread.cpp index aaf080bf..12bdf550 100644 --- a/source/Core/Threads/MOVThread.cpp +++ b/source/Core/Threads/MOVThread.cpp @@ -85,31 +85,31 @@ void detectAccelerometerVersion() { } inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation &rotation) { #ifdef ACCEL_MMA - if (DetectedAccelerometerVersion == AccelType::MMA) { + if (DetectedAccelerometerVersion == (int)AccelType::MMA) { MMA8652FC::getAxisReadings(tx, ty, tz); rotation = MMA8652FC::getOrientation(); } else #endif #ifdef ACCEL_LIS - if (DetectedAccelerometerVersion == AccelType::LIS) { + if (DetectedAccelerometerVersion == (int)AccelType::LIS) { LIS2DH12::getAxisReadings(tx, ty, tz); rotation = LIS2DH12::getOrientation(); } else #endif #ifdef ACCEL_BMA - if (DetectedAccelerometerVersion == AccelType::BMA) { + if (DetectedAccelerometerVersion == (int)AccelType::BMA) { BMA223::getAxisReadings(tx, ty, tz); rotation = BMA223::getOrientation(); } else #endif #ifdef ACCEL_MSA - if (DetectedAccelerometerVersion == AccelType::MSA) { + if (DetectedAccelerometerVersion == (int)AccelType::MSA) { MSA301::getAxisReadings(tx, ty, tz); rotation = MSA301::getOrientation(); } else #endif #ifdef ACCEL_SC7 - if (DetectedAccelerometerVersion == AccelType::SC7) { + if (DetectedAccelerometerVersion == (int)AccelType::SC7) { SC7A20::getAxisReadings(tx, ty, tz); rotation = SC7A20::getOrientation(); } else From 7a67b064bae934eb4e8c308b0d26bab588832091 Mon Sep 17 00:00:00 2001 From: discip <53649486+discip@users.noreply.github.com> Date: Sat, 25 Sep 2021 01:32:15 +0200 Subject: [PATCH 09/24] Update MOVThread.cpp --- source/Core/Threads/MOVThread.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/Core/Threads/MOVThread.cpp b/source/Core/Threads/MOVThread.cpp index 12bdf550..7e410170 100644 --- a/source/Core/Threads/MOVThread.cpp +++ b/source/Core/Threads/MOVThread.cpp @@ -41,7 +41,7 @@ void detectAccelerometerVersion() { #ifdef ACCEL_MMA if (MMA8652FC::detect()) { if (MMA8652FC::initalize()) { - DetectedAccelerometerVersion = AccelType::MMA; + DetectedAccelerometerVersion = (int)AccelType::MMA; } } else #endif @@ -49,7 +49,7 @@ void detectAccelerometerVersion() { if (LIS2DH12::detect()) { // Setup the ST Accelerometer if (LIS2DH12::initalize()) { - DetectedAccelerometerVersion = AccelType::LIS; + DetectedAccelerometerVersion = (int)AccelType::LIS; } } else #endif @@ -57,7 +57,7 @@ void detectAccelerometerVersion() { if (BMA223::detect()) { // Setup the BMA223 Accelerometer if (BMA223::initalize()) { - DetectedAccelerometerVersion = AccelType::BMA; + DetectedAccelerometerVersion = (int)AccelType::BMA; } } else #endif @@ -65,7 +65,7 @@ void detectAccelerometerVersion() { if (MSA301::detect()) { // Setup the MSA301 Accelerometer if (MSA301::initalize()) { - DetectedAccelerometerVersion = AccelType::MSA; + DetectedAccelerometerVersion = (int)AccelType::MSA; } } else #endif @@ -73,7 +73,7 @@ void detectAccelerometerVersion() { if (SC7A20::detect()) { // Setup the SC7A20 Accelerometer if (SC7A20::initalize()) { - DetectedAccelerometerVersion = AccelType::SC7; + DetectedAccelerometerVersion = (int)AccelType::SC7; } } else #endif From 2b390d68b41545c2a9baf3fa920afc17e4a057be Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 09:58:33 +1000 Subject: [PATCH 10/24] Add visibility function --- source/Core/Inc/gui.hpp | 1 + source/Core/Src/gui.cpp | 90 ++++++++++++++++++++--------------------- 2 files changed, 46 insertions(+), 45 deletions(-) diff --git a/source/Core/Inc/gui.hpp b/source/Core/Inc/gui.hpp index e21f1e1a..fe1aee87 100644 --- a/source/Core/Inc/gui.hpp +++ b/source/Core/Inc/gui.hpp @@ -27,6 +27,7 @@ typedef struct { // return true if increment reached the maximum value bool (*const incrementHandler)(void); bool (*const draw)(void); + bool (*const isVisible)(void); // If this is set, we will automatically use the settings increment handler instead, set >= num settings to disable SettingsOptions autoSettingOption; } menuitem; diff --git a/source/Core/Src/gui.cpp b/source/Core/Src/gui.cpp index b1c5e25f..5d137dcd 100644 --- a/source/Core/Src/gui.cpp +++ b/source/Core/Src/gui.cpp @@ -134,15 +134,15 @@ const menuitem rootSettingsMenu[] { */ #if defined(POW_DC) || defined(POW_QC) - {0, settings_enterPowerMenu, settings_displayPowerMenu, SettingsOptions::SettingsOptionsLength}, /*Power*/ + {0, settings_enterPowerMenu, settings_displayPowerMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*Power*/ #endif - {0, settings_enterSolderingMenu, settings_displaySolderingMenu, SettingsOptions::SettingsOptionsLength}, /*Soldering*/ - {0, settings_enterPowerSavingMenu, settings_displayPowerSavingMenu, SettingsOptions::SettingsOptionsLength}, /*Sleep Options Menu*/ - {0, settings_enterUIMenu, settings_displayUIMenu, SettingsOptions::SettingsOptionsLength}, /*UI Menu*/ - {0, settings_enterAdvancedMenu, settings_displayAdvancedMenu, SettingsOptions::SettingsOptionsLength}, /*Advanced Menu*/ - {0, settings_setLanguageSwitch, settings_displayLanguageSwitch, SettingsOptions::SettingsOptionsLength}, /*Language Switch*/ + {0, settings_enterSolderingMenu, settings_displaySolderingMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*Soldering*/ + {0, settings_enterPowerSavingMenu, settings_displayPowerSavingMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*Sleep Options Menu*/ + {0, settings_enterUIMenu, settings_displayUIMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*UI Menu*/ + {0, settings_enterAdvancedMenu, settings_displayAdvancedMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*Advanced Menu*/ + {0, settings_setLanguageSwitch, settings_displayLanguageSwitch, nullptr, SettingsOptions::SettingsOptionsLength}, /*Language Switch*/ { - 0, nullptr, nullptr, SettingsOptions::SettingsOptionsLength + 0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength } // end of menu marker. DO NOT REMOVE }; @@ -152,16 +152,16 @@ const menuitem powerMenu[] = { * Power Source */ #ifdef POW_DC - {SETTINGS_DESC(SettingsItemIndex::DCInCutoff), nullptr, settings_displayInputVRange, SettingsOptions::MinDCVoltageCells}, /*Voltage input*/ - {SETTINGS_DESC(SettingsItemIndex::MinVolCell), nullptr, settings_displayInputMinVRange, SettingsOptions::MinVoltageCells}, /*Minimum voltage input*/ + {SETTINGS_DESC(SettingsItemIndex::DCInCutoff), nullptr, settings_displayInputVRange, nullptr, SettingsOptions::MinDCVoltageCells}, /*Voltage input*/ + {SETTINGS_DESC(SettingsItemIndex::MinVolCell), nullptr, settings_displayInputMinVRange, nullptr, SettingsOptions::MinVoltageCells}, /*Minimum voltage input*/ #endif #ifdef POW_QC - {SETTINGS_DESC(SettingsItemIndex::QCMaxVoltage), nullptr, settings_displayQCInputV, SettingsOptions::QCIdealVoltage}, /*Voltage input*/ + {SETTINGS_DESC(SettingsItemIndex::QCMaxVoltage), nullptr, settings_displayQCInputV, nullptr, SettingsOptions::QCIdealVoltage}, /*Voltage input*/ #endif #ifdef POW_PD - {SETTINGS_DESC(SettingsItemIndex::PDNegTimeout), nullptr, settings_displayPDNegTimeout, SettingsOptions::PDNegTimeout}, /*PD timeout setup*/ + {SETTINGS_DESC(SettingsItemIndex::PDNegTimeout), nullptr, settings_displayPDNegTimeout, nullptr, SettingsOptions::PDNegTimeout}, /*PD timeout setup*/ #endif - {0, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE + {0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE }; #endif const menuitem solderingMenu[] = { @@ -172,12 +172,12 @@ const menuitem solderingMenu[] = { * Temp change short step * Temp change long step */ - {SETTINGS_DESC(SettingsItemIndex::BoostTemperature), settings_setBoostTemp, settings_displayBoostTemp, SettingsOptions::SettingsOptionsLength}, /*Boost Temp*/ - {SETTINGS_DESC(SettingsItemIndex::AutoStart), nullptr, settings_displayAutomaticStartMode, SettingsOptions::AutoStartMode}, /*Auto start*/ - {SETTINGS_DESC(SettingsItemIndex::TempChangeShortStep), nullptr, settings_displayTempChangeShortStep, SettingsOptions::TempChangeShortStep}, /*Temp change short step*/ - {SETTINGS_DESC(SettingsItemIndex::TempChangeLongStep), nullptr, settings_displayTempChangeLongStep, SettingsOptions::TempChangeLongStep}, /*Temp change long step*/ - {SETTINGS_DESC(SettingsItemIndex::LockingMode), nullptr, settings_displayLockingMode, SettingsOptions::LockingMode}, /*Locking Mode*/ - {0, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE + {SETTINGS_DESC(SettingsItemIndex::BoostTemperature), settings_setBoostTemp, settings_displayBoostTemp, nullptr, SettingsOptions::SettingsOptionsLength}, /*Boost Temp*/ + {SETTINGS_DESC(SettingsItemIndex::AutoStart), nullptr, settings_displayAutomaticStartMode, nullptr, SettingsOptions::AutoStartMode}, /*Auto start*/ + {SETTINGS_DESC(SettingsItemIndex::TempChangeShortStep), nullptr, settings_displayTempChangeShortStep, nullptr, SettingsOptions::TempChangeShortStep}, /*Temp change short step*/ + {SETTINGS_DESC(SettingsItemIndex::TempChangeLongStep), nullptr, settings_displayTempChangeLongStep, nullptr, SettingsOptions::TempChangeLongStep}, /*Temp change long step*/ + {SETTINGS_DESC(SettingsItemIndex::LockingMode), nullptr, settings_displayLockingMode, nullptr, SettingsOptions::LockingMode}, /*Locking Mode*/ + {0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE }; const menuitem UIMenu[] = { /* @@ -190,22 +190,22 @@ const menuitem UIMenu[] = { * Detailed IDLE * Detailed Soldering */ - {SETTINGS_DESC(SettingsItemIndex::TemperatureUnit), settings_setTempF, settings_displayTempF, + {SETTINGS_DESC(SettingsItemIndex::TemperatureUnit), settings_setTempF, settings_displayTempF, nullptr, SettingsOptions::SettingsOptionsLength}, /* Temperature units, this has to be the first element in the array to work with the logic in settings_enterUIMenu() */ #ifndef NO_DISPLAY_ROTATE - {SETTINGS_DESC(SettingsItemIndex::DisplayRotation), settings_setDisplayRotation, settings_displayDisplayRotation, SettingsOptions::SettingsOptionsLength}, /*Display Rotation*/ + {SETTINGS_DESC(SettingsItemIndex::DisplayRotation), settings_setDisplayRotation, settings_displayDisplayRotation, nullptr, SettingsOptions::SettingsOptionsLength}, /*Display Rotation*/ #endif - {SETTINGS_DESC(SettingsItemIndex::CooldownBlink), nullptr, settings_displayCoolingBlinkEnabled, SettingsOptions::CoolingTempBlink}, /*Cooling blink warning*/ - {SETTINGS_DESC(SettingsItemIndex::ScrollingSpeed), nullptr, settings_displayScrollSpeed, SettingsOptions::DescriptionScrollSpeed}, /*Scroll Speed for descriptions*/ - {SETTINGS_DESC(SettingsItemIndex::ReverseButtonTempChange), nullptr, settings_displayReverseButtonTempChangeEnabled, - SettingsOptions::ReverseButtonTempChangeEnabled}, /* Reverse Temp change buttons + - */ - {SETTINGS_DESC(SettingsItemIndex::AnimSpeed), nullptr, settings_displayAnimationSpeed, SettingsOptions::AnimationSpeed}, /*Animation Speed adjustment */ - {SETTINGS_DESC(SettingsItemIndex::AnimLoop), nullptr, settings_displayAnimationLoop, SettingsOptions::AnimationLoop}, /*Animation Loop switch */ - {SETTINGS_DESC(SettingsItemIndex::Brightness), nullptr, settings_displayBrightnessLevel, SettingsOptions::OLEDBrightness}, /*Brightness Level*/ - {SETTINGS_DESC(SettingsItemIndex::ColourInversion), nullptr, settings_displayInvertColor, SettingsOptions::OLEDInversion}, /*Invert screen colour*/ - {SETTINGS_DESC(SettingsItemIndex::AdvancedIdle), nullptr, settings_displayAdvancedIDLEScreens, SettingsOptions::DetailedIDLE}, /* Advanced idle screen*/ - {SETTINGS_DESC(SettingsItemIndex::AdvancedSoldering), nullptr, settings_displayAdvancedSolderingScreens, SettingsOptions::DetailedSoldering}, /* Advanced soldering screen*/ - {0, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE + {SETTINGS_DESC(SettingsItemIndex::CooldownBlink), nullptr, settings_displayCoolingBlinkEnabled, nullptr, SettingsOptions::CoolingTempBlink}, /*Cooling blink warning*/ + {SETTINGS_DESC(SettingsItemIndex::ScrollingSpeed), nullptr, settings_displayScrollSpeed, nullptr, SettingsOptions::DescriptionScrollSpeed}, /*Scroll Speed for descriptions*/ + {SETTINGS_DESC(SettingsItemIndex::ReverseButtonTempChange), nullptr, settings_displayReverseButtonTempChangeEnabled, nullptr, + SettingsOptions::ReverseButtonTempChangeEnabled}, /* Reverse Temp change buttons + - */ + {SETTINGS_DESC(SettingsItemIndex::AnimSpeed), nullptr, settings_displayAnimationSpeed, nullptr, SettingsOptions::AnimationSpeed}, /*Animation Speed adjustment */ + {SETTINGS_DESC(SettingsItemIndex::AnimLoop), nullptr, settings_displayAnimationLoop, nullptr, SettingsOptions::AnimationLoop}, /*Animation Loop switch */ + {SETTINGS_DESC(SettingsItemIndex::Brightness), nullptr, settings_displayBrightnessLevel, nullptr, SettingsOptions::OLEDBrightness}, /*Brightness Level*/ + {SETTINGS_DESC(SettingsItemIndex::ColourInversion), nullptr, settings_displayInvertColor, nullptr, SettingsOptions::OLEDInversion}, /*Invert screen colour*/ + {SETTINGS_DESC(SettingsItemIndex::AdvancedIdle), nullptr, settings_displayAdvancedIDLEScreens, nullptr, SettingsOptions::DetailedIDLE}, /* Advanced idle screen*/ + {SETTINGS_DESC(SettingsItemIndex::AdvancedSoldering), nullptr, settings_displayAdvancedSolderingScreens, nullptr, SettingsOptions::DetailedSoldering}, /* Advanced soldering screen*/ + {0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE }; const menuitem PowerSavingMenu[] = { /* @@ -215,15 +215,15 @@ const menuitem PowerSavingMenu[] = { * Motion Sensitivity */ #ifndef NO_SLEEP_MODE - {SETTINGS_DESC(SettingsItemIndex::SleepTemperature), settings_setSleepTemp, settings_displaySleepTemp, SettingsOptions::SettingsOptionsLength}, /*Sleep Temp*/ - {SETTINGS_DESC(SettingsItemIndex::SleepTimeout), nullptr, settings_displaySleepTime, SettingsOptions::SleepTime}, /*Sleep Time*/ + {SETTINGS_DESC(SettingsItemIndex::SleepTemperature), settings_setSleepTemp, settings_displaySleepTemp, nullptr, SettingsOptions::SettingsOptionsLength}, /*Sleep Temp*/ + {SETTINGS_DESC(SettingsItemIndex::SleepTimeout), nullptr, settings_displaySleepTime, nullptr, SettingsOptions::SleepTime}, /*Sleep Time*/ #endif - {SETTINGS_DESC(SettingsItemIndex::ShutdownTimeout), nullptr, settings_displayShutdownTime, SettingsOptions::ShutdownTime}, /*Shutdown Time*/ - {SETTINGS_DESC(SettingsItemIndex::MotionSensitivity), nullptr, settings_displaySensitivity, SettingsOptions::Sensitivity}, /* Motion Sensitivity*/ + {SETTINGS_DESC(SettingsItemIndex::ShutdownTimeout), nullptr, settings_displayShutdownTime, nullptr, SettingsOptions::ShutdownTime}, /*Shutdown Time*/ + {SETTINGS_DESC(SettingsItemIndex::MotionSensitivity), nullptr, settings_displaySensitivity, nullptr, SettingsOptions::Sensitivity}, /* Motion Sensitivity*/ #ifdef HALL_SENSOR - {SETTINGS_DESC(SettingsItemIndex::HallEffSensitivity), nullptr, settings_displayHallEffect, SettingsOptions::HallEffectSensitivity}, /* HallEffect Sensitivity*/ + {SETTINGS_DESC(SettingsItemIndex::HallEffSensitivity), nullptr, settings_displayHallEffect, nullptr, SettingsOptions::HallEffectSensitivity}, /* HallEffect Sensitivity*/ #endif - {0, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE + {0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE }; const menuitem advancedMenu[] = { @@ -238,14 +238,14 @@ const menuitem advancedMenu[] = { * Power Pulse Wait * Power Pulse Duration */ - {SETTINGS_DESC(SettingsItemIndex::PowerLimit), nullptr, settings_displayPowerLimit, SettingsOptions::PowerLimit}, /*Power limit*/ - {SETTINGS_DESC(SettingsItemIndex::SettingsReset), settings_setResetSettings, settings_displayResetSettings, SettingsOptions::SettingsOptionsLength}, /*Resets settings*/ - {SETTINGS_DESC(SettingsItemIndex::TemperatureCalibration), settings_setCalibrate, settings_displayCalibrate, SettingsOptions::SettingsOptionsLength}, /*Calibrate tip*/ - {SETTINGS_DESC(SettingsItemIndex::VoltageCalibration), settings_setCalibrateVIN, settings_displayCalibrateVIN, SettingsOptions::SettingsOptionsLength}, /*Voltage input cal*/ - {SETTINGS_DESC(SettingsItemIndex::PowerPulsePower), nullptr, settings_displayPowerPulse, SettingsOptions::KeepAwakePulse}, /*Power Pulse adjustment */ - {SETTINGS_DESC(SettingsItemIndex::PowerPulseWait), nullptr, settings_displayPowerPulseWait, SettingsOptions::KeepAwakePulseWait}, /*Power Pulse Wait adjustment*/ - {SETTINGS_DESC(SettingsItemIndex::PowerPulseDuration), nullptr, settings_displayPowerPulseDuration, SettingsOptions::KeepAwakePulseDuration}, /*Power Pulse Duration adjustment*/ - {0, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE + {SETTINGS_DESC(SettingsItemIndex::PowerLimit), nullptr, settings_displayPowerLimit, nullptr, SettingsOptions::PowerLimit}, /*Power limit*/ + {SETTINGS_DESC(SettingsItemIndex::SettingsReset), settings_setResetSettings, settings_displayResetSettings, nullptr, SettingsOptions::SettingsOptionsLength}, /*Resets settings*/ + {SETTINGS_DESC(SettingsItemIndex::TemperatureCalibration), settings_setCalibrate, settings_displayCalibrate, nullptr, SettingsOptions::SettingsOptionsLength}, /*Calibrate tip*/ + {SETTINGS_DESC(SettingsItemIndex::VoltageCalibration), settings_setCalibrateVIN, settings_displayCalibrateVIN, nullptr, SettingsOptions::SettingsOptionsLength}, /*Voltage input cal*/ + {SETTINGS_DESC(SettingsItemIndex::PowerPulsePower), nullptr, settings_displayPowerPulse, nullptr, SettingsOptions::KeepAwakePulse}, /*Power Pulse adjustment */ + {SETTINGS_DESC(SettingsItemIndex::PowerPulseWait), nullptr, settings_displayPowerPulseWait, nullptr, SettingsOptions::KeepAwakePulseWait}, /*Power Pulse Wait adjustment*/ + {SETTINGS_DESC(SettingsItemIndex::PowerPulseDuration), nullptr, settings_displayPowerPulseDuration, nullptr, SettingsOptions::KeepAwakePulseDuration}, /*Power Pulse Duration adjustment*/ + {0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE }; /** From e8d26c3159713b5abec1f89ee12317dd98112a3f Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:21:44 +1000 Subject: [PATCH 11/24] Draw no longer needs a return value --- source/Core/Inc/gui.hpp | 2 +- source/Core/Src/gui.cpp | 262 ++++++++++++++++------------------------ 2 files changed, 106 insertions(+), 158 deletions(-) diff --git a/source/Core/Inc/gui.hpp b/source/Core/Inc/gui.hpp index fe1aee87..2d9f8b05 100644 --- a/source/Core/Inc/gui.hpp +++ b/source/Core/Inc/gui.hpp @@ -26,7 +26,7 @@ typedef struct { uint8_t description; // return true if increment reached the maximum value bool (*const incrementHandler)(void); - bool (*const draw)(void); + void (*const draw)(void); bool (*const isVisible)(void); // If this is set, we will automatically use the settings increment handler instead, set >= num settings to disable SettingsOptions autoSettingOption; diff --git a/source/Core/Src/gui.cpp b/source/Core/Src/gui.cpp index 5d137dcd..39c7cd1d 100644 --- a/source/Core/Src/gui.cpp +++ b/source/Core/Src/gui.cpp @@ -17,71 +17,72 @@ void gui_Menu(const menuitem *menu); #ifdef POW_DC -static bool settings_displayInputVRange(void); -static bool settings_displayInputMinVRange(void); +static void settings_displayInputVRange(void); +static void settings_displayInputMinVRange(void); #endif #ifdef POW_QC -static bool settings_displayQCInputV(void); +static void settings_displayQCInputV(void); #endif #ifdef POW_PD -static bool settings_displayPDNegTimeout(void); +static void settings_displayPDNegTimeout(void); #endif #ifndef NO_SLEEP_MODE static bool settings_setSleepTemp(void); -static bool settings_displaySleepTemp(void); -static bool settings_displaySleepTime(void); +static void settings_displaySleepTemp(void); +static void settings_displaySleepTime(void); #endif -static bool settings_displayShutdownTime(void); -static bool settings_displaySensitivity(void); +static void settings_displayShutdownTime(void); +static void settings_displaySensitivity(void); static bool settings_setTempF(void); -static bool settings_displayTempF(void); -static bool settings_displayAdvancedSolderingScreens(void); -static bool settings_displayAdvancedIDLEScreens(void); -static bool settings_displayScrollSpeed(void); -static bool settings_displayPowerLimit(void); +static void settings_displayTempF(void); +static void settings_displayAdvancedSolderingScreens(void); +static void settings_displayAdvancedIDLEScreens(void); +static void settings_displayScrollSpeed(void); +static void settings_displayPowerLimit(void); #ifndef NO_DISPLAY_ROTATE static bool settings_setDisplayRotation(void); -static bool settings_displayDisplayRotation(void); +static void settings_displayDisplayRotation(void); #endif static bool settings_setBoostTemp(void); -static bool settings_displayBoostTemp(void); -static bool settings_displayAutomaticStartMode(void); -static bool settings_displayLockingMode(void); -static bool settings_displayCoolingBlinkEnabled(void); +static void settings_displayBoostTemp(void); +static void settings_displayAutomaticStartMode(void); +static void settings_displayLockingMode(void); +static void settings_displayCoolingBlinkEnabled(void); static bool settings_setResetSettings(void); -static bool settings_displayResetSettings(void); +static void settings_displayResetSettings(void); static bool settings_setCalibrate(void); -static bool settings_displayCalibrate(void); +static void settings_displayCalibrate(void); static bool settings_setCalibrateVIN(void); -static bool settings_displayCalibrateVIN(void); -static bool settings_displayReverseButtonTempChangeEnabled(void); -static bool settings_displayTempChangeShortStep(void); -static bool settings_displayTempChangeLongStep(void); -static bool settings_displayPowerPulse(void); -static bool settings_displayAnimationSpeed(void); -static bool settings_displayAnimationLoop(void); -static bool settings_displayPowerPulseWait(void); -static bool settings_displayPowerPulseDuration(void); -static bool settings_displayBrightnessLevel(void); -static bool settings_displayInvertColor(void); +static void settings_displayCalibrateVIN(void); +static void settings_displayReverseButtonTempChangeEnabled(void); +static void settings_displayTempChangeShortStep(void); +static void settings_displayTempChangeLongStep(void); +static void settings_displayPowerPulse(void); +static void settings_displayAnimationSpeed(void); +static void settings_displayAnimationLoop(void); +static void settings_displayPowerPulseWait(void); +static bool settings_showPowerPulseOptions(void); +static void settings_displayPowerPulseDuration(void); +static void settings_displayBrightnessLevel(void); +static void settings_displayInvertColor(void); #ifdef HALL_SENSOR -static bool settings_displayHallEffect(void); +static void settings_displayHallEffect(void); #endif // Menu functions #if defined(POW_DC) || defined(POW_QC) -static bool settings_displayPowerMenu(void); +static void settings_displayPowerMenu(void); static bool settings_enterPowerMenu(void); #endif -static bool settings_displaySolderingMenu(void); +static void settings_displaySolderingMenu(void); static bool settings_enterSolderingMenu(void); -static bool settings_displayPowerSavingMenu(void); +static void settings_displayPowerSavingMenu(void); static bool settings_enterPowerSavingMenu(void); -static bool settings_displayUIMenu(void); +static void settings_displayUIMenu(void); static bool settings_enterUIMenu(void); -static bool settings_displayAdvancedMenu(void); +static void settings_displayAdvancedMenu(void); static bool settings_enterAdvancedMenu(void); /* * Root Settings Menu @@ -136,11 +137,11 @@ const menuitem rootSettingsMenu[] { #if defined(POW_DC) || defined(POW_QC) {0, settings_enterPowerMenu, settings_displayPowerMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*Power*/ #endif - {0, settings_enterSolderingMenu, settings_displaySolderingMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*Soldering*/ - {0, settings_enterPowerSavingMenu, settings_displayPowerSavingMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*Sleep Options Menu*/ - {0, settings_enterUIMenu, settings_displayUIMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*UI Menu*/ - {0, settings_enterAdvancedMenu, settings_displayAdvancedMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*Advanced Menu*/ - {0, settings_setLanguageSwitch, settings_displayLanguageSwitch, nullptr, SettingsOptions::SettingsOptionsLength}, /*Language Switch*/ + {0, settings_enterSolderingMenu, settings_displaySolderingMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*Soldering*/ + {0, settings_enterPowerSavingMenu, settings_displayPowerSavingMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*Sleep Options Menu*/ + {0, settings_enterUIMenu, settings_displayUIMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*UI Menu*/ + {0, settings_enterAdvancedMenu, settings_displayAdvancedMenu, nullptr, SettingsOptions::SettingsOptionsLength}, /*Advanced Menu*/ + {0, settings_setLanguageSwitch, settings_displayLanguageSwitch, settings_showLanguageSwitch, SettingsOptions::SettingsOptionsLength}, /*Language Switch*/ { 0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength } // end of menu marker. DO NOT REMOVE @@ -238,13 +239,14 @@ const menuitem advancedMenu[] = { * Power Pulse Wait * Power Pulse Duration */ - {SETTINGS_DESC(SettingsItemIndex::PowerLimit), nullptr, settings_displayPowerLimit, nullptr, SettingsOptions::PowerLimit}, /*Power limit*/ - {SETTINGS_DESC(SettingsItemIndex::SettingsReset), settings_setResetSettings, settings_displayResetSettings, nullptr, SettingsOptions::SettingsOptionsLength}, /*Resets settings*/ - {SETTINGS_DESC(SettingsItemIndex::TemperatureCalibration), settings_setCalibrate, settings_displayCalibrate, nullptr, SettingsOptions::SettingsOptionsLength}, /*Calibrate tip*/ - {SETTINGS_DESC(SettingsItemIndex::VoltageCalibration), settings_setCalibrateVIN, settings_displayCalibrateVIN, nullptr, SettingsOptions::SettingsOptionsLength}, /*Voltage input cal*/ - {SETTINGS_DESC(SettingsItemIndex::PowerPulsePower), nullptr, settings_displayPowerPulse, nullptr, SettingsOptions::KeepAwakePulse}, /*Power Pulse adjustment */ - {SETTINGS_DESC(SettingsItemIndex::PowerPulseWait), nullptr, settings_displayPowerPulseWait, nullptr, SettingsOptions::KeepAwakePulseWait}, /*Power Pulse Wait adjustment*/ - {SETTINGS_DESC(SettingsItemIndex::PowerPulseDuration), nullptr, settings_displayPowerPulseDuration, nullptr, SettingsOptions::KeepAwakePulseDuration}, /*Power Pulse Duration adjustment*/ + {SETTINGS_DESC(SettingsItemIndex::PowerLimit), nullptr, settings_displayPowerLimit, nullptr, SettingsOptions::PowerLimit}, /*Power limit*/ + {SETTINGS_DESC(SettingsItemIndex::SettingsReset), settings_setResetSettings, settings_displayResetSettings, nullptr, SettingsOptions::SettingsOptionsLength}, /*Resets settings*/ + {SETTINGS_DESC(SettingsItemIndex::TemperatureCalibration), settings_setCalibrate, settings_displayCalibrate, nullptr, SettingsOptions::SettingsOptionsLength}, /*Calibrate tip*/ + {SETTINGS_DESC(SettingsItemIndex::VoltageCalibration), settings_setCalibrateVIN, settings_displayCalibrateVIN, nullptr, SettingsOptions::SettingsOptionsLength}, /*Voltage input cal*/ + {SETTINGS_DESC(SettingsItemIndex::PowerPulsePower), nullptr, settings_displayPowerPulse, nullptr, SettingsOptions::KeepAwakePulse}, /*Power Pulse adjustment */ + {SETTINGS_DESC(SettingsItemIndex::PowerPulseWait), nullptr, settings_displayPowerPulseWait, settings_showPowerPulseOptions, SettingsOptions::KeepAwakePulseWait}, /*Power Pulse Wait adjustment*/ + {SETTINGS_DESC(SettingsItemIndex::PowerPulseDuration), nullptr, settings_displayPowerPulseDuration, settings_showPowerPulseOptions, + SettingsOptions::KeepAwakePulseDuration}, /*Power Pulse Duration adjustment*/ {0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE }; @@ -296,7 +298,7 @@ static int userConfirmation(const char *message) { } #ifdef POW_DC -static bool settings_displayInputVRange(void) { +static void settings_displayInputVRange(void) { printShortDescription(SettingsItemIndex::DCInCutoff, 6); if (getSettingValue(SettingsOptions::MinDCVoltageCells)) { @@ -305,10 +307,9 @@ static bool settings_displayInputVRange(void) { } else { OLED::print(SymbolDC, FontStyle::LARGE); } - return false; } -static bool settings_displayInputMinVRange(void) { +static void settings_displayInputMinVRange(void) { if (getSettingValue(SettingsOptions::MinDCVoltageCells)) { printShortDescription(SettingsItemIndex::MinVolCell, 4); OLED::printNumber(getSettingValue(SettingsOptions::MinVoltageCells) / 10, 2, FontStyle::LARGE); @@ -318,12 +319,11 @@ static bool settings_displayInputMinVRange(void) { printShortDescription(SettingsItemIndex::MinVolCell, 5); OLED::print(translatedString(Tr->SettingNAChar), FontStyle::LARGE); } - return false; } #endif #ifdef POW_QC -static bool settings_displayQCInputV(void) { +static void settings_displayQCInputV(void) { printShortDescription(SettingsItemIndex::QCMaxVoltage, 4); // These are only used in QC modes // Allows setting the voltage negotiated for QC @@ -332,14 +332,13 @@ static bool settings_displayQCInputV(void) { OLED::print(SymbolDot, FontStyle::LARGE); OLED::printNumber(voltage % 10, 1, FontStyle::LARGE); OLED::print(SymbolVolts, FontStyle::LARGE); - return false; } #endif #ifdef POW_PD -static bool settings_displayPDNegTimeout(void) { +static void settings_displayPDNegTimeout(void) { printShortDescription(SettingsItemIndex::PDNegTimeout, 5); auto value = getSettingValue(SettingsOptions::PDNegTimeout); if (value == 0) { @@ -347,7 +346,6 @@ static bool settings_displayPDNegTimeout(void) { } else { OLED::printNumber(value, 2, FontStyle::LARGE); } - return false; } #endif @@ -370,13 +368,12 @@ static bool settings_setSleepTemp(void) { } } -static bool settings_displaySleepTemp(void) { +static void settings_displaySleepTemp(void) { printShortDescription(SettingsItemIndex::SleepTemperature, 5); OLED::printNumber(getSettingValue(SettingsOptions::SleepTemp), 3, FontStyle::LARGE); - return false; } -static bool settings_displaySleepTime(void) { +static void settings_displaySleepTime(void) { printShortDescription(SettingsItemIndex::SleepTimeout, 5); if (getSettingValue(SettingsOptions::SleepTime) == 0) { OLED::print(translatedString(Tr->OffString), FontStyle::LARGE); @@ -387,11 +384,10 @@ static bool settings_displaySleepTime(void) { OLED::printNumber(getSettingValue(SettingsOptions::SleepTime) - 5, 2, FontStyle::LARGE); OLED::print(SymbolMinutes, FontStyle::LARGE); } - return false; } #endif -static bool settings_displayShutdownTime(void) { +static void settings_displayShutdownTime(void) { printShortDescription(SettingsItemIndex::ShutdownTimeout, 5); if (getSettingValue(SettingsOptions::ShutdownTime) == 0) { OLED::print(translatedString(Tr->OffString), FontStyle::LARGE); @@ -399,7 +395,6 @@ static bool settings_displayShutdownTime(void) { OLED::printNumber(getSettingValue(SettingsOptions::ShutdownTime), 2, FontStyle::LARGE); OLED::print(SymbolMinutes, FontStyle::LARGE); } - return false; } static bool settings_setTempF(void) { bool res = nextSettingValue(SettingsOptions::TemperatureInF); @@ -434,33 +429,29 @@ static bool settings_setTempF(void) { return res; } -static bool settings_displayTempF(void) { +static void settings_displayTempF(void) { printShortDescription(SettingsItemIndex::TemperatureUnit, 7); OLED::print((getSettingValue(SettingsOptions::TemperatureInF)) ? SymbolDegF : SymbolDegC, FontStyle::LARGE); - return false; } -static bool settings_displaySensitivity(void) { +static void settings_displaySensitivity(void) { printShortDescription(SettingsItemIndex::MotionSensitivity, 7); OLED::printNumber(getSettingValue(SettingsOptions::Sensitivity), 1, FontStyle::LARGE, false); - return false; } -static bool settings_displayAdvancedSolderingScreens(void) { +static void settings_displayAdvancedSolderingScreens(void) { printShortDescription(SettingsItemIndex::AdvancedSoldering, 7); OLED::drawCheckbox(getSettingValue(SettingsOptions::DetailedSoldering)); - return false; } -static bool settings_displayAdvancedIDLEScreens(void) { +static void settings_displayAdvancedIDLEScreens(void) { printShortDescription(SettingsItemIndex::AdvancedIdle, 7); OLED::drawCheckbox(getSettingValue(SettingsOptions::DetailedIDLE)); - return false; } -static bool settings_displayPowerLimit(void) { +static void settings_displayPowerLimit(void) { printShortDescription(SettingsItemIndex::PowerLimit, 5); if (getSettingValue(SettingsOptions::PowerLimit) == 0) { OLED::print(translatedString(Tr->OffString), FontStyle::LARGE); @@ -468,13 +459,11 @@ static bool settings_displayPowerLimit(void) { OLED::printNumber(getSettingValue(SettingsOptions::PowerLimit), 2, FontStyle::LARGE); OLED::print(SymbolWatts, FontStyle::LARGE); } - return false; } -static bool settings_displayScrollSpeed(void) { +static void settings_displayScrollSpeed(void) { printShortDescription(SettingsItemIndex::ScrollingSpeed, 7); OLED::print(translatedString((getSettingValue(SettingsOptions::DescriptionScrollSpeed)) ? Tr->SettingFastChar : Tr->SettingSlowChar), FontStyle::LARGE); - return false; } #ifndef NO_DISPLAY_ROTATE @@ -496,7 +485,7 @@ static bool settings_setDisplayRotation(void) { return res; } -static bool settings_displayDisplayRotation(void) { +static void settings_displayDisplayRotation(void) { printShortDescription(SettingsItemIndex::DisplayRotation, 7); switch (getSettingValue(SettingsOptions::OrientationMode)) { @@ -513,7 +502,6 @@ static bool settings_displayDisplayRotation(void) { OLED::print(translatedString(Tr->SettingRightChar), FontStyle::LARGE); break; } - return false; } #endif static bool settings_setBoostTemp(void) { @@ -543,17 +531,16 @@ static bool settings_setBoostTemp(void) { return value == MAX_TEMP_C; } -static bool settings_displayBoostTemp(void) { +static void settings_displayBoostTemp(void) { printShortDescription(SettingsItemIndex::BoostTemperature, 5); if (getSettingValue(SettingsOptions::BoostTemp)) { OLED::printNumber(getSettingValue(SettingsOptions::BoostTemp), 3, FontStyle::LARGE); } else { OLED::print(translatedString(Tr->OffString), FontStyle::LARGE); } - return false; } -static bool settings_displayAutomaticStartMode(void) { +static void settings_displayAutomaticStartMode(void) { printShortDescription(SettingsItemIndex::AutoStart, 7); switch (getSettingValue(SettingsOptions::AutoStartMode)) { @@ -573,10 +560,9 @@ static bool settings_displayAutomaticStartMode(void) { OLED::print(translatedString(Tr->SettingStartNoneChar), FontStyle::LARGE); break; } - return false; } -static bool settings_displayLockingMode(void) { +static void settings_displayLockingMode(void) { printShortDescription(SettingsItemIndex::LockingMode, 7); switch (getSettingValue(SettingsOptions::LockingMode)) { @@ -593,13 +579,11 @@ static bool settings_displayLockingMode(void) { OLED::print(translatedString(Tr->SettingLockDisableChar), FontStyle::LARGE); break; } - return false; } -static bool settings_displayCoolingBlinkEnabled(void) { +static void settings_displayCoolingBlinkEnabled(void) { printShortDescription(SettingsItemIndex::CooldownBlink, 7); OLED::drawCheckbox(getSettingValue(SettingsOptions::CoolingTempBlink)); - return false; } static bool settings_setResetSettings(void) { @@ -610,10 +594,7 @@ static bool settings_setResetSettings(void) { return false; } -static bool settings_displayResetSettings(void) { - printShortDescription(SettingsItemIndex::SettingsReset, 7); - return false; -} +static void settings_displayResetSettings(void) { printShortDescription(SettingsItemIndex::SettingsReset, 7); } static void setTipOffset() { uint16_t setoffset = 0; @@ -657,10 +638,7 @@ static bool settings_setCalibrate(void) { return false; } -static bool settings_displayCalibrate(void) { - printShortDescription(SettingsItemIndex::TemperatureCalibration, 5); - return false; -} +static void settings_displayCalibrate(void) { printShortDescription(SettingsItemIndex::TemperatureCalibration, 5); } static bool settings_setCalibrateVIN(void) { // Jump to the voltage calibration subscreen @@ -701,25 +679,22 @@ static bool settings_setCalibrateVIN(void) { return false; } -static bool settings_displayReverseButtonTempChangeEnabled(void) { +static void settings_displayReverseButtonTempChangeEnabled(void) { printShortDescription(SettingsItemIndex::ReverseButtonTempChange, 7); OLED::drawCheckbox(getSettingValue(SettingsOptions::ReverseButtonTempChangeEnabled)); - return false; } -static bool settings_displayTempChangeShortStep(void) { +static void settings_displayTempChangeShortStep(void) { printShortDescription(SettingsItemIndex::TempChangeShortStep, 6); OLED::printNumber(getSettingValue(SettingsOptions::TempChangeShortStep), 2, FontStyle::LARGE); - return false; } -static bool settings_displayTempChangeLongStep(void) { +static void settings_displayTempChangeLongStep(void) { printShortDescription(SettingsItemIndex::TempChangeLongStep, 6); OLED::printNumber(getSettingValue(SettingsOptions::TempChangeLongStep), 2, FontStyle::LARGE); - return false; } -static bool settings_displayPowerPulse(void) { +static void settings_displayPowerPulse(void) { printShortDescription(SettingsItemIndex::PowerPulsePower, 5); if (getSettingValue(SettingsOptions::KeepAwakePulse)) { OLED::printNumber(getSettingValue(SettingsOptions::KeepAwakePulse) / 10, 1, FontStyle::LARGE); @@ -728,16 +703,14 @@ static bool settings_displayPowerPulse(void) { } else { OLED::print(translatedString(Tr->OffString), FontStyle::LARGE); } - return false; } -static bool settings_displayAnimationLoop(void) { +static void settings_displayAnimationLoop(void) { printShortDescription(SettingsItemIndex::AnimLoop, 7); OLED::drawCheckbox(getSettingValue(SettingsOptions::AnimationLoop)); - return false; } -static bool settings_displayAnimationSpeed(void) { +static void settings_displayAnimationSpeed(void) { printShortDescription(SettingsItemIndex::AnimSpeed, 7); switch (getSettingValue(SettingsOptions::AnimationSpeed)) { case settingOffSpeed_t::SLOW: @@ -753,40 +726,29 @@ static bool settings_displayAnimationSpeed(void) { OLED::print(translatedString(Tr->SettingOffChar), FontStyle::LARGE); break; } - return false; } -static bool settings_displayPowerPulseWait(void) { - if (getSettingValue(SettingsOptions::KeepAwakePulse)) { - printShortDescription(SettingsItemIndex::PowerPulseWait, 7); - OLED::printNumber(getSettingValue(SettingsOptions::KeepAwakePulseWait), 1, FontStyle::LARGE); - return false; - } else { - return true; // skip - } +static bool settings_showPowerPulseOptions(void) { return getSettingValue(SettingsOptions::KeepAwakePulse) > 0; } +static void settings_displayPowerPulseWait(void) { + printShortDescription(SettingsItemIndex::PowerPulseWait, 7); + OLED::printNumber(getSettingValue(SettingsOptions::KeepAwakePulseWait), 1, FontStyle::LARGE); } -static bool settings_displayPowerPulseDuration(void) { - if (getSettingValue(SettingsOptions::KeepAwakePulse)) { - printShortDescription(SettingsItemIndex::PowerPulseDuration, 7); - OLED::printNumber(getSettingValue(SettingsOptions::KeepAwakePulseDuration), 1, FontStyle::LARGE); - return false; - } else { - return true; // skip - } +static void settings_displayPowerPulseDuration(void) { + printShortDescription(SettingsItemIndex::PowerPulseDuration, 7); + OLED::printNumber(getSettingValue(SettingsOptions::KeepAwakePulseDuration), 1, FontStyle::LARGE); } -static bool settings_displayBrightnessLevel(void) { +static void settings_displayBrightnessLevel(void) { OLED::drawArea(0, 0, 16, 16, brightnessIcon); OLED::setCursor(5 * FONT_12_WIDTH - 2, 0); // printShortDescription(SettingsItemIndex::Brightness, 7); OLED::printNumber(getSettingValue(SettingsOptions::OLEDBrightness), 3, FontStyle::LARGE); // While not optimal to apply this here, it is _very_ convienient OLED::setBrightness(getSettingValue(SettingsOptions::OLEDBrightness)); - return false; } -static bool settings_displayInvertColor(void) { +static void settings_displayInvertColor(void) { OLED::drawArea(0, 0, 24, 16, invertDisplayIcon); OLED::setCursor(7 * FONT_12_WIDTH - 2, 0); // printShortDescription(SettingsItemIndex::ColourInversion, 7); @@ -794,11 +756,10 @@ static bool settings_displayInvertColor(void) { OLED::drawCheckbox(getSettingValue(SettingsOptions::OLEDInversion)); // While not optimal to apply this here, it is _very_ convienient OLED::setInverseDisplay(getSettingValue(SettingsOptions::OLEDInversion)); - return false; } #ifdef HALL_SENSOR -static bool settings_displayHallEffect(void) { +static void settings_displayHallEffect(void) { printShortDescription(SettingsItemIndex::HallEffSensitivity, 7); switch (getSettingValue(SettingsOptions::HallEffectSensitivity)) { case 1: @@ -815,7 +776,6 @@ static bool settings_displayHallEffect(void) { OLED::print(translatedString(Tr->SettingSensitivityOff), FontStyle::LARGE); break; } - return false; } #endif @@ -860,53 +820,35 @@ static void displayMenu(size_t index) { } // Draw symbol // 16 pixel wide image - // 2 pixel wide scrolling indicator + // less 2 pixel wide scrolling indicator OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, (&SettingsMenuIcons[index][(16 * 2) * currentFrame])); } -static bool settings_displayCalibrateVIN(void) { - printShortDescription(SettingsItemIndex::VoltageCalibration, 5); - return false; -} +static void settings_displayCalibrateVIN(void) { printShortDescription(SettingsItemIndex::VoltageCalibration, 5); } #if defined(POW_DC) || defined(POW_QC) -static bool settings_displayPowerMenu(void) { - displayMenu(0); - return false; -} +static void settings_displayPowerMenu(void) { displayMenu(0); } static bool settings_enterPowerMenu(void) { gui_Menu(powerMenu); return false; } #endif -static bool settings_displaySolderingMenu(void) { - displayMenu(1); - return false; -} +static void settings_displaySolderingMenu(void) { displayMenu(1); } static bool settings_enterSolderingMenu(void) { gui_Menu(solderingMenu); return false; } -static bool settings_displayPowerSavingMenu(void) { - displayMenu(2); - return false; -} +static void settings_displayPowerSavingMenu(void) { displayMenu(2); } static bool settings_enterPowerSavingMenu(void) { gui_Menu(PowerSavingMenu); return false; } -static bool settings_displayUIMenu(void) { - displayMenu(3); - return false; -} +static void settings_displayUIMenu(void) { displayMenu(3); } static bool settings_enterUIMenu(void) { gui_Menu(HasFahrenheit ? UIMenu : UIMenu + 1); return false; } -static bool settings_displayAdvancedMenu(void) { - displayMenu(4); - return false; -} +static void settings_displayAdvancedMenu(void) { displayMenu(4); } static bool settings_enterAdvancedMenu(void) { gui_Menu(advancedMenu); return false; @@ -940,7 +882,11 @@ void gui_Menu(const menuitem *menu) { ScrollMessage scrollMessage; for (uint8_t i = 0; menu[i].draw != nullptr; i++) { - scrollContentSize += 1; + if (menu[i].isVisible == nullptr) { + scrollContentSize += 1; // Always visible + } else if (menu[i].isVisible()) { + scrollContentSize += 1; // Selectively visible and chosen to show + } } while ((menu[currentScreen].draw != nullptr) && earlyExit == false) { @@ -952,10 +898,12 @@ void gui_Menu(const menuitem *menu) { // to keep the primary framebuffer intact for the upcoming transition // animation. OLED::useSecondaryFramebuffer(true); - if (menu[currentScreen].draw()) { - currentScreen++; - OLED::useSecondaryFramebuffer(false); - continue; + if (menu[currentScreen].isVisible != nullptr) { + if (!menu[currentScreen].isVisible()) { + currentScreen++; + OLED::useSecondaryFramebuffer(false); + continue; + } } animOpenState = true; From 1bb9254365061e37882879906216b8a41aca78c1 Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:21:50 +1000 Subject: [PATCH 12/24] Update translation --- source/Core/Inc/Translation.h | 3 ++- source/Core/LangSupport/lang_multi.cpp | 5 +---- source/Core/LangSupport/lang_single.cpp | 5 ++--- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/source/Core/Inc/Translation.h b/source/Core/Inc/Translation.h index 4f601fb8..f90d606c 100644 --- a/source/Core/Inc/Translation.h +++ b/source/Core/Inc/Translation.h @@ -145,7 +145,8 @@ constexpr uint8_t settings_item_index(const SettingsItemIndex i) { return static const char *translatedString(uint16_t index); void prepareTranslations(); -bool settings_displayLanguageSwitch(void); +void settings_displayLanguageSwitch(void); +bool settings_showLanguageSwitch(void); bool settings_setLanguageSwitch(void); #endif /* TRANSLATION_H_ */ diff --git a/source/Core/LangSupport/lang_multi.cpp b/source/Core/LangSupport/lang_multi.cpp index c612d853..eea4176e 100644 --- a/source/Core/LangSupport/lang_multi.cpp +++ b/source/Core/LangSupport/lang_multi.cpp @@ -85,7 +85,4 @@ bool settings_setLanguageSwitch(void) { return selectedLangIndex == (LanguageCount - 1); } -bool settings_displayLanguageSwitch(void) { - OLED::printWholeScreen(translatedString(Tr->SettingsShortNames[static_cast(SettingsItemIndex::LanguageSwitch)])); - return false; -} +void settings_displayLanguageSwitch(void) { OLED::printWholeScreen(translatedString(Tr->SettingsShortNames[static_cast(SettingsItemIndex::LanguageSwitch)])); } diff --git a/source/Core/LangSupport/lang_single.cpp b/source/Core/LangSupport/lang_single.cpp index 75258521..019c0938 100644 --- a/source/Core/LangSupport/lang_single.cpp +++ b/source/Core/LangSupport/lang_single.cpp @@ -2,6 +2,5 @@ bool settings_setLanguageSwitch(void) { return false; } -bool settings_displayLanguageSwitch(void) { - return true; // skip -} +void settings_displayLanguageSwitch(void) {} +bool settings_showLanguageSwitch(void) { return false; } From 17917404dfc0b71e1e70d7a5a1018dcbdf2b494e Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:27:39 +1000 Subject: [PATCH 13/24] Fix formatting --- source/Core/Threads/MOVThread.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/source/Core/Threads/MOVThread.cpp b/source/Core/Threads/MOVThread.cpp index 7e410170..c4956544 100644 --- a/source/Core/Threads/MOVThread.cpp +++ b/source/Core/Threads/MOVThread.cpp @@ -24,13 +24,7 @@ #include "stdlib.h" #include "task.h" -enum class AccelType { - MMA=1, - LIS=2, - BMA=3, - MSA=4, - SC7=5, - None=99 }; +enum class AccelType { MMA = 1, LIS = 2, BMA = 3, MSA = 4, SC7 = 5, None = 99 }; #define MOVFilter 8 uint8_t accelInit = 0; @@ -85,7 +79,7 @@ void detectAccelerometerVersion() { } inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation &rotation) { #ifdef ACCEL_MMA - if (DetectedAccelerometerVersion == (int)AccelType::MMA) { + if (DetectedAccelerometerVersion == (int)AccelType::MMA) { MMA8652FC::getAxisReadings(tx, ty, tz); rotation = MMA8652FC::getOrientation(); } else From c1f9442ec789d8e3c505fec2f8eb5f1d9ce16c4f Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:30:40 +1000 Subject: [PATCH 14/24] Move accelType to header for reachability, change type of DetectedAccelerometerVersion to suit --- source/Core/Inc/main.hpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/Core/Inc/main.hpp b/source/Core/Inc/main.hpp index a139694c..7cfa6a1e 100644 --- a/source/Core/Inc/main.hpp +++ b/source/Core/Inc/main.hpp @@ -3,7 +3,6 @@ #include "OLED.hpp" #include "Setup.h" -extern uint8_t DetectedAccelerometerVersion; extern uint32_t currentTempTargetDegC; extern bool settingsWereReset; extern bool usb_pd_available; @@ -13,8 +12,6 @@ extern "C" { void vApplicationStackOverflowHook(TaskHandle_t *pxTask, signed portCHAR *pcTaskName); -#define NO_DETECTED_ACCELEROMETER 99 -#define ACCELEROMETERS_SCANNING 100 // Threads void startGUITask(void const *argument); void startPIDTask(void const *argument); @@ -26,5 +23,9 @@ extern uint8_t accelInit; extern TickType_t lastMovementTime; #ifdef __cplusplus } +// Accelerometer type +enum class AccelType { MMA = 1, LIS = 2, BMA = 3, MSA = 4, SC7 = 5, None = 99, Scanning = 100 }; +extern AccelType DetectedAccelerometerVersion; + #endif #endif /* __MAIN_H */ From 0619ada6d94aa7a3bf45aacc3cbf6a7c5d3306a3 Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:31:10 +1000 Subject: [PATCH 15/24] Update type of DetectedAccelerometerVersion --- source/Core/Src/main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/Core/Src/main.cpp b/source/Core/Src/main.cpp index 451dd2d2..e2e891cc 100644 --- a/source/Core/Src/main.cpp +++ b/source/Core/Src/main.cpp @@ -9,8 +9,8 @@ #include "Settings.h" #include "cmsis_os.h" #include "power.hpp" -uint8_t DetectedAccelerometerVersion = 0; -bool settingsWereReset = false; +AccelType DetectedAccelerometerVersion = AccelType::Scanning; +bool settingsWereReset = false; // FreeRTOS variables osThreadId GUITaskHandle; From 04fce5d6692950f049ebc18cdfec5289c61b367c Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:31:17 +1000 Subject: [PATCH 16/24] Fix enum annocations --- source/Core/Threads/GUIThread.cpp | 4 ++-- source/Core/Threads/MOVThread.cpp | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/source/Core/Threads/GUIThread.cpp b/source/Core/Threads/GUIThread.cpp index d3add6ca..f53bd619 100644 --- a/source/Core/Threads/GUIThread.cpp +++ b/source/Core/Threads/GUIThread.cpp @@ -768,11 +768,11 @@ void showWarnings() { // We also want to alert if accel or pd is not detected / not responding // In this case though, we dont want to nag the user _too_ much // So only show first 2 times - while (DetectedAccelerometerVersion == ACCELEROMETERS_SCANNING) { + while (DetectedAccelerometerVersion == AccelType::Scanning) { osDelay(5); } // Display alert if accelerometer is not detected - if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER) { + if (DetectedAccelerometerVersion == AccelType::None) { if (getSettingValue(SettingsOptions::AccelMissingWarningCounter) < 2) { nextSettingValue(SettingsOptions::AccelMissingWarningCounter); saveSettings(); diff --git a/source/Core/Threads/MOVThread.cpp b/source/Core/Threads/MOVThread.cpp index c4956544..6f0524ca 100644 --- a/source/Core/Threads/MOVThread.cpp +++ b/source/Core/Threads/MOVThread.cpp @@ -24,14 +24,12 @@ #include "stdlib.h" #include "task.h" -enum class AccelType { MMA = 1, LIS = 2, BMA = 3, MSA = 4, SC7 = 5, None = 99 }; - #define MOVFilter 8 uint8_t accelInit = 0; TickType_t lastMovementTime = 0; void detectAccelerometerVersion() { - DetectedAccelerometerVersion = ACCELEROMETERS_SCANNING; + DetectedAccelerometerVersion = AccelType::Scanning; #ifdef ACCEL_MMA if (MMA8652FC::detect()) { if (MMA8652FC::initalize()) { @@ -74,7 +72,7 @@ void detectAccelerometerVersion() { { // disable imu sensitivity setSettingValue(SettingsOptions::Sensitivity, 0); - DetectedAccelerometerVersion = NO_DETECTED_ACCELEROMETER; + DetectedAccelerometerVersion = AccelType::None; } } inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation &rotation) { From 68038038a7788d07647f6fd7cfab23029e700c39 Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:34:41 +1000 Subject: [PATCH 17/24] Make enum in order --- source/Core/Inc/main.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/source/Core/Inc/main.hpp b/source/Core/Inc/main.hpp index 7cfa6a1e..42ee98e0 100644 --- a/source/Core/Inc/main.hpp +++ b/source/Core/Inc/main.hpp @@ -24,7 +24,15 @@ extern TickType_t lastMovementTime; #ifdef __cplusplus } // Accelerometer type -enum class AccelType { MMA = 1, LIS = 2, BMA = 3, MSA = 4, SC7 = 5, None = 99, Scanning = 100 }; +enum class AccelType { + Scanning = 0, + None = 1, + MMA = 2, + LIS = 3, + BMA = 4, + MSA = 5, + SC7 = 6, +}; extern AccelType DetectedAccelerometerVersion; #endif From a3d5902ed1d4974154050d30648b5b6dda378540 Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:35:11 +1000 Subject: [PATCH 18/24] Remove int cast --- source/Core/Threads/MOVThread.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/source/Core/Threads/MOVThread.cpp b/source/Core/Threads/MOVThread.cpp index 6f0524ca..86c538f5 100644 --- a/source/Core/Threads/MOVThread.cpp +++ b/source/Core/Threads/MOVThread.cpp @@ -33,7 +33,7 @@ void detectAccelerometerVersion() { #ifdef ACCEL_MMA if (MMA8652FC::detect()) { if (MMA8652FC::initalize()) { - DetectedAccelerometerVersion = (int)AccelType::MMA; + DetectedAccelerometerVersion = AccelType::MMA; } } else #endif @@ -41,7 +41,7 @@ void detectAccelerometerVersion() { if (LIS2DH12::detect()) { // Setup the ST Accelerometer if (LIS2DH12::initalize()) { - DetectedAccelerometerVersion = (int)AccelType::LIS; + DetectedAccelerometerVersion = AccelType::LIS; } } else #endif @@ -49,7 +49,7 @@ void detectAccelerometerVersion() { if (BMA223::detect()) { // Setup the BMA223 Accelerometer if (BMA223::initalize()) { - DetectedAccelerometerVersion = (int)AccelType::BMA; + DetectedAccelerometerVersion = AccelType::BMA; } } else #endif @@ -57,7 +57,7 @@ void detectAccelerometerVersion() { if (MSA301::detect()) { // Setup the MSA301 Accelerometer if (MSA301::initalize()) { - DetectedAccelerometerVersion = (int)AccelType::MSA; + DetectedAccelerometerVersion = AccelType::MSA; } } else #endif @@ -65,7 +65,7 @@ void detectAccelerometerVersion() { if (SC7A20::detect()) { // Setup the SC7A20 Accelerometer if (SC7A20::initalize()) { - DetectedAccelerometerVersion = (int)AccelType::SC7; + DetectedAccelerometerVersion = AccelType::SC7; } } else #endif @@ -77,31 +77,31 @@ void detectAccelerometerVersion() { } inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation &rotation) { #ifdef ACCEL_MMA - if (DetectedAccelerometerVersion == (int)AccelType::MMA) { + if (DetectedAccelerometerVersion == AccelType::MMA) { MMA8652FC::getAxisReadings(tx, ty, tz); rotation = MMA8652FC::getOrientation(); } else #endif #ifdef ACCEL_LIS - if (DetectedAccelerometerVersion == (int)AccelType::LIS) { + if (DetectedAccelerometerVersion == AccelType::LIS) { LIS2DH12::getAxisReadings(tx, ty, tz); rotation = LIS2DH12::getOrientation(); } else #endif #ifdef ACCEL_BMA - if (DetectedAccelerometerVersion == (int)AccelType::BMA) { + if (DetectedAccelerometerVersion == AccelType::BMA) { BMA223::getAxisReadings(tx, ty, tz); rotation = BMA223::getOrientation(); } else #endif #ifdef ACCEL_MSA - if (DetectedAccelerometerVersion == (int)AccelType::MSA) { + if (DetectedAccelerometerVersion == AccelType::MSA) { MSA301::getAxisReadings(tx, ty, tz); rotation = MSA301::getOrientation(); } else #endif #ifdef ACCEL_SC7 - if (DetectedAccelerometerVersion == (int)AccelType::SC7) { + if (DetectedAccelerometerVersion == AccelType::SC7) { SC7A20::getAxisReadings(tx, ty, tz); rotation = SC7A20::getOrientation(); } else From a936eee83e4440aa5f1a89f7baf592b3fbe49edf Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:35:23 +1000 Subject: [PATCH 19/24] Define array of Accelerometer names --- source/Core/Inc/Translation.h | 1 + source/Core/Threads/GUIThread.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/source/Core/Inc/Translation.h b/source/Core/Inc/Translation.h index 4f601fb8..ba5f28ba 100644 --- a/source/Core/Inc/Translation.h +++ b/source/Core/Inc/Translation.h @@ -26,6 +26,7 @@ extern const char *SymbolCellCount; extern const char *SymbolVersionNumber; extern const char *DebugMenu[]; +extern const char *AccelTypeNames[]; enum class SettingsItemIndex : uint8_t { DCInCutoff, diff --git a/source/Core/Threads/GUIThread.cpp b/source/Core/Threads/GUIThread.cpp index f53bd619..a3ba674c 100644 --- a/source/Core/Threads/GUIThread.cpp +++ b/source/Core/Threads/GUIThread.cpp @@ -713,7 +713,7 @@ void showDebugMenu(void) { break; case 10: // Print PCB ID number - OLED::printNumber(DetectedAccelerometerVersion, 2, FontStyle::SMALL); + OLED::print(AccelTypeNames[(int)DetectedAccelerometerVersion], FontStyle::SMALL); break; case 11: // Power negotiation status From 7dad28a41e48eb49fe19c71216cbeb1768743287 Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:38:09 +1000 Subject: [PATCH 20/24] Expand python code to auto-generate the array of names --- Translations/make_translation.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Translations/make_translation.py b/Translations/make_translation.py index 36bd2d8a..eb073915 100755 --- a/Translations/make_translation.py +++ b/Translations/make_translation.py @@ -130,6 +130,18 @@ def get_debug_menu() -> List[str]: ] +def get_accel_names_list() -> List[str]: + return [ + "Scanning", + "None", + "MMA", + "LIS", + "BMA", + "MSA", + "SC7", + ] + + def get_letter_counts( defs: dict, lang: dict, build_version: str ) -> Tuple[List[str], Dict[str, int]]: @@ -189,6 +201,7 @@ def get_letter_counts( for x in constants: text_list.append(x[1]) text_list.extend(get_debug_menu()) + text_list.extend(get_accel_names_list()) # collapse all strings down into the composite letters and store totals for these @@ -948,6 +961,16 @@ def get_translation_common_text( f'\t "{convert_string(symbol_conversion_table, c)}",//{c} \n' ) translation_common_text += "};\n\n" + + # accel names + translation_common_text += "const char* AccelTypeNames[] = {\n" + + for c in get_accel_names_list(): + translation_common_text += ( + f'\t "{convert_string(symbol_conversion_table, c)}",//{c} \n' + ) + translation_common_text += "};\n\n" + return translation_common_text From c2593763a0e89d14fd77c8a29dae6d8f94bfece1 Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:43:09 +1000 Subject: [PATCH 21/24] Expand Names --- Translations/make_translation.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Translations/make_translation.py b/Translations/make_translation.py index eb073915..77bb7b81 100755 --- a/Translations/make_translation.py +++ b/Translations/make_translation.py @@ -134,11 +134,11 @@ def get_accel_names_list() -> List[str]: return [ "Scanning", "None", - "MMA", - "LIS", - "BMA", - "MSA", - "SC7", + "MMA8652FC", + "LIS2DH12", + "BMA223", + "MSA301", + "SC7A20", ] From c05d63edf785580919bc40ad0bbf03d330e9f482 Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:51:55 +1000 Subject: [PATCH 22/24] Update lang_multi.cpp --- source/Core/LangSupport/lang_multi.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/source/Core/LangSupport/lang_multi.cpp b/source/Core/LangSupport/lang_multi.cpp index eea4176e..fb3fbb41 100644 --- a/source/Core/LangSupport/lang_multi.cpp +++ b/source/Core/LangSupport/lang_multi.cpp @@ -85,4 +85,5 @@ bool settings_setLanguageSwitch(void) { return selectedLangIndex == (LanguageCount - 1); } +bool settings_showLanguageSwitch(void) { return true; } void settings_displayLanguageSwitch(void) { OLED::printWholeScreen(translatedString(Tr->SettingsShortNames[static_cast(SettingsItemIndex::LanguageSwitch)])); } From 62100640cdcf3929bba5bfadb55b2e40d252ab1e Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:52:26 +1000 Subject: [PATCH 23/24] Delete codeql-analysis.yml --- .github/workflows/codeql-analysis.yml | 69 --------------------------- 1 file changed, 69 deletions(-) delete mode 100644 .github/workflows/codeql-analysis.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 941bc5f0..00000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,69 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - push: - branches: [master] - pull_request: - # The branches below must be a subset of the branches above - branches: [master] - schedule: - - cron: "38 23 * * 6" - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - language: ["cpp", "python"] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # Learn more: - # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - - - name: chmod - run: chmod +x setup.sh && chmod +x source/build.sh && sudo mkdir -p /build/cache && sudo chmod -R 777 /build - - - name: Cached compiler source files - uses: actions/cache@v2.1.6 - env: - cache-name: cache-compilers - with: - path: /build/cache - key: ${{ runner.os }}-build-${{ env.cache-name }} - restore-keys: | - ${{ runner.os }}- - - - name: setup - run: ./setup.sh && cd source && ./build.sh - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 From 8d7e1c64150c95e353cfa58e9dd52760c343b4c2 Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 11:02:54 +1000 Subject: [PATCH 24/24] Quick fix of docs --- .github/ISSUE_TEMPLATE/bug_report.md | 14 +++++++------- .../everything-else--questions--notes-etc-.md | 2 +- .github/ISSUE_TEMPLATE/feature_request.md | 8 ++++---- Documentation/DebugMenu.md | 13 +++++++------ PULL_REQUEST_TEMPLATE.md | 6 +++--- 5 files changed, 22 insertions(+), 21 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 6bc34713..00f284cd 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -8,25 +8,25 @@ assignees: Ralim --- **Describe the bug** -A clear and concise description of what the bug is. + **To Reproduce** -Steps to reproduce the behavior: + **Expected behavior** -A clear and concise description of what you expected to happen. + **Details on your device:** + - Device: [e.g. TS80/Pinecil etc] - Release: [eg 2.15.40087E6] - Power adapter being used: - -Note you can grab these from the debug menu. + - If this is an acceleromter related issue, please include its model number here: **Additional context** -Add any other context about the problem here. + diff --git a/.github/ISSUE_TEMPLATE/everything-else--questions--notes-etc-.md b/.github/ISSUE_TEMPLATE/everything-else--questions--notes-etc-.md index 440f1f67..1a1c7fd6 100644 --- a/.github/ISSUE_TEMPLATE/everything-else--questions--notes-etc-.md +++ b/.github/ISSUE_TEMPLATE/everything-else--questions--notes-etc-.md @@ -7,4 +7,4 @@ assignees: '' --- -**Questions are preferred to be kept to the discussions tab where possible, but otherwise go for it. be polite and as clear as possible.** + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 259c5294..f0608cd9 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -8,13 +8,13 @@ assignees: Ralim --- **Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + **Describe the solution you'd like** -A clear and concise description of what you want to happen. + **Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. + **Additional context** -Add any other context or screenshots about the feature request here. + diff --git a/Documentation/DebugMenu.md b/Documentation/DebugMenu.md index d9bcb3fe..d2751a05 100644 --- a/Documentation/DebugMenu.md +++ b/Documentation/DebugMenu.md @@ -56,12 +56,13 @@ The input voltage as read by the internal ADC. Can be used to sanity check its b This indicates the accelerometer that is fitted inside the unit. -- MMA = MMA8652 -- LIS = LIS2DH12 -- BMA = BMA223 -- MSA = MSA301 -- SC7 = SC7A20 -- 99 = None detected (running in fallback without movement detection) +- MMA8652 +- LIS2DH12 +- BMA223 +- MSA301 +- SC7A20 +- None detected -> running in fallback without movement detection +- Scanning -> Still searching I2C for one ### PWR diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md index 09867702..b80d237a 100644 --- a/PULL_REQUEST_TEMPLATE.md +++ b/PULL_REQUEST_TEMPLATE.md @@ -1,17 +1,17 @@ -Please try and fill out this template where possible, not all fields are required and can be removed. + * **Please check if the PR fulfills these requirements** - [] The changes have been tested locally - [] There are no breaking changes * **What kind of change does this PR introduce?** -(Bug fix, feature, docs update, ...) + * **What is the current behavior?** -(You can also link to an open issue here) + * **What is the new behavior (if this is a feature change)?**