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,7 +1,8 @@
#include "SDCardManager.h" #include "SDCardManager.h"
SDCardManager::SDCardManager() SDCardManager::SDCardManager(const Pin csPin, SPISettings cfg) : _csPin(csPin), _spiCfg(cfg), _mounted(false)
{ {
} }
double SDCardManager::getSize(const SizeUnit sizeUnit) double SDCardManager::getSize(const SizeUnit sizeUnit)
@ -9,6 +10,8 @@ double SDCardManager::getSize(const SizeUnit sizeUnit)
uint64_t numberOf512BytesChunks = blocksPerCluster() * totalClusters();//cardSize(); uint64_t numberOf512BytesChunks = blocksPerCluster() * totalClusters();//cardSize();
double result = 0; double result = 0;
if(!isMounted()) return 0;
switch(sizeUnit) switch(sizeUnit)
{ {
case KBIT: case KBIT:
@ -32,6 +35,22 @@ double SDCardManager::getSize(const SizeUnit sizeUnit)
default: default:
result = (double)numberOf512BytesChunks/2.0/1024.0/1024.0; result = (double)numberOf512BytesChunks/2.0/1024.0/1024.0;
} }
return result; 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; friend class SAB;
public: public:
SDCardManager(const Pin csPin, SPISettings cfg);
double getSize(const SizeUnit sizeUnit = GBYTE); double getSize(const SizeUnit sizeUnit = GBYTE);
boolean mountSD();
void unMountSD();
boolean isMounted();
protected: protected:
SDCardManager(); SDCardManager();
private: private:
const Pin _csPin;
SPISettings _spiCfg;
boolean _mounted;
}; };
#endif //SDCARDMANAGER_H #endif //SDCARDMANAGER_H