diff options
| author | JF <jf@codingfield.com> | 2019-12-26 17:33:40 (GMT) |
|---|---|---|
| committer | JF <jf@codingfield.com> | 2019-12-26 17:33:40 (GMT) |
| commit | 75e74904e82a18012436a3d496223d2d53111866 (patch) | |
| tree | 9ddfc4d2cc6764d79ac8a301ec5255551b5464e8 /src/DisplayApp/DisplayApp.h | |
| parent | 9a379e180fd855dac2a9fe6b4532d95276edab0b (diff) | |
Use push button to go to sleep/wake up.
Use a queue to transmit messages between system and display task (sleep & wake up for now).
Diffstat (limited to 'src/DisplayApp/DisplayApp.h')
| -rw-r--r-- | src/DisplayApp/DisplayApp.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/DisplayApp/DisplayApp.h b/src/DisplayApp/DisplayApp.h index e89ff64..b15c358 100644 --- a/src/DisplayApp/DisplayApp.h +++ b/src/DisplayApp/DisplayApp.h @@ -5,6 +5,7 @@ #include <drivers/SpiMaster.h> #include <Components/Gfx/Gfx.h> #include <bits/unique_ptr.h> +#include <queue.h> extern const FONT_INFO lCD_70ptFontInfo; @@ -12,6 +13,9 @@ namespace Pinetime { namespace Applications { class DisplayApp { public: + enum class States {Idle, Running}; + enum class Messages : uint8_t {GoToSleep, GoToRunning} ; + DisplayApp(); void Start(); void Minutes(uint8_t m); @@ -19,6 +23,8 @@ namespace Pinetime { void SetTime(uint8_t minutes, uint8_t hours); + void PushMessage(Messages msg); + private: TaskHandle_t taskHandle; static void Process(void* instance); @@ -29,13 +35,20 @@ namespace Pinetime { const FONT_INFO largeFont {lCD_70ptFontInfo.height, lCD_70ptFontInfo.startChar, lCD_70ptFontInfo.endChar, lCD_70ptFontInfo.spacePixels, lCD_70ptFontInfo.charInfo, lCD_70ptFontInfo.data}; void Refresh(); - - uint8_t seconds = 0; uint8_t minutes = 0; uint8_t hours = 0; char currentChar[4]; uint32_t deltaSeconds = 0; + + States state = States::Running; + void RunningState(); + void IdleState(); + QueueHandle_t msgQueue; + + static constexpr uint8_t queueSize = 10; + static constexpr uint8_t itemSize = 1; + }; } } |
