bugfix
This commit is contained in:
parent
7007552474
commit
68a9d64990
2 changed files with 58 additions and 39 deletions
|
|
@ -62,7 +62,7 @@ static void drawHomeScreen(int currentSpeed, int curH, int curM, bool timeValid,
|
||||||
u8g2.setDrawColor(1); // 1 = Weiß (an)
|
u8g2.setDrawColor(1); // 1 = Weiß (an)
|
||||||
|
|
||||||
// 1. Feste Beschriftungen
|
// 1. Feste Beschriftungen
|
||||||
u8g2.setFont(u8g2_font_6x10_tr);
|
u8g2.setFont(u8g2_font_helvB08_tr);
|
||||||
u8g2.drawStr(5, 9, "Geschw");
|
u8g2.drawStr(5, 9, "Geschw");
|
||||||
u8g2.drawStr(5, 20, "Zeituhr");
|
u8g2.drawStr(5, 20, "Zeituhr");
|
||||||
u8g2.drawStr(5, 31, "Temp");
|
u8g2.drawStr(5, 31, "Temp");
|
||||||
|
|
@ -93,7 +93,7 @@ static void drawHomeScreen(int currentSpeed, int curH, int curM, bool timeValid,
|
||||||
u8g2.drawStr(74, 30, maxTempBuf);
|
u8g2.drawStr(74, 30, maxTempBuf);
|
||||||
|
|
||||||
// 5. Große aktuelle Uhrzeit unten links
|
// 5. Große aktuelle Uhrzeit unten links
|
||||||
u8g2.setFont(u8g2_font_6x10_tr);
|
u8g2.setFont(u8g2_font_helvB08_tr);
|
||||||
char timeBuf[10];
|
char timeBuf[10];
|
||||||
if (timeValid) {
|
if (timeValid) {
|
||||||
snprintf(timeBuf, sizeof(timeBuf), "%02d:%02d", curH, curM);
|
snprintf(timeBuf, sizeof(timeBuf), "%02d:%02d", curH, curM);
|
||||||
|
|
@ -183,62 +183,62 @@ static void drawSettingsScreen(uint8_t settingIdx, TimeEditStep timeEditStep, co
|
||||||
// Zeitschaltuhr Einstellungen
|
// Zeitschaltuhr Einstellungen
|
||||||
//######################
|
//######################
|
||||||
u8g2.setFont(textFont);
|
u8g2.setFont(textFont);
|
||||||
u8g2.drawStr(23, 10, "Zeituhr Einstellung");
|
u8g2.drawStr(10, 10, "Zeituhr Einstellung");
|
||||||
|
|
||||||
//######################
|
//######################
|
||||||
// Zeitschaltuhr Status
|
// Zeitschaltuhr Status
|
||||||
//######################
|
//######################
|
||||||
u8g2.setFont(textFont);
|
u8g2.setFont(textFont);
|
||||||
u8g2.drawStr(28, 22, "Zeituhr:");
|
u8g2.drawStr(10, 22, "Zeituhr:");
|
||||||
|
|
||||||
// Wenn Zeitschaltuhr Aktiviert
|
// Wenn Zeitschaltuhr Aktiviert
|
||||||
if(s.timerEnabled){
|
if(s.timerEnabled){
|
||||||
// Draw Check
|
// Draw Check
|
||||||
u8g2.drawXBMP(78, 14, 7, 8, image_checked_bits);
|
u8g2.drawXBMP(78, 15, 7, 8, image_checked_bits);
|
||||||
}else{
|
}else{
|
||||||
// Draw X
|
// Draw X
|
||||||
u8g2.drawXBMP(78, 17, 6, 8, image_crossed_bits);
|
u8g2.drawXBMP(78, 15, 6, 8, image_crossed_bits);
|
||||||
}
|
}
|
||||||
|
|
||||||
//######################
|
//######################
|
||||||
// Max Temp
|
// Max Temp
|
||||||
//######################
|
//######################
|
||||||
u8g2.setFont(textFont);
|
u8g2.setFont(textFont);
|
||||||
u8g2.drawStr(23, 34, "Max Temp:");
|
u8g2.drawStr(10, 34, "Max Temp:");
|
||||||
char maxTempBuf[10];
|
char maxTempBuf[10];
|
||||||
snprintf(maxTempBuf, sizeof(maxTempBuf), "%d", s.maxTemp);
|
snprintf(maxTempBuf, sizeof(maxTempBuf), "%d", s.maxTemp);
|
||||||
u8g2.setFont(valFont);
|
u8g2.setFont(valFont);
|
||||||
u8g2.drawStr(77, 34, maxTempBuf);
|
u8g2.drawStr(78, 34, maxTempBuf);
|
||||||
|
|
||||||
// Wenn Ausgewählt
|
// Wenn Ausgewählt
|
||||||
if(s.editMaxTemp){
|
if(s.editMaxTemp){
|
||||||
// Edit Fenster makieren
|
// Edit Fenster makieren
|
||||||
int w = u8g2.getStrWidth(maxTempBuf);
|
int w = u8g2.getStrWidth(maxTempBuf);
|
||||||
u8g2.drawFrame(75, 24, w + 4, 12);
|
u8g2.drawFrame(75, 25, w + 6, 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
//######################
|
//######################
|
||||||
// Beschleunigung
|
// Beschleunigung
|
||||||
//######################
|
//######################
|
||||||
u8g2.setFont(textFont);
|
u8g2.setFont(textFont);
|
||||||
u8g2.drawStr(23, 46, "Beschleu:");
|
u8g2.drawStr(10, 46, "Beschleu:");
|
||||||
u8g2.setFont(valFont);
|
u8g2.setFont(valFont);
|
||||||
char accBuf[10];
|
char accBuf[10];
|
||||||
snprintf(accBuf, sizeof(accBuf), "%d", s.accelRate);
|
snprintf(accBuf, sizeof(accBuf), "%d", s.accelRate);
|
||||||
u8g2.drawStr(77, 47, accBuf);
|
u8g2.drawStr(78, 46, accBuf);
|
||||||
|
|
||||||
// Wenn Ausgewählt
|
// Wenn Ausgewählt
|
||||||
if(s.editAcc){
|
if(s.editAcc){
|
||||||
// Edit Fenster makieren
|
// Edit Fenster makieren
|
||||||
int w = u8g2.getStrWidth(accBuf);
|
int w = u8g2.getStrWidth(accBuf);
|
||||||
u8g2.drawFrame(75, 37, w + 4, 12);
|
u8g2.drawFrame(75, 37, w + 6, 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
//######################
|
//######################
|
||||||
// Save
|
// Save
|
||||||
//######################
|
//######################
|
||||||
u8g2.setFont(textFont);
|
u8g2.setFont(textFont);
|
||||||
u8g2.drawUTF8(26, 58, "Bestätigung");
|
u8g2.drawUTF8(10, 58, "Bestätigung");
|
||||||
|
|
||||||
// Wenn nichts bearbeitet wird...
|
// Wenn nichts bearbeitet wird...
|
||||||
if(!s.editAcc || !s.editMaxTemp){
|
if(!s.editAcc || !s.editMaxTemp){
|
||||||
|
|
|
||||||
|
|
@ -254,13 +254,13 @@ void setting(){
|
||||||
settings.startHour = (settings.startHour == 0) ? 23 : settings.startHour - 1;
|
settings.startHour = (settings.startHour == 0) ? 23 : settings.startHour - 1;
|
||||||
break;
|
break;
|
||||||
case EDIT_START_MIN:
|
case EDIT_START_MIN:
|
||||||
settings.startMin = (settings.startMin == 0) ? 59 : settings.startMin -5;
|
settings.startMin = (settings.startMin < 5) ? 55 : settings.startMin - 5;
|
||||||
break;
|
break;
|
||||||
case EDIT_END_HOUR:
|
case EDIT_END_HOUR:
|
||||||
settings.endHour = (settings.endHour == 0) ? 23 : settings.endHour - 1;
|
settings.endHour = (settings.endHour == 0) ? 23 : settings.endHour - 1;
|
||||||
break;
|
break;
|
||||||
case EDIT_END_MIN:
|
case EDIT_END_MIN:
|
||||||
settings.endMin = (settings.endMin == 0) ? 59 : settings.endMin - 5;
|
settings.endMin = (settings.endMin < 5) ? 55 : settings.endMin - 5;
|
||||||
break;
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
@ -275,29 +275,47 @@ void setting(){
|
||||||
}
|
}
|
||||||
|
|
||||||
//######### Max Temp Edit #########
|
//######### Max Temp Edit #########
|
||||||
if(settings.editMaxTemp){
|
if (settings.editMaxTemp) {
|
||||||
if(clickPlus){
|
// PLUS: Bis maximal 150
|
||||||
settings.maxTemp = (settings.maxTemp + 5) % 140;
|
if (clickPlus) {
|
||||||
|
if (settings.maxTemp <= 145) {
|
||||||
|
settings.maxTemp += 5;
|
||||||
}
|
}
|
||||||
if(clickMinus){
|
|
||||||
settings.maxTemp = (settings.maxTemp == 0) ? -20 : settings.maxTemp - 5;
|
|
||||||
}
|
}
|
||||||
if(clickStop){
|
|
||||||
|
// MINUS: Bis minimal -20
|
||||||
|
if (clickMinus) {
|
||||||
|
if (settings.maxTemp >= -15) {
|
||||||
|
settings.maxTemp -= 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (clickStop) {
|
||||||
settings.editMaxTemp = false;
|
settings.editMaxTemp = false;
|
||||||
}
|
}
|
||||||
return; // Wichtig: Rest der Funktion überspringen, solange editiert wird!
|
return; // Wichtig: Rest der Funktion überspringen, solange editiert wird!
|
||||||
}
|
}
|
||||||
|
|
||||||
//######### Beschleunigung Edit #########
|
//######### Beschleunigung Edit #########
|
||||||
if(settings.editAcc){
|
if (settings.editAcc) {
|
||||||
if(clickPlus){
|
// PLUS: Erhöhen in 1000er-Schritten bis max 20.000
|
||||||
settings.accelRate = (settings.accelRate + 1000) % 20000;
|
if (clickPlus) {
|
||||||
|
if (settings.accelRate <= 19000) {
|
||||||
|
settings.accelRate += 1000;
|
||||||
}
|
}
|
||||||
if(clickMinus){
|
|
||||||
settings.accelRate = (settings.accelRate == 0) ? 0 : settings.accelRate - 1000;
|
|
||||||
}
|
}
|
||||||
if(clickStop){
|
|
||||||
|
// MINUS: Verringern in 1000er-Schritten bis min 1.000 (niemals 0!)
|
||||||
|
if (clickMinus) {
|
||||||
|
if (settings.accelRate >= 2000) {
|
||||||
|
settings.accelRate -= 1000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// STOP: Speichern / Verlassen
|
||||||
|
if (clickStop) {
|
||||||
settings.editAcc = false;
|
settings.editAcc = false;
|
||||||
|
stepper->setAcceleration(settings.accelRate); // Direkt am Stepper aktualisieren
|
||||||
}
|
}
|
||||||
return; // Wichtig: Rest der Funktion überspringen, solange editiert wird!
|
return; // Wichtig: Rest der Funktion überspringen, solange editiert wird!
|
||||||
}
|
}
|
||||||
|
|
@ -376,24 +394,25 @@ void loop() {
|
||||||
getInputs(clickPlus, clickMinus, clickStop, holdPlus, holdMinus, holdStop);
|
getInputs(clickPlus, clickMinus, clickStop, holdPlus, holdMinus, holdStop);
|
||||||
curTemp = getTempInC(senTemp);
|
curTemp = getTempInC(senTemp);
|
||||||
|
|
||||||
|
// Discord nachricht // BEGREZUNG AUF EINE NACVHRICHT TODO
|
||||||
|
if(curTemp >= settings.maxTemp && !send){
|
||||||
|
String message = "⚠️ **Kugelmuehle ueberhitzt!** Aktuelle Temp: " + String(curTemp) + " °C";
|
||||||
|
sendDiscordNotification(message);
|
||||||
|
send = true;
|
||||||
|
|
||||||
|
// Plus 5 als puffer
|
||||||
|
}else if(curTemp + 5 < settings.maxTemp){
|
||||||
|
send = false;
|
||||||
|
}
|
||||||
|
|
||||||
// zeitschaltuhr prüfen
|
// zeitschaltuhr prüfen
|
||||||
int curH, curM, curS;
|
int curH, curM, curS;
|
||||||
if (settings.timerEnabled && getCurrentTime(curH, curM, curS)) {
|
if (settings.timerEnabled && getCurrentTime(curH, curM, curS)) {
|
||||||
shouldRun = isTimerActiveNow(curH, curM, settings.startHour, settings.startMin, settings.endHour, settings.endMin);
|
shouldRun = isTimerActiveNow(curH, curM, settings.startHour, settings.startMin, settings.endHour, settings.endMin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(curTemp >= settings.maxTemp){
|
|
||||||
string message = "Kugelmühle überhitzt! Temp = " + String(curTemp) + " °C";
|
|
||||||
sendDiscordNotification(message);
|
|
||||||
send = true;
|
|
||||||
}else{
|
|
||||||
send = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Not-Stopp aktivieren bei Überhitzung ODER Zeitschaltuhr aus
|
// Not-Stopp aktivieren bei Überhitzung ODER Zeitschaltuhr aus
|
||||||
if(curTemp >= settings.maxTemp || !shouldRun){
|
if(curTemp >= settings.maxTemp || (!shouldRun && settings.timerEnabled)){
|
||||||
autoStop = true;
|
autoStop = true;
|
||||||
|
|
||||||
// Entsperren NUR wenn abgekühlt UND Zeitschaltuhr aktiv
|
// Entsperren NUR wenn abgekühlt UND Zeitschaltuhr aktiv
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue