Sub-file calls.
by overloading M32 it is now possible to execute gcode files from other gcode files, with a fixed recursion level. This can be used e.g. for having a real start.g and end.g somewhere on the sd card, which are then called from the normal print file. Another usecase would be to have macro-files for nozzle-change and layerchange. I have not tested the speedwise performance. The testing was done with pronterface. syntax: normal call from sd card will open the new file and continue executing there. M32 !/path/filename# this however will call the new file and return to the caller file. M32 P !/path/filename# with the optional "S<position>" the file starting position can be set. this is for continuing prints from a previous location.
This commit is contained in:
@ -18,7 +18,7 @@ public:
|
||||
//this is to delay autostart and hence the initialisaiton of the sd card to some seconds after the normal init, so the device is available quick after a reset
|
||||
|
||||
void checkautostart(bool x);
|
||||
void openFile(char* name,bool read);
|
||||
void openFile(char* name,bool read,bool replace_current=true);
|
||||
void openLogFile(char* name);
|
||||
void removeFile(char* name);
|
||||
void closefile();
|
||||
@ -31,6 +31,8 @@ public:
|
||||
void getfilename(const uint8_t nr);
|
||||
uint16_t getnrfilenames();
|
||||
|
||||
void getAbsFilename(char *t);
|
||||
|
||||
|
||||
void ls();
|
||||
void chdir(const char * relpath);
|
||||
@ -60,6 +62,11 @@ private:
|
||||
Sd2Card card;
|
||||
SdVolume volume;
|
||||
SdFile file;
|
||||
#define SD_PROCEDURE_DEPTH 1
|
||||
#define MAXPATHNAMELENGTH (13*MAX_DIR_DEPTH+MAX_DIR_DEPTH+1)
|
||||
uint8_t file_subcall_ctr;
|
||||
uint32_t filespos[SD_PROCEDURE_DEPTH];
|
||||
char filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];
|
||||
uint32_t filesize;
|
||||
//int16_t n;
|
||||
unsigned long autostart_atmillis;
|
||||
|
Reference in New Issue
Block a user