main/task_tft.c

changeset 54
7b134c27fadb
parent 49
4ec04c6f1551
child 56
756d1a63d129
equal deleted inserted replaced
53:cf91a3a20d0d 54:7b134c27fadb
221 set_7seg_font_atrib(12, 2, 1, TFT_DARKGREY); 221 set_7seg_font_atrib(12, 2, 1, TFT_DARKGREY);
222 snprintf(s_timer, 9, "%02d:%02d:%02d", Hours, Minutes, Seconds); 222 snprintf(s_timer, 9, "%02d:%02d:%02d", Hours, Minutes, Seconds);
223 TFT_print(s_timer, X, Y); 223 TFT_print(s_timer, X, Y);
224 _oldTime = Time; 224 _oldTime = Time;
225 snprintf(msg, 31, "{\"timer\":\"%s\"}", s_timer); 225 snprintf(msg, 31, "{\"timer\":\"%s\"}", s_timer);
226 ws_server_send_text_clients("/ws", msg, strlen(msg)); 226 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
227 } 227 }
228 } 228 }
229 229
230 230
231 231
239 TFT_setFont(DEJAVU24_FONT, NULL); 239 TFT_setFont(DEJAVU24_FONT, NULL);
240 TFT_fillRect(0, 0, 319, 25, TFT_NAVY); 240 TFT_fillRect(0, 0, 319, 25, TFT_NAVY);
241 TFT_print(s_top_msg, CENTER, 2); 241 TFT_print(s_top_msg, CENTER, 2);
242 font_transparent = 0; 242 font_transparent = 0;
243 snprintf(msg, 63, "{\"top_msg\":\"%s\"}", s_top_msg); 243 snprintf(msg, 63, "{\"top_msg\":\"%s\"}", s_top_msg);
244 ws_server_send_text_clients("/ws", msg, strlen(msg)); 244 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
245 } 245 }
246 246
247 247
248 248
249 void MLT_info(int x, int y, bool update) 249 void MLT_info(int x, int y, bool update)
262 if (! update) { 262 if (! update) {
263 TFT_fillRect(x, y, 178, 90, _bg); 263 TFT_fillRect(x, y, 178, 90, _bg);
264 TFT_drawRect(x, y, 178, 90, _fg); 264 TFT_drawRect(x, y, 178, 90, _fg);
265 TFT_drawFastHLine(x, y + 21, 178, _fg); 265 TFT_drawFastHLine(x, y + 21, 178, _fg);
266 TFT_setFont(DEJAVU18_FONT, NULL); 266 TFT_setFont(DEJAVU18_FONT, NULL);
267 TFT_print("MLT", x + 67, y + 3); 267 TFT_print((char *)"MLT", x + 67, y + 3);
268 } 268 }
269 269
270 if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) { 270 if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) {
271 sprintf(ctemp, "%7.3f", driver_state->mlt_pv); 271 sprintf(ctemp, "%7.3f", driver_state->mlt_pv);
272 if (driver_state->mlt_mode) { 272 if (driver_state->mlt_mode) {
289 } else { 289 } else {
290 TFT_fillCircle(x + 166, y + 11, 8, _bg); 290 TFT_fillCircle(x + 166, y + 11, 8, _bg);
291 } 291 }
292 lon = con; 292 lon = con;
293 snprintf(msg, 31, "{\"mlt_led\":\"%s\"}", con ? "1":"0"); 293 snprintf(msg, 31, "{\"mlt_led\":\"%s\"}", con ? "1":"0");
294 ws_server_send_text_clients("/ws", msg, strlen(msg)); 294 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
295 } 295 }
296 296
297 cpump = (Pump_pin) ? true : false; 297 cpump = (Pump_pin) ? true : false;
298 if ((cpump != lpump) || (! update)) { 298 if ((cpump != lpump) || (! update)) {
299 if (cpump) { 299 if (cpump) {
301 } else { 301 } else {
302 TFT_fillCircle(x + 146, y + 11, 8, _bg); 302 TFT_fillCircle(x + 146, y + 11, 8, _bg);
303 } 303 }
304 lpump = cpump; 304 lpump = cpump;
305 snprintf(msg, 31, "{\"pump_led\":\"%s\"}", cpump ? "1":"0"); 305 snprintf(msg, 31, "{\"pump_led\":\"%s\"}", cpump ? "1":"0");
306 ws_server_send_text_clients("/ws", msg, strlen(msg)); 306 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
307 } 307 }
308 308
309 if (equipment.SSR2 == SSR2_ON_IDLE) { 309 if (equipment.SSR2 == SSR2_ON_IDLE) {
310 cpwr = (HLT_pin) ? true : false; 310 cpwr = (HLT_pin) ? true : false;
311 if ((cpwr != lpwr) || (! update)) { 311 if ((cpwr != lpwr) || (! update)) {
314 } else { 314 } else {
315 TFT_fillCircle(x + 126, y + 11, 8, _bg); 315 TFT_fillCircle(x + 126, y + 11, 8, _bg);
316 } 316 }
317 lpwr = cpwr; 317 lpwr = cpwr;
318 snprintf(msg, 31, "{\"hlt_led\":\"%s\"}", cpwr ? "1":"0"); 318 snprintf(msg, 31, "{\"hlt_led\":\"%s\"}", cpwr ? "1":"0");
319 ws_server_send_text_clients("/ws", msg, strlen(msg)); 319 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
320 } 320 }
321 } 321 }
322 322
323 if (strcmp(ctemp, ltemp) || (! update)) { 323 if (strcmp(ctemp, ltemp) || (! update)) {
324 TFT_setFont(USER_FONT, "/spiffs/fonts/Grotesk24x48.fon"); 324 TFT_setFont(USER_FONT, "/spiffs/fonts/Grotesk24x48.fon");
325 TFT_print(ctemp, x + 5, y + 23); 325 TFT_print(ctemp, x + 5, y + 23);
326 strncpy(ltemp, ctemp, 16); 326 strncpy(ltemp, ctemp, 16);
327 snprintf(msg, 31, "{\"mlt_pv\":\"%s\"}", ctemp); 327 snprintf(msg, 31, "{\"mlt_pv\":\"%s\"}", ctemp);
328 ws_server_send_text_clients("/ws", msg, strlen(msg)); 328 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
329 } 329 }
330 330
331 TFT_setFont(DEJAVU18_FONT, NULL); 331 TFT_setFont(DEJAVU18_FONT, NULL);
332 if (strcmp(csp, lsp) || (! update)) { 332 if (strcmp(csp, lsp) || (! update)) {
333 TFT_clearStringRect(x + 5, y + 70, "123.45 sp"); 333 TFT_clearStringRect(x + 5, y + 70, (char *)"123.45 sp");
334 TFT_print(csp, x + 5, y + 70); 334 TFT_print(csp, x + 5, y + 70);
335 strncpy(lsp, csp, 16); 335 strncpy(lsp, csp, 16);
336 snprintf(msg, 31, "{\"mlt_sp\":\"%s\"}", csp); 336 snprintf(msg, 31, "{\"mlt_sp\":\"%s\"}", csp);
337 ws_server_send_text_clients("/ws", msg, strlen(msg)); 337 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
338 } 338 }
339 if (strcmp(cpower, lpower) || (! update)) { 339 if (strcmp(cpower, lpower) || (! update)) {
340 TFT_clearStringRect(x + 120, y + 70, "100%"); 340 TFT_clearStringRect(x + 120, y + 70, (char *)"100%");
341 TFT_print(cpower, x + 120, y + 70); 341 TFT_print(cpower, x + 120, y + 70);
342 strncpy(lpower, cpower, 16); 342 strncpy(lpower, cpower, 16);
343 snprintf(msg, 31, "{\"mlt_power\":\"%s\"}", cpower); 343 snprintf(msg, 31, "{\"mlt_power\":\"%s\"}", cpower);
344 ws_server_send_text_clients("/ws", msg, strlen(msg)); 344 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
345 } 345 }
346 } 346 }
347 347
348 348
349 349
363 if (! update) { 363 if (! update) {
364 TFT_fillRect(x, y, 178, H, _bg); 364 TFT_fillRect(x, y, 178, H, _bg);
365 TFT_drawRect(x, y, 178, H, _fg); 365 TFT_drawRect(x, y, 178, H, _fg);
366 TFT_drawFastHLine(x, y + 21, 178, _fg); 366 TFT_drawFastHLine(x, y + 21, 178, _fg);
367 TFT_setFont(DEJAVU18_FONT, NULL); 367 TFT_setFont(DEJAVU18_FONT, NULL);
368 TFT_print("HLT", x + 67, y + 3); 368 TFT_print((char *)"HLT", x + 67, y + 3);
369 } 369 }
370 370
371 if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) { 371 if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) {
372 sprintf(ctemp, "%7.3f", driver_state->hlt_pv); 372 sprintf(ctemp, "%7.3f", driver_state->hlt_pv);
373 if (driver_state->hlt_mode == HLT_MODE_BANG) { 373 if (driver_state->hlt_mode == HLT_MODE_BANG) {
390 } else { 390 } else {
391 TFT_fillCircle(x + 166, y + 11, 8, _bg); 391 TFT_fillCircle(x + 166, y + 11, 8, _bg);
392 } 392 }
393 lon = con; 393 lon = con;
394 snprintf(msg, 31, "{\"hlt_led\":\"%s\"}", con ? "1":"0"); 394 snprintf(msg, 31, "{\"hlt_led\":\"%s\"}", con ? "1":"0");
395 ws_server_send_text_clients("/ws", msg, strlen(msg)); 395 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
396 } 396 }
397 397
398 if (strcmp(ltemp, ctemp) || (! update)) { 398 if (strcmp(ltemp, ctemp) || (! update)) {
399 if (small) { 399 if (small) {
400 TFT_setFont(USER_FONT, "/spiffs/fonts/DejaVuSans24.fon"); 400 TFT_setFont(USER_FONT, "/spiffs/fonts/DejaVuSans24.fon");
403 TFT_setFont(USER_FONT, "/spiffs/fonts/Grotesk24x48.fon"); 403 TFT_setFont(USER_FONT, "/spiffs/fonts/Grotesk24x48.fon");
404 TFT_print(ctemp, x + 5, y + 23); 404 TFT_print(ctemp, x + 5, y + 23);
405 } 405 }
406 strncpy(ltemp, ctemp, 16); 406 strncpy(ltemp, ctemp, 16);
407 snprintf(msg, 31, "{\"hlt_pv\":\"%s\"}", ctemp); 407 snprintf(msg, 31, "{\"hlt_pv\":\"%s\"}", ctemp);
408 ws_server_send_text_clients("/ws", msg, strlen(msg)); 408 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
409 } 409 }
410 410
411 H = (small) ? 50 : 70; 411 H = (small) ? 50 : 70;
412 TFT_setFont(DEJAVU18_FONT, NULL); 412 TFT_setFont(DEJAVU18_FONT, NULL);
413 if (strcmp(csp, lsp) || (! update)) { 413 if (strcmp(csp, lsp) || (! update)) {
414 TFT_clearStringRect(x + 5, y + H, "123.45 sp"); 414 TFT_clearStringRect(x + 5, y + H, (char *)"123.45 sp");
415 TFT_print(csp, x + 5, y + H); 415 TFT_print(csp, x + 5, y + H);
416 strncpy(lsp, csp, 16); 416 strncpy(lsp, csp, 16);
417 snprintf(msg, 31, "{\"hlt_sp\":\"%s\"}", csp); 417 snprintf(msg, 31, "{\"hlt_sp\":\"%s\"}", csp);
418 ws_server_send_text_clients("/ws", msg, strlen(msg)); 418 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
419 } 419 }
420 if (strcmp(cpower, lpower) || (! update)) { 420 if (strcmp(cpower, lpower) || (! update)) {
421 TFT_clearStringRect(x + 120, y + H, "100%"); 421 TFT_clearStringRect(x + 120, y + H, (char *)"100%");
422 TFT_print(cpower, x + 120, y + H); 422 TFT_print(cpower, x + 120, y + H);
423 strncpy(lpower, cpower, 16); 423 strncpy(lpower, cpower, 16);
424 snprintf(msg, 31, "{\"hlt_power\":\"%s\"}", cpower); 424 snprintf(msg, 31, "{\"hlt_power\":\"%s\"}", cpower);
425 ws_server_send_text_clients("/ws", msg, strlen(msg)); 425 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
426 } 426 }
427 } 427 }
428 428
429 429
430 430
526 /* 526 /*
527 * With each screenchange, remove the timer too. 527 * With each screenchange, remove the timer too.
528 */ 528 */
529 Sub_Screen = 0; 529 Sub_Screen = 0;
530 snprintf(msg, 63, "{\"main\":\"%d\",\"sub\":\"%d\",\"timer\":\"\"}", Main_Screen, Sub_Screen); 530 snprintf(msg, 63, "{\"main\":\"%d\",\"sub\":\"%d\",\"timer\":\"\"}", Main_Screen, Sub_Screen);
531 ws_server_send_text_clients("/ws", msg, strlen(msg)); 531 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
532 532
533 ESP_LOGI(TAG, "Change screen %d to %d", Old_Screen, Main_Screen); 533 ESP_LOGI(TAG, "Change screen %d to %d", Old_Screen, Main_Screen);
534 _bg = TFT_BLACK; 534 _bg = TFT_BLACK;
535 TFT_fillScreen(_bg); 535 TFT_fillScreen(_bg);
536 TFT_resetclipwin(); 536 TFT_resetclipwin();
537 Buttons_Clear(); 537 Buttons_Clear();
538 Old_Screen = Main_Screen; 538 Old_Screen = Main_Screen;
539 539
540 switch (Main_Screen) { 540 switch (Main_Screen) {
541 case MAIN_MODE_FREE: 541 case MAIN_MODE_FREE:
542 TopMessage("Hoofdmenu"); 542 TopMessage((char *)"Hoofdmenu");
543 MLT_info(71, 26, false); 543 MLT_info(71, 26, false);
544 if ((equipment.SSR2 == SSR2_HLT_SHARE) || (equipment.SSR2 == SSR2_HLT_IND)) { 544 if ((equipment.SSR2 == SSR2_HLT_SHARE) || (equipment.SSR2 == SSR2_HLT_IND)) {
545 HLT_info(71,150, false, false); 545 HLT_info(71,150, false, false);
546 } 546 }
547 Buttons_Add( 5, 26, 60, 40, "Hand", 0); 547 Buttons_Add( 5, 26, 60, 40, (char *)"Hand", 0);
548 Buttons_Add(255, 26, 60, 40, "Auto", 1); 548 Buttons_Add(255, 26, 60, 40, (char *)"Auto", 1);
549 Buttons_Add( 5, 200, 60, 40, "Info", 2); 549 Buttons_Add( 5, 200, 60, 40, (char *)"Info", 2);
550 Buttons_Add(255, 200, 60, 40, "Tools", 3); 550 Buttons_Add(255, 200, 60, 40, (char *)"Tools", 3);
551 Buttons_Show(); 551 Buttons_Show();
552 break; 552 break;
553 553
554 case MAIN_MODE_CALIBRATION: 554 case MAIN_MODE_CALIBRATION:
555 Calibration_Init(); 555 Calibration_Init();
558 case MAIN_INFO: 558 case MAIN_INFO:
559 sprintf(temp_buf, "BrewBoard %s", app_desc->version); 559 sprintf(temp_buf, "BrewBoard %s", app_desc->version);
560 TopMessage(temp_buf); 560 TopMessage(temp_buf);
561 _fg = TFT_YELLOW; 561 _fg = TFT_YELLOW;
562 TFT_setFont(UBUNTU16_FONT, NULL); 562 TFT_setFont(UBUNTU16_FONT, NULL);
563 TFT_print("Written by Michiel Broek (C) 2018\r\n\n", 0, 50); 563 TFT_print((char *)"Written by Michiel Broek (C) 2018\r\n\n", 0, 50);
564 // ------------------------------------- 564 // -------------------------------------
565 _fg = TFT_ORANGE; 565 _fg = TFT_ORANGE;
566 TFT_print("Parts are written by Chris Morgan,\r\n", 0, LASTY); 566 TFT_print((char *)"Parts are written by Chris Morgan,\r\n", 0, LASTY);
567 TFT_print("Brett Beauregard, Blake Felt, LoBo,\r\n", 0, LASTY); 567 TFT_print((char *)"Brett Beauregard, Blake Felt, LoBo,\r\n", 0, LASTY);
568 TFT_print("and David Antliff.\r\n", 0, LASTY); 568 TFT_print((char *)"and David Antliff.\r\n", 0, LASTY);
569 ShowInteger(1,140, "Free memory", " bytes", esp_get_free_heap_size()); 569 ShowInteger(1,140, (char *)"Free memory", (char *)" bytes", esp_get_free_heap_size());
570 ShowText(1,158, "IDF version", (char *)esp_get_idf_version()); 570 ShowText(1,158, (char *)"IDF version", (char *)esp_get_idf_version());
571 Buttons_Add(130, 200, 60, 40, "Ok", 0); 571 Buttons_Add(130, 200, 60, 40, (char *)"Ok", 0);
572 Buttons[0].dark = true; 572 Buttons[0].dark = true;
573 Buttons_Show(); 573 Buttons_Show();
574 break; 574 break;
575 575
576 case MAIN_TOOLS: 576 case MAIN_TOOLS:
577 TopMessage("Tools menu"); 577 TopMessage((char *)"Tools menu");
578 Buttons_Add( 20, 40,120, 40, "Setup", 0); 578 Buttons_Add( 20, 40,120, 40, (char *)"Setup", 0);
579 Buttons_Add( 20,120,120, 40, "Bestanden", 1); 579 Buttons_Add( 20,120,120, 40, (char *)"Bestanden", 1);
580 Buttons_Add(180, 40,120, 40, "Recepten", 2); 580 Buttons_Add(180, 40,120, 40, (char *)"Recepten", 2);
581 Buttons_Add(180,120,120, 40, "Updates", 3); 581 Buttons_Add(180,120,120, 40, (char *)"Updates", 3);
582 Buttons_Add(130, 200, 60, 40, "Ok", 4); 582 Buttons_Add(130, 200, 60, 40, (char *)"Ok", 4);
583 Buttons[4].dark = true; 583 Buttons[4].dark = true;
584 Buttons_Show(); 584 Buttons_Show();
585 break; 585 break;
586 586
587 case MAIN_TOOLS_SETUP: 587 case MAIN_TOOLS_SETUP:
672 default: break; 672 default: break;
673 } 673 }
674 if (System_TimeOk && (now != last)) { 674 if (System_TimeOk && (now != last)) {
675 last = now; 675 last = now;
676 strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo); 676 strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);
677 TFT_setFont(DEJAVU18_FONT, NULL);
678 _bg = TFT_BLACK; 677 _bg = TFT_BLACK;
679 _fg = TFT_ORANGE; 678 _fg = TFT_ORANGE;
679 TFT_setFont(DEJAVU18_FONT, NULL);
680 TFT_print(strftime_buf, CENTER, 125); 680 TFT_print(strftime_buf, CENTER, 125);
681 snprintf(msg, 63, "{\"timer\":\"%s\"}", strftime_buf); // Fix string termination and only send once/second. 681 snprintf(msg, 63, "{\"timer\":\"%s\"}", strftime_buf); // Fix string termination and only send once/second.
682 ws_server_send_text_clients("/ws", msg, strlen(msg)); 682 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg));
683 } 683 }
684 break; 684 break;
685 685
686 case MAIN_MODE_CALIBRATION: 686 case MAIN_MODE_CALIBRATION:
687 Calibration_Loop(); 687 Calibration_Loop();

mercurial