This commit is contained in:
Jannis 2026-09-25 01:56:44 +02:00
parent 7007552474
commit 68a9d64990
2 changed files with 58 additions and 39 deletions

View file

@ -62,7 +62,7 @@ static void drawHomeScreen(int currentSpeed, int curH, int curM, bool timeValid,
u8g2.setDrawColor(1); // 1 = Weiß (an)
// 1. Feste Beschriftungen
u8g2.setFont(u8g2_font_6x10_tr);
u8g2.setFont(u8g2_font_helvB08_tr);
u8g2.drawStr(5, 9, "Geschw");
u8g2.drawStr(5, 20, "Zeituhr");
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);
// 5. Große aktuelle Uhrzeit unten links
u8g2.setFont(u8g2_font_6x10_tr);
u8g2.setFont(u8g2_font_helvB08_tr);
char timeBuf[10];
if (timeValid) {
snprintf(timeBuf, sizeof(timeBuf), "%02d:%02d", curH, curM);
@ -183,62 +183,62 @@ static void drawSettingsScreen(uint8_t settingIdx, TimeEditStep timeEditStep, co
// Zeitschaltuhr Einstellungen
//######################
u8g2.setFont(textFont);
u8g2.drawStr(23, 10, "Zeituhr Einstellung");
u8g2.drawStr(10, 10, "Zeituhr Einstellung");
//######################
// Zeitschaltuhr Status
//######################
u8g2.setFont(textFont);
u8g2.drawStr(28, 22, "Zeituhr:");
u8g2.drawStr(10, 22, "Zeituhr:");
// Wenn Zeitschaltuhr Aktiviert
if(s.timerEnabled){
// Draw Check
u8g2.drawXBMP(78, 14, 7, 8, image_checked_bits);
u8g2.drawXBMP(78, 15, 7, 8, image_checked_bits);
}else{
// Draw X
u8g2.drawXBMP(78, 17, 6, 8, image_crossed_bits);
u8g2.drawXBMP(78, 15, 6, 8, image_crossed_bits);
}
//######################
// Max Temp
//######################
u8g2.setFont(textFont);
u8g2.drawStr(23, 34, "Max Temp:");
u8g2.drawStr(10, 34, "Max Temp:");
char maxTempBuf[10];
snprintf(maxTempBuf, sizeof(maxTempBuf), "%d", s.maxTemp);
u8g2.setFont(valFont);
u8g2.drawStr(77, 34, maxTempBuf);
u8g2.drawStr(78, 34, maxTempBuf);
// Wenn Ausgewählt
if(s.editMaxTemp){
// Edit Fenster makieren
int w = u8g2.getStrWidth(maxTempBuf);
u8g2.drawFrame(75, 24, w + 4, 12);
u8g2.drawFrame(75, 25, w + 6, 12);
}
//######################
// Beschleunigung
//######################
u8g2.setFont(textFont);
u8g2.drawStr(23, 46, "Beschleu:");
u8g2.drawStr(10, 46, "Beschleu:");
u8g2.setFont(valFont);
char accBuf[10];
snprintf(accBuf, sizeof(accBuf), "%d", s.accelRate);
u8g2.drawStr(77, 47, accBuf);
u8g2.drawStr(78, 46, accBuf);
// Wenn Ausgewählt
if(s.editAcc){
// Edit Fenster makieren
int w = u8g2.getStrWidth(accBuf);
u8g2.drawFrame(75, 37, w + 4, 12);
u8g2.drawFrame(75, 37, w + 6, 12);
}
//######################
// Save
//######################
u8g2.setFont(textFont);
u8g2.drawUTF8(26, 58, "Bestätigung");
u8g2.drawUTF8(10, 58, "Bestätigung");
// Wenn nichts bearbeitet wird...
if(!s.editAcc || !s.editMaxTemp){

View file

@ -254,13 +254,13 @@ void setting(){
settings.startHour = (settings.startHour == 0) ? 23 : settings.startHour - 1;
break;
case EDIT_START_MIN:
settings.startMin = (settings.startMin == 0) ? 59 : settings.startMin -5;
settings.startMin = (settings.startMin < 5) ? 55 : settings.startMin - 5;
break;
case EDIT_END_HOUR:
settings.endHour = (settings.endHour == 0) ? 23 : settings.endHour - 1;
break;
case EDIT_END_MIN:
settings.endMin = (settings.endMin == 0) ? 59 : settings.endMin - 5;
settings.endMin = (settings.endMin < 5) ? 55 : settings.endMin - 5;
break;
default: break;
}
@ -275,29 +275,47 @@ void setting(){
}
//######### Max Temp Edit #########
if(settings.editMaxTemp){
if(clickPlus){
settings.maxTemp = (settings.maxTemp + 5) % 140;
if (settings.editMaxTemp) {
// PLUS: Bis maximal 150
if (clickPlus) {
if (settings.maxTemp <= 145) {
settings.maxTemp += 5;
}
}
if(clickMinus){
settings.maxTemp = (settings.maxTemp == 0) ? -20 : settings.maxTemp - 5;
// MINUS: Bis minimal -20
if (clickMinus) {
if (settings.maxTemp >= -15) {
settings.maxTemp -= 5;
}
}
if(clickStop){
if (clickStop) {
settings.editMaxTemp = false;
}
return; // Wichtig: Rest der Funktion überspringen, solange editiert wird!
}
//######### Beschleunigung Edit #########
if(settings.editAcc){
if(clickPlus){
settings.accelRate = (settings.accelRate + 1000) % 20000;
if (settings.editAcc) {
// PLUS: Erhöhen in 1000er-Schritten bis max 20.000
if (clickPlus) {
if (settings.accelRate <= 19000) {
settings.accelRate += 1000;
}
}
if(clickMinus){
settings.accelRate = (settings.accelRate == 0) ? 0 : settings.accelRate - 1000;
// MINUS: Verringern in 1000er-Schritten bis min 1.000 (niemals 0!)
if (clickMinus) {
if (settings.accelRate >= 2000) {
settings.accelRate -= 1000;
}
}
if(clickStop){
// STOP: Speichern / Verlassen
if (clickStop) {
settings.editAcc = false;
stepper->setAcceleration(settings.accelRate); // Direkt am Stepper aktualisieren
}
return; // Wichtig: Rest der Funktion überspringen, solange editiert wird!
}
@ -376,24 +394,25 @@ void loop() {
getInputs(clickPlus, clickMinus, clickStop, holdPlus, holdMinus, holdStop);
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
int curH, curM, curS;
if (settings.timerEnabled && getCurrentTime(curH, curM, curS)) {
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
if(curTemp >= settings.maxTemp || !shouldRun){
if(curTemp >= settings.maxTemp || (!shouldRun && settings.timerEnabled)){
autoStop = true;
// Entsperren NUR wenn abgekühlt UND Zeitschaltuhr aktiv