Collapse power limiter into one menu option

Work for #642
This commit is contained in:
Ben V. Brown
2020-09-06 15:31:23 +10:00
parent 5459d437e4
commit feec35be7a
33 changed files with 37 additions and 291 deletions

View File

@@ -71,7 +71,6 @@ void resetSettings() {
systemSettings.temperatureInF = TEMPERATURE_INF; // default to 0
#endif
systemSettings.descriptionScrollSpeed = DESCRIPTION_SCROLL_SPEED; // default to slow
systemSettings.powerLimitEnable = POWER_LIMIT_ENABLE; // Default to no power limit
systemSettings.CalibrationOffset = CALIBRATION_OFFSET; // the adc offset in uV
systemSettings.powerLimit = POWER_LIMIT; // 30 watts default limit
systemSettings.ReverseButtonTempChangeEnabled = REVERSE_BUTTON_TEMP_CHANGE; //

View File

@@ -42,8 +42,6 @@ static bool settings_setAdvancedIDLEScreens(void);
static void settings_displayAdvancedIDLEScreens(void);
static bool settings_setScrollSpeed(void);
static void settings_displayScrollSpeed(void);
static bool settings_setPowerLimitEnable(void);
static void settings_displayPowerLimitEnable(void);
static bool settings_setPowerLimit(void);
static void settings_displayPowerLimit(void);
static bool settings_setDisplayRotation(void);
@@ -137,13 +135,11 @@ const menuitem rootSettingsMenu[] {
#endif
{ (const char*) NULL, settings_enterSolderingMenu,
settings_displaySolderingMenu }, /*Soldering*/
{ (const char*) NULL, settings_enterPowerMenu,
settings_displayPowerMenu }, /*Sleep Options Menu*/
{ (const char*) NULL, settings_enterUIMenu,
settings_displayUIMenu }, /*UI Menu*/
{ (const char*) NULL, settings_enterPowerMenu, settings_displayPowerMenu }, /*Sleep Options Menu*/
{ (const char*) NULL, settings_enterUIMenu, settings_displayUIMenu }, /*UI Menu*/
{ (const char*) NULL, settings_enterAdvancedMenu,
settings_displayAdvancedMenu }, /*Advanced Menu*/
{ NULL, NULL , NULL } // end of menu marker. DO NOT REMOVE
{ NULL, NULL, NULL } // end of menu marker. DO NOT REMOVE
};
const menuitem solderingMenu[] = {
@@ -160,9 +156,9 @@ const menuitem solderingMenu[] = {
settings_displayBoostTemp }, /*Boost Temp*/
{ (const char*) SettingsDescriptions[10], settings_setAutomaticStartMode,
settings_displayAutomaticStartMode }, /*Auto start*/
{ (const char*) SettingsDescriptions[24], settings_setTempChangeShortStep,
{ (const char*) SettingsDescriptions[23], settings_setTempChangeShortStep,
settings_displayTempChangeShortStep }, /*Temp change short step*/
{ (const char*) SettingsDescriptions[25], settings_setTempChangeLongStep,
{ (const char*) SettingsDescriptions[24], settings_setTempChangeLongStep,
settings_displayTempChangeLongStep }, /*Temp change long step*/
{ NULL, NULL, NULL } // end of menu marker. DO NOT REMOVE
};
@@ -179,15 +175,14 @@ const menuitem UIMenu[] = {
{ (const char*) SettingsDescriptions[5], settings_setTempF,
settings_displayTempF }, /* Temperature units*/
#endif
{ (const char*) SettingsDescriptions[7],
settings_setDisplayRotation,
settings_displayDisplayRotation }, /*Display Rotation*/
{ (const char*) SettingsDescriptions[7], settings_setDisplayRotation,
settings_displayDisplayRotation }, /*Display Rotation*/
{ (const char*) SettingsDescriptions[11],
settings_setCoolingBlinkEnabled,
settings_displayCoolingBlinkEnabled }, /*Cooling blink warning*/
{ (const char*) SettingsDescriptions[16], settings_setScrollSpeed,
settings_displayScrollSpeed }, /*Scroll Speed for descriptions*/
{ (const char*) SettingsDescriptions[23],
{ (const char*) SettingsDescriptions[22],
settings_setReverseButtonTempChangeEnabled,
settings_displayReverseButtonTempChangeEnabled }, /* Reverse Temp change buttons + - */
{ NULL, NULL, NULL } // end of menu marker. DO NOT REMOVE
@@ -212,7 +207,6 @@ const menuitem PowerMenu[] = {
const menuitem advancedMenu[] = {
/*
* Power limit enable
* Power limit
* Detailed IDLE
* Detailed Soldering
@@ -221,24 +215,21 @@ const menuitem advancedMenu[] = {
* Reset Settings
* Power Pulse
*/
{ (const char*) SettingsDescriptions[21], settings_setPowerLimitEnable,
settings_displayPowerLimitEnable }, /*Power limit enable*/
{ (const char*) SettingsDescriptions[22], settings_setPowerLimit,
{ (const char*) SettingsDescriptions[21], settings_setPowerLimit,
settings_displayPowerLimit }, /*Power limit*/
{ (const char*) SettingsDescriptions[6], settings_setAdvancedIDLEScreens,
settings_displayAdvancedIDLEScreens }, /* Advanced idle screen*/
{ (const char*) SettingsDescriptions[15],
settings_setAdvancedSolderingScreens,
settings_displayAdvancedSolderingScreens }, /* Advanced soldering screen*/
{ (const char*) SettingsDescriptions[15], settings_setAdvancedSolderingScreens,
settings_displayAdvancedSolderingScreens }, /* Advanced soldering screen*/
{ (const char*) SettingsDescriptions[13], settings_setResetSettings,
settings_displayResetSettings }, /*Resets settings*/
{ (const char*) SettingsDescriptions[12], settings_setCalibrate,
settings_displayCalibrate }, /*Calibrate tip*/
{ (const char*) SettingsDescriptions[14], settings_setCalibrateVIN,
settings_displayCalibrateVIN }, /*Voltage input cal*/
{ (const char*) SettingsDescriptions[26], settings_setPowerPulse,
{ (const char*) SettingsDescriptions[25], settings_setPowerPulse,
settings_displayPowerPulse }, /*Power Pulse adjustment */
{ (const char*) SettingsDescriptions[27], settings_setTipGain,
{ (const char*) SettingsDescriptions[26], settings_setTipGain,
settings_displayTipGain }, /*TipGain*/
{ NULL, NULL, NULL } // end of menu marker. DO NOT REMOVE
};
@@ -332,7 +323,7 @@ static int userConfirmation(const char *message) {
static bool settings_setInputVRange(void) {
systemSettings.cutoutSetting = (systemSettings.cutoutSetting + 1) % 5;
if (systemSettings.cutoutSetting)
systemSettings.powerLimitEnable = 0; // disable power limit if switching to a lipo power source
systemSettings.powerLimit = 0; // disable power limit if switching to a lipo power source
return systemSettings.cutoutSetting == 4;
}
@@ -506,27 +497,21 @@ static void settings_displayAdvancedIDLEScreens(void) {
OLED::drawCheckbox(systemSettings.detailedIDLE);
}
static bool settings_setPowerLimitEnable(void) {
systemSettings.powerLimitEnable = !systemSettings.powerLimitEnable;
return false;
}
static void settings_displayPowerLimitEnable(void) {
printShortDescription(21, 7);
OLED::drawCheckbox(systemSettings.powerLimitEnable);
}
static bool settings_setPowerLimit(void) {
systemSettings.powerLimit += POWER_LIMIT_STEPS;
if (systemSettings.powerLimit > MAX_POWER_LIMIT)
systemSettings.powerLimit = POWER_LIMIT_STEPS;
systemSettings.powerLimit = 0;
return systemSettings.powerLimit + POWER_LIMIT_STEPS > MAX_POWER_LIMIT;
}
static void settings_displayPowerLimit(void) {
printShortDescription(22, 5);
OLED::printNumber(systemSettings.powerLimit, 2);
OLED::print(SymbolWatts);
printShortDescription(21, 5);
if (systemSettings.powerLimit == 0) {
OLED::print(OffString);
} else {
OLED::printNumber(systemSettings.powerLimit, 2);
OLED::print(SymbolWatts);
}
}
static bool settings_setScrollSpeed(void) {
@@ -824,7 +809,7 @@ static bool settings_setTipGain(void) {
}
static void settings_displayTipGain(void) {
printShortDescription(27, 5);
printShortDescription(26, 5);
}
static bool settings_setReverseButtonTempChangeEnabled(void) {
@@ -834,7 +819,7 @@ static bool settings_setReverseButtonTempChangeEnabled(void) {
}
static void settings_displayReverseButtonTempChangeEnabled(void) {
printShortDescription(23, 7);
printShortDescription(22, 7);
OLED::drawCheckbox(systemSettings.ReverseButtonTempChangeEnabled);
}
@@ -847,7 +832,7 @@ static bool settings_setTempChangeShortStep(void) {
}
static void settings_displayTempChangeShortStep(void) {
printShortDescription(24, 6);
printShortDescription(23, 6);
OLED::printNumber(systemSettings.TempChangeShortStep, 2);
}
@@ -860,7 +845,7 @@ static bool settings_setTempChangeLongStep(void) {
}
static void settings_displayTempChangeLongStep(void) {
printShortDescription(25, 6);
printShortDescription(24, 6);
OLED::printNumber(systemSettings.TempChangeLongStep, 2);
}
@@ -871,7 +856,7 @@ static bool settings_setPowerPulse(void) {
return systemSettings.KeepAwakePulse == POWER_PULSE_MAX - 1;
}
static void settings_displayPowerPulse(void) {
printShortDescription(26, 5);
printShortDescription(25, 5);
if (systemSettings.KeepAwakePulse) {
OLED::printNumber(systemSettings.KeepAwakePulse / 10, 1);
OLED::print(SymbolDot);
@@ -1042,7 +1027,8 @@ void gui_Menu(const menuitem *menu) {
descriptionStart = 0;
break;
case BUTTON_F_LONG:
if ((int)(xTaskGetTickCount() - autoRepeatTimer + autoRepeatAcceleration) >
if ((int) (xTaskGetTickCount() - autoRepeatTimer
+ autoRepeatAcceleration) >
PRESS_ACCEL_INTERVAL_MAX) {
if ((lastValue = menu[currentScreen].incrementHandler()))
autoRepeatTimer = 1000;