summaryrefslogtreecommitdiff
path: root/Layout/Layout.h
diff options
context:
space:
mode:
Diffstat (limited to 'Layout/Layout.h')
-rw-r--r--Layout/Layout.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/Layout/Layout.h b/Layout/Layout.h
new file mode 100644
index 0000000..c8dc4f3
--- /dev/null
+++ b/Layout/Layout.h
@@ -0,0 +1,48 @@
+#ifndef __DISPLAYMANAGER_H__
+#define __DISPLAYMANAGER_H__
+
+#include "DOGS102.h"
+
+#include <string>
+#include <vector>
+
+typedef struct field {
+ int32_t id;
+ uint8_t column;
+ uint8_t page;
+ uint8_t maxSize;
+} Field;
+
+typedef struct label {
+ uint8_t column;
+ uint8_t page;
+ const char* value;
+ uint8_t size;
+} Label;
+
+typedef std::vector<Field> Fields;
+typedef std::vector<Label> Labels;
+typedef std::pair<Labels, Fields> Layout;
+
+class DisplayManager {
+ public:
+ DisplayManager(DOGS102* lcd);
+ DisplayManager(DOGS102* lcd, const Layout layout);
+ ~DisplayManager();
+
+ void displaySplashScreen();
+
+ bool addLayout(const Layout layout);
+
+ bool updateField(const int32_t& id, const char* field, const uint32_t& fieldSize);
+ bool updateField(const int32_t& id, const std::string& field);
+
+ private:
+ Layout _layout;
+ DOGS102* _lcd;
+ static std::string _product_name;
+ static std::string _program_name;
+ static std::string _program_version;
+};
+
+#endif