interface_task.h 736 B

1234567891011121314151617181920212223242526272829
  1. #pragma once
  2. #include <AceButton.h>
  3. #include <Arduino.h>
  4. #include "display_task.h"
  5. #include "motor_task.h"
  6. #include "task.h"
  7. class InterfaceTask : public Task<InterfaceTask>, public ace_button::IEventHandler {
  8. friend class Task<InterfaceTask>; // Allow base Task to invoke protected run()
  9. public:
  10. InterfaceTask(const uint8_t task_core, MotorTask& motor_task, DisplayTask* display_task);
  11. ~InterfaceTask();
  12. void handleEvent(ace_button::AceButton* button, uint8_t event_type, uint8_t button_state) override;
  13. protected:
  14. void run();
  15. private:
  16. MotorTask& motor_task_;
  17. DisplayTask* display_task_;
  18. int current_config_ = 0;
  19. void changeConfig(bool next);
  20. };