Browse Source

MKS H43 fixup (#21267)

Co-authored-by: makerbase <4164049@qq.com>
Co-authored-by: MKS-Sean <56996910+MKS-Sean@users.noreply.github.com>
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
vanilla_fb_2.0.x
Sola 3 years ago
committed by GitHub
parent
commit
72cc5a49e6
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      Marlin/src/gcode/queue.cpp
  2. 9
      Marlin/src/gcode/queue.h
  3. 9
      Marlin/src/lcd/extui/lib/dgus/DGUSScreenHandler.cpp
  4. 2
      Marlin/src/lcd/extui/lib/dgus/mks/DGUSDisplayDef.cpp
  5. 6
      Marlin/src/lcd/extui/lib/dgus/mks/DGUSDisplayDef.h
  6. 48
      Marlin/src/lcd/extui/lib/dgus/mks/DGUSScreenHandler.cpp
  7. 22
      Marlin/src/lcd/extui/lib/mks_ui/draw_dialog.cpp
  8. 18
      Marlin/src/lcd/extui/lib/mks_ui/draw_extrusion.cpp
  9. 34
      Marlin/src/lcd/extui/lib/mks_ui/draw_filament_change.cpp
  10. 4
      Marlin/src/lcd/extui/lib/mks_ui/draw_operation.cpp
  11. 65
      Marlin/src/lcd/extui/lib/mks_ui/draw_preHeat.cpp
  12. 4
      Marlin/src/lcd/extui/lib/mks_ui/draw_printing.cpp
  13. 8
      Marlin/src/lcd/extui/lib/mks_ui/draw_ready_print.cpp
  14. 2
      Marlin/src/lcd/extui/lib/mks_ui/draw_tool.cpp
  15. 2
      Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp
  16. 6
      Marlin/src/lcd/extui/lib/mks_ui/draw_ui.h
  17. 14
      Marlin/src/lcd/extui/lib/mks_ui/wifi_module.cpp

8
Marlin/src/gcode/queue.cpp

@ -610,6 +610,14 @@ void GCodeQueue::get_available_commands() {
TERN_(SDSUPPORT, get_sdcard_commands()); TERN_(SDSUPPORT, get_sdcard_commands());
} }
/**
* Run the entire queue in-place. Blocks SD completion/abort until complete.
*/
void GCodeQueue::exhaust() {
while (ring_buffer.occupied()) advance();
planner.synchronize();
}
/** /**
* Get the next command in the queue, optionally log it to SD, then dispatch it * Get the next command in the queue, optionally log it to SD, then dispatch it
*/ */

9
Marlin/src/gcode/queue.h

@ -93,7 +93,9 @@ public:
inline bool full(uint8_t cmdCount=1) const { return length > (BUFSIZE - cmdCount); } inline bool full(uint8_t cmdCount=1) const { return length > (BUFSIZE - cmdCount); }
inline bool empty() const { return length == 0; } inline bool occupied() const { return length != 0; }
inline bool empty() const { return !occupied(); }
inline CommandLine& peek_next_command() { return commands[index_r]; } inline CommandLine& peek_next_command() { return commands[index_r]; }
@ -162,6 +164,11 @@ public:
*/ */
static void advance(); static void advance();
/**
* Run the entire queue in-place
*/
static void exhaust();
/** /**
* Add to the circular command queue the next command from: * Add to the circular command queue the next command from:
* - The command-injection queue (injected_commands_P) * - The command-injection queue (injected_commands_P)

9
Marlin/src/lcd/extui/lib/dgus/DGUSScreenHandler.cpp

@ -395,20 +395,23 @@ void DGUSScreenHandler::HandleTemperatureChanged(DGUS_VP_Variable &var, void *va
default: return; default: return;
#if HOTENDS >= 1 #if HOTENDS >= 1
case VP_T_E0_Set: case VP_T_E0_Set:
NOMORE(newvalue, HEATER_0_MAXTEMP);
thermalManager.setTargetHotend(newvalue, 0); thermalManager.setTargetHotend(newvalue, 0);
acceptedvalue = thermalManager.temp_hotend[0].target; acceptedvalue = thermalManager.degTargetHotend(0);
break; break;
#endif #endif
#if HOTENDS >= 2 #if HOTENDS >= 2
case VP_T_E1_Set: case VP_T_E1_Set:
NOMORE(newvalue, HEATER_1_MAXTEMP);
thermalManager.setTargetHotend(newvalue, 1); thermalManager.setTargetHotend(newvalue, 1);
acceptedvalue = thermalManager.temp_hotend[1].target; acceptedvalue = thermalManager.degTargetHotend(1);
break; break;
#endif #endif
#if HAS_HEATED_BED #if HAS_HEATED_BED
case VP_T_Bed_Set: case VP_T_Bed_Set:
NOMORE(newvalue, BED_MAXTEMP);
thermalManager.setTargetBed(newvalue); thermalManager.setTargetBed(newvalue);
acceptedvalue = thermalManager.temp_bed.target; acceptedvalue = thermalManager.degTargetBed();
break; break;
#endif #endif
} }

2
Marlin/src/lcd/extui/lib/dgus/mks/DGUSDisplayDef.cpp

@ -75,7 +75,7 @@ uint16_t z_park_pos = 10;
xyz_pos_t position_before_pause; xyz_pos_t position_before_pause;
void MKS_pause_print_move() { void MKS_pause_print_move() {
planner.synchronize(); queue.exhaust();
position_before_pause = current_position; position_before_pause = current_position;
do_blocking_move_to(X_MIN_POS + x_park_pos, Y_MIN_POS + y_park_pos, current_position.z + z_park_pos); do_blocking_move_to(X_MIN_POS + x_park_pos, Y_MIN_POS + y_park_pos, current_position.z + z_park_pos);
} }

6
Marlin/src/lcd/extui/lib/dgus/mks/DGUSDisplayDef.h

@ -23,10 +23,10 @@
#include "../DGUSDisplayDef.h" #include "../DGUSDisplayDef.h"
//#define USE_MKS_GREEN_UI #define USE_MKS_GREEN_UI
//#define DGUS_MKS_RUNOUT_SENSOR //#define DGUS_MKS_RUNOUT_SENSOR
#define LOGO_TIME_DELAY TERN(USE_MKS_GREEN_UI, 5000, 1500) #define LOGO_TIME_DELAY TERN(USE_MKS_GREEN_UI, 8000, 1500)
#if ENABLED(DGUS_MKS_RUNOUT_SENSOR) #if ENABLED(DGUS_MKS_RUNOUT_SENSOR)
#define MT_DET_1_PIN 1 #define MT_DET_1_PIN 1
@ -178,7 +178,7 @@ enum DGUSLCD_Screens : uint8_t {
MKSLCD_SCREEN_PRINT_CONFIG = 72, MKSLCD_SCREEN_PRINT_CONFIG = 72,
MKSLCD_SCREEN_LEVEL_DATA = 106, MKSLCD_SCREEN_LEVEL_DATA = 106,
MKSLCD_PrintPause_SET = 107, MKSLCD_PrintPause_SET = 107,
//MKSLCD_FILAMENT_DATA = 50, MKSLCD_FILAMENT_DATA = 50,
MKSLCD_ABOUT = 83, MKSLCD_ABOUT = 83,
MKSLCD_PID = 108, MKSLCD_PID = 108,
MKSLCD_PAUSE_SETTING_MOVE = 98, MKSLCD_PAUSE_SETTING_MOVE = 98,

48
Marlin/src/lcd/extui/lib/dgus/mks/DGUSScreenHandler.cpp

@ -39,6 +39,7 @@
#include "../../../../../gcode/gcode.h" #include "../../../../../gcode/gcode.h"
#include "../../../../../pins/pins.h" #include "../../../../../pins/pins.h"
#include "../../../../../libs/nozzle.h" #include "../../../../../libs/nozzle.h"
#if ENABLED(HAS_STEALTHCHOP) #if ENABLED(HAS_STEALTHCHOP)
#include "../../../../../module/stepper/trinamic.h" #include "../../../../../module/stepper/trinamic.h"
#include "../../../../../module/stepper/indirection.h" #include "../../../../../module/stepper/indirection.h"
@ -60,7 +61,6 @@ uint8_t DGUSLanguageSwitch = 0; // Switch language for MKS DGUS
uint32_t swap32(const uint32_t value) { return (value & 0x000000FFU) << 24U | (value & 0x0000FF00U) << 8U | (value & 0x00FF0000U) >> 8U | (value & 0xFF000000U) >> 24U; } uint32_t swap32(const uint32_t value) { return (value & 0x000000FFU) << 24U | (value & 0x0000FF00U) << 8U | (value & 0x00FF0000U) >> 8U | (value & 0xFF000000U) >> 24U; }
#if 0 #if 0
void DGUSScreenHandler::sendinfoscreen_ch_mks(const uint16_t* line1, const uint16_t* line2, const uint16_t* line3, const uint16_t* line4) { void DGUSScreenHandler::sendinfoscreen_ch_mks(const uint16_t* line1, const uint16_t* line2, const uint16_t* line3, const uint16_t* line4) {
dgusdisplay.WriteVariable(VP_MSGSTR1, line1, 32, true); dgusdisplay.WriteVariable(VP_MSGSTR1, line1, 32, true);
dgusdisplay.WriteVariable(VP_MSGSTR2, line2, 32, true); dgusdisplay.WriteVariable(VP_MSGSTR2, line2, 32, true);
@ -264,7 +264,7 @@ void DGUSScreenHandler::DGUSLCD_SendTMCStepValue(DGUS_VP_Variable &var) {
void DGUSScreenHandler::SDPrintingFinished() { void DGUSScreenHandler::SDPrintingFinished() {
if (DGUSAutoTurnOff) { if (DGUSAutoTurnOff) {
while (!queue.ring_buffer.empty()) queue.advance(); queue.exhaust();
gcode.process_subcommands_now_P(PSTR("M81")); gcode.process_subcommands_now_P(PSTR("M81"));
} }
GotoScreen(MKSLCD_SCREEN_PrintDone); GotoScreen(MKSLCD_SCREEN_PrintDone);
@ -465,7 +465,6 @@ void DGUSScreenHandler::Level_Ctrl_MKS(DGUS_VP_Variable &var, void *val_ptr) {
cs = getCurrentScreen(); cs = getCurrentScreen();
if (cs != MKSLCD_AUTO_LEVEL) GotoScreen(MKSLCD_AUTO_LEVEL); if (cs != MKSLCD_AUTO_LEVEL) GotoScreen(MKSLCD_AUTO_LEVEL);
#else #else
GotoScreen(MKSLCD_SCREEN_LEVEL); GotoScreen(MKSLCD_SCREEN_LEVEL);
@ -499,14 +498,15 @@ void DGUSScreenHandler::MeshLevel(DGUS_VP_Variable &var, void *val_ptr) {
char cmd_buf[30]; char cmd_buf[30];
float offset = mesh_adj_distance; float offset = mesh_adj_distance;
int16_t integer, Deci, Deci2; int16_t integer, Deci, Deci2;
// float f3 = current_position.z;
// float f4 = current_position.z; if (!queue.ring_buffer.empty()) return;
switch (mesh_value) { switch (mesh_value) {
case 0: case 0:
offset = mesh_adj_distance; offset = mesh_adj_distance;
integer = offset; // get int integer = offset; // get int
Deci = (offset * 100); Deci = (offset * 10);
Deci = Deci % 100; Deci = Deci % 10;
Deci2 = offset * 100; Deci2 = offset * 100;
Deci2 = Deci2 % 10; Deci2 = Deci2 % 10;
soft_endstop._enabled = false; soft_endstop._enabled = false;
@ -520,8 +520,8 @@ void DGUSScreenHandler::MeshLevel(DGUS_VP_Variable &var, void *val_ptr) {
case 1: case 1:
offset = mesh_adj_distance; offset = mesh_adj_distance;
integer = offset; // get int integer = offset; // get int
Deci = (offset * 100); Deci = (offset * 10);
Deci = Deci % 100; Deci = Deci % 10;
Deci2 = offset * 100; Deci2 = offset * 100;
Deci2 = Deci2 % 10; Deci2 = Deci2 % 10;
soft_endstop._enabled = false; soft_endstop._enabled = false;
@ -589,8 +589,8 @@ void DGUSScreenHandler::LCD_BLK_Adjust(DGUS_VP_Variable &var, void *val_ptr) {
uint16_t lcd_value = swap16(*(uint16_t *)val_ptr); uint16_t lcd_value = swap16(*(uint16_t *)val_ptr);
if(lcd_value > 100) lcd_value = 100; if (lcd_value > 100) lcd_value = 100;
else if(lcd_value < 10) lcd_value = 10; else if (lcd_value < 10) lcd_value = 10;
lcd_default_light = lcd_value; lcd_default_light = lcd_value;
@ -794,7 +794,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
DEBUG_ECHOLNPAIR("QUEUE LEN:", queue.length); DEBUG_ECHOLNPAIR("QUEUE LEN:", queue.length);
if (!print_job_timer.isPaused() && queue.ring_buffer.full(1)) if (!print_job_timer.isPaused() && !queue.ring_buffer.empty())
return; return;
char axiscode; char axiscode;
@ -1249,8 +1249,8 @@ void DGUSScreenHandler::MKS_FilamentLoad(DGUS_VP_Variable &var, void *val_ptr) {
switch (val_t) { switch (val_t) {
case 0: case 0:
#if HOTENDS >= 1 #if HOTENDS >= 1
if (thermalManager.temp_hotend[0].celsius < thermalManager.extrude_min_temp) { if (thermalManager.degHotend(0) < thermalManager.extrude_min_temp) {
if (thermalManager.temp_hotend[0].target < thermalManager.extrude_min_temp) if (thermalManager.degTargetHotend(0) < thermalManager.extrude_min_temp)
thermalManager.setTargetHotend(thermalManager.extrude_min_temp, 0); thermalManager.setTargetHotend(thermalManager.extrude_min_temp, 0);
sendinfoscreen(PSTR("NOTICE"), nullptr, PSTR("Please wait."), PSTR("Nozzle heating!"), true, true, true, true); sendinfoscreen(PSTR("NOTICE"), nullptr, PSTR("Please wait."), PSTR("Nozzle heating!"), true, true, true, true);
SetupConfirmAction(nullptr); SetupConfirmAction(nullptr);
@ -1268,8 +1268,8 @@ void DGUSScreenHandler::MKS_FilamentLoad(DGUS_VP_Variable &var, void *val_ptr) {
case 1: case 1:
#if HOTENDS >= 2 #if HOTENDS >= 2
if (thermalManager.temp_hotend[1].celsius < thermalManager.extrude_min_temp) { if (thermalManager.degHotend(1) < thermalManager.extrude_min_temp) {
if (thermalManager.temp_hotend[1].target < thermalManager.extrude_min_temp) if (thermalManager.degTargetHotend(1) < thermalManager.extrude_min_temp)
thermalManager.setTargetHotend(thermalManager.extrude_min_temp, 1); thermalManager.setTargetHotend(thermalManager.extrude_min_temp, 1);
sendinfoscreen(PSTR("NOTICE"), nullptr, PSTR("Please wait."), PSTR("Nozzle heating!"), true, true, true, true); sendinfoscreen(PSTR("NOTICE"), nullptr, PSTR("Please wait."), PSTR("Nozzle heating!"), true, true, true, true);
SetupConfirmAction(nullptr); SetupConfirmAction(nullptr);
@ -1284,8 +1284,8 @@ void DGUSScreenHandler::MKS_FilamentLoad(DGUS_VP_Variable &var, void *val_ptr) {
} }
#endif #endif
#if ENABLED(SINGLENOZZLE) #if ENABLED(SINGLENOZZLE)
if (thermalManager.temp_hotend[0].celsius < thermalManager.extrude_min_temp) { if (thermalManager.degHotend(0) < thermalManager.extrude_min_temp) {
if (thermalManager.temp_hotend[0].target < thermalManager.extrude_min_temp) if (thermalManager.degTargetHotend(0) < thermalManager.extrude_min_temp)
thermalManager.setTargetHotend(thermalManager.extrude_min_temp, 0); thermalManager.setTargetHotend(thermalManager.extrude_min_temp, 0);
sendinfoscreen(PSTR("NOTICE"), nullptr, PSTR("Please wait."), PSTR("Nozzle heating!"), true, true, true, true); sendinfoscreen(PSTR("NOTICE"), nullptr, PSTR("Please wait."), PSTR("Nozzle heating!"), true, true, true, true);
SetupConfirmAction(nullptr); SetupConfirmAction(nullptr);
@ -1313,8 +1313,8 @@ void DGUSScreenHandler::MKS_FilamentUnLoad(DGUS_VP_Variable &var, void *val_ptr)
switch (val_t) { switch (val_t) {
case 0: case 0:
#if HOTENDS >= 1 #if HOTENDS >= 1
if (thermalManager.temp_hotend[0].celsius < thermalManager.extrude_min_temp) { if (thermalManager.degHotend(0) < thermalManager.extrude_min_temp) {
if (thermalManager.temp_hotend[0].target < thermalManager.extrude_min_temp) if (thermalManager.degTargetHotend(0) < thermalManager.extrude_min_temp)
thermalManager.setTargetHotend(thermalManager.extrude_min_temp, 0); thermalManager.setTargetHotend(thermalManager.extrude_min_temp, 0);
sendinfoscreen(PSTR("NOTICE"), nullptr, PSTR("Please wait."), PSTR("Nozzle heating!"), true, true, true, true); sendinfoscreen(PSTR("NOTICE"), nullptr, PSTR("Please wait."), PSTR("Nozzle heating!"), true, true, true, true);
SetupConfirmAction(nullptr); SetupConfirmAction(nullptr);
@ -1331,8 +1331,8 @@ void DGUSScreenHandler::MKS_FilamentUnLoad(DGUS_VP_Variable &var, void *val_ptr)
break; break;
case 1: case 1:
#if HOTENDS >= 2 #if HOTENDS >= 2
if (thermalManager.temp_hotend[1].celsius < thermalManager.extrude_min_temp) { if (thermalManager.degHotend(1) < thermalManager.extrude_min_temp) {
if (thermalManager.temp_hotend[1].target < thermalManager.extrude_min_temp) if (thermalManager.degTargetHotend(1) < thermalManager.extrude_min_temp)
thermalManager.setTargetHotend(thermalManager.extrude_min_temp, 1); thermalManager.setTargetHotend(thermalManager.extrude_min_temp, 1);
sendinfoscreen(PSTR("NOTICE"), nullptr, PSTR("Please wait."), PSTR("Nozzle heating!"), true, true, true, true); sendinfoscreen(PSTR("NOTICE"), nullptr, PSTR("Please wait."), PSTR("Nozzle heating!"), true, true, true, true);
SetupConfirmAction(nullptr); SetupConfirmAction(nullptr);
@ -1348,8 +1348,8 @@ void DGUSScreenHandler::MKS_FilamentUnLoad(DGUS_VP_Variable &var, void *val_ptr)
#endif #endif
#if ENABLED(SINGLENOZZLE) #if ENABLED(SINGLENOZZLE)
if (thermalManager.temp_hotend[0].celsius < thermalManager.extrude_min_temp) { if (thermalManager.degHotend(0) < thermalManager.extrude_min_temp) {
if (thermalManager.temp_hotend[0].target < thermalManager.extrude_min_temp) if (thermalManager.degTargetHotend(0) < thermalManager.extrude_min_temp)
thermalManager.setTargetHotend(thermalManager.extrude_min_temp, 0); thermalManager.setTargetHotend(thermalManager.extrude_min_temp, 0);
sendinfoscreen(PSTR("NOTICE"), nullptr, PSTR("Please wait."), PSTR("Nozzle heating!"), true, true, true, true); sendinfoscreen(PSTR("NOTICE"), nullptr, PSTR("Please wait."), PSTR("Nozzle heating!"), true, true, true, true);
SetupConfirmAction(nullptr); SetupConfirmAction(nullptr);

22
Marlin/src/lcd/extui/lib/mks_ui/draw_dialog.cpp

@ -191,7 +191,7 @@ static void btn_cancel_event_cb(lv_obj_t *btn, lv_event_t event) {
TERN_(ADVANCED_PAUSE_FEATURE, pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT); TERN_(ADVANCED_PAUSE_FEATURE, pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT);
} }
else if (DIALOG_IS(TYPE_FILAMENT_LOAD_HEAT, TYPE_FILAMENT_UNLOAD_HEAT, TYPE_FILAMENT_HEAT_LOAD_COMPLETED, TYPE_FILAMENT_HEAT_UNLOAD_COMPLETED)) { else if (DIALOG_IS(TYPE_FILAMENT_LOAD_HEAT, TYPE_FILAMENT_UNLOAD_HEAT, TYPE_FILAMENT_HEAT_LOAD_COMPLETED, TYPE_FILAMENT_HEAT_UNLOAD_COMPLETED)) {
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target= uiCfg.desireSprayerTempBak; thermalManager.setTargetHotend(uiCfg.hotendTargetTempBak, uiCfg.extruderIndex);
clear_cur_ui(); clear_cur_ui();
draw_return_ui(); draw_return_ui();
} }
@ -204,7 +204,7 @@ static void btn_cancel_event_cb(lv_obj_t *btn, lv_event_t event) {
uiCfg.filament_loading_time_cnt = 0; uiCfg.filament_loading_time_cnt = 0;
uiCfg.filament_unloading_time_flg = false; uiCfg.filament_unloading_time_flg = false;
uiCfg.filament_unloading_time_cnt = 0; uiCfg.filament_unloading_time_cnt = 0;
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target = uiCfg.desireSprayerTempBak; thermalManager.setTargetHotend(uiCfg.hotendTargetTempBak, uiCfg.extruderIndex);
clear_cur_ui(); clear_cur_ui();
draw_return_ui(); draw_return_ui();
} }
@ -479,9 +479,9 @@ void lv_draw_dialog(uint8_t type) {
void filament_sprayer_temp() { void filament_sprayer_temp() {
char buf[20] = {0}; char buf[20] = {0};
sprintf(buf, preheat_menu.value_state, (int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius, (int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].target); sprintf(buf, preheat_menu.value_state, (int)thermalManager.degHotend(uiCfg.extruderIndex), (int)thermalManager.degTargetHotend(uiCfg.extruderIndex));
strcpy(public_buf_l, uiCfg.curSprayerChoose < 1 ? extrude_menu.ext1 : extrude_menu.ext2); strcpy(public_buf_l, uiCfg.extruderIndex < 1 ? extrude_menu.ext1 : extrude_menu.ext2);
strcat_P(public_buf_l, PSTR(": ")); strcat_P(public_buf_l, PSTR(": "));
strcat(public_buf_l, buf); strcat(public_buf_l, buf);
lv_label_set_text(tempText1, public_buf_l); lv_label_set_text(tempText1, public_buf_l);
@ -500,7 +500,7 @@ void filament_dialog_handle() {
planner.synchronize(); planner.synchronize();
uiCfg.filament_loading_time_flg = true; uiCfg.filament_loading_time_flg = true;
uiCfg.filament_loading_time_cnt = 0; uiCfg.filament_loading_time_cnt = 0;
sprintf_P(public_buf_m, PSTR("T%d\nG91\nG1 E%d F%d\nG90"), uiCfg.curSprayerChoose, gCfgItems.filamentchange_load_length, gCfgItems.filamentchange_load_speed); sprintf_P(public_buf_m, PSTR("T%d\nG91\nG1 E%d F%d\nG90"), uiCfg.extruderIndex, gCfgItems.filamentchange_load_length, gCfgItems.filamentchange_load_speed);
queue.inject(public_buf_m); queue.inject(public_buf_m);
} }
if (uiCfg.filament_heat_completed_unload) { if (uiCfg.filament_heat_completed_unload) {
@ -510,13 +510,13 @@ void filament_dialog_handle() {
planner.synchronize(); planner.synchronize();
uiCfg.filament_unloading_time_flg = true; uiCfg.filament_unloading_time_flg = true;
uiCfg.filament_unloading_time_cnt = 0; uiCfg.filament_unloading_time_cnt = 0;
sprintf_P(public_buf_m, PSTR("T%d\nG91\nG1 E-%d F%d\nG90"), uiCfg.curSprayerChoose, gCfgItems.filamentchange_unload_length, gCfgItems.filamentchange_unload_speed); sprintf_P(public_buf_m, PSTR("T%d\nG91\nG1 E-%d F%d\nG90"), uiCfg.extruderIndex, gCfgItems.filamentchange_unload_length, gCfgItems.filamentchange_unload_speed);
queue.inject(public_buf_m); queue.inject(public_buf_m);
} }
if (((abs((int)((int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius - gCfgItems.filament_limit_temper)) <= 1) if ( ((abs((int)((int)thermalManager.degHotend(uiCfg.extruderIndex) - gCfgItems.filament_limit_temper)) <= 1)
|| ((int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius > gCfgItems.filament_limit_temper)) || ((int)thermalManager.degHotend(uiCfg.extruderIndex) > gCfgItems.filament_limit_temper))
&& (uiCfg.filament_load_heat_flg) && uiCfg.filament_load_heat_flg
) { ) {
uiCfg.filament_load_heat_flg = false; uiCfg.filament_load_heat_flg = false;
lv_clear_dialog(); lv_clear_dialog();
@ -529,8 +529,8 @@ void filament_dialog_handle() {
lv_clear_dialog(); lv_clear_dialog();
lv_draw_dialog(DIALOG_TYPE_FILAMENT_LOAD_COMPLETED); lv_draw_dialog(DIALOG_TYPE_FILAMENT_LOAD_COMPLETED);
} }
if (((abs((int)((int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius - gCfgItems.filament_limit_temper)) <= 1) if (((abs((int)((int)thermalManager.degHotend(uiCfg.extruderIndex) - gCfgItems.filament_limit_temper)) <= 1)
|| ((int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius > gCfgItems.filament_limit_temper)) || ((int)thermalManager.degHotend(uiCfg.extruderIndex) > gCfgItems.filament_limit_temper))
&& uiCfg.filament_unload_heat_flg && uiCfg.filament_unload_heat_flg
) { ) {
uiCfg.filament_unload_heat_flg = false; uiCfg.filament_unload_heat_flg = false;

18
Marlin/src/lcd/extui/lib/mks_ui/draw_extrusion.cpp

@ -54,7 +54,7 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
if (event != LV_EVENT_RELEASED) return; if (event != LV_EVENT_RELEASED) return;
switch (obj->mks_obj_id) { switch (obj->mks_obj_id) {
case ID_E_ADD: case ID_E_ADD:
if (thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius >= EXTRUDE_MINTEMP) { if (thermalManager.degHotend(uiCfg.extruderIndex) >= EXTRUDE_MINTEMP) {
sprintf_P((char *)public_buf_l, PSTR("G91\nG1 E%d F%d\nG90"), uiCfg.extruStep, 60 * uiCfg.extruSpeed); sprintf_P((char *)public_buf_l, PSTR("G91\nG1 E%d F%d\nG90"), uiCfg.extruStep, 60 * uiCfg.extruSpeed);
queue.inject(public_buf_l); queue.inject(public_buf_l);
extrudeAmount += uiCfg.extruStep; extrudeAmount += uiCfg.extruStep;
@ -62,7 +62,7 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
} }
break; break;
case ID_E_DEC: case ID_E_DEC:
if (thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius >= EXTRUDE_MINTEMP) { if (thermalManager.degHotend(uiCfg.extruderIndex) >= EXTRUDE_MINTEMP) {
sprintf_P((char *)public_buf_l, PSTR("G91\nG1 E%d F%d\nG90"), 0 - uiCfg.extruStep, 60 * uiCfg.extruSpeed); sprintf_P((char *)public_buf_l, PSTR("G91\nG1 E%d F%d\nG90"), 0 - uiCfg.extruStep, 60 * uiCfg.extruSpeed);
queue.enqueue_one_now(public_buf_l); queue.enqueue_one_now(public_buf_l);
extrudeAmount -= uiCfg.extruStep; extrudeAmount -= uiCfg.extruStep;
@ -71,17 +71,17 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
break; break;
case ID_E_TYPE: case ID_E_TYPE:
if (ENABLED(HAS_MULTI_EXTRUDER)) { if (ENABLED(HAS_MULTI_EXTRUDER)) {
if (uiCfg.curSprayerChoose == 0) { if (uiCfg.extruderIndex == 0) {
uiCfg.curSprayerChoose = 1; uiCfg.extruderIndex = 1;
queue.inject_P(PSTR("T1")); queue.inject_P(PSTR("T1"));
} }
else { else {
uiCfg.curSprayerChoose = 0; uiCfg.extruderIndex = 0;
queue.inject_P(PSTR("T0")); queue.inject_P(PSTR("T0"));
} }
} }
else else
uiCfg.curSprayerChoose = 0; uiCfg.extruderIndex = 0;
extrudeAmount = 0; extrudeAmount = 0;
disp_hotend_temp(); disp_hotend_temp();
@ -153,7 +153,7 @@ void lv_draw_extrusion() {
} }
void disp_ext_type() { void disp_ext_type() {
if (uiCfg.curSprayerChoose == 1) { if (uiCfg.extruderIndex == 1) {
lv_imgbtn_set_src_both(buttonType, "F:/bmp_extru2.bin"); lv_imgbtn_set_src_both(buttonType, "F:/bmp_extru2.bin");
if (gCfgItems.multiple_language) { if (gCfgItems.multiple_language) {
lv_label_set_text(labelType, extrude_menu.ext2); lv_label_set_text(labelType, extrude_menu.ext2);
@ -195,7 +195,7 @@ void disp_ext_speed() {
void disp_hotend_temp() { void disp_hotend_temp() {
char buf[20] = {0}; char buf[20] = {0};
sprintf(buf, extrude_menu.temp_value, (int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius, (int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].target); sprintf(buf, extrude_menu.temp_value, (int)thermalManager.degHotend(uiCfg.extruderIndex), (int)thermalManager.degTargetHotend(uiCfg.extruderIndex));
strcpy(public_buf_l, extrude_menu.temper_text); strcpy(public_buf_l, extrude_menu.temper_text);
strcat(public_buf_l, buf); strcat(public_buf_l, buf);
lv_label_set_text(tempText, public_buf_l); lv_label_set_text(tempText, public_buf_l);
@ -213,7 +213,7 @@ void disp_extru_amount() {
sprintf(buf1, extrude_menu.count_value_cm, extrudeAmount / 10); sprintf(buf1, extrude_menu.count_value_cm, extrudeAmount / 10);
else else
sprintf(buf1, extrude_menu.count_value_m, extrudeAmount / 1000); sprintf(buf1, extrude_menu.count_value_m, extrudeAmount / 1000);
strcat(public_buf_l, uiCfg.curSprayerChoose < 1 ? extrude_menu.ext1 : extrude_menu.ext2); strcat(public_buf_l, uiCfg.extruderIndex == 0 ? extrude_menu.ext1 : extrude_menu.ext2);
strcat(public_buf_l, buf1); strcat(public_buf_l, buf1);
lv_label_set_text(ExtruText, public_buf_l); lv_label_set_text(ExtruText, public_buf_l);

34
Marlin/src/lcd/extui/lib/mks_ui/draw_filament_change.cpp

@ -50,25 +50,25 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
switch (obj->mks_obj_id) { switch (obj->mks_obj_id) {
case ID_FILAMNT_IN: case ID_FILAMNT_IN:
uiCfg.filament_load_heat_flg = true; uiCfg.filament_load_heat_flg = true;
if ((abs(thermalManager.temp_hotend[uiCfg.curSprayerChoose].target - thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius) <= 1) if ((abs(thermalManager.degTargetHotend(uiCfg.extruderIndex) - thermalManager.degHotend(uiCfg.extruderIndex)) <= 1)
|| (gCfgItems.filament_limit_temper <= thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius)) { || (gCfgItems.filament_limit_temper <= thermalManager.degHotend(uiCfg.extruderIndex))) {
lv_clear_filament_change(); lv_clear_filament_change();
lv_draw_dialog(DIALOG_TYPE_FILAMENT_HEAT_LOAD_COMPLETED); lv_draw_dialog(DIALOG_TYPE_FILAMENT_HEAT_LOAD_COMPLETED);
} }
else { else {
lv_clear_filament_change(); lv_clear_filament_change();
lv_draw_dialog(DIALOG_TYPE_FILAMENT_LOAD_HEAT); lv_draw_dialog(DIALOG_TYPE_FILAMENT_LOAD_HEAT);
if (thermalManager.temp_hotend[uiCfg.curSprayerChoose].target < gCfgItems.filament_limit_temper) { if (thermalManager.degTargetHotend(uiCfg.extruderIndex) < gCfgItems.filament_limit_temper) {
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target = gCfgItems.filament_limit_temper; thermalManager.setTargetHotend(gCfgItems.filament_limit_temper, uiCfg.extruderIndex);
thermalManager.start_watching_hotend(uiCfg.curSprayerChoose); thermalManager.start_watching_hotend(uiCfg.extruderIndex);
} }
} }
break; break;
case ID_FILAMNT_OUT: case ID_FILAMNT_OUT:
uiCfg.filament_unload_heat_flg = true; uiCfg.filament_unload_heat_flg = true;
if ((thermalManager.temp_hotend[uiCfg.curSprayerChoose].target > 0) if (thermalManager.degTargetHotend(uiCfg.extruderIndex)
&& ((abs((int)((int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].target - thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius)) <= 1) && ((abs((int)((int)thermalManager.degTargetHotend(uiCfg.extruderIndex) - thermalManager.degHotend(uiCfg.extruderIndex))) <= 1)
|| ((int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius >= gCfgItems.filament_limit_temper)) || ((int)thermalManager.degHotend(uiCfg.extruderIndex) >= gCfgItems.filament_limit_temper))
) { ) {
lv_clear_filament_change(); lv_clear_filament_change();
lv_draw_dialog(DIALOG_TYPE_FILAMENT_HEAT_UNLOAD_COMPLETED); lv_draw_dialog(DIALOG_TYPE_FILAMENT_HEAT_UNLOAD_COMPLETED);
@ -76,28 +76,28 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
else { else {
lv_clear_filament_change(); lv_clear_filament_change();
lv_draw_dialog(DIALOG_TYPE_FILAMENT_UNLOAD_HEAT); lv_draw_dialog(DIALOG_TYPE_FILAMENT_UNLOAD_HEAT);
if (thermalManager.temp_hotend[uiCfg.curSprayerChoose].target < gCfgItems.filament_limit_temper) { if (thermalManager.degTargetHotend(uiCfg.extruderIndex) < gCfgItems.filament_limit_temper) {
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target = gCfgItems.filament_limit_temper; thermalManager.setTargetHotend(gCfgItems.filament_limit_temper, uiCfg.extruderIndex);
thermalManager.start_watching_hotend(uiCfg.curSprayerChoose); thermalManager.start_watching_hotend(uiCfg.extruderIndex);
} }
filament_sprayer_temp(); filament_sprayer_temp();
} }
break; break;
case ID_FILAMNT_TYPE: case ID_FILAMNT_TYPE:
#if HAS_MULTI_EXTRUDER #if HAS_MULTI_EXTRUDER
uiCfg.curSprayerChoose = !uiCfg.curSprayerChoose; uiCfg.extruderIndex = !uiCfg.extruderIndex;
#endif #endif
disp_filament_type(); disp_filament_type();
break; break;
case ID_FILAMNT_RETURN: case ID_FILAMNT_RETURN:
#if HAS_MULTI_EXTRUDER #if HAS_MULTI_EXTRUDER
if (uiCfg.print_state != IDLE && uiCfg.print_state != REPRINTED) if (uiCfg.print_state != IDLE && uiCfg.print_state != REPRINTED)
gcode.process_subcommands_now_P(uiCfg.curSprayerChoose_bak == 1 ? PSTR("T1") : PSTR("T0")); gcode.process_subcommands_now_P(uiCfg.extruderIndexBak == 1 ? PSTR("T1") : PSTR("T0"));
#endif #endif
feedrate_mm_s = (float)uiCfg.moveSpeed_bak; feedrate_mm_s = (float)uiCfg.moveSpeed_bak;
if (uiCfg.print_state == PAUSED) if (uiCfg.print_state == PAUSED)
planner.set_e_position_mm((destination.e = current_position.e = uiCfg.current_e_position_bak)); planner.set_e_position_mm((destination.e = current_position.e = uiCfg.current_e_position_bak));
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target = uiCfg.desireSprayerTempBak; thermalManager.setTargetHotend(uiCfg.hotendTargetTempBak, uiCfg.extruderIndex);
clear_cur_ui(); clear_cur_ui();
draw_return_ui(); draw_return_ui();
@ -132,7 +132,7 @@ void lv_draw_filament_change() {
} }
void disp_filament_type() { void disp_filament_type() {
if (uiCfg.curSprayerChoose == 1) { if (uiCfg.extruderIndex == 1) {
lv_imgbtn_set_src_both(buttonType, "F:/bmp_extru2.bin"); lv_imgbtn_set_src_both(buttonType, "F:/bmp_extru2.bin");
if (gCfgItems.multiple_language) { if (gCfgItems.multiple_language) {
lv_label_set_text(labelType, preheat_menu.ext2); lv_label_set_text(labelType, preheat_menu.ext2);
@ -153,8 +153,8 @@ void disp_filament_temp() {
public_buf_l[0] = '\0'; public_buf_l[0] = '\0';
strcat(public_buf_l, uiCfg.curSprayerChoose < 1 ? preheat_menu.ext1 : preheat_menu.ext2); strcat(public_buf_l, uiCfg.extruderIndex < 1 ? preheat_menu.ext1 : preheat_menu.ext2);
sprintf(buf, preheat_menu.value_state, (int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius, (int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].target); sprintf(buf, preheat_menu.value_state, (int)thermalManager.degHotend(uiCfg.extruderIndex), (int)thermalManager.degTargetHotend(uiCfg.extruderIndex));
strcat_P(public_buf_l, PSTR(": ")); strcat_P(public_buf_l, PSTR(": "));
strcat(public_buf_l, buf); strcat(public_buf_l, buf);

4
Marlin/src/lcd/extui/lib/mks_ui/draw_operation.cpp

@ -66,7 +66,7 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
break; break;
case ID_O_FILAMENT: case ID_O_FILAMENT:
#if HAS_MULTI_EXTRUDER #if HAS_MULTI_EXTRUDER
uiCfg.curSprayerChoose_bak = active_extruder; uiCfg.extruderIndexBak = active_extruder;
#endif #endif
if (uiCfg.print_state == WORKING) { if (uiCfg.print_state == WORKING) {
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
@ -76,7 +76,7 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
#endif #endif
} }
uiCfg.moveSpeed_bak = (uint16_t)feedrate_mm_s; uiCfg.moveSpeed_bak = (uint16_t)feedrate_mm_s;
uiCfg.desireSprayerTempBak = thermalManager.temp_hotend[active_extruder].target; uiCfg.hotendTargetTempBak = thermalManager.degTargetHotend(active_extruder);
lv_clear_operation(); lv_clear_operation();
lv_draw_filament_change(); lv_draw_filament_change();
break; break;

65
Marlin/src/lcd/extui/lib/mks_ui/draw_preHeat.cpp

@ -48,47 +48,46 @@ enum {
static void event_handler(lv_obj_t *obj, lv_event_t event) { static void event_handler(lv_obj_t *obj, lv_event_t event) {
if (event != LV_EVENT_RELEASED) return; if (event != LV_EVENT_RELEASED) return;
switch (obj->mks_obj_id) { switch (obj->mks_obj_id) {
case ID_P_ADD: case ID_P_ADD: {
if (uiCfg.curTempType == 0) { if (uiCfg.curTempType == 0) {
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target += uiCfg.stepHeat; int16_t max_target;
if (uiCfg.curSprayerChoose == 0) { thermalManager.temp_hotend[uiCfg.extruderIndex].target += uiCfg.stepHeat;
if ((int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].target > (HEATER_0_MAXTEMP - (WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1))) { if (uiCfg.extruderIndex == 0)
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target = (float)HEATER_0_MAXTEMP - (WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1); max_target = HEATER_0_MAXTEMP - (WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1);
}
}
#if HAS_MULTI_HOTEND #if HAS_MULTI_HOTEND
else if ((int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].target > (HEATER_1_MAXTEMP - (WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1))) { else
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target = (float)HEATER_1_MAXTEMP - (WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1); max_target = HEATER_1_MAXTEMP - (WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1);
}
#endif #endif
thermalManager.start_watching_hotend(uiCfg.curSprayerChoose); if (thermalManager.degTargetHotend(uiCfg.extruderIndex) > max_target)
thermalManager.setTargetHotend(max_target, uiCfg.extruderIndex);
thermalManager.start_watching_hotend(uiCfg.extruderIndex);
} }
#if HAS_HEATED_BED #if HAS_HEATED_BED
else { else {
constexpr int16_t max_target = BED_MAXTEMP - (WATCH_BED_TEMP_INCREASE + TEMP_BED_HYSTERESIS + 1);
thermalManager.temp_bed.target += uiCfg.stepHeat; thermalManager.temp_bed.target += uiCfg.stepHeat;
if ((int)thermalManager.temp_bed.target > BED_MAXTEMP - (WATCH_BED_TEMP_INCREASE + TEMP_BED_HYSTERESIS + 1)) { if (thermalManager.degTargetBed() > max_target)
thermalManager.temp_bed.target = (float)BED_MAXTEMP - (WATCH_BED_TEMP_INCREASE + TEMP_BED_HYSTERESIS + 1); thermalManager.setTargetBed(max_target);
}
thermalManager.start_watching_bed(); thermalManager.start_watching_bed();
} }
#endif #endif
disp_desire_temp(); disp_desire_temp();
break; } break;
case ID_P_DEC: case ID_P_DEC:
if (uiCfg.curTempType == 0) { if (uiCfg.curTempType == 0) {
if ((int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].target > uiCfg.stepHeat) if ((int)thermalManager.degTargetHotend(uiCfg.extruderIndex) > uiCfg.stepHeat)
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target -= uiCfg.stepHeat; thermalManager.temp_hotend[uiCfg.extruderIndex].target -= uiCfg.stepHeat;
else else
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target = 0; thermalManager.setTargetHotend(0, uiCfg.extruderIndex);
thermalManager.start_watching_hotend(uiCfg.extruderIndex);
thermalManager.start_watching_hotend(uiCfg.curSprayerChoose);
} }
#if HAS_HEATED_BED #if HAS_HEATED_BED
else { else {
if ((int)thermalManager.temp_bed.target > uiCfg.stepHeat) if ((int)thermalManager.temp_bed.target > uiCfg.stepHeat)
thermalManager.temp_bed.target -= uiCfg.stepHeat; thermalManager.temp_bed.target -= uiCfg.stepHeat;
else else
thermalManager.temp_bed.target = 0; thermalManager.setTargetBed(0);
thermalManager.start_watching_bed(); thermalManager.start_watching_bed();
} }
@ -98,20 +97,20 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
case ID_P_TYPE: case ID_P_TYPE:
if (uiCfg.curTempType == 0) { if (uiCfg.curTempType == 0) {
if (ENABLED(HAS_MULTI_EXTRUDER)) { if (ENABLED(HAS_MULTI_EXTRUDER)) {
if (uiCfg.curSprayerChoose == 0) { if (uiCfg.extruderIndex == 0) {
uiCfg.curSprayerChoose = 1; uiCfg.extruderIndex = 1;
} }
else if (uiCfg.curSprayerChoose == 1) { else if (uiCfg.extruderIndex == 1) {
if (TEMP_SENSOR_BED != 0) { if (TEMP_SENSOR_BED != 0) {
uiCfg.curTempType = 1; uiCfg.curTempType = 1;
} }
else { else {
uiCfg.curTempType = 0; uiCfg.curTempType = 0;
uiCfg.curSprayerChoose = 0; uiCfg.extruderIndex = 0;
} }
} }
} }
else if (uiCfg.curSprayerChoose == 0) { else if (uiCfg.extruderIndex == 0) {
if (TEMP_SENSOR_BED != 0) if (TEMP_SENSOR_BED != 0)
uiCfg.curTempType = 1; uiCfg.curTempType = 1;
else else
@ -119,7 +118,7 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
} }
} }
else if (uiCfg.curTempType == 1) { else if (uiCfg.curTempType == 1) {
uiCfg.curSprayerChoose = 0; uiCfg.extruderIndex = 0;
uiCfg.curTempType = 0; uiCfg.curTempType = 0;
} }
disp_temp_type(); disp_temp_type();
@ -135,8 +134,8 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
break; break;
case ID_P_OFF: case ID_P_OFF:
if (uiCfg.curTempType == 0) { if (uiCfg.curTempType == 0) {
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target = 0; thermalManager.setTargetHotend(0, uiCfg.extruderIndex);
thermalManager.start_watching_hotend(uiCfg.curSprayerChoose); thermalManager.start_watching_hotend(uiCfg.extruderIndex);
} }
#if HAS_HEATED_BED #if HAS_HEATED_BED
else { else {
@ -186,7 +185,7 @@ void lv_draw_preHeat() {
void disp_temp_type() { void disp_temp_type() {
if (uiCfg.curTempType == 0) { if (uiCfg.curTempType == 0) {
if (uiCfg.curSprayerChoose == 1) { if (uiCfg.extruderIndex == 1) {
lv_imgbtn_set_src_both(buttonType, "F:/bmp_extru2.bin"); lv_imgbtn_set_src_both(buttonType, "F:/bmp_extru2.bin");
if (gCfgItems.multiple_language) { if (gCfgItems.multiple_language) {
lv_label_set_text(labelType, preheat_menu.ext2); lv_label_set_text(labelType, preheat_menu.ext2);
@ -217,13 +216,13 @@ void disp_desire_temp() {
public_buf_l[0] = '\0'; public_buf_l[0] = '\0';
if (uiCfg.curTempType == 0) { if (uiCfg.curTempType == 0) {
strcat(public_buf_l, uiCfg.curSprayerChoose < 1 ? preheat_menu.ext1 : preheat_menu.ext2); strcat(public_buf_l, uiCfg.extruderIndex < 1 ? preheat_menu.ext1 : preheat_menu.ext2);
sprintf(buf, preheat_menu.value_state, (int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius, (int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].target); sprintf(buf, preheat_menu.value_state, (int)thermalManager.degHotend(uiCfg.extruderIndex), (int)thermalManager.degTargetHotend(uiCfg.extruderIndex));
} }
#if HAS_HEATED_BED #if HAS_HEATED_BED
else { else {
strcat(public_buf_l, preheat_menu.hotbed); strcat(public_buf_l, preheat_menu.hotbed);
sprintf(buf, preheat_menu.value_state, (int)thermalManager.temp_bed.celsius, (int)thermalManager.temp_bed.target); sprintf(buf, preheat_menu.value_state, (int)thermalManager.temp_bed.celsius, (int)thermalManager.temp_bed.target);
} }
#endif #endif
strcat_P(public_buf_l, PSTR(": ")); strcat_P(public_buf_l, PSTR(": "));

4
Marlin/src/lcd/extui/lib/mks_ui/draw_printing.cpp

@ -203,11 +203,11 @@ void lv_draw_printing() {
} }
void disp_ext_temp() { void disp_ext_temp() {
sprintf(public_buf_l, printing_menu.temp1, (int)thermalManager.temp_hotend[0].celsius, (int)thermalManager.temp_hotend[0].target); sprintf(public_buf_l, printing_menu.temp1, (int)thermalManager.degHotend(0), (int)thermalManager.degTargetHotend(0));
lv_label_set_text(labelExt1, public_buf_l); lv_label_set_text(labelExt1, public_buf_l);
#if HAS_MULTI_EXTRUDER #if HAS_MULTI_EXTRUDER
sprintf(public_buf_l, printing_menu.temp1, (int)thermalManager.temp_hotend[1].celsius, (int)thermalManager.temp_hotend[1].target); sprintf(public_buf_l, printing_menu.temp1, (int)thermalManager.degHotend(1), (int)thermalManager.degTargetHotend(1));
lv_label_set_text(labelExt2, public_buf_l); lv_label_set_text(labelExt2, public_buf_l);
#endif #endif
} }

8
Marlin/src/lcd/extui/lib/mks_ui/draw_ready_print.cpp

@ -98,10 +98,10 @@ void disp_det_error() {
lv_obj_t *e1, *e2, *e3, *bed; lv_obj_t *e1, *e2, *e3, *bed;
void mks_disp_test() { void mks_disp_test() {
char buf[30] = {0}; char buf[30] = {0};
sprintf_P(buf, PSTR("e1:%d"), (int)thermalManager.temp_hotend[0].celsius); sprintf_P(buf, PSTR("e1:%d"), (int)thermalManager.degHotend(0));
lv_label_set_text(e1, buf); lv_label_set_text(e1, buf);
#if HAS_MULTI_HOTEND #if HAS_MULTI_HOTEND
sprintf_P(buf, PSTR("e2:%d"), (int)thermalManager.temp_hotend[1].celsius); sprintf_P(buf, PSTR("e2:%d"), (int)thermalManager.degHotend(1));
lv_label_set_text(e2, buf); lv_label_set_text(e2, buf);
#endif #endif
#if HAS_HEATED_BED #if HAS_HEATED_BED
@ -133,12 +133,12 @@ void lv_draw_ready_print() {
#if 1 #if 1
e1 = lv_label_create_empty(scr); e1 = lv_label_create_empty(scr);
lv_obj_set_pos(e1, 20, 20); lv_obj_set_pos(e1, 20, 20);
sprintf_P(buf, PSTR("e1: %d"), (int)thermalManager.temp_hotend[0].celsius); sprintf_P(buf, PSTR("e1: %d"), (int)thermalManager.degHotend(0));
lv_label_set_text(e1, buf); lv_label_set_text(e1, buf);
#if HAS_MULTI_HOTEND #if HAS_MULTI_HOTEND
e2 = lv_label_create_empty(scr); e2 = lv_label_create_empty(scr);
lv_obj_set_pos(e2, 20, 45); lv_obj_set_pos(e2, 20, 45);
sprintf_P(buf, PSTR("e1: %d"), (int)thermalManager.temp_hotend[1].celsius); sprintf_P(buf, PSTR("e1: %d"), (int)thermalManager.degHotend(1));
lv_label_set_text(e2, buf); lv_label_set_text(e2, buf);
#endif #endif

2
Marlin/src/lcd/extui/lib/mks_ui/draw_tool.cpp

@ -68,7 +68,7 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
#endif #endif
break; break;
case ID_T_FILAMENT: case ID_T_FILAMENT:
uiCfg.desireSprayerTempBak = thermalManager.temp_hotend[uiCfg.curSprayerChoose].target; uiCfg.hotendTargetTempBak = thermalManager.degTargetHotend(uiCfg.extruderIndex);
lv_draw_filament_change(); lv_draw_filament_change();
break; break;
case ID_T_MORE: case ID_T_MORE:

2
Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp

@ -179,7 +179,7 @@ void gCfgItems_init() {
void ui_cfg_init() { void ui_cfg_init() {
uiCfg.curTempType = 0; uiCfg.curTempType = 0;
uiCfg.curSprayerChoose = 0; uiCfg.extruderIndex = 0;
uiCfg.stepHeat = 10; uiCfg.stepHeat = 10;
uiCfg.leveling_first_time = false; uiCfg.leveling_first_time = false;
uiCfg.para_ui_page = false; uiCfg.para_ui_page = false;

6
Marlin/src/lcd/extui/lib/mks_ui/draw_ui.h

@ -211,9 +211,9 @@ typedef struct {
typedef struct { typedef struct {
uint8_t curTempType:1, uint8_t curTempType:1,
curSprayerChoose:3, extruderIndex:3,
stepHeat:4, stepHeat:4,
curSprayerChoose_bak:4; extruderIndexBak:4;
bool leveling_first_time:1, bool leveling_first_time:1,
para_ui_page:1, para_ui_page:1,
configWifi:1, configWifi:1,
@ -246,7 +246,7 @@ typedef struct {
filament_loading_time_cnt, filament_loading_time_cnt,
filament_unloading_time_cnt; filament_unloading_time_cnt;
float move_dist; float move_dist;
float desireSprayerTempBak; float hotendTargetTempBak;
float current_x_position_bak, float current_x_position_bak,
current_y_position_bak, current_y_position_bak,
current_z_position_bak, current_z_position_bak,

14
Marlin/src/lcd/extui/lib/mks_ui/wifi_module.cpp

@ -885,9 +885,9 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
char *outBuf = (char *)tempBuf; char *outBuf = (char *)tempBuf;
char str_1[16], tbuf[34]; char str_1[16], tbuf[34];
dtostrf(thermalManager.temp_hotend[0].celsius, 1, 1, tbuf); dtostrf(thermalManager.degHotend(0), 1, 1, tbuf);
strcat_P(tbuf, PSTR(" /")); strcat_P(tbuf, PSTR(" /"));
strcat(tbuf, dtostrf(thermalManager.temp_hotend[0].target, 1, 1, str_1)); strcat(tbuf, dtostrf(thermalManager.degTargetHotend(0), 1, 1, str_1));
const int tlen = strlen(tbuf); const int tlen = strlen(tbuf);
@ -912,9 +912,9 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
strcat_P(outBuf, PSTR(" T1:")); strcat_P(outBuf, PSTR(" T1:"));
outBuf += 4; outBuf += 4;
#if HAS_MULTI_HOTEND #if HAS_MULTI_HOTEND
strcat(outBuf, dtostrf(thermalManager.temp_hotend[1].celsius, 1, 1, str_1)); strcat(outBuf, dtostrf(thermalManager.degHotend(1), 1, 1, str_1));
strcat_P(outBuf, PSTR(" /")); strcat_P(outBuf, PSTR(" /"));
strcat(outBuf, dtostrf(thermalManager.temp_hotend[1].target, 1, 1, str_1)); strcat(outBuf, dtostrf(thermalManager.degTargetHotend(1), 1, 1, str_1));
#else #else
strcat_P(outBuf, PSTR("0 /0")); strcat_P(outBuf, PSTR("0 /0"));
#endif #endif
@ -924,15 +924,15 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
} }
else { else {
sprintf_P((char *)tempBuf, PSTR("T:%d /%d B:%d /%d T0:%d /%d T1:%d /%d @:0 B@:0\r\n"), sprintf_P((char *)tempBuf, PSTR("T:%d /%d B:%d /%d T0:%d /%d T1:%d /%d @:0 B@:0\r\n"),
(int)thermalManager.temp_hotend[0].celsius, (int)thermalManager.temp_hotend[0].target, (int)thermalManager.degHotend(0), (int)thermalManager.degTargetHotend(0),
#if HAS_HEATED_BED #if HAS_HEATED_BED
(int)thermalManager.temp_bed.celsius, (int)thermalManager.temp_bed.target, (int)thermalManager.temp_bed.celsius, (int)thermalManager.temp_bed.target,
#else #else
0, 0, 0, 0,
#endif #endif
(int)thermalManager.temp_hotend[0].celsius, (int)thermalManager.temp_hotend[0].target, (int)thermalManager.degHotend(0), (int)thermalManager.degTargetHotend(0),
#if HAS_MULTI_HOTEND #if HAS_MULTI_HOTEND
(int)thermalManager.temp_hotend[1].celsius, (int)thermalManager.temp_hotend[1].target (int)thermalManager.degHotend(1), (int)thermalManager.degTargetHotend(1)
#else #else
0, 0 0, 0
#endif #endif

Loading…
Cancel
Save