Scott Lahteine
6 years ago
14 changed files with 656 additions and 303 deletions
@ -1,303 +0,0 @@ |
|||||
/**
|
|
||||
* Marlin 3D Printer Firmware |
|
||||
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
|
||||
* |
|
||||
* Based on Sprinter and grbl. |
|
||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU General Public License as published by |
|
||||
* the Free Software Foundation, either version 3 of the License, or |
|
||||
* (at your option) any later version. |
|
||||
* |
|
||||
* This program is distributed in the hope that it will be useful, |
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||
* GNU General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||
* |
|
||||
*/ |
|
||||
|
|
||||
#include "../../inc/MarlinConfig.h" |
|
||||
|
|
||||
#if ENABLED(SDSUPPORT) |
|
||||
|
|
||||
#include "../gcode.h" |
|
||||
#include "../../sd/cardreader.h" |
|
||||
#include "../../module/printcounter.h" |
|
||||
#include "../../module/stepper.h" |
|
||||
#include "../../lcd/ultralcd.h" |
|
||||
|
|
||||
#if ENABLED(POWER_LOSS_RECOVERY) |
|
||||
#include "../../feature/power_loss_recovery.h" |
|
||||
#endif |
|
||||
|
|
||||
#if ENABLED(PARK_HEAD_ON_PAUSE) |
|
||||
#include "../../feature/pause.h" |
|
||||
#endif |
|
||||
|
|
||||
#if ENABLED(PARK_HEAD_ON_PAUSE) || NUM_SERIAL > 1 |
|
||||
#include "../queue.h" |
|
||||
#endif |
|
||||
|
|
||||
#if ENABLED(HOST_ACTION_COMMANDS) |
|
||||
#include "../../feature/host_actions.h" |
|
||||
#endif |
|
||||
|
|
||||
/**
|
|
||||
* M20: List SD card to serial output |
|
||||
*/ |
|
||||
void GcodeSuite::M20() { |
|
||||
SERIAL_ECHOLNPGM(MSG_BEGIN_FILE_LIST); |
|
||||
card.ls(); |
|
||||
SERIAL_ECHOLNPGM(MSG_END_FILE_LIST); |
|
||||
} |
|
||||
|
|
||||
/**
|
|
||||
* M21: Init SD Card |
|
||||
*/ |
|
||||
void GcodeSuite::M21() { card.initsd(); } |
|
||||
|
|
||||
/**
|
|
||||
* M22: Release SD Card |
|
||||
*/ |
|
||||
void GcodeSuite::M22() { card.release(); } |
|
||||
|
|
||||
/**
|
|
||||
* M23: Open a file |
|
||||
*/ |
|
||||
void GcodeSuite::M23() { |
|
||||
#if ENABLED(POWER_LOSS_RECOVERY) |
|
||||
card.removeJobRecoveryFile(); |
|
||||
#endif |
|
||||
// Simplify3D includes the size, so zero out all spaces (#7227)
|
|
||||
for (char *fn = parser.string_arg; *fn; ++fn) if (*fn == ' ') *fn = '\0'; |
|
||||
card.openFile(parser.string_arg, true); |
|
||||
} |
|
||||
|
|
||||
/**
|
|
||||
* M24: Start or Resume SD Print |
|
||||
*/ |
|
||||
void GcodeSuite::M24() { |
|
||||
|
|
||||
#if ENABLED(POWER_LOSS_RECOVERY) |
|
||||
if (parser.seenval('S')) card.setIndex(parser.value_long()); |
|
||||
if (parser.seenval('T')) print_job_timer.resume(parser.value_long()); |
|
||||
#endif |
|
||||
|
|
||||
#if ENABLED(PARK_HEAD_ON_PAUSE) |
|
||||
if (did_pause_print) { |
|
||||
resume_print(); |
|
||||
return; |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
if (card.isFileOpen()) { |
|
||||
card.startFileprint(); |
|
||||
print_job_timer.start(); |
|
||||
} |
|
||||
|
|
||||
#if ENABLED(HOST_ACTION_COMMANDS) |
|
||||
#if ENABLED(HOST_PROMPT_SUPPORT) |
|
||||
host_prompt_open(PROMPT_INFO, PSTR("Resume SD")); |
|
||||
#endif |
|
||||
#ifdef ACTION_ON_RESUME |
|
||||
host_action_resume(); |
|
||||
#endif |
|
||||
#endif |
|
||||
|
|
||||
ui.reset_status(); |
|
||||
} |
|
||||
|
|
||||
/**
|
|
||||
* M25: Pause SD Print |
|
||||
*/ |
|
||||
void GcodeSuite::M25() { |
|
||||
|
|
||||
// Set initial pause flag to prevent more commands from landing in the queue while we try to pause
|
|
||||
#if ENABLED(SDSUPPORT) |
|
||||
if (IS_SD_PRINTING()) card.pauseSDPrint(); |
|
||||
#endif |
|
||||
|
|
||||
#if ENABLED(PARK_HEAD_ON_PAUSE) |
|
||||
|
|
||||
M125(); |
|
||||
|
|
||||
#else |
|
||||
|
|
||||
print_job_timer.pause(); |
|
||||
ui.reset_status(); |
|
||||
|
|
||||
#if ENABLED(HOST_ACTION_COMMANDS) |
|
||||
#if ENABLED(HOST_PROMPT_SUPPORT) |
|
||||
host_prompt_open(PROMPT_PAUSE_RESUME, PSTR("Pause SD"), PSTR("Resume")); |
|
||||
#endif |
|
||||
#ifdef ACTION_ON_PAUSE |
|
||||
host_action_pause(); |
|
||||
#endif |
|
||||
#endif |
|
||||
|
|
||||
#endif |
|
||||
} |
|
||||
|
|
||||
/**
|
|
||||
* M26: Set SD Card file index |
|
||||
*/ |
|
||||
void GcodeSuite::M26() { |
|
||||
if (card.isDetected() && parser.seenval('S')) |
|
||||
card.setIndex(parser.value_long()); |
|
||||
} |
|
||||
|
|
||||
/**
|
|
||||
* M27: Get SD Card status |
|
||||
* OR, with 'S<seconds>' set the SD status auto-report interval. (Requires AUTO_REPORT_SD_STATUS) |
|
||||
* OR, with 'C' get the current filename. |
|
||||
*/ |
|
||||
void GcodeSuite::M27() { |
|
||||
if (parser.seen('C')) { |
|
||||
SERIAL_ECHOPGM("Current file: "); |
|
||||
card.printFilename(); |
|
||||
} |
|
||||
|
|
||||
#if ENABLED(AUTO_REPORT_SD_STATUS) |
|
||||
else if (parser.seenval('S')) |
|
||||
card.set_auto_report_interval(parser.value_byte()); |
|
||||
#endif |
|
||||
|
|
||||
else |
|
||||
card.report_status(); |
|
||||
} |
|
||||
|
|
||||
/**
|
|
||||
* M28: Start SD Write |
|
||||
*/ |
|
||||
void GcodeSuite::M28() { |
|
||||
|
|
||||
#if ENABLED(BINARY_FILE_TRANSFER) |
|
||||
|
|
||||
bool binary_mode = false; |
|
||||
char *p = parser.string_arg; |
|
||||
if (p[0] == 'B' && NUMERIC(p[1])) { |
|
||||
binary_mode = p[1] > '0'; |
|
||||
p += 2; |
|
||||
while (*p == ' ') ++p; |
|
||||
} |
|
||||
|
|
||||
// Binary transfer mode
|
|
||||
if ((card.flag.binary_mode = binary_mode)) { |
|
||||
SERIAL_ECHO_START(); |
|
||||
SERIAL_ECHO(" preparing to receive: "); |
|
||||
SERIAL_ECHOLN(p); |
|
||||
card.openFile(p, false); |
|
||||
#if NUM_SERIAL > 1 |
|
||||
card.transfer_port_index = command_queue_port[cmd_queue_index_r]; |
|
||||
#endif |
|
||||
} |
|
||||
else |
|
||||
card.openFile(p, false); |
|
||||
|
|
||||
#else |
|
||||
|
|
||||
card.openFile(parser.string_arg, false); |
|
||||
|
|
||||
#endif |
|
||||
} |
|
||||
|
|
||||
/**
|
|
||||
* M29: Stop SD Write |
|
||||
* Processed in write to file routine |
|
||||
*/ |
|
||||
void GcodeSuite::M29() { |
|
||||
card.flag.saving = false; |
|
||||
} |
|
||||
|
|
||||
/**
|
|
||||
* M30 <filename>: Delete SD Card file |
|
||||
*/ |
|
||||
void GcodeSuite::M30() { |
|
||||
if (card.isDetected()) { |
|
||||
card.closefile(); |
|
||||
card.removeFile(parser.string_arg); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/**
|
|
||||
* M32: Select file and start SD Print |
|
||||
* |
|
||||
* Examples: |
|
||||
* |
|
||||
* M32 !PATH/TO/FILE.GCO# ; Start FILE.GCO |
|
||||
* M32 P !PATH/TO/FILE.GCO# ; Start FILE.GCO as a procedure |
|
||||
* M32 S60 !PATH/TO/FILE.GCO# ; Start FILE.GCO at byte 60 |
|
||||
* |
|
||||
*/ |
|
||||
void GcodeSuite::M32() { |
|
||||
if (IS_SD_PRINTING()) planner.synchronize(); |
|
||||
|
|
||||
if (card.isDetected()) { |
|
||||
const bool call_procedure = parser.boolval('P'); |
|
||||
|
|
||||
card.openFile(parser.string_arg, true, call_procedure); |
|
||||
|
|
||||
if (parser.seenval('S')) card.setIndex(parser.value_long()); |
|
||||
|
|
||||
card.startFileprint(); |
|
||||
|
|
||||
// Procedure calls count as normal print time.
|
|
||||
if (!call_procedure) print_job_timer.start(); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
#if ENABLED(LONG_FILENAME_HOST_SUPPORT) |
|
||||
|
|
||||
/**
|
|
||||
* M33: Get the long full path of a file or folder |
|
||||
* |
|
||||
* Parameters: |
|
||||
* <dospath> Case-insensitive DOS-style path to a file or folder |
|
||||
* |
|
||||
* Example: |
|
||||
* M33 miscel~1/armchair/armcha~1.gco |
|
||||
* |
|
||||
* Output: |
|
||||
* /Miscellaneous/Armchair/Armchair.gcode |
|
||||
*/ |
|
||||
void GcodeSuite::M33() { |
|
||||
card.printLongPath(parser.string_arg); |
|
||||
} |
|
||||
|
|
||||
#endif // LONG_FILENAME_HOST_SUPPORT
|
|
||||
|
|
||||
#if ENABLED(SDCARD_SORT_ALPHA) && ENABLED(SDSORT_GCODE) |
|
||||
|
|
||||
/**
|
|
||||
* M34: Set SD Card Sorting Options |
|
||||
*/ |
|
||||
void GcodeSuite::M34() { |
|
||||
if (parser.seen('S')) card.setSortOn(parser.value_bool()); |
|
||||
if (parser.seenval('F')) { |
|
||||
const int v = parser.value_long(); |
|
||||
card.setSortFolders(v < 0 ? -1 : v > 0 ? 1 : 0); |
|
||||
} |
|
||||
//if (parser.seen('R')) card.setSortReverse(parser.value_bool());
|
|
||||
} |
|
||||
|
|
||||
#endif // SDCARD_SORT_ALPHA && SDSORT_GCODE
|
|
||||
|
|
||||
/**
|
|
||||
* M524: Abort the current SD print job (started with M24) |
|
||||
*/ |
|
||||
void GcodeSuite::M524() { |
|
||||
if (IS_SD_PRINTING()) card.flag.abort_sd_printing = true; |
|
||||
} |
|
||||
|
|
||||
/**
|
|
||||
* M928: Start SD Write |
|
||||
*/ |
|
||||
void GcodeSuite::M928() { |
|
||||
card.openLogFile(parser.string_arg); |
|
||||
} |
|
||||
|
|
||||
#endif // SDSUPPORT
|
|
@ -0,0 +1,39 @@ |
|||||
|
/**
|
||||
|
* Marlin 3D Printer Firmware |
||||
|
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
* |
||||
|
* Based on Sprinter and grbl. |
||||
|
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#include "../../inc/MarlinConfig.h" |
||||
|
|
||||
|
#if ENABLED(SDSUPPORT) |
||||
|
|
||||
|
#include "../gcode.h" |
||||
|
#include "../../sd/cardreader.h" |
||||
|
|
||||
|
/**
|
||||
|
* M20: List SD card to serial output |
||||
|
*/ |
||||
|
void GcodeSuite::M20() { |
||||
|
SERIAL_ECHOLNPGM(MSG_BEGIN_FILE_LIST); |
||||
|
card.ls(); |
||||
|
SERIAL_ECHOLNPGM(MSG_END_FILE_LIST); |
||||
|
} |
||||
|
|
||||
|
#endif // SDSUPPORT
|
@ -0,0 +1,40 @@ |
|||||
|
/**
|
||||
|
* Marlin 3D Printer Firmware |
||||
|
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
* |
||||
|
* Based on Sprinter and grbl. |
||||
|
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#include "../../inc/MarlinConfig.h" |
||||
|
|
||||
|
#if ENABLED(SDSUPPORT) |
||||
|
|
||||
|
#include "../gcode.h" |
||||
|
#include "../../sd/cardreader.h" |
||||
|
|
||||
|
/**
|
||||
|
* M21: Init SD Card |
||||
|
*/ |
||||
|
void GcodeSuite::M21() { card.initsd(); } |
||||
|
|
||||
|
/**
|
||||
|
* M22: Release SD Card |
||||
|
*/ |
||||
|
void GcodeSuite::M22() { card.release(); } |
||||
|
|
||||
|
#endif // SDSUPPORT
|
@ -0,0 +1,42 @@ |
|||||
|
/**
|
||||
|
* Marlin 3D Printer Firmware |
||||
|
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
* |
||||
|
* Based on Sprinter and grbl. |
||||
|
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#include "../../inc/MarlinConfig.h" |
||||
|
|
||||
|
#if ENABLED(SDSUPPORT) |
||||
|
|
||||
|
#include "../gcode.h" |
||||
|
#include "../../sd/cardreader.h" |
||||
|
|
||||
|
/**
|
||||
|
* M23: Open a file |
||||
|
*/ |
||||
|
void GcodeSuite::M23() { |
||||
|
#if ENABLED(POWER_LOSS_RECOVERY) |
||||
|
card.removeJobRecoveryFile(); |
||||
|
#endif |
||||
|
// Simplify3D includes the size, so zero out all spaces (#7227)
|
||||
|
for (char *fn = parser.string_arg; *fn; ++fn) if (*fn == ' ') *fn = '\0'; |
||||
|
card.openFile(parser.string_arg, true); |
||||
|
} |
||||
|
|
||||
|
#endif // SDSUPPORT
|
@ -0,0 +1,106 @@ |
|||||
|
/**
|
||||
|
* Marlin 3D Printer Firmware |
||||
|
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
* |
||||
|
* Based on Sprinter and grbl. |
||||
|
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#include "../../inc/MarlinConfig.h" |
||||
|
|
||||
|
#if ENABLED(SDSUPPORT) |
||||
|
|
||||
|
#include "../gcode.h" |
||||
|
#include "../../sd/cardreader.h" |
||||
|
#include "../../module/printcounter.h" |
||||
|
#include "../../lcd/ultralcd.h" |
||||
|
|
||||
|
#if ENABLED(PARK_HEAD_ON_PAUSE) |
||||
|
#include "../../feature/pause.h" |
||||
|
#include "../queue.h" |
||||
|
#endif |
||||
|
|
||||
|
#if ENABLED(HOST_ACTION_COMMANDS) |
||||
|
#include "../../feature/host_actions.h" |
||||
|
#endif |
||||
|
|
||||
|
/**
|
||||
|
* M24: Start or Resume SD Print |
||||
|
*/ |
||||
|
void GcodeSuite::M24() { |
||||
|
|
||||
|
#if ENABLED(POWER_LOSS_RECOVERY) |
||||
|
if (parser.seenval('S')) card.setIndex(parser.value_long()); |
||||
|
if (parser.seenval('T')) print_job_timer.resume(parser.value_long()); |
||||
|
#endif |
||||
|
|
||||
|
#if ENABLED(PARK_HEAD_ON_PAUSE) |
||||
|
if (did_pause_print) { |
||||
|
resume_print(); |
||||
|
return; |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
if (card.isFileOpen()) { |
||||
|
card.startFileprint(); |
||||
|
print_job_timer.start(); |
||||
|
} |
||||
|
|
||||
|
#if ENABLED(HOST_ACTION_COMMANDS) |
||||
|
#if ENABLED(HOST_PROMPT_SUPPORT) |
||||
|
host_prompt_open(PROMPT_INFO, PSTR("Resume SD")); |
||||
|
#endif |
||||
|
#ifdef ACTION_ON_RESUME |
||||
|
host_action_resume(); |
||||
|
#endif |
||||
|
#endif |
||||
|
|
||||
|
ui.reset_status(); |
||||
|
} |
||||
|
|
||||
|
/**
|
||||
|
* M25: Pause SD Print |
||||
|
*/ |
||||
|
void GcodeSuite::M25() { |
||||
|
|
||||
|
// Set initial pause flag to prevent more commands from landing in the queue while we try to pause
|
||||
|
#if ENABLED(SDSUPPORT) |
||||
|
if (IS_SD_PRINTING()) card.pauseSDPrint(); |
||||
|
#endif |
||||
|
|
||||
|
#if ENABLED(PARK_HEAD_ON_PAUSE) |
||||
|
|
||||
|
M125(); |
||||
|
|
||||
|
#else |
||||
|
|
||||
|
print_job_timer.pause(); |
||||
|
ui.reset_status(); |
||||
|
|
||||
|
#if ENABLED(HOST_ACTION_COMMANDS) |
||||
|
#if ENABLED(HOST_PROMPT_SUPPORT) |
||||
|
host_prompt_open(PROMPT_PAUSE_RESUME, PSTR("Pause SD"), PSTR("Resume")); |
||||
|
#endif |
||||
|
#ifdef ACTION_ON_PAUSE |
||||
|
host_action_pause(); |
||||
|
#endif |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
|
} |
||||
|
|
||||
|
#endif // SDSUPPORT
|
@ -0,0 +1,38 @@ |
|||||
|
/**
|
||||
|
* Marlin 3D Printer Firmware |
||||
|
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
* |
||||
|
* Based on Sprinter and grbl. |
||||
|
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#include "../../inc/MarlinConfig.h" |
||||
|
|
||||
|
#if ENABLED(SDSUPPORT) |
||||
|
|
||||
|
#include "../gcode.h" |
||||
|
#include "../../sd/cardreader.h" |
||||
|
|
||||
|
/**
|
||||
|
* M26: Set SD Card file index |
||||
|
*/ |
||||
|
void GcodeSuite::M26() { |
||||
|
if (card.isDetected() && parser.seenval('S')) |
||||
|
card.setIndex(parser.value_long()); |
||||
|
} |
||||
|
|
||||
|
#endif // SDSUPPORT
|
@ -0,0 +1,50 @@ |
|||||
|
/**
|
||||
|
* Marlin 3D Printer Firmware |
||||
|
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
* |
||||
|
* Based on Sprinter and grbl. |
||||
|
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#include "../../inc/MarlinConfig.h" |
||||
|
|
||||
|
#if ENABLED(SDSUPPORT) |
||||
|
|
||||
|
#include "../gcode.h" |
||||
|
#include "../../sd/cardreader.h" |
||||
|
|
||||
|
/**
|
||||
|
* M27: Get SD Card status |
||||
|
* OR, with 'S<seconds>' set the SD status auto-report interval. (Requires AUTO_REPORT_SD_STATUS) |
||||
|
* OR, with 'C' get the current filename. |
||||
|
*/ |
||||
|
void GcodeSuite::M27() { |
||||
|
if (parser.seen('C')) { |
||||
|
SERIAL_ECHOPGM("Current file: "); |
||||
|
card.printFilename(); |
||||
|
} |
||||
|
|
||||
|
#if ENABLED(AUTO_REPORT_SD_STATUS) |
||||
|
else if (parser.seenval('S')) |
||||
|
card.set_auto_report_interval(parser.value_byte()); |
||||
|
#endif |
||||
|
|
||||
|
else |
||||
|
card.report_status(); |
||||
|
} |
||||
|
|
||||
|
#endif // SDSUPPORT
|
@ -0,0 +1,73 @@ |
|||||
|
/**
|
||||
|
* Marlin 3D Printer Firmware |
||||
|
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
* |
||||
|
* Based on Sprinter and grbl. |
||||
|
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#include "../../inc/MarlinConfig.h" |
||||
|
|
||||
|
#if ENABLED(SDSUPPORT) |
||||
|
|
||||
|
#include "../gcode.h" |
||||
|
#include "../../sd/cardreader.h" |
||||
|
|
||||
|
/**
|
||||
|
* M28: Start SD Write |
||||
|
*/ |
||||
|
void GcodeSuite::M28() { |
||||
|
|
||||
|
#if ENABLED(BINARY_FILE_TRANSFER) |
||||
|
|
||||
|
bool binary_mode = false; |
||||
|
char *p = parser.string_arg; |
||||
|
if (p[0] == 'B' && NUMERIC(p[1])) { |
||||
|
binary_mode = p[1] > '0'; |
||||
|
p += 2; |
||||
|
while (*p == ' ') ++p; |
||||
|
} |
||||
|
|
||||
|
// Binary transfer mode
|
||||
|
if ((card.flag.binary_mode = binary_mode)) { |
||||
|
SERIAL_ECHO_START(); |
||||
|
SERIAL_ECHO(" preparing to receive: "); |
||||
|
SERIAL_ECHOLN(p); |
||||
|
card.openFile(p, false); |
||||
|
#if NUM_SERIAL > 1 |
||||
|
card.transfer_port_index = command_queue_port[cmd_queue_index_r]; |
||||
|
#endif |
||||
|
} |
||||
|
else |
||||
|
card.openFile(p, false); |
||||
|
|
||||
|
#else |
||||
|
|
||||
|
card.openFile(parser.string_arg, false); |
||||
|
|
||||
|
#endif |
||||
|
} |
||||
|
|
||||
|
/**
|
||||
|
* M29: Stop SD Write |
||||
|
* (Processed in write-to-file routine) |
||||
|
*/ |
||||
|
void GcodeSuite::M29() { |
||||
|
card.flag.saving = false; |
||||
|
} |
||||
|
|
||||
|
#endif // SDSUPPORT
|
@ -0,0 +1,40 @@ |
|||||
|
/**
|
||||
|
* Marlin 3D Printer Firmware |
||||
|
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
* |
||||
|
* Based on Sprinter and grbl. |
||||
|
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#include "../../inc/MarlinConfig.h" |
||||
|
|
||||
|
#if ENABLED(SDSUPPORT) |
||||
|
|
||||
|
#include "../gcode.h" |
||||
|
#include "../../sd/cardreader.h" |
||||
|
|
||||
|
/**
|
||||
|
* M30 <filename>: Delete SD Card file |
||||
|
*/ |
||||
|
void GcodeSuite::M30() { |
||||
|
if (card.isDetected()) { |
||||
|
card.closefile(); |
||||
|
card.removeFile(parser.string_arg); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
#endif // SDSUPPORT
|
@ -0,0 +1,59 @@ |
|||||
|
/**
|
||||
|
* Marlin 3D Printer Firmware |
||||
|
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
* |
||||
|
* Based on Sprinter and grbl. |
||||
|
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#include "../../inc/MarlinConfig.h" |
||||
|
|
||||
|
#if ENABLED(SDSUPPORT) |
||||
|
|
||||
|
#include "../gcode.h" |
||||
|
#include "../../sd/cardreader.h" |
||||
|
#include "../../module/printcounter.h" |
||||
|
#include "../../module/planner.h" |
||||
|
|
||||
|
/**
|
||||
|
* M32: Select file and start SD Print |
||||
|
* |
||||
|
* Examples: |
||||
|
* |
||||
|
* M32 !PATH/TO/FILE.GCO# ; Start FILE.GCO |
||||
|
* M32 P !PATH/TO/FILE.GCO# ; Start FILE.GCO as a procedure |
||||
|
* M32 S60 !PATH/TO/FILE.GCO# ; Start FILE.GCO at byte 60 |
||||
|
* |
||||
|
*/ |
||||
|
void GcodeSuite::M32() { |
||||
|
if (IS_SD_PRINTING()) planner.synchronize(); |
||||
|
|
||||
|
if (card.isDetected()) { |
||||
|
const bool call_procedure = parser.boolval('P'); |
||||
|
|
||||
|
card.openFile(parser.string_arg, true, call_procedure); |
||||
|
|
||||
|
if (parser.seenval('S')) card.setIndex(parser.value_long()); |
||||
|
|
||||
|
card.startFileprint(); |
||||
|
|
||||
|
// Procedure calls count as normal print time.
|
||||
|
if (!call_procedure) print_job_timer.start(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
#endif // SDSUPPORT
|
@ -0,0 +1,48 @@ |
|||||
|
/**
|
||||
|
* Marlin 3D Printer Firmware |
||||
|
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
* |
||||
|
* Based on Sprinter and grbl. |
||||
|
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#include "../../inc/MarlinConfig.h" |
||||
|
|
||||
|
#if ENABLED(LONG_FILENAME_HOST_SUPPORT) |
||||
|
|
||||
|
#include "../gcode.h" |
||||
|
#include "../../sd/cardreader.h" |
||||
|
|
||||
|
/**
|
||||
|
* M33: Get the long full path of a file or folder |
||||
|
* |
||||
|
* Parameters: |
||||
|
* <dospath> Case-insensitive DOS-style path to a file or folder |
||||
|
* |
||||
|
* Example: |
||||
|
* M33 miscel~1/armchair/armcha~1.gco |
||||
|
* |
||||
|
* Output: |
||||
|
* /Miscellaneous/Armchair/Armchair.gcode |
||||
|
*/ |
||||
|
void GcodeSuite::M33() { |
||||
|
|
||||
|
card.printLongPath(parser.string_arg); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
#endif // LONG_FILENAME_HOST_SUPPORT
|
@ -0,0 +1,42 @@ |
|||||
|
/**
|
||||
|
* Marlin 3D Printer Firmware |
||||
|
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
* |
||||
|
* Based on Sprinter and grbl. |
||||
|
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#include "../../inc/MarlinConfig.h" |
||||
|
|
||||
|
#if ENABLED(SDCARD_SORT_ALPHA) && ENABLED(SDSORT_GCODE) |
||||
|
|
||||
|
#include "../gcode.h" |
||||
|
#include "../../sd/cardreader.h" |
||||
|
|
||||
|
/**
|
||||
|
* M34: Set SD Card Sorting Options |
||||
|
*/ |
||||
|
void GcodeSuite::M34() { |
||||
|
if (parser.seen('S')) card.setSortOn(parser.value_bool()); |
||||
|
if (parser.seenval('F')) { |
||||
|
const int v = parser.value_long(); |
||||
|
card.setSortFolders(v < 0 ? -1 : v > 0 ? 1 : 0); |
||||
|
} |
||||
|
//if (parser.seen('R')) card.setSortReverse(parser.value_bool());
|
||||
|
} |
||||
|
|
||||
|
#endif // SDCARD_SORT_ALPHA && SDSORT_GCODE
|
@ -0,0 +1,40 @@ |
|||||
|
/**
|
||||
|
* Marlin 3D Printer Firmware |
||||
|
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
* |
||||
|
* Based on Sprinter and grbl. |
||||
|
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#include "../../inc/MarlinConfig.h" |
||||
|
|
||||
|
#if ENABLED(SDSUPPORT) |
||||
|
|
||||
|
#include "../gcode.h" |
||||
|
#include "../../sd/cardreader.h" |
||||
|
|
||||
|
/**
|
||||
|
* M524: Abort the current SD print job (started with M24) |
||||
|
*/ |
||||
|
void GcodeSuite::M524() { |
||||
|
|
||||
|
if (IS_SD_PRINTING()) |
||||
|
card.flag.abort_sd_printing = true; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
#endif // SDSUPPORT
|
@ -0,0 +1,39 @@ |
|||||
|
/**
|
||||
|
* Marlin 3D Printer Firmware |
||||
|
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
* |
||||
|
* Based on Sprinter and grbl. |
||||
|
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#include "../../inc/MarlinConfig.h" |
||||
|
|
||||
|
#if ENABLED(SDSUPPORT) |
||||
|
|
||||
|
#include "../gcode.h" |
||||
|
#include "../../sd/cardreader.h" |
||||
|
|
||||
|
/**
|
||||
|
* M928: Start SD Logging |
||||
|
*/ |
||||
|
void GcodeSuite::M928() { |
||||
|
|
||||
|
card.openLogFile(parser.string_arg); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
#endif // SDSUPPORT
|
Loading…
Reference in new issue