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
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TIP_TYPE_SUPPORT
|
||||||
|
// new version for models supporting tips of different length/resistance
|
||||||
uint8_t getTipResistanceX10() {
|
uint8_t getTipResistanceX10() {
|
||||||
#ifdef TIP_RESISTANCE_SENSE_Pin
|
#ifdef TIP_RESISTANCE_SENSE_Pin
|
||||||
// Return tip resistance in x10 ohms
|
// Return tip resistance in x10 ohms
|
||||||
@@ -388,7 +390,6 @@ uint8_t getTipResistanceX10() {
|
|||||||
return lastTipResistance; // Auto mode
|
return lastTipResistance; // Auto mode
|
||||||
}
|
}
|
||||||
return user_selected_tip;
|
return user_selected_tip;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
uint8_t user_selected_tip = getUserSelectedTipResistance();
|
uint8_t user_selected_tip = getUserSelectedTipResistance();
|
||||||
if (user_selected_tip == 0) {
|
if (user_selected_tip == 0) {
|
||||||
@@ -397,6 +398,18 @@ uint8_t getTipResistanceX10() {
|
|||||||
return user_selected_tip;
|
return user_selected_tip;
|
||||||
#endif
|
#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
|
#ifdef TIP_RESISTANCE_SENSE_Pin
|
||||||
bool isTipShorted() { return tipShorted; }
|
bool isTipShorted() { return tipShorted; }
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -218,6 +218,7 @@
|
|||||||
#define TEMP_NTC 1
|
#define TEMP_NTC 1
|
||||||
#define ACCEL_I2CBB1 1
|
#define ACCEL_I2CBB1 1
|
||||||
#define POW_EPR 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 AUTO_TIP_SELECTION 1 // Can auto-select the tip
|
||||||
#define TIPTYPE_T12 1 // Can manually pick a T12 tip
|
#define TIPTYPE_T12 1 // Can manually pick a T12 tip
|
||||||
#define HAS_POWER_DEBUG_MENU
|
#define HAS_POWER_DEBUG_MENU
|
||||||
|
|||||||
@@ -154,6 +154,7 @@
|
|||||||
#define POW_EPR 1
|
#define POW_EPR 1
|
||||||
#define ENABLE_QC2 1
|
#define ENABLE_QC2 1
|
||||||
#define MAG_SLEEP_SUPPORT 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 AUTO_TIP_SELECTION 1 // Can auto-select the tip
|
||||||
#define TIPTYPE_T12 1 // Can manually pick a T12 tip
|
#define TIPTYPE_T12 1 // Can manually pick a T12 tip
|
||||||
#define DEVICE_HAS_VALIDATION_SUPPORT
|
#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
|
* 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)
|
* The first type will be the default (gets value of 0)
|
||||||
*/
|
*/
|
||||||
|
#ifdef TIP_TYPE_SUPPORT
|
||||||
typedef enum {
|
typedef enum {
|
||||||
#ifdef AUTO_TIP_SELECTION
|
#ifdef AUTO_TIP_SELECTION
|
||||||
TIP_TYPE_AUTO, // If the hardware supports automatic detection
|
TIP_TYPE_AUTO, // If the hardware supports automatic detection
|
||||||
@@ -143,6 +144,9 @@ typedef enum {
|
|||||||
TIP_TYPE_MAX, // Max value marker
|
TIP_TYPE_MAX, // Max value marker
|
||||||
} tipType_t;
|
} tipType_t;
|
||||||
uint8_t getUserSelectedTipResistance(); // returns the resistance matching the selected tip type or 0 for auto
|
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
|
// Settings wide operations
|
||||||
void saveSettings();
|
void saveSettings();
|
||||||
@@ -162,5 +166,7 @@ void setSettingValue(const enum SettingsOptions option, const uint16_t newValue)
|
|||||||
// Special access helpers, to reduce logic duplication
|
// Special access helpers, to reduce logic duplication
|
||||||
uint8_t lookupVoltageLevel();
|
uint8_t lookupVoltageLevel();
|
||||||
uint16_t lookupHallEffectThreshold();
|
uint16_t lookupHallEffectThreshold();
|
||||||
|
#ifdef TIP_TYPE_SUPPORT
|
||||||
const char *lookupTipName(); // Get the name string for the current soldering tip
|
const char *lookupTipName(); // Get the name string for the current soldering tip
|
||||||
|
#endif /* TIP_TYPE_SUPPORT */
|
||||||
#endif /* SETTINGS_H_ */
|
#endif /* SETTINGS_H_ */
|
||||||
|
|||||||
@@ -298,6 +298,7 @@ uint8_t lookupVoltageLevel() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TIP_TYPE_SUPPORT
|
||||||
const char *lookupTipName() {
|
const char *lookupTipName() {
|
||||||
// Get the name string for the current soldering tip
|
// Get the name string for the current soldering tip
|
||||||
tipType_t value = (tipType_t)getSettingValue(SettingsOptions::SolderingTipType);
|
tipType_t value = (tipType_t)getSettingValue(SettingsOptions::SolderingTipType);
|
||||||
@@ -334,7 +335,10 @@ const char *lookupTipName() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* TIP_TYPE_SUPPORT */
|
||||||
|
|
||||||
// Returns the resistance for the current tip selected by the user or 0 for auto
|
// Returns the resistance for the current tip selected by the user or 0 for auto
|
||||||
|
#ifdef TIP_TYPE_SUPPORT
|
||||||
uint8_t getUserSelectedTipResistance() {
|
uint8_t getUserSelectedTipResistance() {
|
||||||
tipType_t value = (tipType_t)getSettingValue(SettingsOptions::SolderingTipType);
|
tipType_t value = (tipType_t)getSettingValue(SettingsOptions::SolderingTipType);
|
||||||
|
|
||||||
@@ -370,3 +374,4 @@ uint8_t getUserSelectedTipResistance() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* TIP_TYPE_SUPPORT */
|
||||||
|
|||||||
@@ -116,8 +116,10 @@ static bool showHallEffect(void);
|
|||||||
#endif /* HALL_SENSOR */
|
#endif /* HALL_SENSOR */
|
||||||
|
|
||||||
// Tip type selection
|
// Tip type selection
|
||||||
|
#ifdef TIP_TYPE_SUPPORT
|
||||||
static void displaySolderingTipType(void);
|
static void displaySolderingTipType(void);
|
||||||
static bool showSolderingTipType(void);
|
static bool showSolderingTipType(void);
|
||||||
|
#endif /* TIP_TYPE_SUPPORT */
|
||||||
|
|
||||||
// Menu functions
|
// Menu functions
|
||||||
|
|
||||||
@@ -267,12 +269,12 @@ const menuitem powerMenu[] = {
|
|||||||
|
|
||||||
const menuitem solderingMenu[] = {
|
const menuitem solderingMenu[] = {
|
||||||
/*
|
/*
|
||||||
* Tip Type
|
|
||||||
* Boost Mode Temp
|
* Boost Mode Temp
|
||||||
* Auto Start
|
* Auto Start
|
||||||
* Temp Change Short Step
|
* Temp Change Short Step
|
||||||
* Temp Change Long Step
|
* Temp Change Long Step
|
||||||
* Locking Mode
|
* Locking Mode
|
||||||
|
* Tip Type
|
||||||
* Profile Phases
|
* Profile Phases
|
||||||
* Profile Preheat Temperature
|
* Profile Preheat Temperature
|
||||||
* Profile Preheat Max Temperature Change Per Second
|
* Profile Preheat Max Temperature Change Per Second
|
||||||
@@ -288,8 +290,6 @@ const menuitem solderingMenu[] = {
|
|||||||
* Profile Phase 5 Duration (s)
|
* Profile Phase 5 Duration (s)
|
||||||
* Profile Cooldown Max Temperature Change Per Second
|
* Profile Cooldown Max Temperature Change Per Second
|
||||||
*/
|
*/
|
||||||
/* Tip Type */
|
|
||||||
{SETTINGS_DESC(SettingsItemIndex::SolderingTipType), nullptr, displaySolderingTipType, showSolderingTipType, SettingsOptions::SolderingTipType, SettingsItemIndex::SolderingTipType, 5},
|
|
||||||
/* Boost Temp */
|
/* Boost Temp */
|
||||||
{SETTINGS_DESC(SettingsItemIndex::BoostTemperature), setBoostTemp, displayBoostTemp, nullptr, SettingsOptions::BoostTemp, SettingsItemIndex::BoostTemperature, 5},
|
{SETTINGS_DESC(SettingsItemIndex::BoostTemperature), setBoostTemp, displayBoostTemp, nullptr, SettingsOptions::BoostTemp, SettingsItemIndex::BoostTemperature, 5},
|
||||||
/* Auto start */
|
/* Auto start */
|
||||||
@@ -300,6 +300,10 @@ const menuitem solderingMenu[] = {
|
|||||||
{SETTINGS_DESC(SettingsItemIndex::TempChangeLongStep), nullptr, displayTempChangeLongStep, nullptr, SettingsOptions::TempChangeLongStep, SettingsItemIndex::TempChangeLongStep, 6},
|
{SETTINGS_DESC(SettingsItemIndex::TempChangeLongStep), nullptr, displayTempChangeLongStep, nullptr, SettingsOptions::TempChangeLongStep, SettingsItemIndex::TempChangeLongStep, 6},
|
||||||
/* Locking Mode */
|
/* Locking Mode */
|
||||||
{SETTINGS_DESC(SettingsItemIndex::LockingMode), nullptr, displayLockingMode, nullptr, SettingsOptions::LockingMode, SettingsItemIndex::LockingMode, 7},
|
{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
|
#ifdef PROFILE_SUPPORT
|
||||||
/* Profile Phases */
|
/* Profile Phases */
|
||||||
{SETTINGS_DESC(SettingsItemIndex::ProfilePhases), nullptr, displayProfilePhases, nullptr, SettingsOptions::ProfilePhases, SettingsItemIndex::ProfilePhases, 7},
|
{SETTINGS_DESC(SettingsItemIndex::ProfilePhases), nullptr, displayProfilePhases, nullptr, SettingsOptions::ProfilePhases, SettingsItemIndex::ProfilePhases, 7},
|
||||||
@@ -763,12 +767,16 @@ static void displayHallEffectSleepTime(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* HALL_SENSOR */
|
#endif /* HALL_SENSOR */
|
||||||
|
|
||||||
|
#ifdef TIP_TYPE_SUPPORT
|
||||||
static void displaySolderingTipType(void) {
|
static void displaySolderingTipType(void) {
|
||||||
// TODO wrapping X value
|
// TODO wrapping X value
|
||||||
OLED::print(lookupTipName(), FontStyle::SMALL, 255, OLED::getCursorX());
|
OLED::print(lookupTipName(), FontStyle::SMALL, 255, OLED::getCursorX());
|
||||||
}
|
}
|
||||||
// If there is no detection, and no options, max is 0
|
// If there is no detection, and no options, max is 0
|
||||||
static bool showSolderingTipType(void) { return tipType_t::TIP_TYPE_MAX != 0; }
|
static bool showSolderingTipType(void) { return tipType_t::TIP_TYPE_MAX != 0; }
|
||||||
|
#endif /* TIP_TYPE_SUPPORT */
|
||||||
|
|
||||||
static void setTempF(const enum SettingsOptions option) {
|
static void setTempF(const enum SettingsOptions option) {
|
||||||
uint16_t Temp = getSettingValue(option);
|
uint16_t Temp = getSettingValue(option);
|
||||||
if (getSettingValue(SettingsOptions::TemperatureInF)) {
|
if (getSettingValue(SettingsOptions::TemperatureInF)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user