main/task_tft.c

branch
novnc
changeset 42
c6a1a6ca5437
parent 40
71e06f6d80fd
child 49
4ec04c6f1551
equal deleted inserted replaced
41:7639cfa6aec0 42:c6a1a6ca5437
11 11
12 spi_lobo_device_handle_t spi; ///< TFT screen SPI handler 12 spi_lobo_device_handle_t spi; ///< TFT screen SPI handler
13 spi_lobo_device_handle_t tsspi = NULL; ///< Touchscreen SPI handler 13 spi_lobo_device_handle_t tsspi = NULL; ///< Touchscreen SPI handler
14 extern sButton Buttons[MAXBUTTONS]; ///< 40 buttons on a screen. 14 extern sButton Buttons[MAXBUTTONS]; ///< 40 buttons on a screen.
15 time_t now; ///< Current time 15 time_t now; ///< Current time
16 time_t last = 0; ///< Last time
16 struct tm timeinfo; ///< Current time structure 17 struct tm timeinfo; ///< Current time structure
17 char s_timer[10]; ///< Timer sctring buffer 18 char s_timer[10]; ///< Timer string buffer
18 char s_top_msg[64]; ///< Top message string buffer 19 char s_top_msg[64]; ///< Top message string buffer
19 20
20 extern float stageTemp; 21 extern float stageTemp;
21 extern uint16_t stageTime; 22 extern uint16_t stageTime;
22 extern uint16_t TimeWhirlPool; 23 extern uint16_t TimeWhirlPool;
35 static const char *TAG = "task_tft"; 36 static const char *TAG = "task_tft";
36 37
37 #define SPI_BUS TFT_HSPI_HOST ///< SPI bus for the TFT, TFT_VSPI_HOST or TFT_HSPI_HOST 38 #define SPI_BUS TFT_HSPI_HOST ///< SPI bus for the TFT, TFT_VSPI_HOST or TFT_HSPI_HOST
38 39
39 extern int Main_Screen; 40 extern int Main_Screen;
41 extern int Sub_Screen;
40 extern int Old_Screen; 42 extern int Old_Screen;
41 extern int MLT_pin; 43 extern int MLT_pin;
42 extern int HLT_pin; 44 extern int HLT_pin;
43 extern int Pump_pin; 45 extern int Pump_pin;
44 extern DS18B20_State *ds18b20_state; 46 extern DS18B20_State *ds18b20_state;
469 snprintf(hlt_power, 15, "%3d%%", driver_state->hlt_power); 471 snprintf(hlt_power, 15, "%3d%%", driver_state->hlt_power);
470 } else { 472 } else {
471 hlt_sp[0] = '\0'; 473 hlt_sp[0] = '\0';
472 hlt_power[0] = '\0'; 474 hlt_power[0] = '\0';
473 } 475 }
474 snprintf(msg, 1023, "{\"main\":\"%d\",\"mlt_led\":\"%d\",\"mlt_pv\":\"%7.3f\",\"mlt_sp\":\"%s\",\"mlt_power\":\"%s\"" \ 476 snprintf(msg, 1023, "{\"main\":\"%d\",\"sub\":\"%d\",\"mlt_led\":\"%d\",\"mlt_pv\":\"%7.3f\",\"mlt_sp\":\"%s\",\"mlt_power\":\"%s\"" \
475 ",\"pump_led\":\"%d\",\"hlt_led\":\"%d\",\"hlt_pv\":\"%7.3f\",\"hlt_sp\":\"%s\",\"hlt_power\":\"%s\"" \ 477 ",\"pump_led\":\"%d\",\"hlt_led\":\"%d\",\"hlt_pv\":\"%7.3f\",\"hlt_sp\":\"%s\",\"hlt_power\":\"%s\"" \
476 ",\"timer\":\"%s\",\"top_msg\":\"%s\"}", 478 ",\"timer\":\"%s\",\"top_msg\":\"%s\"}",
477 Main_Screen, (MLT_pin) ? 1:0, driver_state->mlt_pv, mlt_sp, mlt_power, 479 Main_Screen, Sub_Screen, (MLT_pin) ? 1:0, driver_state->mlt_pv, mlt_sp, mlt_power,
478 (Pump_pin) ? 1:0, (HLT_pin) ? 1:0, driver_state->hlt_pv, hlt_sp, hlt_power, 480 (Pump_pin) ? 1:0, (HLT_pin) ? 1:0, driver_state->hlt_pv, hlt_sp, hlt_power,
479 s_timer, s_top_msg); 481 s_timer, s_top_msg);
480 482
481 xSemaphoreGive(xSemaphoreDriver); 483 xSemaphoreGive(xSemaphoreDriver);
482 ws_server_send_text_client(client, msg, strlen(msg)); 484 ws_server_send_text_client(client, msg, strlen(msg));
486 488
487 489
488 490
489 void task_tft(void *pvParameter) 491 void task_tft(void *pvParameter)
490 { 492 {
491 char msg[32]; 493 char msg[64];
492 494
493 ESP_LOGI(TAG, "Initialize TFT/Touch task"); 495 ESP_LOGI(TAG, "Initialize TFT/Touch task");
494 496
495 /* 497 /*
496 * Task loop. Read touchscreen events. 498 * Task loop. Read touchscreen events.
527 } 529 }
528 530
529 /* 531 /*
530 * With each screenchange, remove the timer too. 532 * With each screenchange, remove the timer too.
531 */ 533 */
532 snprintf(msg, 31, "{\"main\":\"%d\",\"timer\":\"\"}", Main_Screen); 534 Sub_Screen = 0;
535 snprintf(msg, 63, "{\"main\":\"%d\",\"sub\":\"%d\",\"timer\":\"\"}", Main_Screen, Sub_Screen);
533 ws_server_send_text_clients("/ws", msg, strlen(msg)); 536 ws_server_send_text_clients("/ws", msg, strlen(msg));
534 537
535 ESP_LOGI(TAG, "Change screen %d to %d", Old_Screen, Main_Screen); 538 ESP_LOGI(TAG, "Change screen %d to %d", Old_Screen, Main_Screen);
536 _bg = TFT_BLACK; 539 _bg = TFT_BLACK;
537 TFT_fillScreen(_bg); 540 TFT_fillScreen(_bg);
617 620
618 case MAIN_TOOLS_UPDATES: 621 case MAIN_TOOLS_UPDATES:
619 Updates_Init(); 622 Updates_Init();
620 break; 623 break;
621 624
622 case MAIN_AUTO_INIT: 625 case MAIN_AUTO_INIT1:
626 case MAIN_AUTO_INIT2:
623 case MAIN_AUTO_DELAYSTART: 627 case MAIN_AUTO_DELAYSTART:
624 case MAIN_AUTO_HEATUP: 628 case MAIN_AUTO_HEATUP:
625 case MAIN_AUTO_MASH_IN: 629 case MAIN_AUTO_MASH_IN:
626 case MAIN_AUTO_MASH_1: 630 case MAIN_AUTO_MASH_1:
627 case MAIN_AUTO_MASH_2: 631 case MAIN_AUTO_MASH_2:
665 if ((equipment.SSR2 == SSR2_HLT_SHARE) || (equipment.SSR2 == SSR2_HLT_IND)) { 669 if ((equipment.SSR2 == SSR2_HLT_SHARE) || (equipment.SSR2 == SSR2_HLT_IND)) {
666 HLT_info(71, 150, true, false); 670 HLT_info(71, 150, true, false);
667 } 671 }
668 switch (Buttons_Scan()) { 672 switch (Buttons_Scan()) {
669 case 0: Main_Screen = MAIN_MANUAL_INIT; break; 673 case 0: Main_Screen = MAIN_MANUAL_INIT; break;
670 case 1: Main_Screen = MAIN_AUTO_INIT; break; 674 case 1: Main_Screen = MAIN_AUTO_INIT1; break;
671 case 2: Main_Screen = MAIN_INFO; break; 675 case 2: Main_Screen = MAIN_INFO; break;
672 case 3: Main_Screen = MAIN_TOOLS; break; 676 case 3: Main_Screen = MAIN_TOOLS; break;
673 default: break; 677 default: break;
674 } 678 }
675 if (System_TimeOk) { 679 if (System_TimeOk && (now != last)) {
680 last = now;
676 strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo); 681 strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);
677 TFT_setFont(DEJAVU18_FONT, NULL); 682 TFT_setFont(DEJAVU18_FONT, NULL);
678 _bg = TFT_BLACK; 683 _bg = TFT_BLACK;
679 _fg = TFT_ORANGE; 684 _fg = TFT_ORANGE;
680 TFT_print(strftime_buf, CENTER, 125); 685 TFT_print(strftime_buf, CENTER, 125);
686 snprintf(msg, 63, "{\"timer\":\"%s\"}", strftime_buf); // Fix string termination and only send once/second.
687 ws_server_send_text_clients("/ws", msg, strlen(msg));
681 } 688 }
682 break; 689 break;
683 690
684 case MAIN_MODE_CALIBRATION: 691 case MAIN_MODE_CALIBRATION:
685 Calibration_Loop(); 692 Calibration_Loop();
734 if (Buttons_Scan() == 0) { 741 if (Buttons_Scan() == 0) {
735 Main_Screen = MAIN_MODE_FREE; 742 Main_Screen = MAIN_MODE_FREE;
736 } 743 }
737 break; 744 break;
738 745
739 case MAIN_AUTO_INIT: 746 case MAIN_AUTO_INIT1:
747 case MAIN_AUTO_INIT2:
740 case MAIN_AUTO_DELAYSTART: 748 case MAIN_AUTO_DELAYSTART:
741 case MAIN_AUTO_HEATUP: 749 case MAIN_AUTO_HEATUP:
742 case MAIN_AUTO_MASH_IN: 750 case MAIN_AUTO_MASH_IN:
743 case MAIN_AUTO_MASH_1: 751 case MAIN_AUTO_MASH_1:
744 case MAIN_AUTO_MASH_2: 752 case MAIN_AUTO_MASH_2:

mercurial