Draft tip selection menu

This commit is contained in:
=
2024-08-30 07:30:49 +10:00
committed by Ben V. Brown
parent 2e687a6400
commit 59630d5abd
39 changed files with 365 additions and 43 deletions

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Мова:\n BY Беларуская",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Език:\n BG Български",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Jazyk:\n CS Český",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Sprog:\n DA Dansk",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Sprache:\n DE Deutsch",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Γλώσσα:\n EL Ελληνικά",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -114,6 +114,24 @@
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "TS100\nShort"
},
"TipTypeT12PTS": {
"displayText": "TS100\nPTS"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBC": {
"displayText": "JBC\n"
}
},
"menuOptions": {
@@ -320,6 +338,10 @@
"LanguageSwitch": {
"displayText": "Language:\n EN English",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Idioma:\n ES Castellano",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Keel:\n ET Eesti",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Kieli:\n FI Suomi",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Langue:\n FR Français",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Jezik:\n HR Hrvatski",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Nyelv:\n HU Magyar",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -320,6 +320,10 @@
"LanguageSwitch": {
"displayText": "Lingua:\n IT Italiano",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "言語: 日本語",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Kalba:\n LT Lietuvių",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Språk:\n NB Norsk bm",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Taal:\n NL Nederlands",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Spraak:\n NL_BE Vlaams",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Język:\n PL Polski",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Idioma:\n PT Português",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Limbă:\n RO Română",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Язык:\n RU Русский",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Jazyk:\n SK Slovenčina",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Jezik:\n SL Slovenščina",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Jезик:\n SR Српски",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Jezik:\n SR Srpski",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Språk:\n SV Svenska",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Dil:\n TR Türkçe",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Мова:\n UK Українська",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "Ngôn ngu:\n VI Tieng Viet",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "語言: 廣東話",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "语言:简体中文",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -318,6 +318,10 @@
"LanguageSwitch": {
"displayText": "語言:正體中文",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -18,7 +18,9 @@
},
{
"id": "NoPowerDeliveryMessage",
"include": ["POW_PD"],
"include": [
"POW_PD"
],
"description": "The IC required for USB-PD could not be communicated with. This is an error warning that USB-PD WILL NOT FUNCTION. Generally indicative of either a hardware or software issues."
},
{
@@ -56,44 +58,58 @@
{
"id": "UVLOWarningString",
"maxLen": 8,
"include": ["POW_DC"],
"include": [
"POW_DC"
],
"description": "Warning text shown when the unit turns off due to undervoltage in simple mode."
},
{
"id": "UndervoltageString",
"maxLen": 15,
"include": ["POW_DC"],
"include": [
"POW_DC"
],
"description": "Warning text shown when the unit turns off due to undervoltage in advanced mode."
},
{
"id": "InputVoltageString",
"maxLen": 11,
"note": "Preferably end with a space",
"include": ["POW_DC"],
"include": [
"POW_DC"
],
"description": "Prefix text for 'Input Voltage' shown before showing the input voltage reading."
},
{
"id": "ProfilePreheatString",
"maxLen": 9,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Shown in profile mode while preheating"
},
{
"id": "ProfileCooldownString",
"maxLen": 9,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Shown in profile mode while cooling down"
},
{
"id": "SleepingAdvancedString",
"maxLen": 15,
"exclude": ["NO_SLEEP_MODE"],
"exclude": [
"NO_SLEEP_MODE"
],
"description": "The text shown to indicate the unit is in sleep mode when the advanced view is turned on."
},
{
"id": "SleepingTipAdvancedString",
"maxLen": 6,
"exclude": ["NO_SLEEP_MODE"],
"exclude": [
"NO_SLEEP_MODE"
],
"description": "The prefix text shown before tip temperature when the unit is sleeping with advanced view on."
},
{
@@ -104,7 +120,9 @@
{
"id": "TooHotToStartProfileWarning",
"default": "Too hot to\nstart profile",
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Shown when profile mode is started while the device is too hot."
}
],
@@ -172,7 +190,10 @@
"id": "PowerMenu",
"maxLen": 5,
"maxLen2": 11,
"include": ["POW_DC", "POW_QC"],
"include": [
"POW_DC",
"POW_QC"
],
"description": "Menu for settings related to power. Main settings to do with the input voltage."
},
{
@@ -212,6 +233,30 @@
{
"id": "USBPDModeSafe",
"description": "When in this mode we enable all PD features, but we don't pad resistance slightly to account for cable and PCB trace loss"
},
{
"id": "TipTypeAuto",
"description": "This is for automatic best-effort tip selection based on resistance"
},
{
"id": "TipTypeT12Long",
"description": "Hakko T12 or older (long) TS100 tips"
},
{
"id": "TipTypeT12Short",
"description": "Pine 6.2 ohm short TS100 style tips"
},
{
"id": "TipTypeT12PTS",
"description": "PTS200 4 ohm short TS100 style tips"
},
{
"id": "TipTypeTS80",
"description": "Miniware TS80(P) tips"
},
{
"id": "TipTypeJBC",
"description": "JBC (or clone) tips"
}
],
"menuOptions": [
@@ -219,35 +264,45 @@
"id": "DCInCutoff",
"maxLen": 5,
"maxLen2": 11,
"include": ["POW_DC"],
"include": [
"POW_DC"
],
"description": "When the device is powered by a battery, this adjusts the low voltage threshold for when the unit should turn off the heater to protect the battery."
},
{
"id": "MinVolCell",
"maxLen": 4,
"maxLen2": 9,
"include": ["POW_DC"],
"include": [
"POW_DC"
],
"description": "When powered by a battery, this adjusts the minimum voltage per cell before shutdown. (This is multiplied by the cell count.)"
},
{
"id": "QCMaxVoltage",
"maxLen": 8,
"maxLen2": 15,
"include": ["POW_QC"],
"include": [
"POW_QC"
],
"description": "This adjusts the maximum voltage the QC negotiation will adjust to. Does NOT affect USB-PD. Should be set safely based on the current rating of your power supply."
},
{
"id": "PDNegTimeout",
"maxLen": 8,
"maxLen2": 15,
"include": ["POW_PD"],
"include": [
"POW_PD"
],
"description": "How long until firmware stops trying to negotiate for USB-PD and tries QC instead. Longer times may help dodgy / old PD adapters, faster times move onto PD quickly. Units of 100ms. Recommended to keep small values."
},
{
"id": "USBPDMode",
"maxLen": 7,
"maxLen2": 15,
"include": ["POW_PD"],
"include": [
"POW_PD"
],
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
},
{
@@ -284,98 +339,126 @@
"id": "ProfilePhases",
"maxLen": 6,
"maxLen2": 13,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "set the number of phases for profile mode."
},
{
"id": "ProfilePreheatTemp",
"maxLen": 4,
"maxLen2": 9,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Preheat to this temperature at the start of profile mode."
},
{
"id": "ProfilePreheatSpeed",
"maxLen": 5,
"maxLen2": 11,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "How fast the temperature is allowed to rise during the preheat phase at the start of profile mode."
},
{
"id": "ProfilePhase1Temp",
"maxLen": 4,
"maxLen2": 9,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Target temperature for the end of phase 1 of profile mode."
},
{
"id": "ProfilePhase1Duration",
"maxLen": 4,
"maxLen2": 9,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Duration of phase 1 of profile mode. The phase might actually take longer if it takes longer to reach the target temperature."
},
{
"id": "ProfilePhase2Temp",
"maxLen": 4,
"maxLen2": 9,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Target temperature for the end of phase 2 of profile mode."
},
{
"id": "ProfilePhase2Duration",
"maxLen": 4,
"maxLen2": 9,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Duration of phase 2 of profile mode. The phase might actually take longer if it takes longer to reach the target temperature."
},
{
"id": "ProfilePhase3Temp",
"maxLen": 4,
"maxLen2": 9,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Target temperature for the end of phase 3 of profile mode."
},
{
"id": "ProfilePhase3Duration",
"maxLen": 4,
"maxLen2": 9,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Duration of phase 3 of profile mode. The phase might actually take longer if it takes longer to reach the target temperature."
},
{
"id": "ProfilePhase4Temp",
"maxLen": 4,
"maxLen2": 9,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Target temperature for the end of phase 5 of profile mode."
},
{
"id": "ProfilePhase4Duration",
"maxLen": 4,
"maxLen2": 9,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Duration of phase 5 of profile mode. The phase might actually take longer if it takes longer to reach the target temperature."
},
{
"id": "ProfilePhase5Temp",
"maxLen": 4,
"maxLen2": 9,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Target temperature for the end of phase 5 of profile mode."
},
{
"id": "ProfilePhase5Duration",
"maxLen": 4,
"maxLen2": 9,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "Duration of phase 5 of profile mode. The phase might actually take longer if it takes longer to reach the target temperature."
},
{
"id": "ProfileCooldownSpeed",
"maxLen": 5,
"maxLen2": 11,
"include": ["PROFILE_SUPPORT"],
"include": [
"PROFILE_SUPPORT"
],
"description": "How fast the temperature is allowed to drop during the cooldown phase at the end of profile mode."
},
{
@@ -388,14 +471,18 @@
"id": "SleepTemperature",
"maxLen": 4,
"maxLen2": 9,
"exclude": ["NO_SLEEP_MODE"],
"exclude": [
"NO_SLEEP_MODE"
],
"description": "Temperature the device will drop down to while asleep. Typically around halfway between off and soldering temperature."
},
{
"id": "SleepTimeout",
"maxLen": 4,
"maxLen2": 9,
"exclude": ["NO_SLEEP_MODE"],
"exclude": [
"NO_SLEEP_MODE"
],
"description": "How long of a period without movement / button-pressing is required before the device drops down to the sleep temperature."
},
{
@@ -408,14 +495,18 @@
"id": "HallEffSensitivity",
"maxLen": 6,
"maxLen2": 13,
"include": ["HALL_SENSOR"],
"include": [
"HALL_SENSOR"
],
"description": "If the unit has a hall effect sensor (Pinecil), this adjusts how sensitive it is at detecting a magnet to put the device into sleep mode."
},
{
"id": "HallEffSleepTimeout",
"maxLen": 10,
"maxLen2": 10,
"include": ["HALL_SENSOR"],
"include": [
"HALL_SENSOR"
],
"description": "If the unit has a hall effect sensor (Pinecil), this adjusts how long the device takes before it drops down to the sleep temperature when hall sensor is over threshold."
},
{
@@ -428,7 +519,9 @@
"id": "DisplayRotation",
"maxLen": 6,
"maxLen2": 13,
"exclude": ["NO_DISPLAY_ROTATE"],
"exclude": [
"NO_DISPLAY_ROTATE"
],
"description": "If the display should rotate automatically or if it should be fixed for left- or right-handed mode."
},
{
@@ -495,7 +588,9 @@
"id": "BluetoothLE",
"maxLen": 7,
"maxLen2": 15,
"include": ["BLE_ENABLED"],
"include": [
"BLE_ENABLED"
],
"description": "Should BLE be enabled at boot time."
},
{
@@ -545,6 +640,12 @@
"maxLen": 7,
"maxLen2": 15,
"description": "Changes the device language on multi-lingual builds."
},
{
"id": "SolderingTipType",
"maxLen": 7,
"maxLen2": 15,
"description": "For manually selecting the type of tip fitted"
}
]
}

View File

@@ -7,8 +7,8 @@
* Houses the system settings and allows saving / restoring from flash
*/
#ifndef SETTINGS_H_
#define SETTINGS_H_
#ifndef CORE_SETTINGS_H_
#define CORE_SETTINGS_H_
#include <stdbool.h>
#include <stdint.h>
@@ -74,8 +74,9 @@ enum SettingsOptions {
ProfilePhase5Duration = 51, // Target duration for phase 5
ProfileCooldownSpeed = 52, // Maximum allowed cooldown speed in degrees per second
HallEffectSleepTime = 53, // Seconds (/5) timeout to sleep when hall effect over threshold
SolderingTipType = 54, // Selecting the type of soldering tip fitted
//
SettingsOptionsLength = 54, //
SettingsOptionsLength = 55, // End marker
};
typedef enum {
@@ -117,6 +118,31 @@ typedef enum {
FULL = 2, // Locking buttons for Boost mode AND for Soldering mode
} lockingMode_t;
/* Selection of the soldering tip
* 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)
*/
typedef enum {
#ifdef AUTO_TIP_SELECTION
AUTO, // If the hardware supports automatic detection
#endif
#ifdef TIPTYPE_T12
T12_8_OHM, // TS100 style tips or Hakko T12 tips with adaptors
T12_6_2_OHM, // Short Tips manufactured by Pine64
T12_4_OHM, // Longer tip but low resistance for PTS200
#endif
#ifdef TIPTYE_TS80
TS80_4_5_OHM, // TS80(P) default tips
// We do not know of other tuning tips (?yet?)
#endif
#ifdef TIPTYPE_JBC
JBC_2_5_OHM, // Small JBC tips as used in the S60
#endif
TIP_TYPE_MAX, // Max value marker
} tipType_t;
// Settings wide operations
void saveSettings();
bool loadSettings();
@@ -129,11 +155,11 @@ uint16_t getSettingValue(const enum SettingsOptions option);
void nextSettingValue(const enum SettingsOptions option);
void prevSettingValue(const enum SettingsOptions option);
bool isLastSettingValue(const enum SettingsOptions option);
// For setting values to settings
void setSettingValue(const enum SettingsOptions option, const uint16_t newValue);
// Special access
// Special access helpers, to reduce logic duplication
uint8_t lookupVoltageLevel();
uint16_t lookupHallEffectThreshold();
const char* lookupTipName(); // Get the name string for the current soldering tip
#endif /* SETTINGS_H_ */

View File

@@ -106,6 +106,7 @@ enum class SettingsItemIndex : uint8_t {
PowerPulseDuration,
SettingsReset,
LanguageSwitch,
SolderingTipType,
NUM_ITEMS,
};
@@ -149,6 +150,12 @@ struct TranslationIndexTable {
uint16_t USBPDModeDefault;
uint16_t USBPDModeNoDynamic;
uint16_t USBPDModeSafe;
uint16_t TipTypeAuto;
uint16_t TipTypeT12Long;
uint16_t TipTypeT12Short;
uint16_t TipTypeT12PTS;
uint16_t TipTypeTS80;
uint16_t TipTypeJBC;
uint16_t SettingsDescriptions[static_cast<uint32_t>(SettingsItemIndex::NUM_ITEMS)];
uint16_t SettingsShortNames[static_cast<uint32_t>(SettingsItemIndex::NUM_ITEMS)];

View File

@@ -16,6 +16,10 @@
#include <string.h> // for memset
bool sanitiseSettings();
/*
* Used to constrain the QC 3.0 Voltage selection to suit hardware.
* We allow a little overvoltage for users who want to push it
*/
#ifdef POW_QC_20V
#define QC_VOLTAGE_MAX 220
#else
@@ -105,6 +109,7 @@ static const SettingConstants settingsConstants[(int)SettingsOptions::SettingsOp
{ 10, 180, 5, 30}, // ProfilePhase5Duration
{ 1, 10, 1, 2}, // ProfileCooldownSpeed
{ 0, 12, 1, 0}, // HallEffectSleepTime
{ 0, tipType_t::TIP_TYPE_MAX, 1, 0}, // SolderingTipType
};
static_assert((sizeof(settingsConstants) / sizeof(SettingConstants)) == ((int)SettingsOptions::SettingsOptionsLength));
@@ -292,3 +297,19 @@ uint8_t lookupVoltageLevel() {
return (minVoltageOnCell * minVoltageCellCount) + (minVoltageCellCount * 2);
}
}
const char *lookupTipName() {
// Get the name string for the current soldering tip
tipType_t value = (tipType_t)getSettingValue(SettingsOptions::SolderingTipType);
switch (value) {
#ifdef AUTO_TIP_SELECTION
case tipType_t::AUTO:
return translatedString(Tr->USBPDModeDefault);
break;
#endif
default:
return nullptr;
break;
}
}

View File

@@ -115,6 +115,10 @@ static void displayHallEffectSleepTime(void);
static bool showHallEffect(void);
#endif /* HALL_SENSOR */
// Tip type selection
static void displaySolderingTipType(void);
static bool showSolderingTipType(void);
// Menu functions
#if defined(POW_DC) || defined(POW_QC) || defined(POW_PD)
@@ -137,6 +141,7 @@ static void displayAdvancedMenu(void);
* USBPDMode
*
* Soldering
* Tip Type selection
* Boost Mode Temp
* Auto Start
* Temp Change Short Step
@@ -262,6 +267,7 @@ const menuitem powerMenu[] = {
const menuitem solderingMenu[] = {
/*
* Tip Type
* Boost Mode Temp
* Auto Start
* Temp Change Short Step
@@ -282,6 +288,8 @@ 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 */
@@ -755,7 +763,12 @@ static void displayHallEffectSleepTime(void) {
}
}
#endif /* HALL_SENSOR */
static void displaySolderingTipType(void) {
// TODO wrapping X value
OLED::print(lookupTipName(), FontStyle::SMALL);
}
// If there is no detection, and no options, max is 0
static bool showSolderingTipType(void) { return tipType_t::TIP_TYPE_MAX != 0; }
static void setTempF(const enum SettingsOptions option) {
uint16_t Temp = getSettingValue(option);
if (getSettingValue(SettingsOptions::TemperatureInF)) {