aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--source/Core/BSP/Miniware/configuration.h1
-rw-r--r--source/Core/BSP/Pinecilv2/configuration.h1
-rw-r--r--source/Core/Inc/Settings.h13
-rw-r--r--source/Core/Src/Settings.cpp7
-rw-r--r--source/Core/Src/settingsGUI.cpp14
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)) {