Use "mount" as card verb

2.0.x
Scott Lahteine 5 years ago
parent 2386c147ad
commit d5f5203880

@ -19,7 +19,7 @@ void sd_mmc_spi_mem_init(void) {
} }
Ctrl_status sd_mmc_spi_test_unit_ready(void) { Ctrl_status sd_mmc_spi_test_unit_ready(void) {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected()) if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted())
return CTRL_NO_PRESENT; return CTRL_NO_PRESENT;
return CTRL_GOOD; return CTRL_GOOD;
} }
@ -27,7 +27,7 @@ Ctrl_status sd_mmc_spi_test_unit_ready(void) {
// NOTE: This function is defined as returning the address of the last block // NOTE: This function is defined as returning the address of the last block
// in the card, which is cardSize() - 1 // in the card, which is cardSize() - 1
Ctrl_status sd_mmc_spi_read_capacity(uint32_t *nb_sector) { Ctrl_status sd_mmc_spi_read_capacity(uint32_t *nb_sector) {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected()) if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted())
return CTRL_NO_PRESENT; return CTRL_NO_PRESENT;
*nb_sector = card.getSd2Card().cardSize() - 1; *nb_sector = card.getSd2Card().cardSize() - 1;
return CTRL_GOOD; return CTRL_GOOD;
@ -43,7 +43,7 @@ bool sd_mmc_spi_wr_protect(void) {
} }
bool sd_mmc_spi_removal(void) { bool sd_mmc_spi_removal(void) {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected()) if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted())
return true; return true;
return false; return false;
} }
@ -62,7 +62,7 @@ uint8_t sector_buf[SD_MMC_BLOCK_SIZE];
// #define DEBUG_MMC // #define DEBUG_MMC
Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector) { Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector) {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected()) if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted())
return CTRL_NO_PRESENT; return CTRL_NO_PRESENT;
#ifdef DEBUG_MMC #ifdef DEBUG_MMC
@ -99,7 +99,7 @@ Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector) {
} }
Ctrl_status sd_mmc_spi_usb_write_10(uint32_t addr, uint16_t nb_sector) { Ctrl_status sd_mmc_spi_usb_write_10(uint32_t addr, uint16_t nb_sector) {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected()) if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted())
return CTRL_NO_PRESENT; return CTRL_NO_PRESENT;
#ifdef DEBUG_MMC #ifdef DEBUG_MMC

@ -158,7 +158,7 @@ void HAL_idletask(void) {
// the disk if Marlin has it mounted. Unfortuately there is currently no way // the disk if Marlin has it mounted. Unfortuately there is currently no way
// to unmount the disk from the LCD menu. // to unmount the disk from the LCD menu.
// if (IS_SD_PRINTING() || IS_SD_FILE_OPEN()) // if (IS_SD_PRINTING() || IS_SD_FILE_OPEN())
if (card.isDetected()) if (card.isMounted())
MSC_Aquire_Lock(); MSC_Aquire_Lock();
else else
MSC_Release_Lock(); MSC_Release_Lock();

@ -47,7 +47,7 @@ static char _ALIGN(4) HAL_eeprom_data[HAL_EEPROM_SIZE];
#define EEPROM_FILENAME "eeprom.dat" #define EEPROM_FILENAME "eeprom.dat"
bool PersistentStore::access_start() { bool PersistentStore::access_start() {
if (!card.isDetected()) return false; if (!card.isMounted()) return false;
SdFile file, root = card.getroot(); SdFile file, root = card.getroot();
if (!file.open(&root, EEPROM_FILENAME, O_RDONLY)) if (!file.open(&root, EEPROM_FILENAME, O_RDONLY))
@ -62,7 +62,7 @@ static char _ALIGN(4) HAL_eeprom_data[HAL_EEPROM_SIZE];
} }
bool PersistentStore::access_finish() { bool PersistentStore::access_finish() {
if (!card.isDetected()) return false; if (!card.isMounted()) return false;
SdFile file, root = card.getroot(); SdFile file, root = card.getroot();
int bytes_written = 0; int bytes_written = 0;

@ -48,7 +48,7 @@ static char _ALIGN(4) HAL_eeprom_data[HAL_EEPROM_SIZE];
#define EEPROM_FILENAME "eeprom.dat" #define EEPROM_FILENAME "eeprom.dat"
bool PersistentStore::access_start() { bool PersistentStore::access_start() {
if (!card.isDetected()) return false; if (!card.isMounted()) return false;
SdFile file, root = card.getroot(); SdFile file, root = card.getroot();
if (!file.open(&root, EEPROM_FILENAME, O_RDONLY)) if (!file.open(&root, EEPROM_FILENAME, O_RDONLY))
@ -63,7 +63,7 @@ static char _ALIGN(4) HAL_eeprom_data[HAL_EEPROM_SIZE];
} }
bool PersistentStore::access_finish() { bool PersistentStore::access_finish() {
if (!card.isDetected()) return false; if (!card.isMounted()) return false;
SdFile file, root = card.getroot(); SdFile file, root = card.getroot();
int bytes_written = 0; int bytes_written = 0;

@ -982,8 +982,7 @@ void setup() {
#endif #endif
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
// Auto-mount the SD card.mount(); // Mount the SD card before settings.first_load
card.initsd();
#endif #endif
// Load data from EEPROM if available (or use defaults) // Load data from EEPROM if available (or use defaults)

@ -76,7 +76,7 @@ private:
static bool file_open(char* filename) { static bool file_open(char* filename) {
if (!dummy_transfer) { if (!dummy_transfer) {
card.initsd(); card.mount();
card.openFile(filename, false); card.openFile(filename, false);
if (!card.isFileOpen()) return false; if (!card.isFileOpen()) return false;
} }

@ -98,8 +98,8 @@ void PrintJobRecovery::changed() {
*/ */
void PrintJobRecovery::check() { void PrintJobRecovery::check() {
if (enabled) { if (enabled) {
if (!card.isDetected()) card.initsd(); if (!card.isMounted()) card.mount();
if (card.isDetected()) { if (card.isMounted()) {
load(); load();
if (!valid()) return purge(); if (!valid()) return purge();
queue.inject_P(PSTR("M1000 S")); queue.inject_P(PSTR("M1000 S"));

@ -30,7 +30,7 @@
/** /**
* M21: Init SD Card * M21: Init SD Card
*/ */
void GcodeSuite::M21() { card.initsd(); } void GcodeSuite::M21() { card.mount(); }
/** /**
* M22: Release SD Card * M22: Release SD Card

@ -31,7 +31,7 @@
* M26: Set SD Card file index * M26: Set SD Card file index
*/ */
void GcodeSuite::M26() { void GcodeSuite::M26() {
if (card.isDetected() && parser.seenval('S')) if (card.isMounted() && parser.seenval('S'))
card.setIndex(parser.value_long()); card.setIndex(parser.value_long());
} }

@ -31,7 +31,7 @@
* M30 <filename>: Delete SD Card file * M30 <filename>: Delete SD Card file
*/ */
void GcodeSuite::M30() { void GcodeSuite::M30() {
if (card.isDetected()) { if (card.isMounted()) {
card.closefile(); card.closefile();
card.removeFile(parser.string_arg); card.removeFile(parser.string_arg);
} }

@ -42,7 +42,7 @@
void GcodeSuite::M32() { void GcodeSuite::M32() {
if (IS_SD_PRINTING()) planner.synchronize(); if (IS_SD_PRINTING()) planner.synchronize();
if (card.isDetected()) { if (card.isMounted()) {
const bool call_procedure = parser.boolval('P'); const bool call_procedure = parser.boolval('P');
card.openFile(parser.string_arg, true, call_procedure); card.openFile(parser.string_arg, true, call_procedure);

@ -911,7 +911,7 @@ namespace ExtUI {
} }
bool isMediaInserted() { bool isMediaInserted() {
return IFSD(IS_SD_INSERTED() && card.isDetected(), false); return IFSD(IS_SD_INSERTED() && card.isMounted(), false);
} }
void pausePrint() { void pausePrint() {
@ -1008,14 +1008,14 @@ void MarlinUI::update() {
if (sd_status != last_sd_status) { if (sd_status != last_sd_status) {
last_sd_status = sd_status; last_sd_status = sd_status;
if (sd_status) { if (sd_status) {
card.initsd(); card.mount();
if (card.isDetected()) if (card.isMounted())
ExtUI::onMediaInserted(); ExtUI::onMediaInserted();
else else
ExtUI::onMediaError(); ExtUI::onMediaError();
} }
else { else {
const bool ok = card.isDetected(); const bool ok = card.isMounted();
card.release(); card.release();
if (ok) ExtUI::onMediaRemoved(); if (ok) ExtUI::onMediaRemoved();
} }

@ -298,7 +298,7 @@ void process_lcd_s_command(const char* command) {
case 'L': { case 'L': {
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
if (!card.isDetected()) card.initsd(); if (!card.isMounted()) card.mount();
// A more efficient way to do this would be to // A more efficient way to do this would be to
// implement a callback in the ls_SerialPrint code, but // implement a callback in the ls_SerialPrint code, but

@ -101,7 +101,7 @@ void menu_main() {
const bool busy = IS_SD_PRINTING() || print_job_timer.isRunning() const bool busy = IS_SD_PRINTING() || print_job_timer.isRunning()
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
, card_detected = card.isDetected() , card_detected = card.isMounted()
, card_open = card_detected && card.isFileOpen() , card_open = card_detected && card.isFileOpen()
#endif #endif
; ;

@ -34,7 +34,7 @@
#if !PIN_EXISTS(SD_DETECT) #if !PIN_EXISTS(SD_DETECT)
void lcd_sd_refresh() { void lcd_sd_refresh() {
encoderTopLine = 0; encoderTopLine = 0;
card.initsd(); card.mount();
} }
#endif #endif
@ -146,7 +146,7 @@ void menu_media() {
MENU_ITEM(function, LCD_STR_REFRESH MSG_REFRESH, lcd_sd_refresh); MENU_ITEM(function, LCD_STR_REFRESH MSG_REFRESH, lcd_sd_refresh);
#endif #endif
} }
else if (card.isDetected()) else if (card.isMounted())
MENU_ITEM(function, LCD_STR_FOLDER "..", lcd_sd_updir); MENU_ITEM(function, LCD_STR_FOLDER "..", lcd_sd_updir);
if (ui.should_draw()) for (uint16_t i = 0; i < fileCnt; i++) { if (ui.should_draw()) for (uint16_t i = 0; i < fileCnt; i++) {

@ -842,7 +842,7 @@ void MarlinUI::update() {
if (sd_status) { if (sd_status) {
safe_delay(500); // Some boards need a delay to get settled safe_delay(500); // Some boards need a delay to get settled
card.initsd(); card.mount();
if (old_sd_status == 2) if (old_sd_status == 2)
card.beginautostart(); // Initial boot card.beginautostart(); // Initial boot
else else

@ -123,7 +123,7 @@ CardReader::CardReader() {
//sort_reverse = false; //sort_reverse = false;
#endif #endif
#endif #endif
flag.sdprinting = flag.detected = flag.saving = flag.logging = false; flag.sdprinting = flag.mounted = flag.saving = flag.logging = false;
filesize = sdpos = 0; filesize = sdpos = 0;
file_subcall_ctr = 0; file_subcall_ctr = 0;
@ -329,8 +329,8 @@ void CardReader::printFilename() {
SERIAL_EOL(); SERIAL_EOL();
} }
void CardReader::initsd() { void CardReader::mount() {
flag.detected = false; flag.mounted = false;
if (root.isOpen()) root.close(); if (root.isOpen()) root.close();
#ifndef SPI_SPEED #ifndef SPI_SPEED
@ -350,7 +350,7 @@ void CardReader::initsd() {
else if (!root.openRoot(&volume)) else if (!root.openRoot(&volume))
SERIAL_ERROR_MSG(MSG_SD_OPENROOT_FAIL); SERIAL_ERROR_MSG(MSG_SD_OPENROOT_FAIL);
else { else {
flag.detected = true; flag.mounted = true;
SERIAL_ECHO_MSG(MSG_SD_CARD_OK); SERIAL_ECHO_MSG(MSG_SD_CARD_OK);
#if ENABLED(EEPROM_SETTINGS) && NONE(FLASH_EEPROM_EMULATION, SPI_EEPROM, I2C_EEPROM) #if ENABLED(EEPROM_SETTINGS) && NONE(FLASH_EEPROM_EMULATION, SPI_EEPROM, I2C_EEPROM)
settings.first_load(); settings.first_load();
@ -363,7 +363,7 @@ void CardReader::initsd() {
void CardReader::release() { void CardReader::release() {
stopSDPrint(); stopSDPrint();
flag.detected = false; flag.mounted = false;
} }
void CardReader::openAndPrintFile(const char *name) { void CardReader::openAndPrintFile(const char *name) {
@ -375,7 +375,7 @@ void CardReader::openAndPrintFile(const char *name) {
} }
void CardReader::startFileprint() { void CardReader::startFileprint() {
if (isDetected()) { if (isMounted()) {
flag.sdprinting = true; flag.sdprinting = true;
#if SD_RESORT #if SD_RESORT
flush_presort(); flush_presort();
@ -425,7 +425,7 @@ void CardReader::getAbsFilename(char *t) {
void CardReader::openFile(char * const path, const bool read, const bool subcall/*=false*/) { void CardReader::openFile(char * const path, const bool read, const bool subcall/*=false*/) {
if (!isDetected()) return; if (!isMounted()) return;
uint8_t doing = 0; uint8_t doing = 0;
if (isFileOpen()) { // Replacing current file or doing a subroutine if (isFileOpen()) { // Replacing current file or doing a subroutine
@ -499,7 +499,7 @@ void CardReader::openFile(char * const path, const bool read, const bool subcall
} }
void CardReader::removeFile(const char * const name) { void CardReader::removeFile(const char * const name) {
if (!isDetected()) return; if (!isMounted()) return;
//stopSDPrint(); //stopSDPrint();
@ -558,12 +558,12 @@ void CardReader::checkautostart() {
if (autostart_index < 0 || flag.sdprinting) return; if (autostart_index < 0 || flag.sdprinting) return;
if (!isDetected()) initsd(); if (!isMounted()) mount();
#if ENABLED(EEPROM_SETTINGS) && NONE(FLASH_EEPROM_EMULATION, SPI_EEPROM, I2C_EEPROM) #if ENABLED(EEPROM_SETTINGS) && NONE(FLASH_EEPROM_EMULATION, SPI_EEPROM, I2C_EEPROM)
else settings.first_load(); else settings.first_load();
#endif #endif
if (isDetected() if (isMounted()
#if ENABLED(POWER_LOSS_RECOVERY) #if ENABLED(POWER_LOSS_RECOVERY)
&& !recovery.valid() // Don't run auto#.g when a resume file exists && !recovery.valid() // Don't run auto#.g when a resume file exists
#endif #endif
@ -1049,7 +1049,7 @@ void CardReader::printingHasFinished() {
} }
void CardReader::openJobRecoveryFile(const bool read) { void CardReader::openJobRecoveryFile(const bool read) {
if (!isDetected()) return; if (!isMounted()) return;
if (recovery.file.isOpen()) return; if (recovery.file.isOpen()) return;
if (!recovery.file.open(&root, recovery.filename, read ? O_READ : O_CREAT | O_WRITE | O_TRUNC | O_SYNC)) if (!recovery.file.open(&root, recovery.filename, read ? O_READ : O_CREAT | O_WRITE | O_TRUNC | O_SYNC))
SERIAL_ECHOLNPAIR(MSG_SD_OPEN_FILE_FAIL, recovery.filename, "."); SERIAL_ECHOLNPAIR(MSG_SD_OPEN_FILE_FAIL, recovery.filename, ".");

@ -39,7 +39,7 @@ typedef struct {
bool saving:1, bool saving:1,
logging:1, logging:1,
sdprinting:1, sdprinting:1,
detected:1, mounted:1,
filenameIsDir:1, filenameIsDir:1,
abort_sd_printing:1 abort_sd_printing:1
#if ENABLED(BINARY_FILE_TRANSFER) #if ENABLED(BINARY_FILE_TRANSFER)
@ -52,7 +52,7 @@ class CardReader {
public: public:
CardReader(); CardReader();
static void initsd(); static void mount();
static void write_command(char *buf); static void write_command(char *buf);
static void beginautostart(); static void beginautostart();
@ -111,8 +111,8 @@ public:
#endif #endif
static inline void pauseSDPrint() { flag.sdprinting = false; } static inline void pauseSDPrint() { flag.sdprinting = false; }
static inline bool isDetected() { return flag.detected; } static inline bool isMounted() { return flag.mounted; }
static inline bool isFileOpen() { return isDetected() && file.isOpen(); } static inline bool isFileOpen() { return isMounted() && file.isOpen(); }
static inline bool isPaused() { return isFileOpen() && !flag.sdprinting; } static inline bool isPaused() { return isFileOpen() && !flag.sdprinting; }
static inline bool isPrinting() { return flag.sdprinting; } static inline bool isPrinting() { return flag.sdprinting; }
static inline bool eof() { return sdpos >= filesize; } static inline bool eof() { return sdpos >= filesize; }

Loading…
Cancel
Save