41#define SD_FAT_VERSION 20007
43#define SD_FAT_VERSION_STR "2.0.7"
49template <
class Vol>
class SdBase :
public Vol
61 if (csPin == BUILTIN_SDCARD)
136 pr->print(F(
"SdError: 0X"));
141 else if (!Vol::fatType())
143 pr->println(F(
"Check SD format."));
155 pr->print(F(
"error: "));
167 pr->print(F(
"error: "));
210 pr->println(F(
"begin() failed"));
213 pr->println(F(
"Do not reformat the SD."));
216 pr->println(F(
"No card, wrong chip select pin, or wiring error?"));
230 pr->print(F(
"exFAT"));
235 pr->print(Vol::fatType());
247 pr->print(F(
"SdError: 0X"));
252 else if (!Vol::fatType())
254 pr->println(F(
"Check SD format."));
265 pr->print(F(
"error: "));
277 pr->print(F(
"error: "));
292 pr->println(F(
"No card, wrong chip select pin, or wiring error?"));
294 pr->print(F(
"SD error: "));
296 pr->print(F(
" = 0x"));
301 else if (!Vol::fatType())
303 pr->println(F(
"Check SD format."));
314 return SD_CARD_ERROR_INVALID_CARD_CONFIG;
326 return reinterpret_cast<Vol *
>(
this);
335 return Vol::begin(
m_card);
337#if ENABLE_ARDUINO_SERIAL
477 static_assert(
sizeof(
m_volMem) >= 512,
"m_volMem too small");
479 if (sectorCount == 0)
484 if (sectorCount > 67108864)
497#if SDFAT_FILE_TYPE == 1
501#if !defined(__has_include) || !__has_include(<FS.h>)
506#elif SDFAT_FILE_TYPE == 2
508#if !defined(__has_include) || !__has_include(<FS.h>)
512#elif SDFAT_FILE_TYPE == 3
514#if !defined(__has_include) || !__has_include(<FS.h>)
519#error Invalid SDFAT_FILE_TYPE
525class SdFile : public PrintFile<SdBaseFile>
const uint8_t FAT_TYPE_EXFAT
Definition ExFatPartition.h:37
int oflag_t
Definition FsApiConstants.h:45
void printSdErrorSymbol(print_t *pr, uint8_t code)
Definition SdCardInfo.cpp:32
File32 File
Definition SdFat.h:502
FatFile SdBaseFile
Definition SdFat.h:505
SdFat32 SdFat
Definition SdFat.h:499
uint8_t SdCsPin_t
Definition SdFatConfig.h:139
const uint8_t SHARED_SPI
Definition SdSpiDriver.h:47
Print print_t
Definition SysCall.h:66
Basic file class.
Definition ExFatFile.h:95
uint8_t * cacheClear()
Definition ExFatPartition.h:76
exFAT file with Arduino Stream.
Definition ExFatFile.h:895
Basic file class.
Definition FatFile.h:112
uint8_t * cacheClear()
Definition FatPartition.h:120
FAT16/FAT32 file with Arduino Stream.
Definition FatFile.h:1104
FsBaseFile class.
Definition FsFile.h:39
FsBaseFile file with Arduino Stream.
Definition FsFile.h:865
void end()
Definition FsVolume.h:103
newalign_t m_volMem[FS_ALIGN_DIM(ExFatVolume, FatVolume)]
Definition FsVolume.h:393
base SD file system template class.
Definition SdFat.h:50
void errorHalt(print_t *pr, const char *msg)
Definition SdFat.h:153
bool volumeBegin()
Definition SdFat.h:333
void errorPrint(print_t *pr)
Definition SdFat.h:243
void printFatType(print_t *pr)
Definition SdFat.h:226
void errorHalt(const __FlashStringHelper *msg)
Definition SdFat.h:348
SdCardFactory m_cardFactory
Definition SdFat.h:412
SdCard * m_card
Definition SdFat.h:411
void initErrorHalt(const __FlashStringHelper *msg)
Definition SdFat.h:404
bool begin(SdSpiConfig spiConfig)
Definition SdFat.h:85
void initErrorHalt()
Definition SdFat.h:369
uint8_t sdErrorData()
Definition SdFat.h:318
bool cardBegin(SdioConfig sdioConfig)
Definition SdFat.h:122
void errorHalt(const char *msg)
Definition SdFat.h:363
void errorPrint(Print *pr, const __FlashStringHelper *msg)
Definition SdFat.h:275
void printSdError(print_t *pr)
Definition SdFat.h:286
bool cardBegin(SdSpiConfig spiConfig)
Definition SdFat.h:111
void errorPrint(print_t *pr, char const *msg)
Definition SdFat.h:263
void errorHalt()
Definition SdFat.h:354
void initErrorHalt(Print *pr, const __FlashStringHelper *msg)
Definition SdFat.h:198
void initErrorPrint(Print *pr)
Definition SdFat.h:208
bool begin(SdCsPin_t csPin, uint32_t maxSck)
Definition SdFat.h:75
void initErrorHalt(const char *msg)
Definition SdFat.h:395
void errorPrint(const char *msg)
Definition SdFat.h:378
bool begin(SdioConfig sdioConfig)
Definition SdFat.h:95
void initErrorPrint()
Definition SdFat.h:339
bool begin(SdCsPin_t csPin=SS)
Definition SdFat.h:58
Vol * vol()
Definition SdFat.h:324
void errorHalt(print_t *pr, const __FlashStringHelper *msg)
Definition SdFat.h:165
SdCard * card()
Definition SdFat.h:101
void errorHalt(print_t *pr)
Definition SdFat.h:132
void initErrorHalt(print_t *pr)
Definition SdFat.h:176
void initErrorHalt(print_t *pr, const char *msg)
Definition SdFat.h:187
uint8_t sdErrorCode()
Definition SdFat.h:308
void errorPrint(const __FlashStringHelper *msg)
Definition SdFat.h:386
Setup a SPI card or SDIO card.
Definition SdCard.h:59
SdCard * newCard(SdSpiConfig config)
Definition SdCard.h:66
Abstract interface for an SD card.
Definition SdCardInterface.h:34
virtual uint32_t sectorCount()=0
virtual uint32_t errorData() const =0
virtual uint8_t errorCode() const =0
SD file system class for exFAT volumes.
Definition SdFat.h:444
bool format(print_t *pr=nullptr)
Definition SdFat.h:451
SD file system class for FAT volumes.
Definition SdFat.h:420
bool format(print_t *pr=nullptr)
Definition SdFat.h:427
static void dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))
Definition SdFat.h:565
SdFile(const char *path, oflag_t oflag)
Definition SdFat.h:535
static void dateTimeCallbackCancel()
Definition SdFat.h:570
SdFile()
Definition SdFat.h:528
SD file system class for FAT16, FAT32, and exFAT volumes.
Definition SdFat.h:468
bool format(print_t *pr=nullptr)
Definition SdFat.h:475
SPI card configuration.
Definition SdSpiDriver.h:112
SDIO card configuration.
Definition SdioCard.h:37
static void halt()
Definition SysCall.h:53
void clearCallback()
Definition FsDateTime.cpp:40
void setCallback(void(*dateTime)(uint16_t *date, uint16_t *time))
Definition FsDateTime.cpp:44