mirror of
https://github.com/Ralim/IronOS.git
synced 2025-02-26 07:53:55 +00:00
Add macro to enable tip types for supported hardware only
This commit is contained in:
@@ -379,6 +379,8 @@ uint8_t preStartChecksDone() {
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef TIP_TYPE_SUPPORT
|
||||
// new version for models supporting tips of different length/resistance
|
||||
uint8_t getTipResistanceX10() {
|
||||
#ifdef TIP_RESISTANCE_SENSE_Pin
|
||||
// Return tip resistance in x10 ohms
|
||||
@@ -388,7 +390,6 @@ uint8_t getTipResistanceX10() {
|
||||
return lastTipResistance; // Auto mode
|
||||
}
|
||||
return user_selected_tip;
|
||||
|
||||
#else
|
||||
uint8_t user_selected_tip = getUserSelectedTipResistance();
|
||||
if (user_selected_tip == 0) {
|
||||
@@ -397,6 +398,18 @@ uint8_t getTipResistanceX10() {
|
||||
return user_selected_tip;
|
||||
#endif
|
||||
}
|
||||
#else /* no tip type support: legacy version */
|
||||
uint8_t getTipResistanceX10() {
|
||||
#ifdef TIP_RESISTANCE_SENSE_Pin
|
||||
// Return tip resistance in x10 ohms
|
||||
// We can measure this using the op-amp
|
||||
return lastTipResistance;
|
||||
#else
|
||||
return TIP_RESISTANCE;
|
||||
#endif
|
||||
}
|
||||
#endif /* TIP_TYPE_SUPPORT */
|
||||
|
||||
#ifdef TIP_RESISTANCE_SENSE_Pin
|
||||
bool isTipShorted() { return tipShorted; }
|
||||
#else
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -143,6 +144,9 @@ typedef enum {
|
||||
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_MAX = 0 } tipType_t;
|
||||
#endif /* TIP_TYPE_SUPPORT */
|
||||
|
||||
// Settings wide operations
|
||||
void saveSettings();
|
||||
@@ -162,5 +166,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_ */
|
||||
|
||||
@@ -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,4 @@ uint8_t getUserSelectedTipResistance() {
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif /* TIP_TYPE_SUPPORT */
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user