From 226f077a9a113ededfbeaaa6f851674964705891 Mon Sep 17 00:00:00 2001 From: InsanityAutomation Date: Sun, 20 Dec 2020 13:06:06 -0500 Subject: [PATCH] FInish Mesh, fix M117 size --- Marlin/Configuration.h | 2 +- Marlin/src/lcd/extui/dgus_creality_lcd.cpp | 39 +++++++++++-------- .../lib/dgus_creality/DGUSScreenHandler.cpp | 14 +++++-- .../lib/dgus_creality/DGUSScreenHandler.h | 13 +++++++ .../creality_touch/DGUSDisplayDef.h | 4 +- 5 files changed, 49 insertions(+), 23 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index c7717bc61d..3210ad7460 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1271,7 +1271,7 @@ * Turn on with the command 'M111 S32'. * NOTE: Requires a lot of PROGMEM! */ -//#define DEBUG_LEVELING_FEATURE +#define DEBUG_LEVELING_FEATURE #if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_UBL) // Gradually reduce leveling correction until a set height is reached, diff --git a/Marlin/src/lcd/extui/dgus_creality_lcd.cpp b/Marlin/src/lcd/extui/dgus_creality_lcd.cpp index abe4747d15..b36367c221 100644 --- a/Marlin/src/lcd/extui/dgus_creality_lcd.cpp +++ b/Marlin/src/lcd/extui/dgus_creality_lcd.cpp @@ -186,7 +186,12 @@ bool hasPrintTimer = false; bool zig = (outer & 1); if (zig) x_Point = (GRID_MAX_POINTS_X - 1) - inner; xy_uint8_t point = {x_Point, outer}; - dgusdisplay.WriteVariable( (VP_MESH_VALUE_START + (abl_probe_index * 2)), static_cast(ExtUI::getMeshPoint(point) * 1000)); + + DEBUG_ECHOLNPAIR("Mesh X: ", x_Point); + DEBUG_ECHOLNPAIR("Mesh Y: ", outer); + DEBUG_ECHOLNPAIR("Mesh adr: ", (VP_MESH_VALUE_START + (abl_probe_index * 4))); + DEBUG_ECHOLNPAIR("Mesh Val: ", ExtUI::getMeshPoint(point)); + ScreenHandler.DGUSLCD_SendFloatAsLongValueToDisplay<3>((VP_MESH_VALUE_START + (abl_probe_index * 4)), ExtUI::getMeshPoint(point)); ++abl_probe_index; } } @@ -227,22 +232,22 @@ bool hasPrintTimer = false; #if HAS_PID_HEATING void onPidTuning(const result_t rst) { - // Called for temperature PID tuning result - // switch (rst) { - // case PID_BAD_EXTRUDER_NUM: - // ScreenHandler.setstatusmessagePGM(GET_TEXT(MSG_PID_BAD_EXTRUDER_NUM)); - // break; - // case PID_TEMP_TOO_HIGH: - // ScreenHandler.setstatusmessagePGM(GET_TEXT(MSG_PID_TEMP_TOO_HIGH)); - // break; - // case PID_TUNING_TIMEOUT: - // ScreenHandler.setstatusmessagePGM(GET_TEXT(MSG_PID_TIMEOUT)); - // break; - // case PID_DONE: - // ScreenHandler.setstatusmessagePGM(GET_TEXT(MSG_PID_AUTOTUNE_DONE)); - // break; - // } - // ScreenHandler.GotoScreen(DGUSLCD_SCREEN_MAIN); + //Called for temperature PID tuning result + switch (rst) { + case PID_BAD_EXTRUDER_NUM: + ScreenHandler.setstatusmessagePGM(GET_TEXT(MSG_PID_BAD_EXTRUDER_NUM)); + break; + case PID_TEMP_TOO_HIGH: + ScreenHandler.setstatusmessagePGM(GET_TEXT(MSG_PID_TEMP_TOO_HIGH)); + break; + case PID_TUNING_TIMEOUT: + ScreenHandler.setstatusmessagePGM(GET_TEXT(MSG_PID_TIMEOUT)); + break; + case PID_DONE: + ScreenHandler.setstatusmessagePGM(GET_TEXT(MSG_PID_AUTOTUNE_DONE)); + break; + } + ScreenHandler.GotoScreen(DGUSLCD_SCREEN_MAIN); } #endif diff --git a/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.cpp index ff240f06b1..d521953751 100644 --- a/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.cpp +++ b/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.cpp @@ -493,6 +493,10 @@ void DGUSScreenHandler::OnMeshLevelingUpdate(const int8_t xpos, const int8_t ypo MeshLevelIndex++; DEBUG_ECHOLNPAIR("Mesh level index: ", MeshLevelIndex); + DEBUG_ECHOLNPAIR("Mesh X: ", xpos); + DEBUG_ECHOLNPAIR("Mesh Y: ", ypos); + xy_uint8_t pnt = {xpos, ypos}; + DEBUG_ECHOLNPAIR("Mesh Val: ", ExtUI::getMeshPoint(pnt)); // Update icon dgusdisplay.WriteVariable(VP_MESH_LEVEL_STATUS, static_cast(MeshLevelIndex)); @@ -506,15 +510,19 @@ void DGUSScreenHandler::OnMeshLevelingUpdate(const int8_t xpos, const int8_t ypo bool zig = (outer & 1); // != ((PR_OUTER_END) & 1); if (zig) x_Point = (GRID_MAX_POINTS_X - 1) - inner; xy_uint8_t point = {x_Point, outer}; - if(x_Point==xpos && outer ==ypos) - dgusdisplay.WriteVariable( (VP_MESH_VALUE_START + (abl_probe_index * 2)), static_cast(ExtUI::getMeshPoint(point) * 1000)); + if(x_Point==xpos && outer ==ypos) { + DEBUG_ECHOLNPAIR("Mesh adr: ", (VP_MESH_VALUE_START + (abl_probe_index * 4))); + DEBUG_ECHOLNPAIR("Mesh Val: ", ExtUI::getMeshPoint(point)); + ScreenHandler.DGUSLCD_SendFloatAsLongValueToDisplay<3>((VP_MESH_VALUE_START + (abl_probe_index * 4)), ExtUI::getMeshPoint(point)); + } ++abl_probe_index; } } if (MeshLevelIndex == GRID_MAX_POINTS) { // Done - thermalManager.disable_all_heaters(); + if(!ExtUI::isPrinting()) + thermalManager.disable_all_heaters(); settings.save(); diff --git a/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.h b/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.h index 6164143478..a9bb4b207c 100644 --- a/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.h +++ b/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.h @@ -211,6 +211,12 @@ public: } } + template + static void DGUSLCD_SendFloatAsLongValueToDisplay(uint16_t vp, float var) { + var *= cpow(10, decimals); + dgusdisplay.WriteVariable(vp, (long)var); + } + // Send an icon to the display, depending on whether it is true or false template static void DGUSLCD_SendIconValue(DGUS_VP_Variable &var) { @@ -234,6 +240,13 @@ public: } } + template + static void DGUSLCD_SendFloatAsIntValueToDisplay(uint16_t vp, float var) { + DEBUG_ECHOLNPAIR_F(" >> ", var, 6); + var *= cpow(10, decimals); + dgusdisplay.WriteVariable(vp, (int16_t)var); + } + /// Force an update of all VP on the current screen. static inline void ForceCompleteUpdate() { update_ptr = 0; ScreenComplete = false; } /// Has all VPs sent to the screen diff --git a/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.h b/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.h index 494ce1734e..422806d2fd 100644 --- a/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.h +++ b/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.h @@ -98,7 +98,7 @@ constexpr uint16_t VP_MSGSTR2 = 0x2030; constexpr uint8_t VP_MSGSTR2_LEN = 0x40; constexpr uint16_t VP_MSGSTR3 = 0x2070; constexpr uint8_t VP_MSGSTR3_LEN = 0x40; -constexpr uint16_t VP_MSGSTR4 = 0x11C0; +constexpr uint16_t VP_MSGSTR4 = 0x2080; constexpr uint8_t VP_MSGSTR4_LEN = 0x20; // // Screenchange request for screens that only make sense when printer is idle. @@ -194,7 +194,7 @@ constexpr uint16_t VP_PREHEAT_ABS_BED_TEMP = 0x110a; // // Place for status messages. constexpr uint16_t VP_M117 = 0x21B3; -constexpr uint8_t VP_M117_LEN = 60; +constexpr uint8_t VP_M117_LEN = 40; // // Temperatures. constexpr uint16_t VP_T_E0_Is = 0x1036; // 4 Byte Integer - HEAD_CURRENT_TEMP_VP