UITask.h 1012 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. bool _need_refresh = true;
  17. void renderCurrScreen();
  18. void buttonHandler();
  19. void userLedHandler();
  20. public:
  21. UITask(mesh::MainBoard* board) : _board(board), _display(NULL) {
  22. _next_refresh = 0;
  23. _connected = false;
  24. }
  25. void begin(DisplayDriver* display, const char* node_name, const char* build_date, const char* firmware_version, uint32_t pin_code);
  26. void setHasConnection(bool connected) { _connected = connected; }
  27. bool hasDisplay() const { return _display != NULL; }
  28. void clearMsgPreview();
  29. void msgRead(int msgcount);
  30. void newMsg(uint8_t path_len, const char* from_name, const char* text, int msgcount);
  31. void loop();
  32. };