UITask.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #pragma once
  2. #include <MeshCore.h>
  3. #include <helpers/ui/DisplayDriver.h>
  4. #include <stddef.h>
  5. #include "NodePrefs.h"
  6. class UITask {
  7. DisplayDriver* _display;
  8. mesh::MainBoard* _board;
  9. unsigned long _next_refresh, _auto_off;
  10. bool _connected;
  11. uint32_t _pin_code;
  12. NodePrefs* _node_prefs;
  13. char _version_info[32];
  14. char _origin[62];
  15. char _msg[80];
  16. int _msgcount;
  17. bool _need_refresh = true;
  18. void renderCurrScreen();
  19. void buttonHandler();
  20. void userLedHandler();
  21. public:
  22. UITask(mesh::MainBoard* board) : _board(board), _display(NULL) {
  23. _next_refresh = 0;
  24. _connected = false;
  25. }
  26. void begin(DisplayDriver* display, NodePrefs* node_prefs, const char* build_date, const char* firmware_version, uint32_t pin_code);
  27. void setHasConnection(bool connected) { _connected = connected; }
  28. bool hasDisplay() const { return _display != NULL; }
  29. void clearMsgPreview();
  30. void msgRead(int msgcount);
  31. void newMsg(uint8_t path_len, const char* from_name, const char* text, int msgcount);
  32. void loop();
  33. };