FInish Mesh, fix M117 size

This commit is contained in:
InsanityAutomation
2020-12-20 13:06:06 -05:00
parent 241c27e636
commit 226f077a9a
5 changed files with 49 additions and 23 deletions
+1 -1
View File
@@ -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,
+22 -17
View File
@@ -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<uint16_t>(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
@@ -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<uint16_t>(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<uint16_t>(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();
@@ -211,6 +211,12 @@ public:
}
}
template<unsigned int decimals>
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<unsigned int value_if_true, unsigned int value_if_false>
static void DGUSLCD_SendIconValue(DGUS_VP_Variable &var) {
@@ -234,6 +240,13 @@ public:
}
}
template<unsigned int decimals>
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
@@ -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