summaryrefslogtreecommitdiff
path: root/Mode/ModeSweep.h
diff options
context:
space:
mode:
Diffstat (limited to 'Mode/ModeSweep.h')
-rw-r--r--Mode/ModeSweep.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/Mode/ModeSweep.h b/Mode/ModeSweep.h
new file mode 100644
index 0000000..5eebda1
--- /dev/null
+++ b/Mode/ModeSweep.h
@@ -0,0 +1,60 @@
+#ifndef __MODESWEEP_H__
+#define __MODESWEEP_H__
+
+#include "Mode.h"
+#include "LayoutHelp.h"
+#include "LayoutFile.h"
+#include "LayoutConfirm.h"
+#include "LayoutSweepProgress.h"
+#include "LayoutSurveySuccess.h"
+#include "LayoutSurveyFailure.h"
+#include "LayoutSweepComplete.h"
+
+typedef std::pair<uint8_t, uint32_t> point;
+
+class ModeSweep : public Mode {
+ public:
+ ModeSweep(DOGS102* lcd, ButtonHandler* buttons, mDot* dot, LoRaHandler* lora);
+ ~ModeSweep();
+
+ bool start();
+
+ private:
+ void displayHelp();
+ void displaySuccess();
+ std::vector<point> generatePoints();
+ uint8_t payloadToRate(uint8_t payload);
+
+ typedef enum {
+ check_file = 0,
+ confirm,
+ show_help,
+ in_progress,
+ success,
+ data,
+ failure,
+ complete
+ } state;
+
+ LayoutHelp _help;
+ LayoutFile _file;
+ LayoutConfirm _confirm;
+ LayoutSweepProgress _progress;
+ LayoutSurveySuccess _success;
+ LayoutSurveyFailure _failure;
+ LayoutSweepComplete _complete;
+ DataItem _data;
+
+ uint8_t _min_payload;
+ uint8_t _max_payload;
+ uint32_t _min_power;
+ uint32_t _max_power;
+ uint8_t _survey_current;
+ uint8_t _survey_total;
+ uint8_t _survey_success;
+ uint8_t _survey_failure;
+ std::vector<point> _points;
+ Timer _display_timer;
+};
+
+#endif