No 'ls' if media isn't mounted

This commit is contained in:
Scott Lahteine 2020-09-04 19:57:07 -05:00
parent 3002e1cd60
commit 14314b68ec
3 changed files with 12 additions and 5 deletions

View file

@ -120,6 +120,7 @@
#define STR_ERR_CHECKSUM_MISMATCH "checksum mismatch, Last Line: "
#define STR_ERR_NO_CHECKSUM "No Checksum with line number, Last Line: "
#define STR_FILE_PRINTED "Done printing file"
#define STR_NO_MEDIA "No media"
#define STR_BEGIN_FILE_LIST "Begin file list"
#define STR_END_FILE_LIST "End file list"
#define STR_INVALID_EXTRUDER "Invalid extruder"

View file

@ -31,9 +31,13 @@
* M20: List SD card to serial output
*/
void GcodeSuite::M20() {
SERIAL_ECHOLNPGM(STR_BEGIN_FILE_LIST);
card.ls();
SERIAL_ECHOLNPGM(STR_END_FILE_LIST);
if (card.flag.mounted) {
SERIAL_ECHOLNPGM(STR_BEGIN_FILE_LIST);
card.ls();
SERIAL_ECHOLNPGM(STR_END_FILE_LIST);
}
else
SERIAL_ECHO_MSG(STR_NO_MEDIA);
}
#endif // SDSUPPORT

View file

@ -276,8 +276,10 @@ void CardReader::printListing(SdFile parent, const char * const prepend/*=nullpt
// List all files on the SD card
//
void CardReader::ls() {
root.rewind();
printListing(root);
if (flag.mounted) {
root.rewind();
printListing(root);
}
}
#if ENABLED(LONG_FILENAME_HOST_SUPPORT)