1
0
forked from me/IronOS

profile mode is optional

This commit is contained in:
Laura Klünder
2023-04-23 18:36:07 +02:00
parent 5c69458f1a
commit 448e5c8ad1
4 changed files with 27 additions and 1 deletions

View File

@@ -155,6 +155,8 @@
#define ACCEL_SC7
#define ACCEL_MSA
#define PROFILE_MODE
#define POW_PD 1
#define TEMP_NTC
#define I2C_SOFT

View File

@@ -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;
}

View File

@@ -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()) {

View File

@@ -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) {