summaryrefslogtreecommitdiff
path: root/src/DisplayApp
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2019-12-21 17:58:00 +0100
committerJF <jf@codingfield.com>2019-12-21 17:58:00 +0100
commitecf307c559624fe82218e3acfc429d549f331075 (patch)
tree95a09721e2015f5b4bc066cb272982b7bf87f10f /src/DisplayApp
parent528fc5661679feeef91e76d633c94c945bb0a3df (diff)
Add BLE and CTS client. Time can be retrieved from a CTS server (like NRFConnect) once it's bond.
WIP, the code is really ugly
Diffstat (limited to 'src/DisplayApp')
-rw-r--r--src/DisplayApp/DisplayApp.cpp53
-rw-r--r--src/DisplayApp/DisplayApp.h5
2 files changed, 36 insertions, 22 deletions
diff --git a/src/DisplayApp/DisplayApp.cpp b/src/DisplayApp/DisplayApp.cpp
index abaef825..e17dd55c 100644
--- a/src/DisplayApp/DisplayApp.cpp
+++ b/src/DisplayApp/DisplayApp.cpp
@@ -21,7 +21,6 @@ void DisplayApp::Process(void *instance) {
app->InitHw();
while (1) {
- NRF_LOG_INFO("BlinkApp task running!");
app->Refresh();
@@ -68,41 +67,51 @@ void DisplayApp::InitHw() {
}
void DisplayApp::Refresh() {
- uint32_t systick_counter = nrf_rtc_counter_get(portNRF_RTC_REG);
- auto raw = systick_counter / 1000;
-
- // TODO make this better!
- minutes = raw / 60;
- seconds = raw - (minutes*60);
-
- char secondChar[3];
- sprintf(secondChar, "%02d", seconds);
+// uint32_t systick_counter = nrf_rtc_counter_get(portNRF_RTC_REG);
+// auto raw = systick_counter / 1000;
+//
+// TODO make this better!
+// minutes = raw / 60;
+// seconds = raw - (minutes*60);
char minutesChar[3];
sprintf(minutesChar, "%02d", minutes);
+ char hoursChar[3];
+ sprintf(hoursChar, "%02d", hours);
+
uint8_t x = 7;
- if(minutesChar[0] != currentChar[0]) {
- gfx->DrawChar(&largeFont, minutesChar[0], &x, 78, 0xffff);
- currentChar[0] = minutesChar[0];
+ if(hoursChar[0] != currentChar[0]) {
+ gfx->DrawChar(&largeFont, hoursChar[0], &x, 78, 0xffff);
+ currentChar[0] = hoursChar[0];
}
x = 61;
- if(minutesChar[1] != currentChar[1]) {
- gfx->DrawChar(&largeFont, minutesChar[1], &x, 78, 0xffff);
- currentChar[1] = minutesChar[1];
+ if(hoursChar[1] != currentChar[1]) {
+ gfx->DrawChar(&largeFont, hoursChar[1], &x, 78, 0xffff);
+ currentChar[1] = hoursChar[1];
}
x = 127;
- if(secondChar[0] != currentChar[2]) {
- gfx->DrawChar(&largeFont, secondChar[0], &x, 78, 0xffff);
- currentChar[2] = secondChar[0];
+ if(minutesChar[0] != currentChar[2]) {
+ gfx->DrawChar(&largeFont, minutesChar[0], &x, 78, 0xffff);
+ currentChar[2] = minutesChar[0];
}
x = 181;
- if(secondChar[1] != currentChar[3]) {
- gfx->DrawChar(&largeFont, secondChar[1], &x, 78, 0xffff);
- currentChar[3] = secondChar[1];
+ if(minutesChar[1] != currentChar[3]) {
+ gfx->DrawChar(&largeFont, minutesChar[1], &x, 78, 0xffff);
+ currentChar[3] = minutesChar[1];
}
}
+
+void DisplayApp::Minutes(uint8_t m) {
+ // TODO yeah, I know, race condition...
+ minutes = m;
+}
+
+void DisplayApp::Hours(uint8_t h) {
+ // TODO yeah, I know, race condition too...
+ hours = h;
+}
diff --git a/src/DisplayApp/DisplayApp.h b/src/DisplayApp/DisplayApp.h
index 8b5cb4e6..74d35624 100644
--- a/src/DisplayApp/DisplayApp.h
+++ b/src/DisplayApp/DisplayApp.h
@@ -14,6 +14,9 @@ namespace Pinetime {
public:
void Start();
+ void Minutes(uint8_t m);
+ void Hours(uint8_t h);
+
private:
TaskHandle_t taskHandle;
static void Process(void* instance);
@@ -24,6 +27,8 @@ 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;