main/automation.c

changeset 79
cb5c73a8ae90
parent 78
b58e0c9897e1
child 81
72c715ac0444
--- a/main/automation.c	Sat Jun 06 16:52:44 2020 +0200
+++ b/main/automation.c	Sat Jun 06 20:20:06 2020 +0200
@@ -304,6 +304,7 @@
 	case MAIN_AUTO_COOLING_H:
 	case MAIN_AUTO_COOLING_M:
 	case MAIN_AUTO_COOLING_C:
+		Sub_Screen = 0;
 		TempReached = false;
                 runtime.StageResume = Main_Screen;
                 runtime.StageTimeLeft = 0;
@@ -1159,7 +1160,7 @@
 		    }
 #endif
                     MLT_info(71, 26, true);
-                    if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) {
+                    if (Sub_Screen == 1 && xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) {
                     	/*
                     	 * If the pump safe temperature is reached, add the control button.
 		    	 * Redefine key number 3 if it is at the position of key 2.
@@ -1167,8 +1168,13 @@
                     	if ((driver_state->mlt_pv < equipment.PumpMaxTemp) && (Buttons[3].x == Buttons[2].x) &&(Buttons[3].y == Buttons[2].y)) {
                             Buttons_Add(255, 200, 60, 40, (char *)"Pomp", 3);
                             Buttons_Show();
+			    Sub_Screen = 2;
                     	}
                     	xSemaphoreGive(xSemaphoreDriver);
+			if (Sub_Screen == 2) {
+			    snprintf(msg, 63, "{\"main\":\"%d\",\"sub\":\"%d\",\"timer\":\"\"}", Main_Screen, Sub_Screen);
+                            ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
+			}
                     }
                     switch (Buttons_Scan()) {
                     	case 1:	if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) {

mercurial