612 driver_state->mlt_sp = stageTemp; |
612 driver_state->mlt_sp = stageTemp; |
613 driver_state->mlt_mode = MLT_MODE_PID; |
613 driver_state->mlt_mode = MLT_MODE_PID; |
614 xSemaphoreGive(xSemaphoreDriver); |
614 xSemaphoreGive(xSemaphoreDriver); |
615 } |
615 } |
616 MashState = Sub_Screen = MASH_WAITTEMP; |
616 MashState = Sub_Screen = MASH_WAITTEMP; |
617 snprintf(msg, 63, "{\"main\":\"%d\",\"sub\":\"%d\",\"timer\":\"\"}", Main_Screen, Sub_Screen); |
617 snprintf(msg, 255, "{\"main\":\"%d\",\"sub\":\"%d\",\"timer\":\"\"}", Main_Screen, Sub_Screen); |
618 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); |
618 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); |
619 ESP_LOGI(TAG, "Mash step %d type: %s time: %d temp: %4.1f min: %4.1f max: %4.1f", |
619 ESP_LOGI(TAG, "Mash step %d type: %s time: %d temp: %4.1f min: %4.1f max: %4.1f", |
620 Main_Screen - MAIN_AUTO_MASH_IN, mashTypes[recipe.MashStep[Main_Screen - MAIN_AUTO_MASH_IN].Type], |
620 Main_Screen - MAIN_AUTO_MASH_IN, mashTypes[recipe.MashStep[Main_Screen - MAIN_AUTO_MASH_IN].Type], |
621 stageTime, stageTemp, MinMash, MaxMash); |
621 stageTime, stageTemp, MinMash, MaxMash); |
622 |
622 |
648 sprintf(temp_buf, "Infuse %.1f L/%.1f C", recipe.MashStep[Main_Screen - MAIN_AUTO_MASH_IN].Infusion_amount, |
648 sprintf(temp_buf, "Infuse %.1f L/%.1f C", recipe.MashStep[Main_Screen - MAIN_AUTO_MASH_IN].Infusion_amount, |
649 recipe.MashStep[Main_Screen - MAIN_AUTO_MASH_IN].Infusion_temp); |
649 recipe.MashStep[Main_Screen - MAIN_AUTO_MASH_IN].Infusion_temp); |
650 TFT_print(temp_buf, CENTER, 135); |
650 TFT_print(temp_buf, CENTER, 135); |
651 SoundPlay(SOUND_Prompt); |
651 SoundPlay(SOUND_Prompt); |
652 MashState = Sub_Screen = MASH_INFUSE; |
652 MashState = Sub_Screen = MASH_INFUSE; |
653 snprintf(msg, 63, "{\"main\":\"%d\",\"sub\":\"%d\",\"timer\":\"%s\"}", Main_Screen, Sub_Screen, temp_buf); |
653 snprintf(msg, 255, "{\"main\":\"%d\",\"sub\":\"%d\",\"timer\":\"%s\"}", Main_Screen, Sub_Screen, temp_buf); |
654 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); |
654 ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); |
655 if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) { |
655 if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) { |
656 // No heating during the infusion. |
656 // No heating during the infusion. |
657 driver_state->mlt_sp = stageTemp; |
657 driver_state->mlt_sp = stageTemp; |
658 driver_state->mlt_mode = MLT_MODE_OFF; |
658 driver_state->mlt_mode = MLT_MODE_OFF; |