Fix Anycubic Chiron "Ready" detection (#19880)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
parent
b632b52b11
commit
311b65b225
@ -40,6 +40,7 @@
|
|||||||
#include "../../../../sd/cardreader.h"
|
#include "../../../../sd/cardreader.h"
|
||||||
#include "../../../../libs/numtostr.h"
|
#include "../../../../libs/numtostr.h"
|
||||||
#include "../../../../MarlinCore.h"
|
#include "../../../../MarlinCore.h"
|
||||||
|
|
||||||
namespace Anycubic {
|
namespace Anycubic {
|
||||||
|
|
||||||
printer_state_t ChironTFT::printer_state;
|
printer_state_t ChironTFT::printer_state;
|
||||||
@ -87,7 +88,7 @@ namespace Anycubic {
|
|||||||
|
|
||||||
// Enable levelling and Disable end stops during print
|
// Enable levelling and Disable end stops during print
|
||||||
// as Z home places nozzle above the bed so we need to allow it past the end stops
|
// as Z home places nozzle above the bed so we need to allow it past the end stops
|
||||||
injectCommands_P(AC_cmnd_enable_levelling); //M211 S0\n"));
|
injectCommands_P(AC_cmnd_enable_levelling);
|
||||||
|
|
||||||
// Startup tunes are defined in Tunes.h
|
// Startup tunes are defined in Tunes.h
|
||||||
//PlayTune(BEEPER_PIN, Anycubic_PowerOn, 1);
|
//PlayTune(BEEPER_PIN, Anycubic_PowerOn, 1);
|
||||||
@ -179,7 +180,7 @@ namespace Anycubic {
|
|||||||
#endif
|
#endif
|
||||||
switch (printer_state) {
|
switch (printer_state) {
|
||||||
case AC_printer_pausing: {
|
case AC_printer_pausing: {
|
||||||
if ( (strcmp_P(msg, MARLIN_msg_print_paused) == 0 ) || (strcmp_P(msg, MARLIN_msg_nozzle_parked) == 0 ) ) {
|
if (strcmp_P(msg, MARLIN_msg_print_paused) == 0 || strcmp_P(msg, MARLIN_msg_nozzle_parked) == 0) {
|
||||||
SendtoTFTLN(AC_msg_paused); // enable continue button
|
SendtoTFTLN(AC_msg_paused); // enable continue button
|
||||||
printer_state = AC_printer_paused;
|
printer_state = AC_printer_paused;
|
||||||
}
|
}
|
||||||
@ -189,18 +190,18 @@ namespace Anycubic {
|
|||||||
case AC_printer_printing:
|
case AC_printer_printing:
|
||||||
case AC_printer_paused: {
|
case AC_printer_paused: {
|
||||||
// Heater timout, send acknowledgement
|
// Heater timout, send acknowledgement
|
||||||
if (strcmp_P(msg, MARLIN_msg_heater_timeout) == 0 ) {
|
if (strcmp_P(msg, MARLIN_msg_heater_timeout) == 0) {
|
||||||
pause_state = AC_paused_heater_timed_out;
|
pause_state = AC_paused_heater_timed_out;
|
||||||
SendtoTFTLN(AC_msg_paused); // enable continue button
|
SendtoTFTLN(AC_msg_paused); // enable continue button
|
||||||
PlayTune(BEEPER_PIN,Heater_Timedout,1);
|
PlayTune(BEEPER_PIN,Heater_Timedout,1);
|
||||||
}
|
}
|
||||||
// Reheat finished, send acknowledgement
|
// Reheat finished, send acknowledgement
|
||||||
else if (strcmp_P(msg, MARLIN_msg_reheat_done) == 0 ) {
|
else if (strcmp_P(msg, MARLIN_msg_reheat_done) == 0) {
|
||||||
pause_state = AC_paused_idle;
|
pause_state = AC_paused_idle;
|
||||||
SendtoTFTLN(AC_msg_paused); // enable continue button
|
SendtoTFTLN(AC_msg_paused); // enable continue button
|
||||||
}
|
}
|
||||||
// Filament Purging, send acknowledgement enter run mode
|
// Filament Purging, send acknowledgement enter run mode
|
||||||
else if (strcmp_P(msg, MARLIN_msg_filament_purging) == 0 ) {
|
else if (strcmp_P(msg, MARLIN_msg_filament_purging) == 0) {
|
||||||
pause_state = AC_paused_purging_filament;
|
pause_state = AC_paused_purging_filament;
|
||||||
SendtoTFTLN(AC_msg_paused); // enable continue button
|
SendtoTFTLN(AC_msg_paused); // enable continue button
|
||||||
}
|
}
|
||||||
@ -221,14 +222,15 @@ namespace Anycubic {
|
|||||||
switch (printer_state) {
|
switch (printer_state) {
|
||||||
case AC_printer_probing: {
|
case AC_printer_probing: {
|
||||||
// If probing completes ok save the mesh and park
|
// If probing completes ok save the mesh and park
|
||||||
if (strcmp_P(msg, MARLIN_msg_ready) == 0 ) {
|
// Ignore the custom machine name
|
||||||
|
if (strcmp_P(msg + strlen(CUSTOM_MACHINE_NAME), MARLIN_msg_ready) == 0) {
|
||||||
injectCommands_P(PSTR("M500\nG27"));
|
injectCommands_P(PSTR("M500\nG27"));
|
||||||
SendtoTFTLN(AC_msg_probing_complete);
|
SendtoTFTLN(AC_msg_probing_complete);
|
||||||
printer_state = AC_printer_idle;
|
printer_state = AC_printer_idle;
|
||||||
msg_matched = true;
|
msg_matched = true;
|
||||||
}
|
}
|
||||||
// If probing fails dont save the mesh raise the probe above the bad point
|
// If probing fails dont save the mesh raise the probe above the bad point
|
||||||
if (strcmp_P(msg, MARLIN_msg_probing_failed) == 0 ) {
|
if (strcmp_P(msg, MARLIN_msg_probing_failed) == 0) {
|
||||||
PlayTune(BEEPER_PIN, BeepBeepBeeep, 1);
|
PlayTune(BEEPER_PIN, BeepBeepBeeep, 1);
|
||||||
injectCommands_P(PSTR("G1 Z50 F500"));
|
injectCommands_P(PSTR("G1 Z50 F500"));
|
||||||
SendtoTFTLN(AC_msg_probing_complete);
|
SendtoTFTLN(AC_msg_probing_complete);
|
||||||
@ -238,14 +240,14 @@ namespace Anycubic {
|
|||||||
} break;
|
} break;
|
||||||
|
|
||||||
case AC_printer_printing: {
|
case AC_printer_printing: {
|
||||||
if (strcmp_P(msg, MARLIN_msg_reheating) == 0 ) {
|
if (strcmp_P(msg, MARLIN_msg_reheating) == 0) {
|
||||||
SendtoTFTLN(AC_msg_paused); // enable continue button
|
SendtoTFTLN(AC_msg_paused); // enable continue button
|
||||||
msg_matched = true;
|
msg_matched = true;
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case AC_printer_pausing: {
|
case AC_printer_pausing: {
|
||||||
if (strcmp_P(msg, MARLIN_msg_print_paused) == 0 ) {
|
if (strcmp_P(msg, MARLIN_msg_print_paused) == 0) {
|
||||||
SendtoTFTLN(AC_msg_paused);
|
SendtoTFTLN(AC_msg_paused);
|
||||||
printer_state = AC_printer_paused;
|
printer_state = AC_printer_paused;
|
||||||
pause_state = AC_paused_idle;
|
pause_state = AC_paused_idle;
|
||||||
@ -254,7 +256,7 @@ namespace Anycubic {
|
|||||||
} break;
|
} break;
|
||||||
|
|
||||||
case AC_printer_stopping: {
|
case AC_printer_stopping: {
|
||||||
if (strcmp_P(msg, MARLIN_msg_print_aborted) == 0 ) {
|
if (strcmp_P(msg, MARLIN_msg_print_aborted) == 0) {
|
||||||
SendtoTFTLN(AC_msg_stop);
|
SendtoTFTLN(AC_msg_stop);
|
||||||
printer_state = AC_printer_idle;
|
printer_state = AC_printer_idle;
|
||||||
msg_matched = true;
|
msg_matched = true;
|
||||||
@ -289,7 +291,7 @@ namespace Anycubic {
|
|||||||
serialprintPGM(str);
|
serialprintPGM(str);
|
||||||
#endif
|
#endif
|
||||||
while (const char c = pgm_read_byte(str++)) TFTSer.print(c);
|
while (const char c = pgm_read_byte(str++)) TFTSer.print(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChironTFT::SendtoTFTLN(PGM_P str = nullptr) {
|
void ChironTFT::SendtoTFTLN(PGM_P str = nullptr) {
|
||||||
if (str != nullptr) {
|
if (str != nullptr) {
|
||||||
@ -300,22 +302,22 @@ namespace Anycubic {
|
|||||||
#if ACDEBUG(AC_SOME)
|
#if ACDEBUG(AC_SOME)
|
||||||
SERIAL_EOL();
|
SERIAL_EOL();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
TFTSer.println("");
|
TFTSer.println("");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ChironTFT::ReadTFTCommand() {
|
bool ChironTFT::ReadTFTCommand() {
|
||||||
bool command_ready = false;
|
bool command_ready = false;
|
||||||
while( (TFTSer.available() > 0) && (command_len < MAX_CMND_LEN) ) {
|
while(TFTSer.available() > 0 && command_len < MAX_CMND_LEN) {
|
||||||
panel_command[command_len] = TFTSer.read();
|
panel_command[command_len] = TFTSer.read();
|
||||||
if(panel_command[command_len] == '\n') {
|
if (panel_command[command_len] == '\n') {
|
||||||
command_ready = true;
|
command_ready = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
command_len++;
|
command_len++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(command_ready) {
|
if (command_ready) {
|
||||||
panel_command[command_len] = 0x00;
|
panel_command[command_len] = 0x00;
|
||||||
#if ACDEBUG(AC_ALL)
|
#if ACDEBUG(AC_ALL)
|
||||||
SERIAL_ECHOLNPAIR("< ", panel_command);
|
SERIAL_ECHOLNPAIR("< ", panel_command);
|
||||||
@ -333,56 +335,45 @@ namespace Anycubic {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int8_t ChironTFT::Findcmndpos(const char * buff, char q) {
|
int8_t ChironTFT::Findcmndpos(const char * buff, char q) {
|
||||||
bool found = false;
|
|
||||||
int8_t pos = 0;
|
int8_t pos = 0;
|
||||||
do {
|
do { if (buff[pos] == q) return pos; } while(++pos < MAX_CMND_LEN);
|
||||||
if (buff[pos] == q) {
|
|
||||||
found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
pos ++;
|
|
||||||
} while(pos < MAX_CMND_LEN);
|
|
||||||
if (found) return pos;
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChironTFT::CheckHeaters() {
|
void ChironTFT::CheckHeaters() {
|
||||||
uint8_t faultDuration = 0; float temp = 0;
|
uint8_t faultDuration = 0;
|
||||||
|
float temp = 0;
|
||||||
|
|
||||||
// if the hotend temp is abnormal, confirm state before signalling panel
|
// if the hotend temp is abnormal, confirm state before signalling panel
|
||||||
temp = getActualTemp_celsius(E0);
|
temp = getActualTemp_celsius(E0);
|
||||||
if ( (temp <= HEATER_0_MINTEMP) || (temp >= HEATER_0_MAXTEMP) ) {
|
while (!WITHIN(temp, HEATER_0_MINTEMP, HEATER_0_MAXTEMP)) {
|
||||||
do {
|
faultDuration++;
|
||||||
faultDuration ++;
|
if (faultDuration >= AC_HEATER_FAULT_VALIDATION_TIME) {
|
||||||
if (faultDuration >= AC_HEATER_FAULT_VALIDATION_TIME) {
|
SendtoTFTLN(AC_msg_nozzle_temp_abnormal);
|
||||||
SendtoTFTLN(AC_msg_nozzle_temp_abnormal);
|
SERIAL_ECHOLNPAIR("Extruder temp abnormal! : ", temp);
|
||||||
SERIAL_ECHOLNPAIR("Extruder temp abnormal! : ", temp);
|
break;
|
||||||
break;
|
}
|
||||||
}
|
delay_ms(500);
|
||||||
delay_ms(500);
|
temp = getActualTemp_celsius(E0);
|
||||||
temp = getActualTemp_celsius(E0);
|
|
||||||
} while ((temp <= HEATER_0_MINTEMP) || (temp >= HEATER_0_MAXTEMP) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the hotbed temp is abnormal, confirm state before signalling panel
|
// If the hotbed temp is abnormal, confirm state before signaling panel
|
||||||
faultDuration = 0;
|
faultDuration = 0;
|
||||||
temp = getActualTemp_celsius(BED);
|
temp = getActualTemp_celsius(BED);
|
||||||
if ( (temp <= BED_MINTEMP) || (temp >= BED_MAXTEMP) ) {
|
while (!WITHIN(temp, BED_MINTEMP, BED_MAXTEMP)) {
|
||||||
do {
|
faultDuration++;
|
||||||
faultDuration ++;
|
if (faultDuration >= AC_HEATER_FAULT_VALIDATION_TIME) {
|
||||||
if (faultDuration >= AC_HEATER_FAULT_VALIDATION_TIME) {
|
SendtoTFTLN(AC_msg_nozzle_temp_abnormal);
|
||||||
SendtoTFTLN(AC_msg_nozzle_temp_abnormal);
|
SERIAL_ECHOLNPAIR_P("Bed temp abnormal! : ", temp);
|
||||||
SERIAL_ECHOLNPAIR_P("Bed temp abnormal! : ", temp);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
delay_ms(500);
|
delay_ms(500);
|
||||||
temp = getActualTemp_celsius(E0);
|
temp = getActualTemp_celsius(E0);
|
||||||
} while ((temp <= BED_MINTEMP) || (temp >= BED_MAXTEMP) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update panel with hotend heater status
|
// Update panel with hotend heater status
|
||||||
if (hotend_state != AC_heater_temp_reached) {
|
if (hotend_state != AC_heater_temp_reached) {
|
||||||
if ( WITHIN( getActualTemp_celsius(E0) - getTargetTemp_celsius(E0), -1, 1 ) ) {
|
if (WITHIN(getActualTemp_celsius(E0) - getTargetTemp_celsius(E0), -1, 1)) {
|
||||||
SendtoTFTLN(AC_msg_nozzle_heating_done);
|
SendtoTFTLN(AC_msg_nozzle_heating_done);
|
||||||
hotend_state = AC_heater_temp_reached;
|
hotend_state = AC_heater_temp_reached;
|
||||||
}
|
}
|
||||||
@ -390,7 +381,7 @@ namespace Anycubic {
|
|||||||
|
|
||||||
// Update panel with bed heater status
|
// Update panel with bed heater status
|
||||||
if (hotbed_state != AC_heater_temp_reached) {
|
if (hotbed_state != AC_heater_temp_reached) {
|
||||||
if ( WITHIN( getActualTemp_celsius(BED) - getTargetTemp_celsius(BED), -0.5, 0.5 ) ) {
|
if (WITHIN(getActualTemp_celsius(BED) - getTargetTemp_celsius(BED), -0.5, 0.5)) {
|
||||||
SendtoTFTLN(AC_msg_bed_heating_done);
|
SendtoTFTLN(AC_msg_bed_heating_done);
|
||||||
hotbed_state = AC_heater_temp_reached;
|
hotbed_state = AC_heater_temp_reached;
|
||||||
}
|
}
|
||||||
@ -398,7 +389,7 @@ namespace Anycubic {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ChironTFT::SendFileList(int8_t startindex) {
|
void ChironTFT::SendFileList(int8_t startindex) {
|
||||||
// respond to panel request for 4 files starting at index
|
// Respond to panel request for 4 files starting at index
|
||||||
#if ACDEBUG(AC_INFO)
|
#if ACDEBUG(AC_INFO)
|
||||||
SERIAL_ECHOLNPAIR("## SendFileList ## ", startindex);
|
SERIAL_ECHOLNPAIR("## SendFileList ## ", startindex);
|
||||||
#endif
|
#endif
|
||||||
@ -408,8 +399,8 @@ namespace Anycubic {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ChironTFT::SelectFile() {
|
void ChironTFT::SelectFile() {
|
||||||
strncpy(selectedfile,panel_command+4,command_len-4);
|
strncpy(selectedfile, panel_command + 4, command_len - 4);
|
||||||
selectedfile[command_len-5] = '\0';
|
selectedfile[command_len - 5] = '\0';
|
||||||
#if ACDEBUG(AC_FILE)
|
#if ACDEBUG(AC_FILE)
|
||||||
SERIAL_ECHOLNPAIR_F(" Selected File: ",selectedfile);
|
SERIAL_ECHOLNPAIR_F(" Selected File: ",selectedfile);
|
||||||
#endif
|
#endif
|
||||||
@ -493,7 +484,6 @@ namespace Anycubic {
|
|||||||
if (isPrintingFromMedia()) {
|
if (isPrintingFromMedia()) {
|
||||||
SendtoTFT(PSTR("A6V "));
|
SendtoTFT(PSTR("A6V "));
|
||||||
TFTSer.println(ui8tostr2(getProgress_percent()));
|
TFTSer.println(ui8tostr2(getProgress_percent()));
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
SendtoTFTLN(PSTR("A6V ---"));
|
SendtoTFTLN(PSTR("A6V ---"));
|
||||||
@ -552,7 +542,7 @@ namespace Anycubic {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (printer_state == AC_printer_resuming_from_power_outage)
|
if (printer_state == AC_printer_resuming_from_power_outage)
|
||||||
injectCommands_P(PSTR("M1000 C\n")); // Cancel recovery
|
injectCommands_P(PSTR("M1000 C")); // Cancel recovery
|
||||||
SendtoTFTLN(AC_msg_stop);
|
SendtoTFTLN(AC_msg_stop);
|
||||||
printer_state = AC_printer_idle;
|
printer_state = AC_printer_idle;
|
||||||
}
|
}
|
||||||
@ -569,7 +559,7 @@ namespace Anycubic {
|
|||||||
case 14: { // A14 Start Printing
|
case 14: { // A14 Start Printing
|
||||||
// Allows printer to restart the job if we dont want to recover
|
// Allows printer to restart the job if we dont want to recover
|
||||||
if (printer_state == AC_printer_resuming_from_power_outage) {
|
if (printer_state == AC_printer_resuming_from_power_outage) {
|
||||||
injectCommands_P(PSTR("M1000 C\n")); // Cancel recovery
|
injectCommands_P(PSTR("M1000 C")); // Cancel recovery
|
||||||
printer_state = AC_printer_idle;
|
printer_state = AC_printer_idle;
|
||||||
}
|
}
|
||||||
#if ACDebugLevel >= 1
|
#if ACDebugLevel >= 1
|
||||||
@ -587,8 +577,7 @@ namespace Anycubic {
|
|||||||
if (printer_state == AC_printer_resuming_from_power_outage)
|
if (printer_state == AC_printer_resuming_from_power_outage)
|
||||||
// Need to home here to restore the Z position
|
// Need to home here to restore the Z position
|
||||||
injectCommands_P(AC_cmnd_power_loss_recovery);
|
injectCommands_P(AC_cmnd_power_loss_recovery);
|
||||||
|
injectCommands_P(PSTR("M1000")); // home and start recovery
|
||||||
injectCommands_P(PSTR("M1000\n")); // home and start recovery
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 16: { // A16 Set HotEnd temp A17 S170
|
case 16: { // A16 Set HotEnd temp A17 S170
|
||||||
@ -631,10 +620,10 @@ namespace Anycubic {
|
|||||||
case 21: // A21 Home Axis A21 X
|
case 21: // A21 Home Axis A21 X
|
||||||
if (!isPrinting()) {
|
if (!isPrinting()) {
|
||||||
switch ((char)panel_command[4]) {
|
switch ((char)panel_command[4]) {
|
||||||
case 'X': injectCommands_P(PSTR("G28 X\n")); break;
|
case 'X': injectCommands_P(PSTR("G28 X")); break;
|
||||||
case 'Y': injectCommands_P(PSTR("G28 Y\n")); break;
|
case 'Y': injectCommands_P(PSTR("G28 Y")); break;
|
||||||
case 'Z': injectCommands_P(PSTR("G28 Z\n")); break;
|
case 'Z': injectCommands_P(PSTR("G28 Z")); break;
|
||||||
case 'C': injectCommands_P(PSTR("G28\n")); break;
|
case 'C': injectCommands_P(PSTR("G28")); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -729,7 +718,7 @@ namespace Anycubic {
|
|||||||
// If the same meshpoint is selected twice in a row, move the head to that ready for adjustment
|
// If the same meshpoint is selected twice in a row, move the head to that ready for adjustment
|
||||||
if ((selectedmeshpoint.x == pos.x) && (selectedmeshpoint.y == pos.y)) {
|
if ((selectedmeshpoint.x == pos.x) && (selectedmeshpoint.y == pos.y)) {
|
||||||
if (!isPositionKnown())
|
if (!isPositionKnown())
|
||||||
injectCommands_P(PSTR("G28\n")); // home
|
injectCommands_P(PSTR("G28")); // home
|
||||||
|
|
||||||
if (isPositionKnown()) {
|
if (isPositionKnown()) {
|
||||||
#if ACDEBUG(AC_INFO)
|
#if ACDEBUG(AC_INFO)
|
||||||
@ -769,17 +758,15 @@ namespace Anycubic {
|
|||||||
switch (panel_command[3]) {
|
switch (panel_command[3]) {
|
||||||
case 'C': // Restore and apply original offsets
|
case 'C': // Restore and apply original offsets
|
||||||
if (!isPrinting()) {
|
if (!isPrinting()) {
|
||||||
injectCommands_P(PSTR("M501\nM420 S1\n"));
|
injectCommands_P(PSTR("M501\nM420 S1"));
|
||||||
selectedmeshpoint.x = 99;
|
selectedmeshpoint.x = selectedmeshpoint.y = 99;
|
||||||
selectedmeshpoint.y = 99;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'D': // Save Z Offset tables and restore levelling state
|
case 'D': // Save Z Offset tables and restore levelling state
|
||||||
if (!isPrinting()) {
|
if (!isPrinting()) {
|
||||||
setAxisPosition_mm(1.0,Z);
|
setAxisPosition_mm(1.0,Z);
|
||||||
injectCommands_P(PSTR("M500\n"));
|
injectCommands_P(PSTR("M500"));
|
||||||
selectedmeshpoint.x = 99;
|
selectedmeshpoint.x = selectedmeshpoint.y = 99;
|
||||||
selectedmeshpoint.y = 99;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'G': // Get current offset
|
case 'G': // Get current offset
|
||||||
@ -790,8 +777,7 @@ namespace Anycubic {
|
|||||||
TFTSer.println(live_Zoffset);
|
TFTSer.println(live_Zoffset);
|
||||||
else {
|
else {
|
||||||
TFTSer.println(getZOffset_mm());
|
TFTSer.println(getZOffset_mm());
|
||||||
selectedmeshpoint.x = 99;
|
selectedmeshpoint.x = selectedmeshpoint.y = 99;
|
||||||
selectedmeshpoint.y = 99;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'S': { // Set offset (adjusts all points by value)
|
case 'S': { // Set offset (adjusts all points by value)
|
||||||
@ -859,8 +845,7 @@ namespace Anycubic {
|
|||||||
case 34: { // A34 Adjust single mesh point A34 C/S X1 Y1 V123
|
case 34: { // A34 Adjust single mesh point A34 C/S X1 Y1 V123
|
||||||
if (panel_command[3] == 'C') { // Restore original offsets
|
if (panel_command[3] == 'C') { // Restore original offsets
|
||||||
injectCommands_P(PSTR("M501\nM420 S1"));
|
injectCommands_P(PSTR("M501\nM420 S1"));
|
||||||
selectedmeshpoint.x = 99;
|
selectedmeshpoint.x = selectedmeshpoint.y = 99;
|
||||||
selectedmeshpoint.y = 99;
|
|
||||||
//printer_state = AC_printer_idle;
|
//printer_state = AC_printer_idle;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -876,9 +861,10 @@ namespace Anycubic {
|
|||||||
#endif
|
#endif
|
||||||
// Update Meshpoint
|
// Update Meshpoint
|
||||||
setMeshPoint(pos,newval);
|
setMeshPoint(pos,newval);
|
||||||
if ( (printer_state == AC_printer_idle) || (printer_state == AC_printer_probing) ) {//!isPrinting()) {
|
if (printer_state == AC_printer_idle || printer_state == AC_printer_probing /*!isPrinting()*/) {
|
||||||
// if we are at the current mesh point indicated on the panel Move Z pos +/- 0.05mm ( The panel changes the mesh value by +/- 0.05mm on each button press)
|
// if we are at the current mesh point indicated on the panel Move Z pos +/- 0.05mm
|
||||||
if ((selectedmeshpoint.x == pos.x) && (selectedmeshpoint.y == pos.y)) {
|
// (The panel changes the mesh value by +/- 0.05mm on each button press)
|
||||||
|
if (selectedmeshpoint.x == pos.x && selectedmeshpoint.y == pos.y) {
|
||||||
setSoftEndstopState(false);
|
setSoftEndstopState(false);
|
||||||
float currZpos = getAxisPosition_mm(Z);
|
float currZpos = getAxisPosition_mm(Z);
|
||||||
#if ACDEBUG(AC_INFO)
|
#if ACDEBUG(AC_INFO)
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
|
|
||||||
#define MARLIN_msg_start_probing PSTR("Probing Point 1/25")
|
#define MARLIN_msg_start_probing PSTR("Probing Point 1/25")
|
||||||
#define MARLIN_msg_probing_failed PSTR("Probing Failed")
|
#define MARLIN_msg_probing_failed PSTR("Probing Failed")
|
||||||
#define MARLIN_msg_ready PSTR("3D Printer Ready.")
|
#define MARLIN_msg_ready PSTR(" Ready.")
|
||||||
#define MARLIN_msg_print_paused PSTR("Print Paused")
|
#define MARLIN_msg_print_paused PSTR("Print Paused")
|
||||||
#define MARLIN_msg_print_aborted PSTR("Print Aborted")
|
#define MARLIN_msg_print_aborted PSTR("Print Aborted")
|
||||||
#define MARLIN_msg_extruder_heating PSTR("E Heating...")
|
#define MARLIN_msg_extruder_heating PSTR("E Heating...")
|
||||||
|
Loading…
Reference in New Issue
Block a user