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/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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 17917404dfc0b71e1e70d7a5a1018dcbdf2b494e Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 10:27:39 +1000 Subject: [PATCH 10/19] 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 11/19] 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 12/19] 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 13/19] 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 14/19] 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 15/19] 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 16/19] 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 17/19] 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 18/19] 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 8d7e1c64150c95e353cfa58e9dd52760c343b4c2 Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 25 Sep 2021 11:02:54 +1000 Subject: [PATCH 19/19] 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)?**