Modified SDCardManager : added new methods and changed constructor

This commit is contained in:
anschrammh 2019-10-19 15:27:51 +02:00
parent b272ab0f22
commit 6da0671121
2 changed files with 32 additions and 3 deletions

View File

@ -1,13 +1,16 @@
#include "SDCardManager.h"
SDCardManager::SDCardManager()
SDCardManager::SDCardManager(const Pin csPin, SPISettings cfg) : _csPin(csPin), _spiCfg(cfg), _mounted(false)
{
}
double SDCardManager::getSize(const SizeUnit sizeUnit)
{
uint64_t numberOf512BytesChunks = blocksPerCluster() * totalClusters();//cardSize();
double result = 0;
if(!isMounted()) return 0;
switch(sizeUnit)
{
@ -32,6 +35,22 @@ double SDCardManager::getSize(const SizeUnit sizeUnit)
default:
result = (double)numberOf512BytesChunks/2.0/1024.0/1024.0;
}
return result;
}
boolean SDCardManager::mountSD()
{
_mounted = this->begin(_csPin, _spiCfg);
return _mounted;
}
void SDCardManager::unMountSD()
{
_mounted = false;
this->end();
}
boolean SDCardManager::isMounted()
{
return _mounted;
}

View File

@ -7,10 +7,20 @@ class SDCardManager : public SDClass
{
friend class SAB;
public:
double getSize(const SizeUnit sizeUnit = GBYTE);
SDCardManager(const Pin csPin, SPISettings cfg);
double getSize(const SizeUnit sizeUnit = GBYTE);
boolean mountSD();
void unMountSD();
boolean isMounted();
protected:
SDCardManager();
private:
const Pin _csPin;
SPISettings _spiCfg;
boolean _mounted;
};
#endif //SDCARDMANAGER_H