From 6da0671121a710c8c87de36b520a9d8d68043089 Mon Sep 17 00:00:00 2001 From: anschrammh Date: Sat, 19 Oct 2019 15:27:51 +0200 Subject: [PATCH] Modified SDCardManager : added new methods and changed constructor --- src/app/SDCardManager.cpp | 23 +++++++++++++++++++++-- src/app/SDCardManager.h | 12 +++++++++++- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/app/SDCardManager.cpp b/src/app/SDCardManager.cpp index 184d125..821826e 100644 --- a/src/app/SDCardManager.cpp +++ b/src/app/SDCardManager.cpp @@ -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; +} diff --git a/src/app/SDCardManager.h b/src/app/SDCardManager.h index 3f17d91..5ff2bf5 100644 --- a/src/app/SDCardManager.h +++ b/src/app/SDCardManager.h @@ -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