diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index a5f6e1feb5..b1c89b80e5 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -4483,7 +4483,7 @@ // Third-party or vendor-customized controller interfaces. // Sources should be installed in 'src/lcd/extui'. // -#if ANY(MachineCR10SPro, MachineCRX, MachineEnder5Plus, MachineCR10Max, MachineEnder6, MachineCR5, MachineEnder7, MachineSermoonD1, MachineCR10Smart, MachineCR10SmartPro) && (NONE(GraphicLCD, SKRMiniE3V2, SKRMiniE3V3, OrigLCD) || ENABLED(FORCE10SPRODISPLAY)) +#if ANY(MachineCR10SPro, MachineCRX, MachineEnder5Plus, MachineCR10Max, MachineEnder6, MachineCR5, MachineEnder7, MachineSermoonD1, MachineCR10Smart, MachineCR10SmartPro) && (NONE(GraphicLCD, OrigLCD)) || ENABLED(FORCE10SPRODISPLAY) #ifndef FORCE10SPRODISPLAY #define FORCE10SPRODISPLAY #endif diff --git a/Marlin/src/lcd/extui/Creality/Creality_DWIN.cpp b/Marlin/src/lcd/extui/Creality/Creality_DWIN.cpp index ad62557c37..1c9541e135 100644 --- a/Marlin/src/lcd/extui/Creality/Creality_DWIN.cpp +++ b/Marlin/src/lcd/extui/Creality/Creality_DWIN.cpp @@ -109,10 +109,12 @@ void onStartup() rtscheck.RTS_SndData(getActualTemp_celsius(H0), NozzleTemp); #if HAS_MULTI_HOTEND rtscheck.RTS_SndData(getActualTemp_celsius(H1), e2Temp); + #else + rtscheck.RTS_SndData(0, e2Temp); #endif rtscheck.RTS_SndData(getActualTemp_celsius(BED), Bedtemp); /***************transmit Fan speed to screen*****************/ - rtscheck.RTS_SndData(getActualFan_percent(), FanKeyIcon); + rtscheck.RTS_SndData(getActualFan_percent((fan_t)getActiveTool()), FanKeyIcon); /***************transmit Printer information to screen*****************/ @@ -173,15 +175,18 @@ void onIdle() } // Always send temperature data - rtscheck.RTS_SndData(getActualTemp_celsius(H0), NozzleTemp); + rtscheck.RTS_SndData(getActualTemp_celsius(getActiveTool()), NozzleTemp); rtscheck.RTS_SndData(getActualTemp_celsius(BED), Bedtemp); - rtscheck.RTS_SndData(getTargetTemp_celsius(H0), NozzlePreheat); + rtscheck.RTS_SndData(getTargetTemp_celsius(getActiveTool()), NozzlePreheat); rtscheck.RTS_SndData(getTargetTemp_celsius(BED), BedPreheat); #if HAS_MULTI_HOTEND rtscheck.RTS_SndData(getActualTemp_celsius(H1), e2Temp); rtscheck.RTS_SndData(getTargetTemp_celsius(H1), e2Preheat); rtscheck.RTS_SndData(((uint8_t)getActiveTool() + 1), ActiveToolVP); + #else + rtscheck.RTS_SndData(0, e2Temp); + rtscheck.RTS_SndData(0, e2Preheat); #endif if(awaitingUserConfirm() && (lastPauseMsgState!=ExtUI::pauseModeStatus || userConfValidation > 99)) @@ -281,7 +286,7 @@ void onIdle() break; case 6: if(!commandsInQueue()) { - setAxisPosition_mm(LEVEL_CORNERS_HEIGHT, (axis_t)Z); + setAxisPosition_mm(BED_TRAMMING_HEIGHT, (axis_t)Z); waitway = 0; } break; @@ -325,7 +330,7 @@ void onIdle() if (startprogress == 0) { startprogress += 25; - delay_ms(300); // Delay to show bootscreen + delay_ms(3000); // Delay to show bootscreen } else if( startprogress < 250) { @@ -350,7 +355,7 @@ void onIdle() if (isPrinting()) { - rtscheck.RTS_SndData(getActualFan_percent(), FanKeyIcon); + rtscheck.RTS_SndData(getActualFan_percent((fan_t)getActiveTool()), FanKeyIcon); rtscheck.RTS_SndData(getProgress_seconds_elapsed() / 3600, Timehour); rtscheck.RTS_SndData((getProgress_seconds_elapsed() % 3600) / 60, Timemin); if (getProgress_percent() > 0) @@ -404,6 +409,12 @@ void onIdle() rtscheck.RTS_SndData(((unsigned int)getAxisMaxJerk_mm_s(Z)*100), Jerk_Z); rtscheck.RTS_SndData(((unsigned int)getAxisMaxJerk_mm_s(E0)*100), Jerk_E); + #if HAS_HOTEND_OFFSET + rtscheck.RTS_SndData(((unsigned int)getNozzleOffset_mm(X, E1)*10), T2Offset_X); + rtscheck.RTS_SndData(((unsigned int)getNozzleOffset_mm(Y, E1)*10), T2Offset_Y); + rtscheck.RTS_SndData(((unsigned int)getNozzleOffset_mm(Z, E1)*10), T2Offset_Z); + rtscheck.RTS_SndData((unsigned int)(getAxisSteps_per_mm(E1) * 10), T2StepMM_E); + #endif #if HAS_BED_PROBE rtscheck.RTS_SndData(getProbeOffset_mm(X) * 100, ProbeOffset_X); @@ -433,11 +444,11 @@ void onIdle() { unsigned int IconTemp; - IconTemp = getActualTemp_celsius(H0) * 100 / getTargetTemp_celsius(H0); + IconTemp = getActualTemp_celsius(getActiveTool()) * 100 / getTargetTemp_celsius(getActiveTool()); if (IconTemp >= 100) IconTemp = 100; rtscheck.RTS_SndData(IconTemp, HeatPercentIcon); - if (getActualTemp_celsius(H0) > EXTRUDE_MINTEMP && NozzleTempStatus[0]!=0) + if (getActualTemp_celsius(getActiveTool()) > EXTRUDE_MINTEMP && NozzleTempStatus[0]!=0) { NozzleTempStatus[0] = 0; rtscheck.RTS_SndData(10 * ChangeMaterialbuf[0], FilementUnit1); @@ -445,7 +456,7 @@ void onIdle() SERIAL_ECHOLNPGM_P(PSTR("==Heating Done Change Filament==")); rtscheck.RTS_SndData(ExchangePageBase + 65, ExchangepageAddr); } - else if (getActualTemp_celsius(H0) >= getTargetTemp_celsius(H0) && NozzleTempStatus[2]) + else if (getActualTemp_celsius(getActiveTool()) >= getTargetTemp_celsius(getActiveTool()) && NozzleTempStatus[2]) { SERIAL_ECHOLNPGM("***NozzleTempStatus[2] =", (int)NozzleTempStatus[2]); NozzleTempStatus[2] = 0; @@ -815,9 +826,6 @@ void RTSSHOW::RTS_HandleData() case T2Offset_Y: case T2Offset_Z: case T2StepMM_E: - case T2PID_P: - case T2PID_I: - case T2PID_D: case Accel_X: case Accel_Y: case Accel_Z: @@ -832,7 +840,9 @@ void RTSSHOW::RTS_HandleData() case Jerk_E: case RunoutToggle: case PowerLossToggle: + case FanKeyIcon: case LedToggle: + case e2Preheat: Checkkey = ManualSetTemp; break; } @@ -864,7 +874,7 @@ void RTSSHOW::RTS_HandleData() - constexpr float lfrb[4] = LEVEL_CORNERS_INSET_LFRB; + constexpr float lfrb[4] = BED_TRAMMING_INSET_LFRB; SERIAL_ECHOLNPGM_P(PSTR("BeginSwitch")); switch (Checkkey) @@ -902,7 +912,7 @@ void RTSSHOW::RTS_HandleData() InforShowStatus = true; TPShowStatus = false; SERIAL_ECHOLNPGM_P(PSTR("Handle Data PrintFile 3 Setting Screen ")); - if (getTargetFan_percent()==0) + if (getTargetFan_percent((fan_t)getActiveTool())==0) RTS_SndData(ExchangePageBase + 58, ExchangepageAddr); //exchange to 58 page, the fans off else RTS_SndData(ExchangePageBase + 57, ExchangepageAddr); //exchange to 57 page, the fans on @@ -935,7 +945,7 @@ void RTSSHOW::RTS_HandleData() } else if (recdat.data[0] == 3) { - if (getTargetFan_percent()!=0) //turn on the fan + if (getTargetFan_percent((fan_t)getActiveTool())!=0) //turn on the fan { setTargetFan_percent(100, FAN0); } @@ -1040,7 +1050,7 @@ void RTSSHOW::RTS_HandleData() } else if (recdat.data[0] == 1) { - if(getTargetFan_percent()==0) + if(getTargetFan_percent((fan_t)getActiveTool())==0) RTS_SndData(ExchangePageBase + 60, ExchangepageAddr); //exchange to 60 page, the fans off else RTS_SndData(ExchangePageBase + 59, ExchangepageAddr); //exchange to 59 page, the fans on @@ -1051,7 +1061,7 @@ void RTSSHOW::RTS_HandleData() } else if (recdat.data[0] == 3) { - if (getTargetFan_percent()==0) //turn on the fan + if (getTargetFan_percent((fan_t)getActiveTool())==0) //turn on the fan { setTargetFan_percent(100, FAN0); RTS_SndData(ExchangePageBase + 57, ExchangepageAddr); //exchange to 57 page, the fans on @@ -1064,7 +1074,7 @@ void RTSSHOW::RTS_HandleData() } else if (recdat.data[0] == 5) //PLA mode { - setTargetTemp_celsius(PREHEAT_1_TEMP_HOTEND, H0); + setTargetTemp_celsius(PREHEAT_1_TEMP_HOTEND, getActiveTool()); setTargetTemp_celsius(PREHEAT_1_TEMP_BED, BED); RTS_SndData(PREHEAT_1_TEMP_HOTEND, NozzlePreheat); @@ -1072,7 +1082,7 @@ void RTSSHOW::RTS_HandleData() } else if (recdat.data[0] == 6) //ABS mode { - setTargetTemp_celsius(PREHEAT_2_TEMP_HOTEND, H0); + setTargetTemp_celsius(PREHEAT_2_TEMP_HOTEND, getActiveTool()); setTargetTemp_celsius(PREHEAT_2_TEMP_BED, BED); RTS_SndData(PREHEAT_2_TEMP_HOTEND, NozzlePreheat); @@ -1086,6 +1096,9 @@ void RTSSHOW::RTS_HandleData() setTargetFan_percent(0, (fan_t)i); #endif setTargetTemp_celsius(0.0, H0); + #if HAS_MULTI_HOTEND + setTargetTemp_celsius(0.0, H1); + #endif setTargetTemp_celsius(0.0, BED); RTS_SndData(0, NozzlePreheat); @@ -1104,14 +1117,14 @@ void RTSSHOW::RTS_HandleData() { if (recdat.data[0] == 0) { - if (getTargetFan_percent()==0) + if (getTargetFan_percent((fan_t)getActiveTool())==0) RTS_SndData(ExchangePageBase + 58, ExchangepageAddr); //exchange to 58 page, the fans off else RTS_SndData(ExchangePageBase + 57, ExchangepageAddr); //exchange to 57 page, the fans on } else if (recdat.data[0] == 1) { - setTargetTemp_celsius(0.0, H0); + setTargetTemp_celsius(0.0, getActiveTool()); RTS_SndData(0, NozzlePreheat); } else if (recdat.data[0] == 2) @@ -1122,6 +1135,10 @@ void RTSSHOW::RTS_HandleData() } else if (recdat.addr == NozzlePreheat) setTargetTemp_celsius((float)recdat.data[0], H0); + #if HAS_MULTI_HOTEND + else if (recdat.addr == e2Preheat) + setTargetTemp_celsius((float)recdat.data[0], H1); + #endif else if (recdat.addr == BedPreheat) setTargetTemp_celsius((float)recdat.data[0], BED); else if (recdat.addr == Flowrate) @@ -1160,6 +1177,10 @@ void RTSSHOW::RTS_HandleData() setAxisMaxFeedrate_mm_s((uint16_t)recdat.data[0], E0); setAxisMaxFeedrate_mm_s((uint16_t)recdat.data[0], E1); } + else if (recdat.addr == FanKeyIcon) { + setTargetFan_percent((uint16_t)recdat.data[0], (fan_t)getActiveTool()); + } + else { @@ -1204,10 +1225,6 @@ void RTSSHOW::RTS_HandleData() { setNozzleOffset_mm(tmp_float_handling*10, Z, E1); } - else if (recdat.addr == T2PID_P) - { - setNozzleOffset_mm(tmp_float_handling*10, Z, E1); - } #endif #if HAS_BED_PROBE else if (recdat.addr == ProbeOffset_X) { @@ -1345,6 +1362,9 @@ void RTSSHOW::RTS_HandleData() #if HAS_MULTI_HOTEND rtscheck.RTS_SndData(getActualTemp_celsius(H1), e2Temp); rtscheck.RTS_SndData(getTargetTemp_celsius(H1), e2Preheat); + #else + rtscheck.RTS_SndData(0, e2Temp); + rtscheck.RTS_SndData(0, e2Preheat); #endif delay_ms(2); RTS_SndData(ExchangePageBase + 65, ExchangepageAddr); @@ -1459,7 +1479,7 @@ void RTSSHOW::RTS_HandleData() case 6: // Assitant Level , Centre 1 { - setAxisPosition_mm(LEVEL_CORNERS_Z_HOP, (axis_t)Z); + setAxisPosition_mm(BED_TRAMMING_Z_HOP, (axis_t)Z); setAxisPosition_mm(X_CENTER, (axis_t)X); setAxisPosition_mm(Y_CENTER, (axis_t)Y); waitway = 6; @@ -1467,7 +1487,7 @@ void RTSSHOW::RTS_HandleData() } case 7: // Assitant Level , Front Left 2 { - setAxisPosition_mm(LEVEL_CORNERS_Z_HOP, (axis_t)Z); + setAxisPosition_mm(BED_TRAMMING_Z_HOP, (axis_t)Z); setAxisPosition_mm((X_MIN_BED + lfrb[0]), (axis_t)X); setAxisPosition_mm((Y_MIN_BED + lfrb[1]), (axis_t)Y); waitway = 6; @@ -1475,7 +1495,7 @@ void RTSSHOW::RTS_HandleData() } case 8: // Assitant Level , Front Right 3 { - setAxisPosition_mm(LEVEL_CORNERS_Z_HOP, (axis_t)Z); + setAxisPosition_mm(BED_TRAMMING_Z_HOP, (axis_t)Z); setAxisPosition_mm((X_MAX_BED - lfrb[2]), (axis_t)X); setAxisPosition_mm((Y_MIN_BED + lfrb[1]), (axis_t)Y); waitway = 6; @@ -1483,7 +1503,7 @@ void RTSSHOW::RTS_HandleData() } case 9: // Assitant Level , Back Right 4 { - setAxisPosition_mm(LEVEL_CORNERS_Z_HOP, (axis_t)Z); + setAxisPosition_mm(BED_TRAMMING_Z_HOP, (axis_t)Z); setAxisPosition_mm((X_MAX_BED - lfrb[2]), (axis_t)X); setAxisPosition_mm((Y_MAX_BED - lfrb[3]), (axis_t)Y); waitway = 6; @@ -1491,7 +1511,7 @@ void RTSSHOW::RTS_HandleData() } case 10: // Assitant Level , Back Left 5 { - setAxisPosition_mm(LEVEL_CORNERS_Z_HOP, (axis_t)Z); + setAxisPosition_mm(BED_TRAMMING_Z_HOP, (axis_t)Z); setAxisPosition_mm((X_MIN_BED + lfrb[0]), (axis_t)X); setAxisPosition_mm((Y_MAX_BED - lfrb[3]), (axis_t)Y); waitway = 6; @@ -1688,7 +1708,7 @@ void RTSSHOW::RTS_HandleData() unsigned int IconTemp; if (recdat.addr == Exchfilement) { - if (getActualTemp_celsius(H0) < EXTRUDE_MINTEMP && recdat.data[0] < 5) + if (getActualTemp_celsius(getActiveTool()) < EXTRUDE_MINTEMP && recdat.data[0] < 5) { RTS_SndData((int)EXTRUDE_MINTEMP, 0x1020); delay_ms(5); @@ -1723,8 +1743,8 @@ void RTSSHOW::RTS_HandleData() NozzleTempStatus[0] = 1; //InforShowoStatus = true; - setTargetTemp_celsius((PREHEAT_1_TEMP_HOTEND+10), H0); - IconTemp = getActualTemp_celsius(H0) * 100 / getTargetTemp_celsius(H0); + setTargetTemp_celsius((PREHEAT_1_TEMP_HOTEND+10), getActiveTool()); + IconTemp = getActualTemp_celsius(getActiveTool()) * 100 / getTargetTemp_celsius(getActiveTool()); if (IconTemp >= 100) IconTemp = 100; RTS_SndData(IconTemp, HeatPercentIcon); @@ -1734,6 +1754,9 @@ void RTSSHOW::RTS_HandleData() #if HAS_MULTI_HOTEND rtscheck.RTS_SndData(getActualTemp_celsius(H1), e2Temp); rtscheck.RTS_SndData(getTargetTemp_celsius(H1), e2Preheat); + #else + rtscheck.RTS_SndData(0, e2Temp); + rtscheck.RTS_SndData(0, e2Preheat); #endif delay_ms(5); RTS_SndData(ExchangePageBase + 68, ExchangepageAddr); @@ -2140,6 +2163,7 @@ void SetTouchScreenConfiguration() { #endif + #if ENABLED(DWINOS_4) const unsigned char config_set[] = { 0x5A, 0x00, (unsigned char) (cfg_bits >> 8U), (unsigned char) (cfg_bits & 0xFFU) }; #else diff --git a/Marlin/src/lcd/extui/Creality/Creality_DWIN.h b/Marlin/src/lcd/extui/Creality/Creality_DWIN.h index d863a089d1..fe5f1f205e 100644 --- a/Marlin/src/lcd/extui/Creality/Creality_DWIN.h +++ b/Marlin/src/lcd/extui/Creality/Creality_DWIN.h @@ -134,8 +134,8 @@ namespace ExtUI { #define BedPreheat 0x103A // Setpoint #define Bedtemp 0x103C // Actual -#define e2Temp 0x104E -#define e2Preheat 0x1050 +#define e2Temp 0x1050 +#define e2Preheat 0x104E #define AutoZeroIcon 0x1042 #define AutoLevelIcon 0x1045 @@ -176,11 +176,6 @@ namespace ExtUI { #define DisplayStandbyEnableIndicator 0x1146 #define DisplayStandbySeconds 0x1148 -//#if ANY(MachineCR10SPro, MachineEnder5Plus, MachineCR10Max) || ENABLED(FORCE10SPRODISPLAY) -// #define StatusMessageString 0x3000 -//#else -// #define StatusMessageString 0x20E8 -//#endif #define StatusMessageString 0x2064 #if defined(TARGET_STM32F4)