UITask.h 983 B

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