63 lines
1.4 KiB
C++
63 lines
1.4 KiB
C++
#include "SDCardManager.h"
|
|
|
|
SDCardManager::SDCardManager(const Pin csPin, uint32_t 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.0;
|
|
|
|
switch(sizeUnit)
|
|
{
|
|
case KBIT:
|
|
result = (double)numberOf512BytesChunks/2.0*8;
|
|
break;
|
|
case KBYTE:
|
|
result = (double)numberOf512BytesChunks/2.0;
|
|
break;
|
|
case MBIT:
|
|
result = (double)numberOf512BytesChunks/2.0/1024.0*8;
|
|
break;
|
|
case MBYTE:
|
|
result = (double)numberOf512BytesChunks/2.0/1024.0;
|
|
break;
|
|
case GBIT:
|
|
result = (double)numberOf512BytesChunks/2.0/1024.0/1024.0*8;
|
|
break;
|
|
case GBYTE:
|
|
result = (double)numberOf512BytesChunks/2.0/1024.0/1024.0;
|
|
break;
|
|
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;
|
|
}
|
|
|
|
CFGDictionary<CFGParameterValue> *SDCardManager::getCFGFile(const char *cfgFile)
|
|
{
|
|
CFGFileParser cfgFileParser(*this, cfgFile);
|
|
return (CFGDictionary<CFGParameterValue> *) cfgFileParser.parseFile();
|
|
}
|