30#ifdef ARDUINO_ARCH_ESP32
32# define ESP_SD LittleFS
33# define ESP_SDFS LittleFS
34# elif defined (SUPPORT_SD_MMC)
36# define ESP_SDFS SD_MMC
40# define ESP_SDFS SdFile
44# define ESP_SDFS SdFile
63 bool handleFileUpload (
const String &
filename,
size_t index, uint8_t * data,
size_t len,
bool final, uint32_t totalLen);
84 bool SaveFlashFile (
const String & FileName, String & FileData);
85 bool SaveFlashFile (
const String & FileName,
const char * FileData);
86 bool SaveFlashFile (
const String & FileName, JsonDocument & FileData);
87 bool SaveFlashFile (
const String &
filename, uint32_t index, uint8_t *data, uint32_t len,
bool final);
89 bool ReadFlashFile (
const String & FileName, String & FileData);
90 bool ReadFlashFile (
const String & FileName, JsonDocument & FileData);
91 bool ReadFlashFile (
const String & FileName,
byte * FileData,
size_t maxlen);
98 void SaveSdFile (
const String & FileName, String & FileData);
99 void SaveSdFile (
const String & FileName, JsonVariant & FileData);
101 uint64_t
ReadSdFile (
const FileId & FileHandle,
byte * FileData, uint64_t NumBytesToRead, uint64_t StartingPosition);
102 bool ReadSdFile (
const String & FileName, String & FileData);
103 bool ReadSdFile (
const String & FileName, JsonDocument & FileData);
105 uint64_t
WriteSdFile (
const FileId & FileHandle,
byte * FileData, uint64_t NumBytesToWrite);
106 uint64_t
WriteSdFile (
const FileId & FileHandle,
byte * FileData, uint64_t NumBytesToWrite, uint64_t StartingPosition);
111 void RenameSdFile (
const String & OldName,
const String & NewName);
120#define SD_BLOCK_SIZE 512
122#if defined ARDUINO_ARCH_ESP8266
123# define MAX_SD_BUFFER_SIZE (4 * SD_BLOCK_SIZE)
125# define MAX_SD_BUFFER_SIZE (14 * SD_BLOCK_SIZE)
128#define ConnrectFilename(n) \
130 if(0 != n.indexOf("/")) \
132 n = String("/") + n; \
142 bool SeekSdFile(
const FileId & FileHandle, uint64_t position, SeekMode Mode);
145 #ifdef DEFAULT_SD_POWER_PIN
146 void PowerCycleSdCard();
149# define SD_CARD_CLK_MHZ SD_SCK_MHZ(37)
150#ifndef MaxSdTransSpeedMHz
151# define MaxSdTransSpeedMHz 200
154#ifdef ENABLE_DEDICATED_SPI
155#define ESPS_SPI_MODE DEDICATED_SPI
157#define ESPS_SPI_MODE SHARED_SPI
162 void listDir (fs::FS& fs, String dirname, uint8_t levels);
172 #ifdef DEFAULT_SD_POWER_PIN
173 uint8_t sd_pwr_pin = DEFAULT_SD_POWER_PIN;
174 uint8_t sd_pwr_on = DEFAULT_SD_POWER_ON;
175 uint16_t sd_pwr_dly = 1000;
196 unsigned spec_vers : 6;
201 public: uint32_t Raw32_0;
206 unsigned read_bl_len : 4;
207 unsigned read_bl_partial : 1;
208 unsigned write_blk_misalign : 1;
209 unsigned read_blk_misalign : 1;
210 unsigned dsr_imp : 1;
211 unsigned c_size : 12;
213 public: uint32_t Raw32_1;
219 unsigned vdd_r_curr_min : 3;
220 unsigned vdd_r_curr_max : 3;
221 unsigned vdd_w_curr_min : 3;
222 unsigned vdd_w_curr_max : 3;
223 unsigned c_size_mult : 3;
224 unsigned reserved0 : 7;
226 unsigned ver2_c_size : 22;
228 unsigned erase_blk_en : 1;
229 unsigned sector_size : 7;
230 unsigned reserved1 : 2;
232 public: uint32_t Raw32_2;
236 unsigned wp_grp_size : 7;
237 unsigned wp_grp_enable : 1;
238 unsigned reserved2 : 2;
239 unsigned r2w_factor : 3;
240 unsigned write_bl_len : 4;
241 unsigned write_bl_partial : 1;
242 unsigned default_ecc : 5;
243 unsigned file_format_grp : 1;
245 unsigned perm_write_protect : 1;
246 unsigned tmp_write_protect : 1;
254 unsigned reserved3 : 1;
256 public: uint32_t Raw32_3;
259#define MaxOpenFiles 5
280#define DATABUFFERSIZE (5 * 1024)
289#ifdef ARDUINO_ARCH_ESP32
290 SemaphoreHandle_t SdAccessSemaphore = NULL;
297#ifdef DEBUG_FILE_HANDLES
298#define DEBUG_FILE_HANDLE(fh) \
300 if (fh == c_FileMgr::INVALID_FILE_HANDLE) \
302 DEBUG_V(String(F("Found an invalid file handle before a request to FileMgr. File Handle: ")) + String(fh)); \
306 if (-1 == FileMgr.FileListFindSdFileHandle (fh)) \
308 DEBUG_V(String(F("Could not look up File Handle: ")) + String(fh)); \
313#define DEBUG_FILE_HANDLE(fh)
SdFs sd
Definition FileMgr.cpp:30
c_FileMgr FileMgr
Definition FileMgr.cpp:2527
#define MaxOpenFiles
Definition FileMgr.hpp:259
#define MaxSdTransSpeedMHz
Definition FileMgr.hpp:151
#define SD_CARD_MISO_PIN
Definition GPIO_Defs_ESP32_Bong69.hpp:42
#define SD_CARD_CS_PIN
Definition GPIO_Defs_ESP32_Bong69.hpp:45
#define SD_CARD_MOSI_PIN
Definition GPIO_Defs_ESP32_Bong69.hpp:43
#define SD_CARD_CLK_PIN
Definition GPIO_Defs_ESP32_Bong69.hpp:44
Definition FileMgr.hpp:48
FileId CreateSdFileHandle()
Definition FileMgr.cpp:1114
void printDirectory(FsFile &dir, int numTabs)
Definition FileMgr.cpp:1298
void GetListOfSdFiles(std::vector< String > &Response)
Definition FileMgr.cpp:1195
void StartSdCard()
Definition FileMgr.cpp:200
bool FoundZipFile
Definition FileMgr.hpp:187
void SetSdSpeed()
Definition FileMgr.cpp:557
bool SeekSdFile(const FileId &FileHandle, uint64_t position, SeekMode Mode)
Definition FileMgr.cpp:2398
void SaveSdFile(const String &FileName, String &FileData)
Definition FileMgr.cpp:1339
void BuildDefaultFseqList()
Definition FileMgr.cpp:2379
String fsUploadFileName
Definition FileMgr.hpp:178
void GetConfig(JsonObject &json)
Definition FileMgr.cpp:349
bool OpenSdFile(const String &FileName, FileMode Mode, FileId &FileHandle, int FileListIndex)
Definition FileMgr.cpp:1375
static const FileId INVALID_FILE_HANDLE
Definition FileMgr.hpp:54
void InitSdFileList()
Definition FileMgr.cpp:1070
File FileSendDir
Definition FileMgr.hpp:285
c_FileMgr()
< Start up the driver and put it into a safe mode
Definition FileMgr.cpp:148
void Begin()
< Start the module
Definition FileMgr.cpp:169
void DeleteSdFile(const String &FileName)
Definition FileMgr.cpp:1151
uint8_t clk_pin
Definition FileMgr.hpp:170
uint8_t cs_pin
Definition FileMgr.hpp:171
uint32_t LastFileSent
Definition FileMgr.hpp:286
void listDir(fs::FS &fs, String dirname, uint8_t levels)
Definition FileMgr.cpp:685
bool IsCompressed(String FileName)
Definition FileMgr.cpp:2488
void GetStatus(JsonObject &json)
Definition FileMgr.cpp:374
void LockSd()
Definition FileMgr.cpp:2451
bool LoadFlashFile(const String &FileName, DeserializationHandler Handler)
Definition FileMgr.cpp:733
int FileListFindSdFileHandle(FileId HandleToFind)
Definition FileMgr.cpp:1086
void RenameSdFile(const String &OldName, const String &NewName)
Definition FileMgr.cpp:1869
FileListEntry_t FileList[MaxOpenFiles]
Definition FileMgr.hpp:282
char FtpUserName[65]
Definition FileMgr.hpp:181
uint64_t ReadSdFile(const FileId &FileHandle, byte *FileData, uint64_t NumBytesToRead, uint64_t StartingPosition)
Definition FileMgr.cpp:1575
std::function< void(JsonDocument &json)> DeserializationHandler
Definition FileMgr.hpp:66
uint32_t MaxSdSpeed
Definition FileMgr.hpp:186
void FindFirstZipFile(String &FileName)
Definition FileMgr.cpp:2096
virtual ~c_FileMgr()
< deallocate any resources and put the output channels into a safe state
Definition FileMgr.cpp:159
void UnLockSd()
Definition FileMgr.cpp:2463
uint8_t mosi_pin
Definition FileMgr.hpp:169
bool handleFileUpload(const String &filename, size_t index, uint8_t *data, size_t len, bool final, uint32_t totalLen)
Definition FileMgr.cpp:2211
bool FtpEnabled
Definition FileMgr.hpp:184
void NetworkStateChanged(bool NewState)
Definition FileMgr.cpp:234
uint32_t expectedIndex
Definition FileMgr.hpp:287
void BuildFseqList(bool DisplayFileNames)
Definition FileMgr.cpp:1893
uint64_t WriteSdFileBuf(const FileId &FileHandle, byte *FileData, uint64_t NumBytesToWrite)
Definition FileMgr.cpp:1702
FileMode
Definition FileMgr.hpp:69
@ FileWrite
Definition FileMgr.hpp:71
@ FileAppend
Definition FileMgr.hpp:72
@ FileRead
Definition FileMgr.hpp:70
void SetSpiIoPins()
Definition FileMgr.cpp:416
bool SaveFlashFile(const String &FileName, String &FileData)
Definition FileMgr.cpp:801
char WelcomeString[65]
Definition FileMgr.hpp:183
FileId fsUploadFileHandle
Definition FileMgr.hpp:177
void DescribeSdCardToUser()
Definition FileMgr.cpp:1176
void CloseSdFile(FileId &FileHandle)
Definition FileMgr.cpp:1613
bool SdCardIsInstalled()
Definition FileMgr.hpp:95
void GetSdInfo(SdInfo &Response)
Definition FileMgr.cpp:2503
bool ReadFlashFile(const String &FileName, String &FileData)
Definition FileMgr.cpp:936
uint32_t fsUploadStartTime
Definition FileMgr.hpp:180
uint64_t GetSdFileSize(const String &FileName)
Definition FileMgr.cpp:1824
void handleFileUploadNewFile(const String &filename)
Definition FileMgr.cpp:2333
uint64_t WriteSdFile(const FileId &FileHandle, byte *FileData, uint64_t NumBytesToWrite)
Definition FileMgr.cpp:1653
bool SdCardInstalled
Definition FileMgr.hpp:167
void ResetSdCard()
Definition FileMgr.cpp:624
bool SetConfig(JsonObject &json)
Definition FileMgr.cpp:275
bool fsUploadFileSavedIsEnabled
Definition FileMgr.hpp:179
uint32_t FileId
Definition FileMgr.hpp:53
void AbortSdFileUpload()
Definition FileMgr.cpp:2474
void UpdateFtp()
Definition FileMgr.cpp:224
uint8_t miso_pin
Definition FileMgr.hpp:168
uint64_t SdCardSize
Definition FileMgr.hpp:185
void DeleteFlashFile(String FileName)
Definition FileMgr.cpp:647
void Poll()
Definition FileMgr.cpp:261
void RenameFlashFile(String OldName, String NewName)
Definition FileMgr.cpp:665
bool FlashFileExists(const String &FileName)
Definition FileMgr.cpp:1061
char FtpPassword[65]
Definition FileMgr.hpp:182
void GetDriverName(String &Name)
Definition FileMgr.hpp:114
char filename[250]
Definition fseq.h:7
struct FSEQParsedRangeEntry __attribute__
Definition FileMgr.hpp:261
uint64_t size
Definition FileMgr.hpp:268
FsFile fsFile
Definition FileMgr.hpp:266
uint64_t offset
Definition FileMgr.hpp:277
FileId handle
Definition FileMgr.hpp:262
FileMode mode
Definition FileMgr.hpp:271
char Filename[65]
Definition FileMgr.hpp:270
int entryId
Definition FileMgr.hpp:269
struct c_FileMgr::FileListEntry_t::@2 buffer
byte * DataBuffer
Definition FileMgr.hpp:275
bool IsOpen
Definition FileMgr.hpp:272
Definition FileMgr.hpp:76
uint64_t Used
Definition FileMgr.hpp:79
uint64_t MaxSize
Definition FileMgr.hpp:77
uint64_t Available
Definition FileMgr.hpp:78