Ability to disable M32
This commit is contained in:
parent
b2d6b8c567
commit
ca730314e7
@ -431,7 +431,10 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) {
|
|||||||
case 28: M28(); break; // M28: Start SD write
|
case 28: M28(); break; // M28: Start SD write
|
||||||
case 29: M29(); break; // M29: Stop SD write
|
case 29: M29(); break; // M29: Stop SD write
|
||||||
case 30: M30(); break; // M30 <filename> Delete File
|
case 30: M30(); break; // M30 <filename> Delete File
|
||||||
case 32: M32(); break; // M32: Select file and start SD print
|
|
||||||
|
#if HAS_MEDIA_SUBCALLS
|
||||||
|
case 32: M32(); break; // M32: Select file and start SD print
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENABLED(LONG_FILENAME_HOST_SUPPORT)
|
#if ENABLED(LONG_FILENAME_HOST_SUPPORT)
|
||||||
case 33: M33(); break; // M33: Get the long full path to a file or folder
|
case 33: M33(); break; // M33: Get the long full path to a file or folder
|
||||||
|
@ -541,7 +541,7 @@ private:
|
|||||||
static void M31();
|
static void M31();
|
||||||
|
|
||||||
#if ENABLED(SDSUPPORT)
|
#if ENABLED(SDSUPPORT)
|
||||||
static void M32();
|
TERN_(HAS_MEDIA_SUBCALLS, static void M32());
|
||||||
TERN_(LONG_FILENAME_HOST_SUPPORT, static void M33());
|
TERN_(LONG_FILENAME_HOST_SUPPORT, static void M33());
|
||||||
#if BOTH(SDCARD_SORT_ALPHA, SDSORT_GCODE)
|
#if BOTH(SDCARD_SORT_ALPHA, SDSORT_GCODE)
|
||||||
static void M34();
|
static void M34();
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#include "../../inc/MarlinConfig.h"
|
#include "../../inc/MarlinConfig.h"
|
||||||
|
|
||||||
#if ENABLED(SDSUPPORT)
|
#if HAS_MEDIA_SUBCALLS
|
||||||
|
|
||||||
#include "../gcode.h"
|
#include "../gcode.h"
|
||||||
#include "../../sd/cardreader.h"
|
#include "../../sd/cardreader.h"
|
||||||
@ -56,4 +56,4 @@ void GcodeSuite::M32() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SDSUPPORT
|
#endif // HAS_MEDIA_SUBCALLS
|
||||||
|
@ -146,6 +146,10 @@
|
|||||||
#define HAS_PRINT_PROGRESS 1
|
#define HAS_PRINT_PROGRESS 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(SDSUPPORT) && SD_PROCEDURE_DEPTH
|
||||||
|
#define HAS_MEDIA_SUBCALLS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#if HAS_PRINT_PROGRESS && EITHER(PRINT_PROGRESS_SHOW_DECIMALS, SHOW_REMAINING_TIME)
|
#if HAS_PRINT_PROGRESS && EITHER(PRINT_PROGRESS_SHOW_DECIMALS, SHOW_REMAINING_TIME)
|
||||||
#define HAS_PRINT_PROGRESS_PERMYRIAD 1
|
#define HAS_PRINT_PROGRESS_PERMYRIAD 1
|
||||||
#endif
|
#endif
|
||||||
|
@ -118,9 +118,11 @@ Sd2Card CardReader::sd2card;
|
|||||||
SdVolume CardReader::volume;
|
SdVolume CardReader::volume;
|
||||||
SdFile CardReader::file;
|
SdFile CardReader::file;
|
||||||
|
|
||||||
uint8_t CardReader::file_subcall_ctr;
|
#if HAS_MEDIA_SUBCALLS
|
||||||
uint32_t CardReader::filespos[SD_PROCEDURE_DEPTH];
|
uint8_t CardReader::file_subcall_ctr;
|
||||||
char CardReader::proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];
|
uint32_t CardReader::filespos[SD_PROCEDURE_DEPTH];
|
||||||
|
char CardReader::proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];
|
||||||
|
#endif
|
||||||
|
|
||||||
uint32_t CardReader::filesize, CardReader::sdpos;
|
uint32_t CardReader::filesize, CardReader::sdpos;
|
||||||
|
|
||||||
@ -135,7 +137,8 @@ CardReader::CardReader() {
|
|||||||
#endif
|
#endif
|
||||||
flag.sdprinting = flag.mounted = flag.saving = flag.logging = false;
|
flag.sdprinting = flag.mounted = flag.saving = flag.logging = false;
|
||||||
filesize = sdpos = 0;
|
filesize = sdpos = 0;
|
||||||
file_subcall_ctr = 0;
|
|
||||||
|
TERN_(HAS_MEDIA_SUBCALLS, file_subcall_ctr = 0);
|
||||||
|
|
||||||
workDirDepth = 0;
|
workDirDepth = 0;
|
||||||
ZERO(workDirParents);
|
ZERO(workDirParents);
|
||||||
@ -540,34 +543,39 @@ void CardReader::openFileRead(char * const path, const uint8_t subcall_type/*=0*
|
|||||||
switch (subcall_type) {
|
switch (subcall_type) {
|
||||||
case 0: // Starting a new print. "Now fresh file: ..."
|
case 0: // Starting a new print. "Now fresh file: ..."
|
||||||
announceOpen(2, path);
|
announceOpen(2, path);
|
||||||
file_subcall_ctr = 0;
|
TERN_(HAS_MEDIA_SUBCALLS, file_subcall_ctr = 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: // Starting a sub-procedure
|
#if HAS_MEDIA_SUBCALLS
|
||||||
|
|
||||||
// With no file is open it's a simple macro. "Now doing file: ..."
|
case 1: // Starting a sub-procedure
|
||||||
if (!isFileOpen()) { announceOpen(1, path); break; }
|
|
||||||
|
|
||||||
// Too deep? The firmware has to bail.
|
// With no file is open it's a simple macro. "Now doing file: ..."
|
||||||
if (file_subcall_ctr > SD_PROCEDURE_DEPTH - 1) {
|
if (!isFileOpen()) { announceOpen(1, path); break; }
|
||||||
SERIAL_ERROR_MSG("Exceeded max SUBROUTINE depth:" STRINGIFY(SD_PROCEDURE_DEPTH));
|
|
||||||
kill(GET_TEXT(MSG_KILL_SUBCALL_OVERFLOW));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store current filename (based on workDirParents) and position
|
// Too deep? The firmware has to bail.
|
||||||
getAbsFilename(proc_filenames[file_subcall_ctr]);
|
if (file_subcall_ctr > SD_PROCEDURE_DEPTH - 1) {
|
||||||
filespos[file_subcall_ctr] = sdpos;
|
SERIAL_ERROR_MSG("Exceeded max SUBROUTINE depth:", int(SD_PROCEDURE_DEPTH));
|
||||||
|
kill(GET_TEXT(MSG_KILL_SUBCALL_OVERFLOW));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// For sub-procedures say 'SUBROUTINE CALL target: "..." parent: "..." pos12345'
|
// Store current filename (based on workDirParents) and position
|
||||||
SERIAL_ECHO_START();
|
getAbsFilename(proc_filenames[file_subcall_ctr]);
|
||||||
SERIAL_ECHOLNPAIR("SUBROUTINE CALL target:\"", path, "\" parent:\"", proc_filenames[file_subcall_ctr], "\" pos", sdpos);
|
|
||||||
file_subcall_ctr++;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2: // Resuming previous file after sub-procedure
|
TERN_(HAS_MEDIA_SUBCALLS, filespos[file_subcall_ctr] = sdpos);
|
||||||
SERIAL_ECHO_MSG("END SUBROUTINE");
|
|
||||||
break;
|
// For sub-procedures say 'SUBROUTINE CALL target: "..." parent: "..." pos12345'
|
||||||
|
SERIAL_ECHO_START();
|
||||||
|
SERIAL_ECHOLNPAIR("SUBROUTINE CALL target:\"", path, "\" parent:\"", proc_filenames[file_subcall_ctr], "\" pos", sdpos);
|
||||||
|
file_subcall_ctr++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2: // Resuming previous file after sub-procedure
|
||||||
|
SERIAL_ECHO_MSG("END SUBROUTINE");
|
||||||
|
break;
|
||||||
|
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
endFilePrint();
|
endFilePrint();
|
||||||
@ -603,7 +611,7 @@ void CardReader::openFileWrite(char * const path) {
|
|||||||
if (!isMounted()) return;
|
if (!isMounted()) return;
|
||||||
|
|
||||||
announceOpen(2, path);
|
announceOpen(2, path);
|
||||||
file_subcall_ctr = 0;
|
TERN_(HAS_MEDIA_SUBCALLS, file_subcall_ctr = 0);
|
||||||
|
|
||||||
endFilePrint();
|
endFilePrint();
|
||||||
|
|
||||||
@ -1158,17 +1166,19 @@ uint16_t CardReader::get_num_Files() {
|
|||||||
void CardReader::fileHasFinished() {
|
void CardReader::fileHasFinished() {
|
||||||
planner.synchronize();
|
planner.synchronize();
|
||||||
file.close();
|
file.close();
|
||||||
if (file_subcall_ctr > 0) { // Resume calling file after closing procedure
|
|
||||||
file_subcall_ctr--;
|
|
||||||
openFileRead(proc_filenames[file_subcall_ctr], 2); // 2 = Returning from sub-procedure
|
|
||||||
setIndex(filespos[file_subcall_ctr]);
|
|
||||||
startFileprint();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
endFilePrint(TERN_(SD_RESORT, true));
|
|
||||||
|
|
||||||
marlin_state = MF_SD_COMPLETE;
|
#if HAS_MEDIA_SUBCALLS
|
||||||
}
|
if (file_subcall_ctr > 0) { // Resume calling file after closing procedure
|
||||||
|
file_subcall_ctr--;
|
||||||
|
openFileRead(proc_filenames[file_subcall_ctr], 2); // 2 = Returning from sub-procedure
|
||||||
|
setIndex(filespos[file_subcall_ctr]);
|
||||||
|
startFileprint();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
endFilePrint(TERN_(SD_RESORT, true));
|
||||||
|
marlin_state = MF_SD_COMPLETE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLED(AUTO_REPORT_SD_STATUS)
|
#if ENABLED(AUTO_REPORT_SD_STATUS)
|
||||||
|
@ -249,12 +249,11 @@ private:
|
|||||||
//
|
//
|
||||||
// Procedure calls to other files
|
// Procedure calls to other files
|
||||||
//
|
//
|
||||||
#ifndef SD_PROCEDURE_DEPTH
|
#if HAS_MEDIA_SUBCALLS
|
||||||
#define SD_PROCEDURE_DEPTH 1
|
static uint8_t file_subcall_ctr;
|
||||||
|
static uint32_t filespos[SD_PROCEDURE_DEPTH];
|
||||||
|
static char proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];
|
||||||
#endif
|
#endif
|
||||||
static uint8_t file_subcall_ctr;
|
|
||||||
static uint32_t filespos[SD_PROCEDURE_DEPTH];
|
|
||||||
static char proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// SD Auto Reporting
|
// SD Auto Reporting
|
||||||
|
@ -23,6 +23,7 @@ opt_enable VIKI2 SDSUPPORT ADAPTIVE_FAN_SLOWING NO_FAN_SLOWING_IN_PID_TUNING \
|
|||||||
PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE SLOW_PWM_HEATERS PIDTEMPBED EEPROM_SETTINGS INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT \
|
PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE SLOW_PWM_HEATERS PIDTEMPBED EEPROM_SETTINGS INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT \
|
||||||
Z_SAFE_HOMING ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE \
|
Z_SAFE_HOMING ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE \
|
||||||
LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA EMERGENCY_PARSER
|
LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA EMERGENCY_PARSER
|
||||||
|
opt_disable SD_PROCEDURE_DEPTH
|
||||||
opt_set GRID_MAX_POINTS_X 16
|
opt_set GRID_MAX_POINTS_X 16
|
||||||
exec_test $1 $2 "Smoothieboard with many features"
|
exec_test $1 $2 "Smoothieboard with many features"
|
||||||
|
|
||||||
|
@ -180,6 +180,7 @@ default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared>
|
|||||||
-<src/gcode/probe/M951.cpp>
|
-<src/gcode/probe/M951.cpp>
|
||||||
-<src/gcode/scara>
|
-<src/gcode/scara>
|
||||||
-<src/gcode/sd>
|
-<src/gcode/sd>
|
||||||
|
-<src/gcode/sd/M32.cpp>
|
||||||
-<src/gcode/temp/M104_M109.cpp>
|
-<src/gcode/temp/M104_M109.cpp>
|
||||||
-<src/gcode/temp/M155.cpp>
|
-<src/gcode/temp/M155.cpp>
|
||||||
-<src/gcode/units/G20_G21.cpp>
|
-<src/gcode/units/G20_G21.cpp>
|
||||||
@ -370,6 +371,7 @@ Z_PROBE_SLED = src_filter=+<src/gcode/probe/G31_G32.cpp>
|
|||||||
G38_PROBE_TARGET = src_filter=+<src/gcode/probe/G38.cpp>
|
G38_PROBE_TARGET = src_filter=+<src/gcode/probe/G38.cpp>
|
||||||
MAGNETIC_PARKING_EXTRUDER = src_filter=+<src/gcode/probe/M951.cpp>
|
MAGNETIC_PARKING_EXTRUDER = src_filter=+<src/gcode/probe/M951.cpp>
|
||||||
SDSUPPORT = src_filter=+<src/gcode/sd>
|
SDSUPPORT = src_filter=+<src/gcode/sd>
|
||||||
|
HAS_MEDIA_SUBCALLS = src_filter=+<src/gcode/sd/M32.cpp>
|
||||||
HAS_EXTRUDERS = src_filter=+<src/gcode/temp/M104_M109.cpp> +<src/gcode/config/M221.cpp>
|
HAS_EXTRUDERS = src_filter=+<src/gcode/temp/M104_M109.cpp> +<src/gcode/config/M221.cpp>
|
||||||
AUTO_REPORT_TEMPERATURES = src_filter=+<src/gcode/temp/M155.cpp>
|
AUTO_REPORT_TEMPERATURES = src_filter=+<src/gcode/temp/M155.cpp>
|
||||||
INCH_MODE_SUPPORT = src_filter=+<src/gcode/units/G20_G21.cpp>
|
INCH_MODE_SUPPORT = src_filter=+<src/gcode/units/G20_G21.cpp>
|
||||||
|
Loading…
Reference in New Issue
Block a user