Refactor: Use enum to index settings descriptions
This commit is contained in:
@@ -577,6 +577,12 @@ def writeLanguage(lang, defs, f):
|
|||||||
+ ";\n"
|
+ ";\n"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
f.write(to_unicode("\n// Verify SettingsItemIndex values:\n"))
|
||||||
|
for i, mod in enumerate(defs["menuOptions"]):
|
||||||
|
eid = mod["id"]
|
||||||
|
f.write(to_unicode(
|
||||||
|
f"static_assert(static_cast<uint8_t>(SettingsItemIndex::{eid}) == {i});\n"))
|
||||||
|
|
||||||
|
|
||||||
def readVersion(jsonDir):
|
def readVersion(jsonDir):
|
||||||
with open(os.path.relpath(jsonDir + "/../source/version.h"), "r") as version_file:
|
with open(os.path.relpath(jsonDir + "/../source/version.h"), "r") as version_file:
|
||||||
|
|||||||
@@ -81,4 +81,45 @@ extern const char *SymbolCellCount;
|
|||||||
extern const char *SymbolVersionNumber;
|
extern const char *SymbolVersionNumber;
|
||||||
|
|
||||||
extern const char *DebugMenu[];
|
extern const char *DebugMenu[];
|
||||||
|
|
||||||
|
enum class SettingsItemIndex : uint8_t {
|
||||||
|
DCInCutoff,
|
||||||
|
SleepTemperature,
|
||||||
|
SleepTimeout,
|
||||||
|
ShutdownTimeout,
|
||||||
|
MotionSensitivity,
|
||||||
|
TemperatureUnit,
|
||||||
|
AdvancedIdle,
|
||||||
|
DisplayRotation,
|
||||||
|
BoostTemperature,
|
||||||
|
AutoStart,
|
||||||
|
CooldownBlink,
|
||||||
|
TemperatureCalibration,
|
||||||
|
SettingsReset,
|
||||||
|
VoltageCalibration,
|
||||||
|
AdvancedSoldering,
|
||||||
|
ScrollingSpeed,
|
||||||
|
TipModel,
|
||||||
|
SimpleCalibrationMode,
|
||||||
|
AdvancedCalibrationMode,
|
||||||
|
QCMaxVoltage,
|
||||||
|
PowerLimit,
|
||||||
|
ReverseButtonTempChange,
|
||||||
|
TempChangeShortStep,
|
||||||
|
TempChangeLongStep,
|
||||||
|
PowerPulsePower,
|
||||||
|
TipGain,
|
||||||
|
HallEffSensitivity,
|
||||||
|
LockingMode,
|
||||||
|
MinVolCell,
|
||||||
|
AnimLoop,
|
||||||
|
AnimSpeed,
|
||||||
|
PowerPulseWait,
|
||||||
|
PowerPulseDuration,
|
||||||
|
};
|
||||||
|
|
||||||
|
constexpr uint8_t settings_item_index(const SettingsItemIndex i) { return static_cast<uint8_t>(i); }
|
||||||
|
// Use a constexpr function for type-checking.
|
||||||
|
#define SETTINGS_DESC(i) (SettingsDescriptions[settings_item_index(i)])
|
||||||
|
|
||||||
#endif /* TRANSLATION_H_ */
|
#endif /* TRANSLATION_H_ */
|
||||||
|
|||||||
@@ -141,12 +141,12 @@ const menuitem rootSettingsMenu[]{
|
|||||||
* Advanced Menu
|
* Advanced Menu
|
||||||
* Exit
|
* Exit
|
||||||
*/
|
*/
|
||||||
{(const char *)NULL, settings_enterPowerMenu, settings_displayPowerMenu}, /*Power*/
|
{nullptr, settings_enterPowerMenu, settings_displayPowerMenu}, /*Power*/
|
||||||
{(const char *)NULL, settings_enterSolderingMenu, settings_displaySolderingMenu}, /*Soldering*/
|
{nullptr, settings_enterSolderingMenu, settings_displaySolderingMenu}, /*Soldering*/
|
||||||
{(const char *)NULL, settings_enterPowerSavingMenu, settings_displayPowerSavingMenu}, /*Sleep Options Menu*/
|
{nullptr, settings_enterPowerSavingMenu, settings_displayPowerSavingMenu}, /*Sleep Options Menu*/
|
||||||
{(const char *)NULL, settings_enterUIMenu, settings_displayUIMenu}, /*UI Menu*/
|
{nullptr, settings_enterUIMenu, settings_displayUIMenu}, /*UI Menu*/
|
||||||
{(const char *)NULL, settings_enterAdvancedMenu, settings_displayAdvancedMenu}, /*Advanced Menu*/
|
{nullptr, settings_enterAdvancedMenu, settings_displayAdvancedMenu}, /*Advanced Menu*/
|
||||||
{NULL, NULL, NULL} // end of menu marker. DO NOT REMOVE
|
{nullptr, nullptr, nullptr} // end of menu marker. DO NOT REMOVE
|
||||||
};
|
};
|
||||||
|
|
||||||
const menuitem powerMenu[] = {
|
const menuitem powerMenu[] = {
|
||||||
@@ -154,13 +154,13 @@ const menuitem powerMenu[] = {
|
|||||||
* Power Source
|
* Power Source
|
||||||
*/
|
*/
|
||||||
#ifdef POW_DC
|
#ifdef POW_DC
|
||||||
{(const char *)SettingsDescriptions[0], settings_setInputVRange, settings_displayInputVRange}, /*Voltage input*/
|
{SETTINGS_DESC(SettingsItemIndex::DCInCutoff), settings_setInputVRange, settings_displayInputVRange}, /*Voltage input*/
|
||||||
{(const char *)SettingsDescriptions[28], settings_setInputMinVRange, settings_displayInputMinVRange}, /*Minimum voltage input*/
|
{SETTINGS_DESC(SettingsItemIndex::MinVolCell), settings_setInputMinVRange, settings_displayInputMinVRange}, /*Minimum voltage input*/
|
||||||
#endif
|
#endif
|
||||||
#ifdef POW_QC
|
#ifdef POW_QC
|
||||||
{(const char *)SettingsDescriptions[19], settings_setQCInputV, settings_displayQCInputV}, /*Voltage input*/
|
{SETTINGS_DESC(SettingsItemIndex::QCMaxVoltage), settings_setQCInputV, settings_displayQCInputV}, /*Voltage input*/
|
||||||
#endif
|
#endif
|
||||||
{NULL, NULL, NULL} // end of menu marker. DO NOT REMOVE
|
{nullptr, nullptr, nullptr} // end of menu marker. DO NOT REMOVE
|
||||||
};
|
};
|
||||||
const menuitem solderingMenu[] = {
|
const menuitem solderingMenu[] = {
|
||||||
/*
|
/*
|
||||||
@@ -170,12 +170,12 @@ const menuitem solderingMenu[] = {
|
|||||||
* Temp change short step
|
* Temp change short step
|
||||||
* Temp change long step
|
* Temp change long step
|
||||||
*/
|
*/
|
||||||
{(const char *)SettingsDescriptions[8], settings_setBoostTemp, settings_displayBoostTemp}, /*Boost Temp*/
|
{SETTINGS_DESC(SettingsItemIndex::BoostTemperature), settings_setBoostTemp, settings_displayBoostTemp}, /*Boost Temp*/
|
||||||
{(const char *)SettingsDescriptions[9], settings_setAutomaticStartMode, settings_displayAutomaticStartMode}, /*Auto start*/
|
{SETTINGS_DESC(SettingsItemIndex::AutoStart), settings_setAutomaticStartMode, settings_displayAutomaticStartMode}, /*Auto start*/
|
||||||
{(const char *)SettingsDescriptions[22], settings_setTempChangeShortStep, settings_displayTempChangeShortStep}, /*Temp change short step*/
|
{SETTINGS_DESC(SettingsItemIndex::TempChangeShortStep), settings_setTempChangeShortStep, settings_displayTempChangeShortStep}, /*Temp change short step*/
|
||||||
{(const char *)SettingsDescriptions[23], settings_setTempChangeLongStep, settings_displayTempChangeLongStep}, /*Temp change long step*/
|
{SETTINGS_DESC(SettingsItemIndex::TempChangeLongStep), settings_setTempChangeLongStep, settings_displayTempChangeLongStep}, /*Temp change long step*/
|
||||||
{(const char *)SettingsDescriptions[27], settings_setLockingMode, settings_displayLockingMode}, /*Locking Mode*/
|
{SETTINGS_DESC(SettingsItemIndex::LockingMode), settings_setLockingMode, settings_displayLockingMode}, /*Locking Mode*/
|
||||||
{NULL, NULL, NULL} // end of menu marker. DO NOT REMOVE
|
{nullptr, nullptr, nullptr} // end of menu marker. DO NOT REMOVE
|
||||||
};
|
};
|
||||||
const menuitem UIMenu[] = {
|
const menuitem UIMenu[] = {
|
||||||
/*
|
/*
|
||||||
@@ -186,15 +186,15 @@ const menuitem UIMenu[] = {
|
|||||||
* Cooldown blink
|
* Cooldown blink
|
||||||
* Reverse Temp change buttons + -
|
* Reverse Temp change buttons + -
|
||||||
*/
|
*/
|
||||||
{(const char *)SettingsDescriptions[5], settings_setTempF,
|
{SETTINGS_DESC(SettingsItemIndex::TemperatureUnit), settings_setTempF,
|
||||||
settings_displayTempF}, /* Temperature units, this has to be the first element in the array to work with the logic in settings_enterUIMenu() */
|
settings_displayTempF}, /* Temperature units, this has to be the first element in the array to work with the logic in settings_enterUIMenu() */
|
||||||
{(const char *)SettingsDescriptions[7], settings_setDisplayRotation, settings_displayDisplayRotation}, /*Display Rotation*/
|
{SETTINGS_DESC(SettingsItemIndex::DisplayRotation), settings_setDisplayRotation, settings_displayDisplayRotation}, /*Display Rotation*/
|
||||||
{(const char *)SettingsDescriptions[10], settings_setCoolingBlinkEnabled, settings_displayCoolingBlinkEnabled}, /*Cooling blink warning*/
|
{SETTINGS_DESC(SettingsItemIndex::CooldownBlink), settings_setCoolingBlinkEnabled, settings_displayCoolingBlinkEnabled}, /*Cooling blink warning*/
|
||||||
{(const char *)SettingsDescriptions[15], settings_setScrollSpeed, settings_displayScrollSpeed}, /*Scroll Speed for descriptions*/
|
{SETTINGS_DESC(SettingsItemIndex::ScrollingSpeed), settings_setScrollSpeed, settings_displayScrollSpeed}, /*Scroll Speed for descriptions*/
|
||||||
{(const char *)SettingsDescriptions[21], settings_setReverseButtonTempChangeEnabled, settings_displayReverseButtonTempChangeEnabled}, /* Reverse Temp change buttons + - */
|
{SETTINGS_DESC(SettingsItemIndex::ReverseButtonTempChange), settings_setReverseButtonTempChangeEnabled, settings_displayReverseButtonTempChangeEnabled}, /* Reverse Temp change buttons + - */
|
||||||
{(const char *)SettingsDescriptions[30], settings_setAnimationSpeed, settings_displayAnimationSpeed}, /*Animation Speed adjustment */
|
{SETTINGS_DESC(SettingsItemIndex::AnimSpeed), settings_setAnimationSpeed, settings_displayAnimationSpeed}, /*Animation Speed adjustment */
|
||||||
{(const char *)SettingsDescriptions[29], settings_setAnimationLoop, settings_displayAnimationLoop}, /*Animation Loop switch */
|
{SETTINGS_DESC(SettingsItemIndex::AnimLoop), settings_setAnimationLoop, settings_displayAnimationLoop}, /*Animation Loop switch */
|
||||||
{NULL, NULL, NULL} // end of menu marker. DO NOT REMOVE
|
{nullptr, nullptr, nullptr} // end of menu marker. DO NOT REMOVE
|
||||||
};
|
};
|
||||||
const menuitem PowerSavingMenu[] = {
|
const menuitem PowerSavingMenu[] = {
|
||||||
/*
|
/*
|
||||||
@@ -203,14 +203,14 @@ const menuitem PowerSavingMenu[] = {
|
|||||||
* Shutdown Time
|
* Shutdown Time
|
||||||
* Motion Sensitivity
|
* Motion Sensitivity
|
||||||
*/
|
*/
|
||||||
{(const char *)SettingsDescriptions[1], settings_setSleepTemp, settings_displaySleepTemp}, /*Sleep Temp*/
|
{SETTINGS_DESC(SettingsItemIndex::SleepTemperature), settings_setSleepTemp, settings_displaySleepTemp}, /*Sleep Temp*/
|
||||||
{(const char *)SettingsDescriptions[2], settings_setSleepTime, settings_displaySleepTime}, /*Sleep Time*/
|
{SETTINGS_DESC(SettingsItemIndex::SleepTimeout), settings_setSleepTime, settings_displaySleepTime}, /*Sleep Time*/
|
||||||
{(const char *)SettingsDescriptions[3], settings_setShutdownTime, settings_displayShutdownTime}, /*Shutdown Time*/
|
{SETTINGS_DESC(SettingsItemIndex::ShutdownTimeout), settings_setShutdownTime, settings_displayShutdownTime}, /*Shutdown Time*/
|
||||||
{(const char *)SettingsDescriptions[4], settings_setSensitivity, settings_displaySensitivity}, /* Motion Sensitivity*/
|
{SETTINGS_DESC(SettingsItemIndex::MotionSensitivity), settings_setSensitivity, settings_displaySensitivity}, /* Motion Sensitivity*/
|
||||||
#ifdef HALL_SENSOR
|
#ifdef HALL_SENSOR
|
||||||
{(const char *)SettingsDescriptions[26], settings_setHallEffect, settings_displayHallEffect}, /* HallEffect Sensitivity*/
|
{SETTINGS_DESC(SettingsItemIndex::HallEffSensitivity), settings_setHallEffect, settings_displayHallEffect}, /* HallEffect Sensitivity*/
|
||||||
#endif
|
#endif
|
||||||
{NULL, NULL, NULL} // end of menu marker. DO NOT REMOVE
|
{nullptr, nullptr, nullptr} // end of menu marker. DO NOT REMOVE
|
||||||
};
|
};
|
||||||
const menuitem advancedMenu[] = {
|
const menuitem advancedMenu[] = {
|
||||||
|
|
||||||
@@ -227,20 +227,21 @@ const menuitem advancedMenu[] = {
|
|||||||
* Power Pulse Wait
|
* Power Pulse Wait
|
||||||
* Power Pulse Duration
|
* Power Pulse Duration
|
||||||
*/
|
*/
|
||||||
{(const char *)SettingsDescriptions[20], settings_setPowerLimit, settings_displayPowerLimit}, /*Power limit*/
|
{SETTINGS_DESC(SettingsItemIndex::PowerLimit), settings_setPowerLimit, settings_displayPowerLimit}, /*Power limit*/
|
||||||
{(const char *)SettingsDescriptions[6], settings_setAdvancedIDLEScreens, settings_displayAdvancedIDLEScreens}, /* Advanced idle screen*/
|
{SETTINGS_DESC(SettingsItemIndex::AdvancedIdle), settings_setAdvancedIDLEScreens, settings_displayAdvancedIDLEScreens}, /* Advanced idle screen*/
|
||||||
{(const char *)SettingsDescriptions[14], settings_setAdvancedSolderingScreens, settings_displayAdvancedSolderingScreens}, /* Advanced soldering screen*/
|
{SETTINGS_DESC(SettingsItemIndex::AdvancedSoldering), settings_setAdvancedSolderingScreens, settings_displayAdvancedSolderingScreens}, /* Advanced soldering screen*/
|
||||||
{(const char *)SettingsDescriptions[12], settings_setResetSettings, settings_displayResetSettings}, /*Resets settings*/
|
{SETTINGS_DESC(SettingsItemIndex::SettingsReset), settings_setResetSettings, settings_displayResetSettings}, /*Resets settings*/
|
||||||
{(const char *)SettingsDescriptions[11], settings_setCalibrate, settings_displayCalibrate}, /*Calibrate tip*/
|
{SETTINGS_DESC(SettingsItemIndex::TemperatureCalibration), settings_setCalibrate, settings_displayCalibrate}, /*Calibrate tip*/
|
||||||
{(const char *)SettingsDescriptions[13], settings_setCalibrateVIN, settings_displayCalibrateVIN}, /*Voltage input cal*/
|
{SETTINGS_DESC(SettingsItemIndex::VoltageCalibration), settings_setCalibrateVIN, settings_displayCalibrateVIN}, /*Voltage input cal*/
|
||||||
{(const char *)SettingsDescriptions[24], settings_setPowerPulse, settings_displayPowerPulse}, /*Power Pulse adjustment */
|
{SETTINGS_DESC(SettingsItemIndex::PowerPulsePower), settings_setPowerPulse, settings_displayPowerPulse}, /*Power Pulse adjustment */
|
||||||
{(const char *)SettingsDescriptions[31], settings_setPowerPulseWait, settings_displayPowerPulseWait}, /*Power Pulse Wait adjustment*/
|
{SETTINGS_DESC(SettingsItemIndex::PowerPulseWait), settings_setPowerPulseWait, settings_displayPowerPulseWait}, /*Power Pulse Wait adjustment*/
|
||||||
{(const char *)SettingsDescriptions[32], settings_setPowerPulseDuration, settings_displayPowerPulseDuration}, /*Power Pulse Duration adjustment*/
|
{SETTINGS_DESC(SettingsItemIndex::PowerPulseDuration), settings_setPowerPulseDuration, settings_displayPowerPulseDuration}, /*Power Pulse Duration adjustment*/
|
||||||
//{ (const char *) SettingsDescriptions[25], settings_setTipGain, settings_displayTipGain }, /*TipGain*/
|
//{ SETTINGS_DESC(SettingsDescriptionsIndex::TipGain), settings_setTipGain, settings_displayTipGain }, /*TipGain*/
|
||||||
{NULL, NULL, NULL} // end of menu marker. DO NOT REMOVE
|
{nullptr, nullptr, nullptr} // end of menu marker. DO NOT REMOVE
|
||||||
};
|
};
|
||||||
|
|
||||||
static void printShortDescriptionDoubleLine(uint32_t shortDescIndex) {
|
static void printShortDescriptionDoubleLine(SettingsItemIndex settingsItemIndex) {
|
||||||
|
uint8_t shortDescIndex = static_cast<uint8_t>(settingsItemIndex);
|
||||||
if (SettingsShortNames[shortDescIndex][0][0] == '\x00') {
|
if (SettingsShortNames[shortDescIndex][0][0] == '\x00') {
|
||||||
// Empty first line means that this uses large font (for CJK).
|
// Empty first line means that this uses large font (for CJK).
|
||||||
OLED::setCursor(0, 0);
|
OLED::setCursor(0, 0);
|
||||||
@@ -254,15 +255,15 @@ static void printShortDescriptionDoubleLine(uint32_t shortDescIndex) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints two small lines (or one line for CJK) of short description
|
* Prints two small lines (or one line for CJK) of short description for
|
||||||
* and prepares cursor in big font after it.
|
* setting items and prepares cursor after it.
|
||||||
* @param shortDescIndex Index to of short description.
|
* @param settingsItemIndex Index of the setting item.
|
||||||
* @param cursorCharPosition Custom cursor char position to set after printing
|
* @param cursorCharPosition Custom cursor char position to set after printing
|
||||||
* description.
|
* description.
|
||||||
*/
|
*/
|
||||||
static void printShortDescription(uint32_t shortDescIndex, uint16_t cursorCharPosition) {
|
static void printShortDescription(SettingsItemIndex settingsItemIndex, uint16_t cursorCharPosition) {
|
||||||
// print short description (default single line, explicit double line)
|
// print short description (default single line, explicit double line)
|
||||||
printShortDescriptionDoubleLine(shortDescIndex);
|
printShortDescriptionDoubleLine(settingsItemIndex);
|
||||||
|
|
||||||
// prepare cursor for value
|
// prepare cursor for value
|
||||||
// make room for scroll indicator
|
// make room for scroll indicator
|
||||||
@@ -349,7 +350,7 @@ static bool settings_setInputVRange(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayInputVRange(void) {
|
static bool settings_displayInputVRange(void) {
|
||||||
printShortDescription(0, 6);
|
printShortDescription(SettingsItemIndex::DCInCutoff, 6);
|
||||||
|
|
||||||
if (systemSettings.minDCVoltageCells) {
|
if (systemSettings.minDCVoltageCells) {
|
||||||
OLED::printNumber(2 + systemSettings.minDCVoltageCells, 1, FontStyle::LARGE);
|
OLED::printNumber(2 + systemSettings.minDCVoltageCells, 1, FontStyle::LARGE);
|
||||||
@@ -371,12 +372,12 @@ static bool settings_setInputMinVRange(void) {
|
|||||||
|
|
||||||
static bool settings_displayInputMinVRange(void) {
|
static bool settings_displayInputMinVRange(void) {
|
||||||
if (systemSettings.minDCVoltageCells) {
|
if (systemSettings.minDCVoltageCells) {
|
||||||
printShortDescription(28, 4);
|
printShortDescription(SettingsItemIndex::MinVolCell, 4);
|
||||||
OLED::printNumber(systemSettings.minVoltageCells / 10, 2, FontStyle::LARGE);
|
OLED::printNumber(systemSettings.minVoltageCells / 10, 2, FontStyle::LARGE);
|
||||||
OLED::print(SymbolDot, FontStyle::LARGE);
|
OLED::print(SymbolDot, FontStyle::LARGE);
|
||||||
OLED::printNumber(systemSettings.minVoltageCells % 10, 1, FontStyle::LARGE);
|
OLED::printNumber(systemSettings.minVoltageCells % 10, 1, FontStyle::LARGE);
|
||||||
} else {
|
} else {
|
||||||
printShortDescription(28, 5);
|
printShortDescription(SettingsItemIndex::MinVolCell, 5);
|
||||||
OLED::print(SettingNAChar, FontStyle::LARGE);
|
OLED::print(SettingNAChar, FontStyle::LARGE);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -394,7 +395,7 @@ static bool settings_setQCInputV(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayQCInputV(void) {
|
static bool settings_displayQCInputV(void) {
|
||||||
printShortDescription(19, 5);
|
printShortDescription(SettingsItemIndex::QCMaxVoltage, 5);
|
||||||
// 0 = 9V, 1=12V, 2=20V (Fixed Voltages)
|
// 0 = 9V, 1=12V, 2=20V (Fixed Voltages)
|
||||||
// These are only used in QC modes
|
// These are only used in QC modes
|
||||||
switch (systemSettings.QCIdealVoltage) {
|
switch (systemSettings.QCIdealVoltage) {
|
||||||
@@ -433,7 +434,7 @@ static bool settings_setSleepTemp(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displaySleepTemp(void) {
|
static bool settings_displaySleepTemp(void) {
|
||||||
printShortDescription(1, 5);
|
printShortDescription(SettingsItemIndex::SleepTemperature, 5);
|
||||||
OLED::printNumber(systemSettings.SleepTemp, 3, FontStyle::LARGE);
|
OLED::printNumber(systemSettings.SleepTemp, 3, FontStyle::LARGE);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -450,7 +451,7 @@ static bool settings_setSleepTime(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displaySleepTime(void) {
|
static bool settings_displaySleepTime(void) {
|
||||||
printShortDescription(2, 5);
|
printShortDescription(SettingsItemIndex::SleepTimeout, 5);
|
||||||
if (systemSettings.SleepTime == 0) {
|
if (systemSettings.SleepTime == 0) {
|
||||||
OLED::print(OffString, FontStyle::LARGE);
|
OLED::print(OffString, FontStyle::LARGE);
|
||||||
} else if (systemSettings.SleepTime < 6) {
|
} else if (systemSettings.SleepTime < 6) {
|
||||||
@@ -474,7 +475,7 @@ static bool settings_setShutdownTime(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayShutdownTime(void) {
|
static bool settings_displayShutdownTime(void) {
|
||||||
printShortDescription(3, 5);
|
printShortDescription(SettingsItemIndex::ShutdownTimeout, 5);
|
||||||
if (systemSettings.ShutdownTime == 0) {
|
if (systemSettings.ShutdownTime == 0) {
|
||||||
OLED::print(OffString, FontStyle::LARGE);
|
OLED::print(OffString, FontStyle::LARGE);
|
||||||
} else {
|
} else {
|
||||||
@@ -509,7 +510,7 @@ static bool settings_setTempF(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayTempF(void) {
|
static bool settings_displayTempF(void) {
|
||||||
printShortDescription(5, 7);
|
printShortDescription(SettingsItemIndex::TemperatureUnit, 7);
|
||||||
|
|
||||||
OLED::print((systemSettings.temperatureInF) ? SymbolDegF : SymbolDegC, FontStyle::LARGE);
|
OLED::print((systemSettings.temperatureInF) ? SymbolDegF : SymbolDegC, FontStyle::LARGE);
|
||||||
return false;
|
return false;
|
||||||
@@ -522,7 +523,7 @@ static bool settings_setSensitivity(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displaySensitivity(void) {
|
static bool settings_displaySensitivity(void) {
|
||||||
printShortDescription(4, 7);
|
printShortDescription(SettingsItemIndex::MotionSensitivity, 7);
|
||||||
OLED::printNumber(systemSettings.sensitivity, 1, FontStyle::LARGE, false);
|
OLED::printNumber(systemSettings.sensitivity, 1, FontStyle::LARGE, false);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -533,7 +534,7 @@ static bool settings_setAdvancedSolderingScreens(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayAdvancedSolderingScreens(void) {
|
static bool settings_displayAdvancedSolderingScreens(void) {
|
||||||
printShortDescription(14, 7);
|
printShortDescription(SettingsItemIndex::AdvancedSoldering, 7);
|
||||||
|
|
||||||
OLED::drawCheckbox(systemSettings.detailedSoldering);
|
OLED::drawCheckbox(systemSettings.detailedSoldering);
|
||||||
return false;
|
return false;
|
||||||
@@ -545,7 +546,7 @@ static bool settings_setAdvancedIDLEScreens(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayAdvancedIDLEScreens(void) {
|
static bool settings_displayAdvancedIDLEScreens(void) {
|
||||||
printShortDescription(6, 7);
|
printShortDescription(SettingsItemIndex::AdvancedIdle, 7);
|
||||||
|
|
||||||
OLED::drawCheckbox(systemSettings.detailedIDLE);
|
OLED::drawCheckbox(systemSettings.detailedIDLE);
|
||||||
return false;
|
return false;
|
||||||
@@ -559,7 +560,7 @@ static bool settings_setPowerLimit(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayPowerLimit(void) {
|
static bool settings_displayPowerLimit(void) {
|
||||||
printShortDescription(20, 5);
|
printShortDescription(SettingsItemIndex::PowerLimit, 5);
|
||||||
if (systemSettings.powerLimit == 0) {
|
if (systemSettings.powerLimit == 0) {
|
||||||
OLED::print(OffString, FontStyle::LARGE);
|
OLED::print(OffString, FontStyle::LARGE);
|
||||||
} else {
|
} else {
|
||||||
@@ -578,7 +579,7 @@ static bool settings_setScrollSpeed(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayScrollSpeed(void) {
|
static bool settings_displayScrollSpeed(void) {
|
||||||
printShortDescription(15, 7);
|
printShortDescription(SettingsItemIndex::ScrollingSpeed, 7);
|
||||||
OLED::print((systemSettings.descriptionScrollSpeed) ? SettingFastChar : SettingSlowChar, FontStyle::LARGE);
|
OLED::print((systemSettings.descriptionScrollSpeed) ? SettingFastChar : SettingSlowChar, FontStyle::LARGE);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -603,7 +604,7 @@ static bool settings_setDisplayRotation(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayDisplayRotation(void) {
|
static bool settings_displayDisplayRotation(void) {
|
||||||
printShortDescription(7, 7);
|
printShortDescription(SettingsItemIndex::DisplayRotation, 7);
|
||||||
|
|
||||||
switch (systemSettings.OrientationMode) {
|
switch (systemSettings.OrientationMode) {
|
||||||
case 0:
|
case 0:
|
||||||
@@ -648,7 +649,7 @@ static bool settings_setBoostTemp(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayBoostTemp(void) {
|
static bool settings_displayBoostTemp(void) {
|
||||||
printShortDescription(8, 5);
|
printShortDescription(SettingsItemIndex::BoostTemperature, 5);
|
||||||
if (systemSettings.BoostTemp) {
|
if (systemSettings.BoostTemp) {
|
||||||
OLED::printNumber(systemSettings.BoostTemp, 3, FontStyle::LARGE);
|
OLED::printNumber(systemSettings.BoostTemp, 3, FontStyle::LARGE);
|
||||||
} else {
|
} else {
|
||||||
@@ -664,7 +665,7 @@ static bool settings_setAutomaticStartMode(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayAutomaticStartMode(void) {
|
static bool settings_displayAutomaticStartMode(void) {
|
||||||
printShortDescription(9, 7);
|
printShortDescription(SettingsItemIndex::AutoStart, 7);
|
||||||
|
|
||||||
switch (systemSettings.autoStartMode) {
|
switch (systemSettings.autoStartMode) {
|
||||||
case 0:
|
case 0:
|
||||||
@@ -693,7 +694,7 @@ static bool settings_setLockingMode(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayLockingMode(void) {
|
static bool settings_displayLockingMode(void) {
|
||||||
printShortDescription(27, 7);
|
printShortDescription(SettingsItemIndex::LockingMode, 7);
|
||||||
|
|
||||||
switch (systemSettings.lockingMode) {
|
switch (systemSettings.lockingMode) {
|
||||||
case 0:
|
case 0:
|
||||||
@@ -718,7 +719,7 @@ static bool settings_setCoolingBlinkEnabled(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayCoolingBlinkEnabled(void) {
|
static bool settings_displayCoolingBlinkEnabled(void) {
|
||||||
printShortDescription(10, 7);
|
printShortDescription(SettingsItemIndex::CooldownBlink, 7);
|
||||||
OLED::drawCheckbox(systemSettings.coolingTempBlink);
|
OLED::drawCheckbox(systemSettings.coolingTempBlink);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -738,7 +739,7 @@ static bool settings_setResetSettings(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayResetSettings(void) {
|
static bool settings_displayResetSettings(void) {
|
||||||
printShortDescription(12, 7);
|
printShortDescription(SettingsItemIndex::SettingsReset, 7);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -784,7 +785,7 @@ static bool settings_setCalibrate(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayCalibrate(void) {
|
static bool settings_displayCalibrate(void) {
|
||||||
printShortDescription(11, 5);
|
printShortDescription(SettingsItemIndex::TemperatureCalibration, 5);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -850,7 +851,7 @@ static bool settings_setReverseButtonTempChangeEnabled(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayReverseButtonTempChangeEnabled(void) {
|
static bool settings_displayReverseButtonTempChangeEnabled(void) {
|
||||||
printShortDescription(21, 7);
|
printShortDescription(SettingsItemIndex::ReverseButtonTempChange, 7);
|
||||||
OLED::drawCheckbox(systemSettings.ReverseButtonTempChangeEnabled);
|
OLED::drawCheckbox(systemSettings.ReverseButtonTempChangeEnabled);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -864,7 +865,7 @@ static bool settings_setTempChangeShortStep(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayTempChangeShortStep(void) {
|
static bool settings_displayTempChangeShortStep(void) {
|
||||||
printShortDescription(22, 6);
|
printShortDescription(SettingsItemIndex::TempChangeShortStep, 6);
|
||||||
OLED::printNumber(systemSettings.TempChangeShortStep, 2, FontStyle::LARGE);
|
OLED::printNumber(systemSettings.TempChangeShortStep, 2, FontStyle::LARGE);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -884,7 +885,7 @@ static bool settings_setTempChangeLongStep(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayTempChangeLongStep(void) {
|
static bool settings_displayTempChangeLongStep(void) {
|
||||||
printShortDescription(23, 6);
|
printShortDescription(SettingsItemIndex::TempChangeLongStep, 6);
|
||||||
OLED::printNumber(systemSettings.TempChangeLongStep, 2, FontStyle::LARGE);
|
OLED::printNumber(systemSettings.TempChangeLongStep, 2, FontStyle::LARGE);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -896,7 +897,7 @@ static bool settings_setPowerPulse(void) {
|
|||||||
return systemSettings.KeepAwakePulse == POWER_PULSE_MAX - 1;
|
return systemSettings.KeepAwakePulse == POWER_PULSE_MAX - 1;
|
||||||
}
|
}
|
||||||
static bool settings_displayPowerPulse(void) {
|
static bool settings_displayPowerPulse(void) {
|
||||||
printShortDescription(24, 5);
|
printShortDescription(SettingsItemIndex::PowerPulsePower, 5);
|
||||||
if (systemSettings.KeepAwakePulse) {
|
if (systemSettings.KeepAwakePulse) {
|
||||||
OLED::printNumber(systemSettings.KeepAwakePulse / 10, 1, FontStyle::LARGE);
|
OLED::printNumber(systemSettings.KeepAwakePulse / 10, 1, FontStyle::LARGE);
|
||||||
OLED::print(SymbolDot, FontStyle::LARGE);
|
OLED::print(SymbolDot, FontStyle::LARGE);
|
||||||
@@ -913,7 +914,7 @@ static bool settings_setAnimationLoop(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayAnimationLoop(void) {
|
static bool settings_displayAnimationLoop(void) {
|
||||||
printShortDescription(29, 7);
|
printShortDescription(SettingsItemIndex::AnimLoop, 7);
|
||||||
OLED::drawCheckbox(systemSettings.animationLoop);
|
OLED::drawCheckbox(systemSettings.animationLoop);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -925,7 +926,7 @@ static bool settings_setAnimationSpeed(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayAnimationSpeed(void) {
|
static bool settings_displayAnimationSpeed(void) {
|
||||||
printShortDescription(30, 7);
|
printShortDescription(SettingsItemIndex::AnimSpeed, 7);
|
||||||
switch (systemSettings.animationSpeed) {
|
switch (systemSettings.animationSpeed) {
|
||||||
case settingOffSpeed_t::SLOW:
|
case settingOffSpeed_t::SLOW:
|
||||||
OLED::print(SettingSlowChar, FontStyle::LARGE);
|
OLED::print(SettingSlowChar, FontStyle::LARGE);
|
||||||
@@ -955,7 +956,7 @@ static bool settings_setPowerPulseWait(void) {
|
|||||||
|
|
||||||
static bool settings_displayPowerPulseWait(void) {
|
static bool settings_displayPowerPulseWait(void) {
|
||||||
if (systemSettings.KeepAwakePulse) {
|
if (systemSettings.KeepAwakePulse) {
|
||||||
printShortDescription(31, 7);
|
printShortDescription(SettingsItemIndex::PowerPulseWait, 7);
|
||||||
OLED::printNumber(systemSettings.KeepAwakePulseWait, 1, FontStyle::LARGE);
|
OLED::printNumber(systemSettings.KeepAwakePulseWait, 1, FontStyle::LARGE);
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@@ -975,7 +976,7 @@ static bool settings_setPowerPulseDuration(void) {
|
|||||||
|
|
||||||
static bool settings_displayPowerPulseDuration(void) {
|
static bool settings_displayPowerPulseDuration(void) {
|
||||||
if (systemSettings.KeepAwakePulse) {
|
if (systemSettings.KeepAwakePulse) {
|
||||||
printShortDescription(32, 7);
|
printShortDescription(SettingsItemIndex::PowerPulseDuration, 7);
|
||||||
OLED::printNumber(systemSettings.KeepAwakePulseDuration, 1, FontStyle::LARGE);
|
OLED::printNumber(systemSettings.KeepAwakePulseDuration, 1, FontStyle::LARGE);
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@@ -985,7 +986,7 @@ static bool settings_displayPowerPulseDuration(void) {
|
|||||||
|
|
||||||
#ifdef HALL_SENSOR
|
#ifdef HALL_SENSOR
|
||||||
static bool settings_displayHallEffect(void) {
|
static bool settings_displayHallEffect(void) {
|
||||||
printShortDescription(26, 7);
|
printShortDescription(SettingsItemIndex::HallEffSensitivity, 7);
|
||||||
switch (systemSettings.hallEffectSensitivity) {
|
switch (systemSettings.hallEffectSensitivity) {
|
||||||
case 1:
|
case 1:
|
||||||
OLED::print(SettingSensitivityLow, FontStyle::LARGE);
|
OLED::print(SettingSensitivityLow, FontStyle::LARGE);
|
||||||
@@ -1059,7 +1060,7 @@ static void displayMenu(size_t index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool settings_displayCalibrateVIN(void) {
|
static bool settings_displayCalibrateVIN(void) {
|
||||||
printShortDescription(13, 5);
|
printShortDescription(SettingsItemIndex::VoltageCalibration, 5);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
static bool settings_displayPowerMenu(void) {
|
static bool settings_displayPowerMenu(void) {
|
||||||
@@ -1117,12 +1118,12 @@ void gui_Menu(const menuitem *menu) {
|
|||||||
bool scrollBlink = false;
|
bool scrollBlink = false;
|
||||||
bool lastValue = false;
|
bool lastValue = false;
|
||||||
|
|
||||||
for (uint8_t i = 0; menu[i].draw != NULL; i++) {
|
for (uint8_t i = 0; menu[i].draw != nullptr; i++) {
|
||||||
scrollContentSize += 1;
|
scrollContentSize += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Animated menu opening.
|
// Animated menu opening.
|
||||||
if (menu[currentScreen].draw != NULL) {
|
if (menu[currentScreen].draw != nullptr) {
|
||||||
// This menu is drawn in a secondary framebuffer.
|
// This menu is drawn in a secondary framebuffer.
|
||||||
// Then we play a transition from the current primary
|
// Then we play a transition from the current primary
|
||||||
// framebuffer to the new buffer.
|
// framebuffer to the new buffer.
|
||||||
@@ -1137,11 +1138,11 @@ void gui_Menu(const menuitem *menu) {
|
|||||||
animOpenState = false;
|
animOpenState = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((menu[currentScreen].draw != NULL) && earlyExit == false) {
|
while ((menu[currentScreen].draw != nullptr) && earlyExit == false) {
|
||||||
OLED::setCursor(0, 0);
|
OLED::setCursor(0, 0);
|
||||||
// If the user has hesitated for >=3 seconds, show the long text
|
// If the user has hesitated for >=3 seconds, show the long text
|
||||||
// Otherwise "draw" the option
|
// Otherwise "draw" the option
|
||||||
if ((xTaskGetTickCount() - lastButtonTime < (TICKS_SECOND * 3)) || menu[currentScreen].description == NULL) {
|
if ((xTaskGetTickCount() - lastButtonTime < (TICKS_SECOND * 3)) || menu[currentScreen].description == nullptr) {
|
||||||
lcdRefresh = true;
|
lcdRefresh = true;
|
||||||
OLED::clearScreen();
|
OLED::clearScreen();
|
||||||
if (menu[currentScreen].draw()) {
|
if (menu[currentScreen].draw()) {
|
||||||
@@ -1159,14 +1160,15 @@ void gui_Menu(const menuitem *menu) {
|
|||||||
// Draw description
|
// Draw description
|
||||||
if (descriptionStart == 0)
|
if (descriptionStart == 0)
|
||||||
descriptionStart = xTaskGetTickCount();
|
descriptionStart = xTaskGetTickCount();
|
||||||
|
const char *description = menu[currentScreen].description;
|
||||||
// lower the value - higher the speed
|
// lower the value - higher the speed
|
||||||
int16_t descriptionWidth = FONT_12_WIDTH * (str_display_len(menu[currentScreen].description) + 7);
|
int16_t descriptionWidth = FONT_12_WIDTH * (str_display_len(description) + 7);
|
||||||
int16_t descriptionOffset = ((xTaskGetTickCount() - descriptionStart) / (systemSettings.descriptionScrollSpeed == 1 ? (TICKS_100MS / 10) : (TICKS_100MS / 5)));
|
int16_t descriptionOffset = ((xTaskGetTickCount() - descriptionStart) / (systemSettings.descriptionScrollSpeed == 1 ? (TICKS_100MS / 10) : (TICKS_100MS / 5)));
|
||||||
descriptionOffset %= descriptionWidth; // Roll around at the end
|
descriptionOffset %= descriptionWidth; // Roll around at the end
|
||||||
if (lastOffset != descriptionOffset) {
|
if (lastOffset != descriptionOffset) {
|
||||||
OLED::clearScreen();
|
OLED::clearScreen();
|
||||||
OLED::setCursor((OLED_WIDTH - descriptionOffset), 0);
|
OLED::setCursor((OLED_WIDTH - descriptionOffset), 0);
|
||||||
OLED::print(menu[currentScreen].description, FontStyle::LARGE);
|
OLED::print(description, FontStyle::LARGE);
|
||||||
lastOffset = descriptionOffset;
|
lastOffset = descriptionOffset;
|
||||||
lcdRefresh = true;
|
lcdRefresh = true;
|
||||||
}
|
}
|
||||||
@@ -1187,7 +1189,7 @@ void gui_Menu(const menuitem *menu) {
|
|||||||
case BUTTON_F_SHORT:
|
case BUTTON_F_SHORT:
|
||||||
// increment
|
// increment
|
||||||
if (descriptionStart == 0) {
|
if (descriptionStart == 0) {
|
||||||
if (menu[currentScreen].incrementHandler != NULL) {
|
if (menu[currentScreen].incrementHandler != nullptr) {
|
||||||
lastValue = menu[currentScreen].incrementHandler();
|
lastValue = menu[currentScreen].incrementHandler();
|
||||||
} else {
|
} else {
|
||||||
earlyExit = true;
|
earlyExit = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user