From 29960cf233c3ccf8c938764052feddfdac113d1d Mon Sep 17 00:00:00 2001 From: Mike Fiore Date: Wed, 2 Dec 2015 16:50:07 -0600 Subject: implement AT command to delete survey data file --- CommandTerminal/CmdDeleteSurveyDataFile.cpp | 13 ++++++------- FileName.h | 6 ++++++ Mode/Mode.cpp | 10 ++++------ Mode/Mode.h | 2 +- Mode/ModeSingle.cpp | 4 ++-- Mode/ModeSweep.cpp | 4 ++-- main.cpp | 4 ++++ 7 files changed, 25 insertions(+), 18 deletions(-) create mode 100644 FileName.h diff --git a/CommandTerminal/CmdDeleteSurveyDataFile.cpp b/CommandTerminal/CmdDeleteSurveyDataFile.cpp index d6eca22..325ee7c 100644 --- a/CommandTerminal/CmdDeleteSurveyDataFile.cpp +++ b/CommandTerminal/CmdDeleteSurveyDataFile.cpp @@ -1,4 +1,5 @@ #include "CmdDeleteSurveyDataFile.h" +#include "FileName.h" CmdDeleteSurveyDataFile::CmdDeleteSurveyDataFile(mDot* dot, mts::MTSSerial& serial) : Command(dot, "Delete Survey Data File", "AT+DSDF", "Delete the survey data file"), _serial(serial) @@ -8,14 +9,12 @@ CmdDeleteSurveyDataFile::CmdDeleteSurveyDataFile(mDot* dot, mts::MTSSerial& seri uint32_t CmdDeleteSurveyDataFile::action(std::vector args) { -//ToDo: Delete the file. - if (!_dot->saveConfig()) { - setErrorMessage("Failed to save to flash"); - return 1; - } - - return 0; + if (!_dot->deleteUserFile(file_name)) { + setErrorMessage("Failed to delete survey data file"); + return 1; + } + return 0; } diff --git a/FileName.h b/FileName.h new file mode 100644 index 0000000..745981d --- /dev/null +++ b/FileName.h @@ -0,0 +1,6 @@ +#ifndef __FILENAME_H__ +#define __FILENAME_H__ + +extern char* file_name; + +#endif diff --git a/Mode/Mode.cpp b/Mode/Mode.cpp index 68a1d0e..f6223d8 100644 --- a/Mode/Mode.cpp +++ b/Mode/Mode.cpp @@ -1,8 +1,6 @@ #include "Mode.h" #include "MTSLog.h" -const char* Mode::_file_name = "SurveyData.txt"; - /* * union for converting from 16- bit to 2 8-bit values */ @@ -38,8 +36,8 @@ bool Mode::deleteDataFile() { // if survey data file exists, attempt to delete it std::vector files = _dot->listUserFiles(); for (std::vector::iterator it = files.begin(); it != files.end(); it++) - if (it->name == _file_name) { - if (! _dot->deleteUserFile(_file_name)) + if (it->name == file_name) { + if (! _dot->deleteUserFile(file_name)) ret = false; break; } @@ -120,7 +118,7 @@ bool Mode::appendDataFile(const DataItem& data) { return false; } - if (! _dot->appendUserFile(_file_name, (void*)main_buf, size)) { + if (! _dot->appendUserFile(file_name, (void*)main_buf, size)) { logError("failed to write survey data to file"); return false; } else { @@ -165,7 +163,7 @@ uint32_t Mode::getIndex(DataType type) { else search = 'S'; - file = _dot->openUserFile(_file_name, mDot::FM_RDONLY); + file = _dot->openUserFile(file_name, mDot::FM_RDONLY); if (file.fd < 0) { logError("failed to open survey data file"); } else { diff --git a/Mode/Mode.h b/Mode/Mode.h index ce4890f..61687f1 100644 --- a/Mode/Mode.h +++ b/Mode/Mode.h @@ -9,6 +9,7 @@ #include "ISL29011.h" #include "MMA845x.h" #include "MPL3115A2.h" +#include "FileName.h" class Mode { public: @@ -59,7 +60,6 @@ class Mode { LoRaHandler* _lora; GPSPARSER* _gps; osThreadId _main_id; - static const char* _file_name; uint32_t _index; uint8_t _band; uint8_t _sub_band; diff --git a/Mode/ModeSingle.cpp b/Mode/ModeSingle.cpp index bc2cb4f..326ba1d 100644 --- a/Mode/ModeSingle.cpp +++ b/Mode/ModeSingle.cpp @@ -30,7 +30,7 @@ bool ModeSingle::start() { // see if survey data file exists std::vector files = _dot->listUserFiles(); for (std::vector::iterator it = files.begin(); it != files.end(); it++) { - if (strcmp(it->name, _file_name) == 0) { + if (strcmp(it->name, file_name) == 0) { logInfo("found survey data file"); data_file = true; break; @@ -95,7 +95,7 @@ bool ModeSingle::start() { case confirm: _state = show_help; logInfo("deleting survey data file"); - _dot->deleteUserFile(_file_name); + _dot->deleteUserFile(file_name); _index = 0; displayHelp(); break; diff --git a/Mode/ModeSweep.cpp b/Mode/ModeSweep.cpp index 2ac495f..12dbd1e 100644 --- a/Mode/ModeSweep.cpp +++ b/Mode/ModeSweep.cpp @@ -54,7 +54,7 @@ bool ModeSweep::start() { // see if survey data file exists std::vector files = _dot->listUserFiles(); for (std::vector::iterator it = files.begin(); it != files.end(); it++) { - if (strcmp(it->name, _file_name) == 0) { + if (strcmp(it->name, file_name) == 0) { logInfo("found survey data file"); data_file = true; break; @@ -133,7 +133,7 @@ bool ModeSweep::start() { case confirm: _state = show_help; logInfo("deleting survey data file"); - _dot->deleteUserFile(_file_name); + _dot->deleteUserFile(file_name); _index = 1; displayHelp(); break; diff --git a/main.cpp b/main.cpp index 3fdec38..c3b341a 100644 --- a/main.cpp +++ b/main.cpp @@ -21,6 +21,7 @@ #include "ModeSweep.h" #include "ModeConfig.h" // misc heders +#include "FileName.h" #include // LCD and backlight controllers @@ -54,6 +55,8 @@ ModeConfig* modeConfig; // Serial debug port Serial debug(USBTX, USBRX); +// Survey Data File +char* file_name; // Prototypes void mainMenu(); @@ -64,6 +67,7 @@ void surveySweep(); int main() { debug.baud(115200); + file_name = "SurveyData.txt"; lcd = new DOGS102(lcd_spi, lcd_spi_cs, lcd_cd); lcd_backlight = new NCP5623B(backlight_i2c); -- cgit v1.2.3