This commit is contained in:
parent
1b843ce4b4
commit
90c66be515
19 changed files with 413 additions and 162 deletions
81
src/WatchFacePages/Clock.cpp
Normal file
81
src/WatchFacePages/Clock.cpp
Normal file
|
@ -0,0 +1,81 @@
|
|||
#include "Clock.h"
|
||||
#include "../SevenSegment.h"
|
||||
#include "../Icons.h"
|
||||
#include <Fonts/FreeSans9pt7b.h>
|
||||
#include <Fonts/FreeMonoBold9pt7b.h>
|
||||
#include <Fonts/FreeMonoBold12pt7b.h>
|
||||
|
||||
WatchFacePages::Clock::Clock(WatchyDisplay & display, WatchFeatures::WatchFeatures & features)
|
||||
: m_display(display), m_features(features)
|
||||
{
|
||||
}
|
||||
|
||||
void WatchFacePages::Clock::InitBoot()
|
||||
{
|
||||
}
|
||||
|
||||
void WatchFacePages::Clock::InitWake()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void WatchFacePages::Clock::DrawPage(bool partialRefresh)
|
||||
{
|
||||
m_display.setFullWindow();
|
||||
|
||||
m_display.fillScreen(GxEPD_WHITE);
|
||||
DrawBatteryIcon();
|
||||
|
||||
tmElements_t currentTime;
|
||||
m_features.rtc.Get(currentTime);
|
||||
int tzOffset = m_features.storage.GetTzOffset();
|
||||
m_features.rtc.OffsetTime(currentTime, tzOffset);
|
||||
SevenSegment sevenSegment(30, 60, 6, 5, 5);
|
||||
|
||||
if (currentTime.Hour < 10) {
|
||||
sevenSegment.DrawDigit(m_display, 0, 15, 75, GxEPD_BLACK);
|
||||
} else {
|
||||
sevenSegment.DrawDigit(m_display, currentTime.Hour / 10, 20, 75, GxEPD_BLACK);
|
||||
}
|
||||
|
||||
sevenSegment.DrawDigit(m_display, currentTime.Hour % 10, 60, 75, GxEPD_BLACK);
|
||||
|
||||
if (currentTime.Minute < 10) {
|
||||
sevenSegment.DrawDigit(m_display, 0, 110, 75, GxEPD_BLACK);
|
||||
} else {
|
||||
sevenSegment.DrawDigit(m_display, currentTime.Minute / 10, 110, 75, GxEPD_BLACK);
|
||||
}
|
||||
|
||||
sevenSegment.DrawDigit(m_display, currentTime.Minute % 10, 150, 75, GxEPD_BLACK);
|
||||
|
||||
m_display.fillRect(97, 90, 5, 5, GxEPD_BLACK);
|
||||
m_display.fillRect(97, 110, 5, 5, GxEPD_BLACK);
|
||||
|
||||
m_display.display(partialRefresh);
|
||||
}
|
||||
|
||||
void WatchFacePages::Clock::DrawBatteryIcon()
|
||||
{
|
||||
m_display.fillRect(200 - 48, 5, 43, 23, GxEPD_BLACK);
|
||||
m_display.fillRect(200 - 46, 7, 39, 19, GxEPD_WHITE);
|
||||
int intLevel = m_features.battery.GetPercentage();
|
||||
uint8_t level = intLevel / 100.0f;
|
||||
|
||||
m_display.fillRect(200 - 44, 9, (int)std::round(35.0f * level), 15, GxEPD_BLACK);
|
||||
|
||||
int x = 200 - 85;
|
||||
if (intLevel == 100) {
|
||||
x -= 13;
|
||||
}
|
||||
|
||||
m_display.setFont(&FreeMonoBold9pt7b);
|
||||
m_display.setCursor(x, 22);
|
||||
m_display.setTextColor(GxEPD_BLACK);
|
||||
m_display.print(intLevel);
|
||||
m_display.print("%");
|
||||
|
||||
m_display.setFont(&FreeMonoBold12pt7b);
|
||||
m_display.drawBitmap(10, 177, Icons::steps, 19, 23, GxEPD_BLACK);
|
||||
m_display.setCursor(40, 195);
|
||||
m_display.print(m_features.stepCounter.GetSteps());
|
||||
}
|
25
src/WatchFacePages/Clock.h
Normal file
25
src/WatchFacePages/Clock.h
Normal file
|
@ -0,0 +1,25 @@
|
|||
#pragma once
|
||||
|
||||
#include "Page.h"
|
||||
#include "../WatchyDisplay.h"
|
||||
#include "../WatchFeatures/WatchFeatures.h"
|
||||
|
||||
namespace WatchFacePages
|
||||
{
|
||||
class Clock;
|
||||
}
|
||||
|
||||
class WatchFacePages::Clock : public WatchFacePages::Page
|
||||
{
|
||||
public:
|
||||
Clock(WatchyDisplay & display, WatchFeatures::WatchFeatures & features);
|
||||
void InitBoot() override;
|
||||
void InitWake() override;
|
||||
void DrawPage(bool partialRefresh = false) override;
|
||||
|
||||
private:
|
||||
void DrawBatteryIcon();
|
||||
|
||||
WatchyDisplay & m_display;
|
||||
WatchFeatures::WatchFeatures & m_features;
|
||||
};
|
15
src/WatchFacePages/Page.h
Normal file
15
src/WatchFacePages/Page.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
#pragma once
|
||||
|
||||
namespace WatchFacePages
|
||||
{
|
||||
class Page;
|
||||
}
|
||||
|
||||
class WatchFacePages::Page
|
||||
{
|
||||
public:
|
||||
Page() {};
|
||||
virtual void InitBoot() {};
|
||||
virtual void InitWake() {};
|
||||
virtual void DrawPage(bool partialRefresh = false) = 0;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue