Skip to content

Commit 0ea0126

Browse files
Refactor ScopedFile to use FileMode enum instead of boolean flags (#10)
- Introduced `FileMode` enum class with `Read` and `Write` modes
1 parent cb078a9 commit 0ea0126

File tree

4 files changed

+21
-16
lines changed

4 files changed

+21
-16
lines changed

src/ScopedFile.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ SOFTWARE.
2323
*/
2424
#include "ScopedFile.h"
2525

26-
ScopedFile::ScopedFile(const char *filename, bool openToWrite, uint8_t sdPin, uint32_t frequency)
26+
ScopedFile::ScopedFile(const char *filename, FileMode mode, uint8_t sdPin, uint32_t frequency)
2727
{
28-
open(filename, openToWrite, sdPin,frequency);
28+
open(filename, mode, sdPin, frequency);
2929
}
3030

31-
ScopedFile::ScopedFile(const String &filename, bool openToWrite, uint8_t sdPin, uint32_t frequency)
31+
ScopedFile::ScopedFile(const String &filename, FileMode mode, uint8_t sdPin, uint32_t frequency)
3232
{
33-
open(filename.c_str(), openToWrite, sdPin,frequency);
33+
open(filename.c_str(), mode, sdPin, frequency);
3434
}
3535

3636
ScopedFile::~ScopedFile()
@@ -52,12 +52,12 @@ bool ScopedFile::isValid() const
5252
return file_;
5353
}
5454

55-
void ScopedFile::open(const char *filename, bool openToWrite, uint8_t sdPin, uint32_t frequency)
55+
void ScopedFile::open(const char *filename, FileMode mode, uint8_t sdPin, uint32_t frequency)
5656
{
5757
if (!SD.begin(sdPin, SPI, frequency))
5858
{
5959
file_ = File();
6060
return;
6161
}
62-
file_ = SD.open(filename, openToWrite ? FILE_WRITE : FILE_READ);
62+
file_ = SD.open(filename, (mode == FileMode::Write) ? FILE_WRITE : FILE_READ);
6363
}

src/ScopedFile.h

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,19 @@ SOFTWARE.
2727
#include <Arduino.h>
2828
#include <SD.h>
2929

30-
#define OPEN_WRITE true
31-
#define OPEN_READ false
30+
enum class FileMode
31+
{
32+
Read,
33+
Write
34+
};
3235

3336
class ScopedFile
3437
{
3538
public:
36-
ScopedFile(const char *filename, bool openToWrite = false, uint8_t sdPin = SS, uint32_t frequency = 4000000);
37-
ScopedFile(const String &filename, bool openToWrite = false, uint8_t sdPin = SS, uint32_t frequency = 4000000);
39+
40+
41+
ScopedFile(const char *filename, FileMode mode = FileMode::Read, uint8_t sdPin = SS, uint32_t frequency = 4000000);
42+
ScopedFile(const String &filename, FileMode mode = FileMode::Read, uint8_t sdPin = SS, uint32_t frequency = 4000000);
3843
~ScopedFile();
3944

4045
File &get();
@@ -47,7 +52,7 @@ class ScopedFile
4752

4853
private:
4954
File file_;
50-
void open(const char *filename, bool openToWrite, uint8_t sdPin, uint32_t frequency);
55+
void open(const char *filename, FileMode mode, uint8_t sdPin, uint32_t frequency);
5156
};
5257

5358
#endif // SCOPEDFILE_H

src/httpTask.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ bool loadMoonSettings(String &result)
7676

7777
std::array<float, NUMBER_OF_CHANNELS> tempMoonLevel;
7878
{
79-
ScopedFile scopedFile(MOON_SETTINGS_FILE, OPEN_READ, SDCARD_SS, 20000000);
79+
ScopedFile scopedFile(MOON_SETTINGS_FILE, FileMode::Read, SDCARD_SS, 20000000);
8080
if (!scopedFile.isValid())
8181
{
8282
result = "SD Card mount or file open failed";
@@ -149,7 +149,7 @@ bool saveMoonSettings(String &result)
149149
return false;
150150
}
151151

152-
ScopedFile scopedFile(MOON_SETTINGS_FILE, OPEN_WRITE, SDCARD_SS, 20000000);
152+
ScopedFile scopedFile(MOON_SETTINGS_FILE, FileMode::Write, SDCARD_SS, 20000000);
153153
if (!scopedFile.isValid())
154154
{
155155
result = "SD Card mount or file open failed";
@@ -236,7 +236,7 @@ time_t time_diff(struct tm *start, struct tm *end)
236236
static bool handleFileUpload(const String &data, const String &filePath, String &result)
237237
{
238238

239-
ScopedFile scopedFile(filePath, OPEN_WRITE, SDCARD_SS, 20000000);
239+
ScopedFile scopedFile(filePath, FileMode::Write, SDCARD_SS, 20000000);
240240
if (!scopedFile.isValid())
241241
{
242242
result = "SD Card mount or file open failed";

src/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ bool saveDefaultTimers(String &result)
247247
return false;
248248
}
249249

250-
ScopedFile scopedFile(DEFAULT_TIMERFILE, OPEN_WRITE, SDCARD_SS, 20000000);
250+
ScopedFile scopedFile(DEFAULT_TIMERFILE, FileMode::Write, SDCARD_SS, 20000000);
251251
if (!scopedFile.isValid())
252252
{
253253
result = "SD Card mount or file open failed";
@@ -294,7 +294,7 @@ bool loadDefaultTimers(String &result)
294294
return false;
295295
}
296296

297-
ScopedFile scopedFile(DEFAULT_TIMERFILE, OPEN_READ, SDCARD_SS, 20000000);
297+
ScopedFile scopedFile(DEFAULT_TIMERFILE, FileMode::Read, SDCARD_SS, 20000000);
298298
if (!scopedFile.isValid())
299299
{
300300
result = "SD Card mount or file open failed";

0 commit comments

Comments
 (0)