Added a parameter for max files in SD (#2563)
This commit is contained in:
parent
7df50a97d1
commit
d5f71ce545
@ -22,7 +22,7 @@ using namespace fs;
|
|||||||
|
|
||||||
SDFS::SDFS(FSImplPtr impl): FS(impl), _pdrv(0xFF) {}
|
SDFS::SDFS(FSImplPtr impl): FS(impl), _pdrv(0xFF) {}
|
||||||
|
|
||||||
bool SDFS::begin(uint8_t ssPin, SPIClass &spi, uint32_t frequency, const char * mountpoint)
|
bool SDFS::begin(uint8_t ssPin, SPIClass &spi, uint32_t frequency, const char * mountpoint, uint8_t max_files)
|
||||||
{
|
{
|
||||||
if(_pdrv != 0xFF) {
|
if(_pdrv != 0xFF) {
|
||||||
return true;
|
return true;
|
||||||
@ -35,7 +35,7 @@ bool SDFS::begin(uint8_t ssPin, SPIClass &spi, uint32_t frequency, const char *
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!sdcard_mount(_pdrv, mountpoint)){
|
if(!sdcard_mount(_pdrv, mountpoint, max_files)){
|
||||||
sdcard_unmount(_pdrv);
|
sdcard_unmount(_pdrv);
|
||||||
sdcard_uninit(_pdrv);
|
sdcard_uninit(_pdrv);
|
||||||
_pdrv = 0xFF;
|
_pdrv = 0xFF;
|
||||||
|
@ -28,7 +28,7 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
SDFS(FSImplPtr impl);
|
SDFS(FSImplPtr impl);
|
||||||
bool begin(uint8_t ssPin=SS, SPIClass &spi=SPI, uint32_t frequency=4000000, const char * mountpoint="/sd");
|
bool begin(uint8_t ssPin=SS, SPIClass &spi=SPI, uint32_t frequency=4000000, const char * mountpoint="/sd", uint8_t max_files=5);
|
||||||
void end();
|
void end();
|
||||||
sdcard_type_t cardType();
|
sdcard_type_t cardType();
|
||||||
uint64_t cardSize();
|
uint64_t cardSize();
|
||||||
|
@ -711,7 +711,7 @@ uint8_t sdcard_unmount(uint8_t pdrv)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool sdcard_mount(uint8_t pdrv, const char* path)
|
bool sdcard_mount(uint8_t pdrv, const char* path, uint8_t max_files)
|
||||||
{
|
{
|
||||||
ardu_sdcard_t * card = s_cards[pdrv];
|
ardu_sdcard_t * card = s_cards[pdrv];
|
||||||
if(pdrv >= FF_VOLUMES || card == NULL){
|
if(pdrv >= FF_VOLUMES || card == NULL){
|
||||||
@ -725,7 +725,7 @@ bool sdcard_mount(uint8_t pdrv, const char* path)
|
|||||||
|
|
||||||
FATFS* fs;
|
FATFS* fs;
|
||||||
char drv[3] = {(char)('0' + pdrv), ':', 0};
|
char drv[3] = {(char)('0' + pdrv), ':', 0};
|
||||||
esp_err_t err = esp_vfs_fat_register(path, drv, 5, &fs);
|
esp_err_t err = esp_vfs_fat_register(path, drv, max_files, &fs);
|
||||||
if (err == ESP_ERR_INVALID_STATE) {
|
if (err == ESP_ERR_INVALID_STATE) {
|
||||||
log_e("esp_vfs_fat_register failed 0x(%x): SD is registered.", err);
|
log_e("esp_vfs_fat_register failed 0x(%x): SD is registered.", err);
|
||||||
return false;
|
return false;
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
uint8_t sdcard_init(uint8_t cs, SPIClass * spi, int hz);
|
uint8_t sdcard_init(uint8_t cs, SPIClass * spi, int hz);
|
||||||
uint8_t sdcard_uninit(uint8_t pdrv);
|
uint8_t sdcard_uninit(uint8_t pdrv);
|
||||||
|
|
||||||
bool sdcard_mount(uint8_t pdrv, const char* path);
|
bool sdcard_mount(uint8_t pdrv, const char* path, uint8_t max_files);
|
||||||
uint8_t sdcard_unmount(uint8_t pdrv);
|
uint8_t sdcard_unmount(uint8_t pdrv);
|
||||||
|
|
||||||
sdcard_type_t sdcard_type(uint8_t pdrv);
|
sdcard_type_t sdcard_type(uint8_t pdrv);
|
||||||
|
Loading…
Reference in New Issue
Block a user