diff -r 38e1c91bfd88 -r 756d1a63d129 main/task_tft.c --- a/main/task_tft.c Tue Jul 02 11:00:27 2019 +0200 +++ b/main/task_tft.c Tue Jul 02 12:10:23 2019 +0200 @@ -15,7 +15,7 @@ time_t now; ///< Current time time_t last = 0; ///< Last time struct tm timeinfo; ///< Current time structure -char s_timer[10]; ///< Timer string buffer +char s_timer[16]; ///< Timer string buffer char s_top_msg[64]; ///< Top message string buffer extern float stageTemp; @@ -219,7 +219,7 @@ _fg = TFT_GREEN; TFT_setFont(FONT_7SEG, NULL); set_7seg_font_atrib(12, 2, 1, TFT_DARKGREY); - snprintf(s_timer, 9, "%02d:%02d:%02d", Hours, Minutes, Seconds); + snprintf(s_timer, 15, "%02d:%02d:%02d", Hours, Minutes, Seconds); TFT_print(s_timer, X, Y); _oldTime = Time; snprintf(msg, 31, "{\"timer\":\"%s\"}", s_timer); @@ -231,7 +231,7 @@ void TopMessage(char *text) { - char msg[64]; + char msg[96]; snprintf(s_top_msg, 63, "%s", text); _fg = TFT_YELLOW; @@ -240,7 +240,7 @@ TFT_fillRect(0, 0, 319, 25, TFT_NAVY); TFT_print(s_top_msg, CENTER, 2); font_transparent = 0; - snprintf(msg, 63, "{\"top_msg\":\"%s\"}", s_top_msg); + snprintf(msg, 95, "{\"top_msg\":\"%s\"}", s_top_msg); ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); } @@ -248,7 +248,7 @@ void MLT_info(int x, int y, bool update) { - char ctemp[16], csp[16], cpower[16], msg[32]; + char ctemp[16], csp[16], cpower[16], msg[96]; static char ltemp[16], lsp[16], lpower[16]; bool con, cpwr, cpump = false; static bool lon, lpwr, lpump; @@ -290,7 +290,7 @@ TFT_fillCircle(x + 166, y + 11, 8, _bg); } lon = con; - snprintf(msg, 31, "{\"mlt_led\":\"%s\"}", con ? "1":"0"); + snprintf(msg, 95, "{\"mlt_led\":\"%s\"}", con ? "1":"0"); ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); } @@ -302,7 +302,7 @@ TFT_fillCircle(x + 146, y + 11, 8, _bg); } lpump = cpump; - snprintf(msg, 31, "{\"pump_led\":\"%s\"}", cpump ? "1":"0"); + snprintf(msg, 95, "{\"pump_led\":\"%s\"}", cpump ? "1":"0"); ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); } @@ -315,7 +315,7 @@ TFT_fillCircle(x + 126, y + 11, 8, _bg); } lpwr = cpwr; - snprintf(msg, 31, "{\"hlt_led\":\"%s\"}", cpwr ? "1":"0"); + snprintf(msg, 95, "{\"hlt_led\":\"%s\"}", cpwr ? "1":"0"); ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); } } @@ -324,7 +324,7 @@ TFT_setFont(USER_FONT, "/spiffs/fonts/Grotesk24x48.fon"); TFT_print(ctemp, x + 5, y + 23); strncpy(ltemp, ctemp, 16); - snprintf(msg, 31, "{\"mlt_pv\":\"%s\"}", ctemp); + snprintf(msg, 95, "{\"mlt_pv\":\"%s\"}", ctemp); ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); } @@ -333,14 +333,14 @@ TFT_clearStringRect(x + 5, y + 70, (char *)"123.45 sp"); TFT_print(csp, x + 5, y + 70); strncpy(lsp, csp, 16); - snprintf(msg, 31, "{\"mlt_sp\":\"%s\"}", csp); + snprintf(msg, 95, "{\"mlt_sp\":\"%s\"}", csp); ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); } if (strcmp(cpower, lpower) || (! update)) { TFT_clearStringRect(x + 120, y + 70, (char *)"100%"); TFT_print(cpower, x + 120, y + 70); strncpy(lpower, cpower, 16); - snprintf(msg, 31, "{\"mlt_power\":\"%s\"}", cpower); + snprintf(msg, 95, "{\"mlt_power\":\"%s\"}", cpower); ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); } } @@ -349,7 +349,7 @@ void HLT_info(int x, int y, bool update, bool small) { - char ctemp[16], csp[16], cpower[16], msg[32]; + char ctemp[16], csp[16], cpower[16], msg[96]; static char ltemp[16], lsp[16], lpower[16]; bool con = false; static bool lon; @@ -391,7 +391,7 @@ TFT_fillCircle(x + 166, y + 11, 8, _bg); } lon = con; - snprintf(msg, 31, "{\"hlt_led\":\"%s\"}", con ? "1":"0"); + snprintf(msg, 95, "{\"hlt_led\":\"%s\"}", con ? "1":"0"); ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); } @@ -404,7 +404,7 @@ TFT_print(ctemp, x + 5, y + 23); } strncpy(ltemp, ctemp, 16); - snprintf(msg, 31, "{\"hlt_pv\":\"%s\"}", ctemp); + snprintf(msg, 95, "{\"hlt_pv\":\"%s\"}", ctemp); ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); } @@ -414,14 +414,14 @@ TFT_clearStringRect(x + 5, y + H, (char *)"123.45 sp"); TFT_print(csp, x + 5, y + H); strncpy(lsp, csp, 16); - snprintf(msg, 31, "{\"hlt_sp\":\"%s\"}", csp); + snprintf(msg, 95, "{\"hlt_sp\":\"%s\"}", csp); ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); } if (strcmp(cpower, lpower) || (! update)) { TFT_clearStringRect(x + 120, y + H, (char *)"100%"); TFT_print(cpower, x + 120, y + H); strncpy(lpower, cpower, 16); - snprintf(msg, 31, "{\"hlt_power\":\"%s\"}", cpower); + snprintf(msg, 95, "{\"hlt_power\":\"%s\"}", cpower); ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); } } @@ -437,7 +437,7 @@ counts = 1; // Prevent division by zero. if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) { - snprintf(json_log->time, 8, "%02d:%02d", Hour, Minute); + snprintf(json_log->time, 11, "%02d:%02d", Hour, Minute); json_log->mlt_sp = driver_state->mlt_sp; json_log->mlt_pv = driver_state->mlt_pv; json_log->mlt_power = power_MLT / counts; @@ -490,7 +490,7 @@ void task_tft(void *pvParameter) { - char msg[64]; + char msg[96]; ESP_LOGI(TAG, "Initialize TFT/Touch task"); @@ -527,7 +527,7 @@ * With each screenchange, remove the timer too. */ Sub_Screen = 0; - snprintf(msg, 63, "{\"main\":\"%d\",\"sub\":\"%d\",\"timer\":\"\"}", Main_Screen, Sub_Screen); + snprintf(msg, 95, "{\"main\":\"%d\",\"sub\":\"%d\",\"timer\":\"\"}", Main_Screen, Sub_Screen); ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); ESP_LOGI(TAG, "Change screen %d to %d", Old_Screen, Main_Screen); @@ -673,12 +673,14 @@ } if (System_TimeOk && (now != last)) { last = now; - strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo); + //strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo); + strftime(strftime_buf, sizeof(strftime_buf), "%a %e %b %Y %T", &timeinfo); _bg = TFT_BLACK; _fg = TFT_ORANGE; TFT_setFont(DEJAVU18_FONT, NULL); - TFT_print(strftime_buf, CENTER, 125); - snprintf(msg, 63, "{\"timer\":\"%s\"}", strftime_buf); // Fix string termination and only send once/second. + snprintf(msg, 95, " %s ", strftime_buf); + TFT_print(msg, CENTER, 125); + snprintf(msg, 95, "{\"timer\":\"%s\"}", strftime_buf); // Fix string termination and only send once/second. ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); } break;