Fix autostart sleep

This commit is contained in:
firebie
2020-02-05 19:03:55 +02:00
parent 97ea3b871b
commit 1b60f0c630
30 changed files with 60 additions and 10 deletions

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "S", "SettingSlowChar": "S",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -32,6 +32,7 @@
"SettingSlowChar": "P", "SettingSlowChar": "P",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "S", "SettingSlowChar": "S",
"SettingStartSolderingChar": "L", "SettingStartSolderingChar": "L",
"SettingStartSleepChar": "D", "SettingStartSleepChar": "D",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "S" "SettingStartNoneChar": "S"
}, },
"menuDouble": false, "menuDouble": false,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "S", "SettingSlowChar": "S",
"SettingStartSolderingChar": "J", "SettingStartSolderingChar": "J",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -33,6 +33,7 @@
"SettingSlowChar": "S", "SettingSlowChar": "S",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -33,6 +33,7 @@
"SettingSlowChar": "L", "SettingSlowChar": "L",
"SettingStartSolderingChar": "S", "SettingStartSolderingChar": "S",
"SettingStartSleepChar": "R", "SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "N" "SettingStartNoneChar": "N"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "H", "SettingSlowChar": "H",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "L", "SettingSlowChar": "L",
"SettingStartSolderingChar": "A", "SettingStartSolderingChar": "A",
"SettingStartSleepChar": "V", "SettingStartSleepChar": "V",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "D" "SettingStartNoneChar": "D"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "S", "SettingSlowChar": "S",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "L", "SettingSlowChar": "L",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": false, "menuDouble": false,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "L", "SettingSlowChar": "L",
"SettingStartSolderingChar": "A", "SettingStartSolderingChar": "A",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "D" "SettingStartNoneChar": "D"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "N", "SettingSlowChar": "N",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "S", "SettingSlowChar": "S",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "T", "SettingSlowChar": "T",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "L", "SettingSlowChar": "L",
"SettingStartSolderingChar": "L", "SettingStartSolderingChar": "L",
"SettingStartSleepChar": "D", "SettingStartSleepChar": "D",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "I" "SettingStartNoneChar": "I"
}, },
"menuDouble": false, "menuDouble": false,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "S", "SettingSlowChar": "S",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "N" "SettingStartNoneChar": "N"
}, },
"menuDouble": false, "menuDouble": false,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "L", "SettingSlowChar": "L",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -33,6 +33,7 @@
"SettingSlowChar": "-", "SettingSlowChar": "-",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "S", "SettingSlowChar": "S",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": false, "menuDouble": false,

View File

@@ -32,6 +32,7 @@
"SettingSlowChar": "P", "SettingSlowChar": "P",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "С", "SettingSlowChar": "С",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "S", "SettingSlowChar": "S",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "L", "SettingSlowChar": "L",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "S", "SettingSlowChar": "S",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": false, "menuDouble": false,

View File

@@ -31,6 +31,7 @@
"SettingSlowChar": "-", "SettingSlowChar": "-",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "F"
}, },
"menuDouble": true, "menuDouble": true,

View File

@@ -125,6 +125,10 @@ var def =
"id": "SettingStartSleepChar", "id": "SettingStartSleepChar",
"len": 1 "len": 1
}, },
{
"id": "SettingStartSleepOffChar",
"len": 1
},
{ {
"id": "SettingStartNoneChar", "id": "SettingStartNoneChar",
"len": 1 "len": 1

View File

@@ -52,6 +52,7 @@ extern const char *SettingLeftChar;
extern const char *SettingAutoChar; extern const char *SettingAutoChar;
extern const char *SettingStartSolderingChar; extern const char *SettingStartSolderingChar;
extern const char *SettingStartSleepChar; extern const char *SettingStartSleepChar;
extern const char *SettingStartSleepOffChar;
extern const char *SettingStartNoneChar; extern const char *SettingStartNoneChar;
extern const char *SettingFastChar; extern const char *SettingFastChar;

View File

@@ -20,6 +20,7 @@
extern uint8_t PCBVersion; extern uint8_t PCBVersion;
// File local variables // File local variables
extern uint32_t currentTempTargetDegC; extern uint32_t currentTempTargetDegC;
extern uint8_t accelInit;
extern uint32_t lastMovementTime; extern uint32_t lastMovementTime;
extern int16_t idealQCVoltage; extern int16_t idealQCVoltage;
uint32_t lastButtonTime = 0; uint32_t lastButtonTime = 0;
@@ -352,27 +353,28 @@ static void gui_solderingTempAdjust() {
} }
} }
static int gui_SolderingSleepingMode() { static int gui_SolderingSleepingMode(bool stayOff) {
// Drop to sleep temperature and display until movement or button press // Drop to sleep temperature and display until movement or button press
for (;;) { for (;;) {
ButtonState buttons = getButtonState(); ButtonState buttons = getButtonState();
if (buttons) if (buttons)
return 0; return 0;
if ((lastMovementTime > 100 && (xTaskGetTickCount() - lastMovementTime < 100)) if ((xTaskGetTickCount() > 100)
|| (xTaskGetTickCount() - lastButtonTime < 100)) && ((accelInit && (xTaskGetTickCount() - lastMovementTime < 100))
|| (xTaskGetTickCount() - lastButtonTime < 100)))
return 0; // user moved or pressed a button, go back to soldering return 0; // user moved or pressed a button, go back to soldering
#ifdef MODEL_TS100 #ifdef MODEL_TS100
if (checkVoltageForExit()) if (checkVoltageForExit())
return 1; // return non-zero on error return 1; // return non-zero on error
#endif #endif
if (systemSettings.temperatureInF) { if (systemSettings.temperatureInF) {
currentTempTargetDegC = TipThermoModel::convertFtoC( currentTempTargetDegC = stayOff ? 0 : TipThermoModel::convertFtoC(
min(systemSettings.SleepTemp, min(systemSettings.SleepTemp,
systemSettings.SolderingTemp)); systemSettings.SolderingTemp));
} else { } else {
currentTempTargetDegC = (min(systemSettings.SleepTemp, currentTempTargetDegC = stayOff ? 0 : min(systemSettings.SleepTemp,
systemSettings.SolderingTemp)); systemSettings.SolderingTemp);
} }
// draw the lcd // draw the lcd
uint16_t tipTemp; uint16_t tipTemp;
@@ -460,7 +462,7 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
else else
sleepThres = (systemSettings.SleepTime - 5) * 60 * 100; sleepThres = (systemSettings.SleepTime - 5) * 60 * 100;
if (jumpToSleep) { if (jumpToSleep) {
if (gui_SolderingSleepingMode()) { if (gui_SolderingSleepingMode(jumpToSleep == 2)) {
lastButtonTime = xTaskGetTickCount(); lastButtonTime = xTaskGetTickCount();
return; // If the function returns non-0 then exit return; // If the function returns non-0 then exit
} }
@@ -594,7 +596,7 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
if (systemSettings.sensitivity && systemSettings.SleepTime) if (systemSettings.sensitivity && systemSettings.SleepTime)
if (xTaskGetTickCount() - lastMovementTime > sleepThres if (xTaskGetTickCount() - lastMovementTime > sleepThres
&& xTaskGetTickCount() - lastButtonTime > sleepThres) { && xTaskGetTickCount() - lastButtonTime > sleepThres) {
if (gui_SolderingSleepingMode()) { if (gui_SolderingSleepingMode(false)) {
return; // If the function returns non-0 then exit return; // If the function returns non-0 then exit
} }
} }
@@ -715,11 +717,16 @@ void startGUITask(void const *argument __unused) {
gui_solderingMode(0); gui_solderingMode(0);
buttonLockout = true; buttonLockout = true;
} }
if (systemSettings.autoStartMode == 2) else if (systemSettings.autoStartMode == 2)
{ {
gui_solderingMode(1); gui_solderingMode(1);
buttonLockout = true; buttonLockout = true;
} }
else if (systemSettings.autoStartMode == 3)
{
gui_solderingMode(2);
buttonLockout = true;
}
} }
#ifdef ACCELDEBUG #ifdef ACCELDEBUG

View File

@@ -564,7 +564,7 @@ static void settings_displayBoostTemp(void) {
static void settings_setAutomaticStartMode(void) { static void settings_setAutomaticStartMode(void) {
systemSettings.autoStartMode++; systemSettings.autoStartMode++;
systemSettings.autoStartMode %= 3; systemSettings.autoStartMode %= 4;
} }
static void settings_displayAutomaticStartMode(void) { static void settings_displayAutomaticStartMode(void) {
@@ -580,6 +580,9 @@ static void settings_displayAutomaticStartMode(void) {
case 2: case 2:
OLED::print(SettingStartSleepChar); OLED::print(SettingStartSleepChar);
break; break;
case 3:
OLED::print(SettingStartSleepOffChar);
break;
default: default:
OLED::print(SettingStartNoneChar); OLED::print(SettingStartNoneChar);
break; break;

View File

@@ -15,6 +15,7 @@
uint8_t PCBVersion = 0; uint8_t PCBVersion = 0;
// File local variables // File local variables
uint32_t currentTempTargetDegC = 0; // Current temperature target in C uint32_t currentTempTargetDegC = 0; // Current temperature target in C
uint8_t accelInit = 0;
uint32_t lastMovementTime = 0; uint32_t lastMovementTime = 0;
bool settingsWereReset = false; bool settingsWereReset = false;
@@ -262,6 +263,15 @@ void startMOVTask(void const *argument __unused) {
datax[currentPointer] = (int32_t) tx; datax[currentPointer] = (int32_t) tx;
datay[currentPointer] = (int32_t) ty; datay[currentPointer] = (int32_t) ty;
dataz[currentPointer] = (int32_t) tz; dataz[currentPointer] = (int32_t) tz;
if (!accelInit)
{
for (uint8_t i = currentPointer + 1; i < MOVFilter; i++) {
datax[i] = (int32_t) tx;
datay[i] = (int32_t) ty;
dataz[i] = (int32_t) tz;
}
accelInit = 1;
}
currentPointer = (currentPointer + 1) % MOVFilter; currentPointer = (currentPointer + 1) % MOVFilter;
avgx = avgy = avgz = 0; avgx = avgy = avgz = 0;
// calculate averages // calculate averages