Merci beaucoup pour votre réponse, moi aussi je voudrais essayer d’implémenter une fonction qui me semble super utile mais bon c'est pas gagné vue la complexité du firmware ...
Enfaîte il me faudrait trouver la gestion de "ligne" de lecture sur la carte SD lors d'impression sur carte SD ...
J'ai trouver ce passage qui décode le g-code (extrait de gcode.cpp)
void GCodeParser::parse(char *p) {
reset(); // No codes to report
// Skip spaces
while (*p == ' ') ++p;
// Skip N[-0-9] if included in the command line
if (*p == 'N' && NUMERIC_SIGNED(p[1])) {
#if ENABLED(FASTER_GCODE_PARSER)
//set('N', p + 1); // (optional) Set the 'N' parameter value
#endif
p += 2; // skip N[-0-9]
while (NUMERIC(*p)) ++p; // skip [0-9]*
while (*p == ' ') ++p; // skip [ ]*
}
// *p now points to the current command, which should be G, M, or T
command_ptr = p;
// Get the command letter, which must be G, M, or T
const char letter = *p++;
// Nullify asterisk and trailing whitespace
char *starpos = strchr(p, '*');
if (starpos) {
--starpos; // *
while (*starpos == ' ') --starpos; // spaces...
starpos[1] = '\0';
}
// Bail if the letter is not G, M, or T
switch (letter) { case 'G': case 'M': case 'T': break; default: return; }
// Skip spaces to get the numeric part
while (*p == ' ') p++;
// Bail if there's no command code number
if (!NUMERIC(*p)) return;
// Save the command letter at this point
// A '?' signifies an unknown command
command_letter = letter;
Mais je n'arrive pas a repérer la gestion de ligne ... Si quelqu'un sait comment Marlin utilise la carte SD je suis preneur
Merci d'avance.