summaryrefslogtreecommitdiff
path: root/Mode/Mode.h
diff options
context:
space:
mode:
Diffstat (limited to 'Mode/Mode.h')
-rw-r--r--Mode/Mode.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/Mode/Mode.h b/Mode/Mode.h
new file mode 100644
index 0000000..1254a9e
--- /dev/null
+++ b/Mode/Mode.h
@@ -0,0 +1,47 @@
+#ifndef __MODE_H__
+#define __MODE_H__
+
+#include "DOGS102.h"
+#include "ButtonHandler.h"
+#include "GPSPARSER.h"
+
+class Mode {
+ public:
+ typedef enum {
+ single = 0,
+ sweep
+ } DataType;
+
+ typedef struct {
+ DataType type;
+ int32_t index;
+ bool status;
+ int32_t lock;
+ GPSPARSER::longitude gps_longitude;
+ GPSPARSER::latitude gps_latitude;
+ int16_t gps_altitude;
+ struct tm gps_time;
+ int16_t rssi_up;
+ int16_t snr_up;
+ int16_t rssi_down;
+ int16_t snr_down;
+ uint8_t data_rate;
+ uint8_t power;
+ } DataItem;
+
+ Mode(DOGS102* lcd, ButtonHandler* buttons);
+ ~Mode();
+
+ virtual bool start() = 0;
+
+ protected:
+ bool deleteDataFile();
+ bool appendDataFile(const DataItem& data);
+
+ DOGS102* _lcd;
+ ButtonHandler* _buttons;
+ uint32_t _index;
+ osThreadId _main_id;
+};
+
+#endif