diff options
-rw-r--r-- | source/Core/BSP/Miniware/configuration.h | 1 | ||||
-rw-r--r-- | source/Core/BSP/Pinecilv2/configuration.h | 1 | ||||
-rw-r--r-- | source/Core/Inc/Settings.h | 13 | ||||
-rw-r--r-- | source/Core/Src/Settings.cpp | 7 | ||||
-rw-r--r-- | source/Core/Src/settingsGUI.cpp | 14 |
5 files changed, 32 insertions, 4 deletions
diff --git a/source/Core/BSP/Miniware/configuration.h b/source/Core/BSP/Miniware/configuration.h index 44ef5d66..6aebed15 100644 --- a/source/Core/BSP/Miniware/configuration.h +++ b/source/Core/BSP/Miniware/configuration.h @@ -218,6 +218,7 @@ #define TEMP_NTC 1 #define ACCEL_I2CBB1 1 #define POW_EPR 1 +#define TIP_TYPE_SUPPORT 1 // Support for tips of different types, i.e. resistance #define AUTO_TIP_SELECTION 1 // Can auto-select the tip #define TIPTYPE_T12 1 // Can manually pick a T12 tip #define HAS_POWER_DEBUG_MENU diff --git a/source/Core/BSP/Pinecilv2/configuration.h b/source/Core/BSP/Pinecilv2/configuration.h index 3f7aa52e..0f21f138 100644 --- a/source/Core/BSP/Pinecilv2/configuration.h +++ b/source/Core/BSP/Pinecilv2/configuration.h @@ -154,6 +154,7 @@ #define POW_EPR 1 #define ENABLE_QC2 1 #define MAG_SLEEP_SUPPORT 1 +#define TIP_TYPE_SUPPORT 1 // Support for tips of different types, i.e. resistance #define AUTO_TIP_SELECTION 1 // Can auto-select the tip #define TIPTYPE_T12 1 // Can manually pick a T12 tip #define DEVICE_HAS_VALIDATION_SUPPORT diff --git a/source/Core/Inc/Settings.h b/source/Core/Inc/Settings.h index 715b7991..fd41e271 100644 --- a/source/Core/Inc/Settings.h +++ b/source/Core/Inc/Settings.h @@ -123,6 +123,7 @@ typedef enum { * Some devices allow multiple types of tips to be fitted, this allows selecting them or overriding the logic * The first type will be the default (gets value of 0) */ +#ifdef TIP_TYPE_SUPPORT typedef enum { #ifdef AUTO_TIP_SELECTION TIP_TYPE_AUTO, // If the hardware supports automatic detection @@ -142,7 +143,15 @@ typedef enum { // #endif TIP_TYPE_MAX, // Max value marker } tipType_t; -uint8_t getUserSelectedTipResistance(); // returns the resistance matching the selected tip type or 0 for auto +#else +typedef enum { + TIP_TYPE_AUTO = 0, // value for the default case + TIP_TYPE_MAX = 0, // marker for settings when not supported +} tipType_t; +#endif /* TIP_TYPE_SUPPORT */ + +// returns the resistance matching the selected tip type or 0 for auto and when not supported +uint8_t getUserSelectedTipResistance(); // Settings wide operations void saveSettings(); @@ -162,5 +171,7 @@ void setSettingValue(const enum SettingsOptions option, const uint16_t newValue) // Special access helpers, to reduce logic duplication uint8_t lookupVoltageLevel(); uint16_t lookupHallEffectThreshold(); +#ifdef TIP_TYPE_SUPPORT const char *lookupTipName(); // Get the name string for the current soldering tip +#endif /* TIP_TYPE_SUPPORT */ #endif /* SETTINGS_H_ */ diff --git a/source/Core/Src/Settings.cpp b/source/Core/Src/Settings.cpp index b3507c3d..59867d53 100644 --- a/source/Core/Src/Settings.cpp +++ b/source/Core/Src/Settings.cpp @@ -298,6 +298,7 @@ uint8_t lookupVoltageLevel() { } } +#ifdef TIP_TYPE_SUPPORT const char *lookupTipName() { // Get the name string for the current soldering tip tipType_t value = (tipType_t)getSettingValue(SettingsOptions::SolderingTipType); @@ -334,7 +335,10 @@ const char *lookupTipName() { break; } } +#endif /* TIP_TYPE_SUPPORT */ + // Returns the resistance for the current tip selected by the user or 0 for auto +#ifdef TIP_TYPE_SUPPORT uint8_t getUserSelectedTipResistance() { tipType_t value = (tipType_t)getSettingValue(SettingsOptions::SolderingTipType); @@ -370,3 +374,6 @@ uint8_t getUserSelectedTipResistance() { break; } } +#else +uint8_t getUserSelectedTipResistance() { return tipType_t::TIP_TYPE_AUTO; } +#endif /* TIP_TYPE_SUPPORT */ diff --git a/source/Core/Src/settingsGUI.cpp b/source/Core/Src/settingsGUI.cpp index fac0d100..d26b26bb 100644 --- a/source/Core/Src/settingsGUI.cpp +++ b/source/Core/Src/settingsGUI.cpp @@ -116,8 +116,10 @@ static bool showHallEffect(void); #endif /* HALL_SENSOR */ // Tip type selection +#ifdef TIP_TYPE_SUPPORT static void displaySolderingTipType(void); static bool showSolderingTipType(void); +#endif /* TIP_TYPE_SUPPORT */ // Menu functions @@ -267,12 +269,12 @@ const menuitem powerMenu[] = { const menuitem solderingMenu[] = { /* - * Tip Type * Boost Mode Temp * Auto Start * Temp Change Short Step * Temp Change Long Step * Locking Mode + * Tip Type * Profile Phases * Profile Preheat Temperature * Profile Preheat Max Temperature Change Per Second @@ -288,8 +290,6 @@ const menuitem solderingMenu[] = { * Profile Phase 5 Duration (s) * Profile Cooldown Max Temperature Change Per Second */ - /* Tip Type */ - {SETTINGS_DESC(SettingsItemIndex::SolderingTipType), nullptr, displaySolderingTipType, showSolderingTipType, SettingsOptions::SolderingTipType, SettingsItemIndex::SolderingTipType, 5}, /* Boost Temp */ {SETTINGS_DESC(SettingsItemIndex::BoostTemperature), setBoostTemp, displayBoostTemp, nullptr, SettingsOptions::BoostTemp, SettingsItemIndex::BoostTemperature, 5}, /* Auto start */ @@ -300,6 +300,10 @@ const menuitem solderingMenu[] = { {SETTINGS_DESC(SettingsItemIndex::TempChangeLongStep), nullptr, displayTempChangeLongStep, nullptr, SettingsOptions::TempChangeLongStep, SettingsItemIndex::TempChangeLongStep, 6}, /* Locking Mode */ {SETTINGS_DESC(SettingsItemIndex::LockingMode), nullptr, displayLockingMode, nullptr, SettingsOptions::LockingMode, SettingsItemIndex::LockingMode, 7}, +#ifdef TIP_TYPE_SUPPORT + /* Tip Type */ + {SETTINGS_DESC(SettingsItemIndex::SolderingTipType), nullptr, displaySolderingTipType, showSolderingTipType, SettingsOptions::SolderingTipType, SettingsItemIndex::SolderingTipType, 5}, +#endif /* TIP_TYPE_SUPPORT */ #ifdef PROFILE_SUPPORT /* Profile Phases */ {SETTINGS_DESC(SettingsItemIndex::ProfilePhases), nullptr, displayProfilePhases, nullptr, SettingsOptions::ProfilePhases, SettingsItemIndex::ProfilePhases, 7}, @@ -763,12 +767,16 @@ static void displayHallEffectSleepTime(void) { } } #endif /* HALL_SENSOR */ + +#ifdef TIP_TYPE_SUPPORT static void displaySolderingTipType(void) { // TODO wrapping X value OLED::print(lookupTipName(), FontStyle::SMALL, 255, OLED::getCursorX()); } // If there is no detection, and no options, max is 0 static bool showSolderingTipType(void) { return tipType_t::TIP_TYPE_MAX != 0; } +#endif /* TIP_TYPE_SUPPORT */ + static void setTempF(const enum SettingsOptions option) { uint16_t Temp = getSettingValue(option); if (getSettingValue(SettingsOptions::TemperatureInF)) { |