Add command M928 to enable logging to file of received gcode commands
This commit is contained in:
parent
92782f9252
commit
07e11c7cf5
|
@ -132,6 +132,7 @@
|
||||||
// M908 - Control digital trimpot directly.
|
// M908 - Control digital trimpot directly.
|
||||||
// M350 - Set microstepping mode.
|
// M350 - Set microstepping mode.
|
||||||
// M351 - Toggle MS1 MS2 pins directly.
|
// M351 - Toggle MS1 MS2 pins directly.
|
||||||
|
// M928 - Start SD logging (M928 filename.g) - ended by M29
|
||||||
// M999 - Restart after being stopped by error
|
// M999 - Restart after being stopped by error
|
||||||
|
|
||||||
//Stepper Movement Variables
|
//Stepper Movement Variables
|
||||||
|
@ -394,7 +395,14 @@ void loop()
|
||||||
if(strstr_P(cmdbuffer[bufindr], PSTR("M29")) == NULL)
|
if(strstr_P(cmdbuffer[bufindr], PSTR("M29")) == NULL)
|
||||||
{
|
{
|
||||||
card.write_command(cmdbuffer[bufindr]);
|
card.write_command(cmdbuffer[bufindr]);
|
||||||
SERIAL_PROTOCOLLNPGM(MSG_OK);
|
if(card.logging)
|
||||||
|
{
|
||||||
|
process_commands();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SERIAL_PROTOCOLLNPGM(MSG_OK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -949,6 +957,15 @@ void process_commands()
|
||||||
card.removeFile(strchr_pointer + 4);
|
card.removeFile(strchr_pointer + 4);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 928: //M928 - Start SD write
|
||||||
|
starpos = (strchr(strchr_pointer + 5,'*'));
|
||||||
|
if(starpos != NULL){
|
||||||
|
char* npos = strchr(cmdbuffer[bufindr], 'N');
|
||||||
|
strchr_pointer = strchr(npos,' ') + 1;
|
||||||
|
*(starpos-1) = '\0';
|
||||||
|
}
|
||||||
|
card.openLogFile(strchr_pointer+5);
|
||||||
|
break;
|
||||||
|
|
||||||
#endif //SDSUPPORT
|
#endif //SDSUPPORT
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ CardReader::CardReader()
|
||||||
sdprinting = false;
|
sdprinting = false;
|
||||||
cardOK = false;
|
cardOK = false;
|
||||||
saving = false;
|
saving = false;
|
||||||
|
logging = false;
|
||||||
autostart_atmillis=0;
|
autostart_atmillis=0;
|
||||||
|
|
||||||
autostart_stilltocheck=true; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware.
|
autostart_stilltocheck=true; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware.
|
||||||
|
@ -212,6 +213,11 @@ void CardReader::pauseSDPrint()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CardReader::openLogFile(char* name)
|
||||||
|
{
|
||||||
|
logging = true;
|
||||||
|
openFile(name, false);
|
||||||
|
}
|
||||||
|
|
||||||
void CardReader::openFile(char* name,bool read)
|
void CardReader::openFile(char* name,bool read)
|
||||||
{
|
{
|
||||||
|
@ -471,6 +477,7 @@ void CardReader::closefile()
|
||||||
file.sync();
|
file.sync();
|
||||||
file.close();
|
file.close();
|
||||||
saving = false;
|
saving = false;
|
||||||
|
logging = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CardReader::getfilename(const uint8_t nr)
|
void CardReader::getfilename(const uint8_t nr)
|
||||||
|
|
Loading…
Reference in a new issue