30#ifdef ARDUINO_ARCH_ESP32
33# define ESP_SDFS SD_MMC
37# define ESP_SDFS SdFile
41# define ESP_SDFS SdFile
60 bool handleFileUpload (
const String &
filename,
size_t index, uint8_t * data,
size_t len,
bool final, uint32_t totalLen);
74 bool SaveFlashFile (
const String & FileName, String & FileData);
75 bool SaveFlashFile (
const String & FileName,
const char * FileData);
76 bool SaveFlashFile (
const String & FileName, JsonDocument & FileData);
77 bool SaveFlashFile (
const String &
filename, uint32_t index, uint8_t *data, uint32_t len,
bool final);
79 bool ReadFlashFile (
const String & FileName, String & FileData);
80 bool ReadFlashFile (
const String & FileName, JsonDocument & FileData);
81 bool ReadFlashFile (
const String & FileName,
byte * FileData,
size_t maxlen);
88 void SaveSdFile (
const String & FileName, String & FileData);
89 void SaveSdFile (
const String & FileName, JsonVariant & FileData);
91 uint64_t
ReadSdFile (
const FileId & FileHandle,
byte * FileData, uint64_t NumBytesToRead, uint64_t StartingPosition);
92 bool ReadSdFile (
const String & FileName, String & FileData);
93 bool ReadSdFile (
const String & FileName, JsonDocument & FileData);
95 uint64_t
WriteSdFile (
const FileId & FileHandle,
byte * FileData, uint64_t NumBytesToWrite);
96 uint64_t
WriteSdFile (
const FileId & FileHandle,
byte * FileData, uint64_t NumBytesToWrite, uint64_t StartingPosition);
109#define SD_BLOCK_SIZE 512
111#if defined ARDUINO_ARCH_ESP8266
112# define MAX_SD_BUFFER_SIZE (4 * SD_BLOCK_SIZE)
114# define MAX_SD_BUFFER_SIZE (14 * SD_BLOCK_SIZE)
117#define ConnrectFilename(n) \
119 if(0 != n.indexOf("/")) \
121 n = String("/") + n; \
131 bool SeekSdFile(
const FileId & FileHandle, uint64_t position, SeekMode Mode);
135# define SD_CARD_CLK_MHZ SD_SCK_MHZ(37)
136#ifndef MaxSdTransSpeedMHz
137# define MaxSdTransSpeedMHz 200
141 void listDir (fs::FS& fs, String dirname, uint8_t levels);
170 unsigned spec_vers : 6;
175 public: uint32_t Raw32_0;
180 unsigned read_bl_len : 4;
181 unsigned read_bl_partial : 1;
182 unsigned write_blk_misalign : 1;
183 unsigned read_blk_misalign : 1;
184 unsigned dsr_imp : 1;
185 unsigned c_size : 12;
187 public: uint32_t Raw32_1;
193 unsigned vdd_r_curr_min : 3;
194 unsigned vdd_r_curr_max : 3;
195 unsigned vdd_w_curr_min : 3;
196 unsigned vdd_w_curr_max : 3;
197 unsigned c_size_mult : 3;
198 unsigned reserved0 : 7;
200 unsigned ver2_c_size : 22;
202 unsigned erase_blk_en : 1;
203 unsigned sector_size : 7;
204 unsigned reserved1 : 2;
206 public: uint32_t Raw32_2;
210 unsigned wp_grp_size : 7;
211 unsigned wp_grp_enable : 1;
212 unsigned reserved2 : 2;
213 unsigned r2w_factor : 3;
214 unsigned write_bl_len : 4;
215 unsigned write_bl_partial : 1;
216 unsigned default_ecc : 5;
217 unsigned file_format_grp : 1;
219 unsigned perm_write_protect : 1;
220 unsigned tmp_write_protect : 1;
228 unsigned reserved3 : 1;
230 public: uint32_t Raw32_3;
233#define MaxOpenFiles 5
250#define DATABUFFERSIZE (5 * 1024)
259#ifdef ARDUINO_ARCH_ESP32
260 SemaphoreHandle_t SdAccessSemaphore = NULL;
267#ifdef DEBUG_FILE_HANDLES
268#define DEBUG_FILE_HANDLE(fh) \
270 if (fh == c_FileMgr::INVALID_FILE_HANDLE) \
272 DEBUG_V(String(F("Found an invalid file handle before a request to FileMgr. File Handle: ")) + String(fh)); \
276 if (-1 == FileMgr.FileListFindSdFileHandle (fh)) \
278 DEBUG_V(String(F("Could not look up File Handle: ")) + String(fh)); \
283#define DEBUG_FILE_HANDLE(fh)
SdFs sd
Definition FileMgr.cpp:30
c_FileMgr FileMgr
Definition FileMgr.cpp:2266
#define MaxOpenFiles
Definition FileMgr.hpp:233
#define MaxSdTransSpeedMHz
Definition FileMgr.hpp:137
#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:45
FileId CreateSdFileHandle()
Definition FileMgr.cpp:1072
void printDirectory(FsFile &dir, int numTabs)
Definition FileMgr.cpp:1208
void GetListOfSdFiles(std::vector< String > &Response)
Definition FileMgr.cpp:1148
void StartSdCard()
Definition FileMgr.cpp:193
bool FoundZipFile
Definition FileMgr.hpp:161
void SetSdSpeed()
Definition FileMgr.cpp:523
bool SeekSdFile(const FileId &FileHandle, uint64_t position, SeekMode Mode)
Definition FileMgr.cpp:2161
void SaveSdFile(const String &FileName, String &FileData)
Definition FileMgr.cpp:1249
void BuildDefaultFseqList()
Definition FileMgr.cpp:2142
void GetConfig(JsonObject &json)
Definition FileMgr.cpp:335
bool OpenSdFile(const String &FileName, FileMode Mode, FileId &FileHandle, int FileListIndex)
Definition FileMgr.cpp:1285
static const FileId INVALID_FILE_HANDLE
Definition FileMgr.hpp:51
void InitSdFileList()
Definition FileMgr.cpp:1028
File FileSendDir
Definition FileMgr.hpp:255
c_FileMgr()
< Start up the driver and put it into a safe mode
Definition FileMgr.cpp:143
void Begin()
< Start the module
Definition FileMgr.cpp:163
void DeleteSdFile(const String &FileName)
Definition FileMgr.cpp:1109
uint8_t clk_pin
Definition FileMgr.hpp:149
char fsUploadFileName[65]
Definition FileMgr.hpp:152
uint8_t cs_pin
Definition FileMgr.hpp:150
uint32_t LastFileSent
Definition FileMgr.hpp:256
void listDir(fs::FS &fs, String dirname, uint8_t levels)
Definition FileMgr.cpp:648
uint64_t SdCardSizeMB
Definition FileMgr.hpp:159
bool IsCompressed(String FileName)
Definition FileMgr.cpp:2251
void GetStatus(JsonObject &json)
Definition FileMgr.cpp:354
void LockSd()
Definition FileMgr.cpp:2214
bool LoadFlashFile(const String &FileName, DeserializationHandler Handler)
Definition FileMgr.cpp:691
int FileListFindSdFileHandle(FileId HandleToFind)
Definition FileMgr.cpp:1044
FileListEntry_t FileList[MaxOpenFiles]
Definition FileMgr.hpp:252
char FtpUserName[65]
Definition FileMgr.hpp:155
uint64_t ReadSdFile(const FileId &FileHandle, byte *FileData, uint64_t NumBytesToRead, uint64_t StartingPosition)
Definition FileMgr.cpp:1476
std::function< void(JsonDocument &json)> DeserializationHandler
Definition FileMgr.hpp:63
uint32_t MaxSdSpeed
Definition FileMgr.hpp:160
void FindFirstZipFile(String &FileName)
Definition FileMgr.cpp:1903
virtual ~c_FileMgr()
< deallocate any resources and put the output channels into a safe state
Definition FileMgr.cpp:153
void UnLockSd()
Definition FileMgr.cpp:2226
uint8_t mosi_pin
Definition FileMgr.hpp:148
bool handleFileUpload(const String &filename, size_t index, uint8_t *data, size_t len, bool final, uint32_t totalLen)
Definition FileMgr.cpp:1974
bool FtpEnabled
Definition FileMgr.hpp:158
void NetworkStateChanged(bool NewState)
Definition FileMgr.cpp:227
uint32_t expectedIndex
Definition FileMgr.hpp:257
void BuildFseqList(bool DisplayFileNames)
Definition FileMgr.cpp:1778
uint64_t WriteSdFileBuf(const FileId &FileHandle, byte *FileData, uint64_t NumBytesToWrite)
Definition FileMgr.cpp:1595
FileMode
Definition FileMgr.hpp:66
@ FileWrite
Definition FileMgr.hpp:68
@ FileAppend
Definition FileMgr.hpp:69
@ FileRead
Definition FileMgr.hpp:67
void SetSpiIoPins()
Definition FileMgr.cpp:396
bool SaveFlashFile(const String &FileName, String &FileData)
Definition FileMgr.cpp:759
char WelcomeString[65]
Definition FileMgr.hpp:157
void RenameSdFile(String &OldName, String &NewName)
Definition FileMgr.cpp:1758
FileId fsUploadFileHandle
Definition FileMgr.hpp:151
void DescribeSdCardToUser()
Definition FileMgr.cpp:1129
void CloseSdFile(FileId &FileHandle)
Definition FileMgr.cpp:1510
bool SdCardIsInstalled()
Definition FileMgr.hpp:85
bool ReadFlashFile(const String &FileName, String &FileData)
Definition FileMgr.cpp:894
uint32_t fsUploadStartTime
Definition FileMgr.hpp:154
uint64_t GetSdFileSize(const String &FileName)
Definition FileMgr.cpp:1713
void handleFileUploadNewFile(const String &filename)
Definition FileMgr.cpp:2096
uint64_t WriteSdFile(const FileId &FileHandle, byte *FileData, uint64_t NumBytesToWrite)
Definition FileMgr.cpp:1550
bool SdCardInstalled
Definition FileMgr.hpp:146
void ResetSdCard()
Definition FileMgr.cpp:588
bool SetConfig(JsonObject &json)
Definition FileMgr.cpp:268
bool fsUploadFileSavedIsEnabled
Definition FileMgr.hpp:153
uint32_t FileId
Definition FileMgr.hpp:50
void AbortSdFileUpload()
Definition FileMgr.cpp:2237
void UpdateFtp()
Definition FileMgr.cpp:217
uint8_t miso_pin
Definition FileMgr.hpp:147
void DeleteFlashFile(String FileName)
Definition FileMgr.cpp:610
void Poll()
Definition FileMgr.cpp:254
void RenameFlashFile(String OldName, String NewName)
Definition FileMgr.cpp:628
bool FlashFileExists(const String &FileName)
Definition FileMgr.cpp:1019
char FtpPassword[65]
Definition FileMgr.hpp:156
void GetDriverName(String &Name)
Definition FileMgr.hpp:104
char filename[250]
Definition fseq.h:7
struct FSEQParsedRangeEntry __attribute__
Definition FileMgr.hpp:235
uint64_t size
Definition FileMgr.hpp:238
FsFile fsFile
Definition FileMgr.hpp:237
uint64_t offset
Definition FileMgr.hpp:247
FileId handle
Definition FileMgr.hpp:236
FileMode mode
Definition FileMgr.hpp:241
char Filename[65]
Definition FileMgr.hpp:240
int entryId
Definition FileMgr.hpp:239
struct c_FileMgr::FileListEntry_t::@2 buffer
byte * DataBuffer
Definition FileMgr.hpp:245
bool IsOpen
Definition FileMgr.hpp:242