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 | // M27  - Report SD print status | ||||||
| // M28  - Start SD write (M28 filename.g) | // M28  - Start SD write (M28 filename.g) | ||||||
| // M29  - Stop SD write | // 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 | // M42  - Change pin status via gcode | ||||||
| // M80  - Turn on Power Supply | // M80  - Turn on Power Supply | ||||||
| // M81  - Turn off Power Supply | // M81  - Turn off Power Supply | ||||||
| @@ -739,7 +740,7 @@ void process_commands() | |||||||
|       //processed in write to file routine above |       //processed in write to file routine above | ||||||
|       //card,saving = false; |       //card,saving = false; | ||||||
|       break; |       break; | ||||||
|     case 30: //M31 <filename> Delete File  |     case 30: //M30 <filename> Delete File  | ||||||
| 	if (card.cardOK){ | 	if (card.cardOK){ | ||||||
| 		card.closefile(); | 		card.closefile(); | ||||||
| 		starpos = (strchr(strchr_pointer + 4,'*')); | 		starpos = (strchr(strchr_pointer + 4,'*')); | ||||||
| @@ -754,7 +755,7 @@ void process_commands() | |||||||
| 	 | 	 | ||||||
| #endif //SDSUPPORT | #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(); |       stoptime=millis(); | ||||||
|       char time[30]; |       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() | void CardReader::getStatus() | ||||||
| { | { | ||||||
|   if(cardOK){ |   if(cardOK){ | ||||||
|   | |||||||
| @@ -17,6 +17,7 @@ public: | |||||||
|  |  | ||||||
|   void checkautostart(bool x);  |   void checkautostart(bool x);  | ||||||
|   void openFile(char* name,bool read); |   void openFile(char* name,bool read); | ||||||
|  |   void removeFile(char* name); | ||||||
|   void closefile(); |   void closefile(); | ||||||
|   void release(); |   void release(); | ||||||
|   void startFileprint(); |   void startFileprint(); | ||||||
| @@ -99,4 +100,4 @@ public: | |||||||
|   FORCE_INLINE uint8_t percentDone(){return 0;}; |   FORCE_INLINE uint8_t percentDone(){return 0;}; | ||||||
| }; | }; | ||||||
| #endif //SDSUPPORT | #endif //SDSUPPORT | ||||||
| #endif | #endif | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user