set SD file delete to M30; switch printime output to M31
This commit is contained in:
		| @@ -75,7 +75,8 @@ | ||||
| // M27  - Report SD print status | ||||
| // M28  - Start SD write (M28 filename.g) | ||||
| // M29  - Stop SD write | ||||
| // M30  - Output time since last M109 or SD card start to serial | ||||
| // M30  - Delete file from SD (M30 filename.g) | ||||
| // M31  - Output time since last M109 or SD card start to serial | ||||
| // M42  - Change pin status via gcode | ||||
| // M80  - Turn on Power Supply | ||||
| // M81  - Turn off Power Supply | ||||
| @@ -739,7 +740,7 @@ void process_commands() | ||||
|       //processed in write to file routine above | ||||
|       //card,saving = false; | ||||
|       break; | ||||
|     case 30: //M31 <filename> Delete File  | ||||
|     case 30: //M30 <filename> Delete File  | ||||
| 	if (card.cardOK){ | ||||
| 		card.closefile(); | ||||
| 		starpos = (strchr(strchr_pointer + 4,'*')); | ||||
| @@ -754,7 +755,7 @@ void process_commands() | ||||
| 	 | ||||
| #endif //SDSUPPORT | ||||
|  | ||||
|     case 31: //M30 take time since the start of the SD print or an M109 command | ||||
|     case 31: //M31 take time since the start of the SD print or an M109 command | ||||
|       { | ||||
|       stoptime=millis(); | ||||
|       char time[30]; | ||||
|   | ||||
| @@ -295,6 +295,75 @@ void CardReader::openFile(char* name,bool read) | ||||
|    | ||||
| } | ||||
|  | ||||
| void CardReader::removeFile(char* name) | ||||
| { | ||||
|   if(!cardOK) | ||||
|     return; | ||||
|   file.close(); | ||||
|   sdprinting = false; | ||||
|    | ||||
|    | ||||
|   SdFile myDir; | ||||
|   curDir=&root; | ||||
|   char *fname=name; | ||||
|    | ||||
|   char *dirname_start,*dirname_end; | ||||
|   if(name[0]=='/') | ||||
|   { | ||||
|     dirname_start=strchr(name,'/')+1; | ||||
|     while(dirname_start>0) | ||||
|     { | ||||
|       dirname_end=strchr(dirname_start,'/'); | ||||
|       //SERIAL_ECHO("start:");SERIAL_ECHOLN((int)(dirname_start-name)); | ||||
|       //SERIAL_ECHO("end  :");SERIAL_ECHOLN((int)(dirname_end-name)); | ||||
|       if(dirname_end>0 && dirname_end>dirname_start) | ||||
|       { | ||||
|         char subdirname[13]; | ||||
|         strncpy(subdirname, dirname_start, dirname_end-dirname_start); | ||||
|         subdirname[dirname_end-dirname_start]=0; | ||||
|         SERIAL_ECHOLN(subdirname); | ||||
|         if(!myDir.open(curDir,subdirname,O_READ)) | ||||
|         { | ||||
|           SERIAL_PROTOCOLPGM("open failed, File: "); | ||||
|           SERIAL_PROTOCOL(subdirname); | ||||
|           SERIAL_PROTOCOLLNPGM("."); | ||||
|           return; | ||||
|         } | ||||
|         else | ||||
|           ;//SERIAL_ECHOLN("dive ok"); | ||||
|            | ||||
|         curDir=&myDir;  | ||||
|         dirname_start=dirname_end+1; | ||||
|       } | ||||
|       else // the reminder after all /fsa/fdsa/ is the filename | ||||
|       { | ||||
|         fname=dirname_start; | ||||
|         //SERIAL_ECHOLN("remaider"); | ||||
|         //SERIAL_ECHOLN(fname); | ||||
|         break; | ||||
|       } | ||||
|        | ||||
|     } | ||||
|   } | ||||
|   else //relative path | ||||
|   { | ||||
|     curDir=&workDir; | ||||
|   } | ||||
|     if (file.remove(curDir, fname))  | ||||
|     { | ||||
|       SERIAL_PROTOCOLPGM("File deleted:"); | ||||
|       SERIAL_PROTOCOL(fname); | ||||
|       sdpos = 0; | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|       SERIAL_PROTOCOLPGM("Deletion failed, File: "); | ||||
|       SERIAL_PROTOCOL(fname); | ||||
|       SERIAL_PROTOCOLLNPGM("."); | ||||
|     } | ||||
|    | ||||
| } | ||||
|  | ||||
| void CardReader::getStatus() | ||||
| { | ||||
|   if(cardOK){ | ||||
|   | ||||
| @@ -17,6 +17,7 @@ public: | ||||
|  | ||||
|   void checkautostart(bool x);  | ||||
|   void openFile(char* name,bool read); | ||||
|   void removeFile(char* name); | ||||
|   void closefile(); | ||||
|   void release(); | ||||
|   void startFileprint(); | ||||
| @@ -99,4 +100,4 @@ public: | ||||
|   FORCE_INLINE uint8_t percentDone(){return 0;}; | ||||
| }; | ||||
| #endif //SDSUPPORT | ||||
| #endif | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user