AbstractUITask.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #pragma once
  2. #include <MeshCore.h>
  3. #include <helpers/ui/DisplayDriver.h>
  4. #include <helpers/ui/UIScreen.h>
  5. #include <helpers/SensorManager.h>
  6. #include <helpers/BaseSerialInterface.h>
  7. #include <Arduino.h>
  8. #ifdef PIN_BUZZER
  9. #include <helpers/ui/buzzer.h>
  10. #endif
  11. #include "NodePrefs.h"
  12. enum class UIEventType {
  13. none,
  14. contactMessage,
  15. channelMessage,
  16. roomMessage,
  17. newContactMessage,
  18. ack
  19. };
  20. class AbstractUITask {
  21. protected:
  22. mesh::MainBoard* _board;
  23. BaseSerialInterface* _serial;
  24. bool _connected;
  25. AbstractUITask(mesh::MainBoard* board, BaseSerialInterface* serial) : _board(board), _serial(serial) {
  26. _connected = false;
  27. }
  28. public:
  29. void setHasConnection(bool connected) { _connected = connected; }
  30. bool hasConnection() const { return _connected; }
  31. uint16_t getBattMilliVolts() const { return _board->getBattMilliVolts(); }
  32. bool isSerialEnabled() const { return _serial->isEnabled(); }
  33. void enableSerial() { _serial->enable(); }
  34. void disableSerial() { _serial->disable(); }
  35. virtual void msgRead(int msgcount) = 0;
  36. virtual void newMsg(uint8_t path_len, const char* from_name, const char* text, int msgcount) = 0;
  37. virtual void soundBuzzer(UIEventType bet = UIEventType::none) = 0;
  38. #ifdef PIN_VIBRATION
  39. virtual void triggerVibration() = 0;
  40. #endif
  41. virtual void loop() = 0;
  42. };