diff --git a/source/Core/BSP/MHP30/configuration.h b/source/Core/BSP/MHP30/configuration.h index c3ecd127..af5bae52 100644 --- a/source/Core/BSP/MHP30/configuration.h +++ b/source/Core/BSP/MHP30/configuration.h @@ -155,6 +155,8 @@ #define ACCEL_SC7 #define ACCEL_MSA +#define PROFILE_MODE + #define POW_PD 1 #define TEMP_NTC #define I2C_SOFT diff --git a/source/Core/Src/settingsGUI.cpp b/source/Core/Src/settingsGUI.cpp index 931d5166..33d64ab0 100644 --- a/source/Core/Src/settingsGUI.cpp +++ b/source/Core/Src/settingsGUI.cpp @@ -52,6 +52,8 @@ static void displayDisplayRotation(void); static bool setBoostTemp(void); static void displayBoostTemp(void); + +#ifdef PROFILE_MODE static bool setProfilePreheatTemp(); static bool setProfilePhase1Temp(); static bool setProfilePhase2Temp(); @@ -77,6 +79,8 @@ static bool showProfilePhase2Options(void); static bool showProfilePhase3Options(void); static bool showProfilePhase4Options(void); static bool showProfilePhase5Options(void); +#endif + static void displayAutomaticStartMode(void); static void displayLockingMode(void); static void displayCoolingBlinkEnabled(void); @@ -244,6 +248,7 @@ const menuitem solderingMenu[] = { {SETTINGS_DESC(SettingsItemIndex::TempChangeLongStep), nullptr, displayTempChangeLongStep, nullptr, SettingsOptions::TempChangeLongStep, SettingsItemIndex::TempChangeLongStep, 6}, /*Temp change long step*/ {SETTINGS_DESC(SettingsItemIndex::LockingMode), nullptr, displayLockingMode, nullptr, SettingsOptions::LockingMode, SettingsItemIndex::LockingMode, 7}, /*Locking Mode*/ +#ifdef PROFILE_MODE {SETTINGS_DESC(SettingsItemIndex::ProfilePhases), nullptr, displayProfilePhases, nullptr, SettingsOptions::ProfilePhases, SettingsItemIndex::ProfilePhases, 5}, /*Boost Temp*/ {SETTINGS_DESC(SettingsItemIndex::ProfilePreheatTemp), setProfilePreheatTemp, displayProfilePreheatTemp, showProfileOptions, SettingsOptions::ProfilePreheatTemp, SettingsItemIndex::ProfilePreheatTemp, 5}, /*Boost Temp*/ {SETTINGS_DESC(SettingsItemIndex::ProfilePreheatSpeed), nullptr, displayProfilePreheatSpeed, showProfileOptions, SettingsOptions::ProfilePreheatSpeed, SettingsItemIndex::ProfilePreheatSpeed, 5}, /*Boost Temp*/ @@ -259,6 +264,7 @@ const menuitem solderingMenu[] = { {SETTINGS_DESC(SettingsItemIndex::ProfilePhase1Duration), nullptr, displayProfilePhase5Duration, showProfilePhase5Options, SettingsOptions::ProfilePhase5Duration, SettingsItemIndex::ProfilePhase5Duration, 5}, /*Boost Temp*/ {SETTINGS_DESC(SettingsItemIndex::ProfileCooldownSpeed), nullptr, displayProfileCooldownSpeed, showProfileOptions, SettingsOptions::ProfileCooldownSpeed, SettingsItemIndex::ProfileCooldownSpeed, 5}, /*Boost Temp*/ {0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength, SettingsItemIndex::NUM_ITEMS, 0} // end of menu marker. DO NOT REMOVE +#endif }; const menuitem PowerSavingMenu[] = { /* @@ -518,6 +524,8 @@ static void displayLockingMode(void) { } } +#ifdef PROFILE_MODE + static void displayProfilePhases(void) { if (getSettingValue(SettingsOptions::ProfilePhases)) { OLED::printNumber(getSettingValue(SettingsOptions::ProfilePhases), 1, FontStyle::LARGE); @@ -574,6 +582,8 @@ static bool showProfilePhase5Options(void) { return getSettingValue(SettingsOpti static void displaySensitivity(void) { OLED::printNumber(getSettingValue(SettingsOptions::Sensitivity), 1, FontStyle::LARGE, false); } static bool showSleepOptions(void) { return getSettingValue(SettingsOptions::Sensitivity) > 0; } +#endif + #ifndef NO_SLEEP_MODE static bool setSleepTemp(void) { @@ -649,12 +659,14 @@ static bool setTempF(void) { #ifndef NO_SLEEP_MODE setTempF(SettingsOptions::SleepTemp); #endif +#ifdef PROFILE_MODE setTempF(SettingsOptions::ProfilePreheatTemp); setTempF(SettingsOptions::ProfilePhase1Temp); setTempF(SettingsOptions::ProfilePhase2Temp); setTempF(SettingsOptions::ProfilePhase3Temp); setTempF(SettingsOptions::ProfilePhase4Temp); setTempF(SettingsOptions::ProfilePhase5Temp); +#endif return res; } diff --git a/source/Core/Threads/OperatingModes/HomeScreen.cpp b/source/Core/Threads/OperatingModes/HomeScreen.cpp index 602a1859..d9dbc7bf 100644 --- a/source/Core/Threads/OperatingModes/HomeScreen.cpp +++ b/source/Core/Threads/OperatingModes/HomeScreen.cpp @@ -55,8 +55,12 @@ void drawHomeScreen(bool buttonLockout) { showDebugMenu(); break; case BUTTON_F_LONG: +#ifdef PROFILE_MODE + // todo: add profile mode +#else gui_solderingTempAdjust(); saveSettings(); +#endif break; case BUTTON_F_SHORT: if (!isTipDisconnected()) { diff --git a/source/Core/Threads/OperatingModes/TemperatureAdjust.cpp b/source/Core/Threads/OperatingModes/TemperatureAdjust.cpp index 7f17f4e7..3593b82d 100644 --- a/source/Core/Threads/OperatingModes/TemperatureAdjust.cpp +++ b/source/Core/Threads/OperatingModes/TemperatureAdjust.cpp @@ -4,23 +4,31 @@ void gui_solderingTempAdjust(void) { currentTempTargetDegC = 0; // Turn off heater while adjusting temp TickType_t autoRepeatTimer = 0; uint8_t autoRepeatAcceleration = 0; +#ifndef PROFILE_MODE bool waitForRelease = false; ButtonState buttons = getButtonState(); + if (buttons != BUTTON_NONE) { // Temp adjust entered by long-pressing F button. waitForRelease = true; } +#else + ButtonState buttons; +#endif + for (;;) { OLED::setCursor(0, 0); OLED::clearScreen(); buttons = getButtonState(); if (buttons) { + lastChange = xTaskGetTickCount(); +#ifndef PROFILE_MODE if (waitForRelease) { buttons = BUTTON_NONE; } - lastChange = xTaskGetTickCount(); } else { waitForRelease = false; +#endif } int16_t delta = 0; switch (buttons) {