Skip to content

Commit 405c85c

Browse files
committed
Merge branch 'develop' of github.com:JF002/Pinetime into develop
# Conflicts: # src/main.cpp # src/systemtask/SystemTask.h
2 parents e63596b + 9e9bb20 commit 405c85c

27 files changed

Lines changed: 1327 additions & 319 deletions

.vscode/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"files.associations": {
3+
"chrono": "cpp"
4+
}
5+
}

src/CMakeLists.txt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,15 @@ list(APPEND SOURCE_FILES
499499
displayapp/screens/Notifications.cpp
500500
displayapp/screens/Twos.cpp
501501
displayapp/screens/HeartRate.cpp
502+
503+
## Watch faces
504+
displayapp/icons/bg_clock.c
505+
displayapp/screens/WatchFaceAnalog.cpp
506+
507+
displayapp/screens/WatchFaceDigital.cpp
508+
509+
##
510+
502511
main.cpp
503512
drivers/St7789.cpp
504513
drivers/SpiNorFlash.cpp
@@ -528,6 +537,7 @@ list(APPEND SOURCE_FILES
528537
components/ble/HeartRateService.cpp
529538
components/firmwarevalidator/FirmwareValidator.cpp
530539
components/motor/MotorController.cpp
540+
components/settings/Settings.cpp
531541
drivers/Cst816s.cpp
532542
FreeRTOS/port.c
533543
FreeRTOS/port_cmsis_systick.c
@@ -581,6 +591,7 @@ list(APPEND RECOVERY_SOURCE_FILES
581591
components/ble/NavigationService.cpp
582592
components/ble/HeartRateService.cpp
583593
components/firmwarevalidator/FirmwareValidator.cpp
594+
components/settings/Settings.cpp
584595
drivers/Cst816s.cpp
585596
FreeRTOS/port.c
586597
FreeRTOS/port_cmsis_systick.c
@@ -671,7 +682,8 @@ set(INCLUDE_FILES
671682
components/ble/ImmediateAlertService.h
672683
components/ble/ServiceDiscovery.h
673684
components/ble/BleClient.h
674-
components/ble/HeartRateService.h.h
685+
components/ble/HeartRateService.h
686+
components/settings/Settings.h
675687
drivers/Cst816s.h
676688
FreeRTOS/portmacro.h
677689
FreeRTOS/portmacro_cmsis.h

src/components/datetime/DateTimeController.cpp

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,123 @@ void DateTime::UpdateTime(uint32_t systickCounter) {
6464
second = time.seconds().count();
6565
}
6666

67+
const char *DateTime::MonthShortToString() {
68+
return DateTime::MonthsString[(uint8_t)month];
69+
}
70+
71+
const char *DateTime::MonthShortToStringLow() {
72+
return DateTime::MonthsStringLow[(uint8_t)month];
73+
}
74+
75+
const char *DateTime::MonthsToStringLow() {
76+
return DateTime::MonthsLow[(uint8_t)month];
77+
}
78+
79+
const char *DateTime::DayOfWeekToString() {
80+
return DateTime::DaysString[(uint8_t)dayOfWeek];
81+
}
82+
83+
const char *DateTime::DayOfWeekShortToString() {
84+
return DateTime::DaysStringShort[(uint8_t)dayOfWeek];
85+
}
86+
87+
const char *DateTime::DayOfWeekToStringLow() {
88+
return DateTime::DaysStringLow[(uint8_t)dayOfWeek];
89+
}
90+
91+
const char *DateTime::DayOfWeekShortToStringLow() {
92+
return DateTime::DaysStringShortLow[(uint8_t)dayOfWeek];
93+
}
94+
95+
96+
char const *DateTime::DaysStringLow[] = {
97+
"--",
98+
"Monday",
99+
"Tuesday",
100+
"Wednesday",
101+
"Thursday",
102+
"Friday",
103+
"Saturday",
104+
"Sunday"
105+
};
106+
107+
char const *DateTime::DaysStringShortLow[] = {
108+
"--",
109+
"Mon",
110+
"Tue",
111+
"Wed",
112+
"Thu",
113+
"Fri",
114+
"Sat",
115+
"Sun"
116+
};
117+
118+
char const *DateTime::DaysStringShort[] = {
119+
"--",
120+
"MON",
121+
"TUE",
122+
"WED",
123+
"THU",
124+
"FRI",
125+
"SAT",
126+
"SUN"
127+
};
128+
129+
char const *DateTime::DaysString[] = {
130+
"--",
131+
"MONDAY",
132+
"TUESDAY",
133+
"WEDNESDAY",
134+
"THURSDAY",
135+
"FRIDAY",
136+
"SATURDAY",
137+
"SUNDAY"
138+
};
139+
140+
char const *DateTime::MonthsString[] = {
141+
"--",
142+
"JAN",
143+
"FEB",
144+
"MAR",
145+
"APR",
146+
"MAY",
147+
"JUN",
148+
"JUL",
149+
"AUG",
150+
"SEP",
151+
"OCT",
152+
"NOV",
153+
"DEC"
154+
};
155+
156+
char const *DateTime::MonthsStringLow[] = {
157+
"--",
158+
"Jan",
159+
"Feb",
160+
"Mar",
161+
"Apr",
162+
"May",
163+
"Jun",
164+
"Jul",
165+
"Aug",
166+
"Sep",
167+
"Oct",
168+
"Nov",
169+
"Dec"
170+
};
171+
172+
char const *DateTime::MonthsLow[] = {
173+
"--",
174+
"January",
175+
"February",
176+
"March",
177+
"April",
178+
"May",
179+
"June",
180+
"July",
181+
"August",
182+
"September",
183+
"October",
184+
"November",
185+
"December"
186+
};

src/components/datetime/DateTimeController.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@ namespace Pinetime {
2020
uint8_t Minutes() const { return minute; }
2121
uint8_t Seconds() const { return second; }
2222

23+
const char *MonthShortToString();
24+
const char *MonthShortToStringLow();
25+
const char *MonthsToStringLow();
26+
const char *DayOfWeekToString();
27+
const char *DayOfWeekShortToString();
28+
const char *DayOfWeekToStringLow();
29+
const char *DayOfWeekShortToStringLow();
30+
2331
std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> CurrentDateTime() const { return currentDateTime; }
2432
std::chrono::seconds Uptime() const { return uptime; }
2533
private:
@@ -34,6 +42,15 @@ namespace Pinetime {
3442
uint32_t previousSystickCounter = 0;
3543
std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> currentDateTime;
3644
std::chrono::seconds uptime {0};
45+
46+
static char const *DaysString[];
47+
static char const *DaysStringShort[];
48+
static char const *DaysStringLow[];
49+
static char const *DaysStringShortLow[];
50+
static char const *MonthsString[];
51+
static char const *MonthsStringLow[];
52+
static char const *MonthsLow[];
53+
3754
};
3855
}
3956
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#include "Settings.h"
2+
3+
using namespace Pinetime::Controllers;
4+
5+
6+
// TODO (team):
7+
// Read and write the settings to Flash
8+
//
9+
void Settings::Init() {
10+
// default Clock face
11+
clockFace = 0;
12+
13+
clockType = ClockType::H24;
14+
15+
}
16+

src/components/settings/Settings.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#pragma once
2+
#include <cstdint>
3+
4+
namespace Pinetime {
5+
namespace Controllers {
6+
class Settings {
7+
public:
8+
enum class ClockType {H24, H12};
9+
10+
void Init();
11+
12+
void SetClockFace( uint8_t face ) { clockFace = face; };
13+
uint8_t GetClockFace() { return clockFace; };
14+
15+
void SetAppMenu( uint8_t menu ) { appMenu = menu; };
16+
uint8_t GetAppMenu() { return appMenu; };
17+
18+
void SetClockType( ClockType clocktype ) { clockType = clocktype; };
19+
ClockType GetClockType() { return clockType; };
20+
21+
22+
private:
23+
uint8_t clockFace = 0;
24+
uint8_t appMenu = 0;
25+
26+
ClockType clockType = ClockType::H24;
27+
28+
};
29+
}
30+
}

src/displayapp/DisplayApp.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,20 @@ DisplayApp::DisplayApp(Drivers::St7789 &lcd, Components::LittleVgl &lvgl, Driver
3232
Controllers::DateTime &dateTimeController, Drivers::WatchdogView &watchdog,
3333
System::SystemTask &systemTask,
3434
Pinetime::Controllers::NotificationManager& notificationManager,
35-
Pinetime::Controllers::HeartRateController& heartRateController) :
35+
Pinetime::Controllers::HeartRateController& heartRateController,
36+
Controllers::Settings &settingsController) :
3637
lcd{lcd},
3738
lvgl{lvgl},
3839
batteryController{batteryController},
3940
bleController{bleController},
4041
dateTimeController{dateTimeController},
4142
watchdog{watchdog},
4243
touchPanel{touchPanel},
43-
currentScreen{new Screens::Clock(this, dateTimeController, batteryController, bleController, notificationManager, heartRateController) },
44+
currentScreen{new Screens::Clock(this, dateTimeController, batteryController, bleController, notificationManager, settingsController, heartRateController) },
4445
systemTask{systemTask},
4546
notificationManager{notificationManager},
46-
heartRateController{heartRateController} {
47+
heartRateController{heartRateController},
48+
settingsController{settingsController} {
4749
msgQueue = xQueueCreate(queueSize, itemSize);
4850
onClockApp = true;
4951
}
@@ -195,9 +197,9 @@ void DisplayApp::RunningState() {
195197
onClockApp = false;
196198
switch(nextApp) {
197199
case Apps::None:
198-
case Apps::Launcher: currentScreen.reset(new Screens::ApplicationList(this)); break;
200+
case Apps::Launcher: currentScreen.reset(new Screens::ApplicationList(this, settingsController)); break;
199201
case Apps::Clock:
200-
currentScreen.reset(new Screens::Clock(this, dateTimeController, batteryController, bleController, notificationManager, heartRateController));
202+
currentScreen.reset(new Screens::Clock(this, dateTimeController, batteryController, bleController, notificationManager, settingsController, heartRateController));
201203
onClockApp = true;
202204
break;
203205
case Apps::SysInfo: currentScreen.reset(new Screens::SystemInfo(this, dateTimeController, batteryController, brightnessController, bleController, watchdog)); break;

src/displayapp/DisplayApp.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include "TouchEvents.h"
1010
#include "components/brightness/BrightnessController.h"
1111
#include "components/firmwarevalidator/FirmwareValidator.h"
12+
#include "components/settings/Settings.h"
1213
#include "displayapp/screens/Screen.h"
1314
#include "Messages.h"
1415

@@ -20,6 +21,7 @@ namespace Pinetime {
2021
class WatchdogView;
2122
}
2223
namespace Controllers {
24+
class Settings;
2325
class Battery;
2426
class Ble;
2527
class DateTime;
@@ -42,7 +44,9 @@ namespace Pinetime {
4244
Controllers::DateTime &dateTimeController, Drivers::WatchdogView &watchdog,
4345
System::SystemTask &systemTask,
4446
Pinetime::Controllers::NotificationManager& notificationManager,
45-
Pinetime::Controllers::HeartRateController& heartRateController);
47+
Pinetime::Controllers::HeartRateController& heartRateController,
48+
Controllers::Settings &settingsController
49+
);
4650
void Start();
4751
void PushMessage(Display::Messages msg);
4852

@@ -87,6 +91,7 @@ namespace Pinetime {
8791
Pinetime::Controllers::FirmwareValidator validator;
8892
TouchModes touchMode = TouchModes::Gestures;
8993
Pinetime::Controllers::HeartRateController& heartRateController;
94+
Pinetime::Controllers::Settings& settingsController;
9095
};
9196
}
9297
}

src/displayapp/DisplayAppRecovery.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "DisplayAppRecovery.h"
2-
#include "DisplayAppRecovery.h"
32
#include <FreeRTOS.h>
43
#include <task.h>
54
#include <libraries/log/nrf_log.h>
@@ -13,7 +12,8 @@ DisplayApp::DisplayApp(Drivers::St7789 &lcd, Components::LittleVgl &lvgl, Driver
1312
Controllers::DateTime &dateTimeController, Drivers::WatchdogView &watchdog,
1413
System::SystemTask &systemTask,
1514
Pinetime::Controllers::NotificationManager& notificationManager,
16-
Pinetime::Controllers::HeartRateController& heartRateController):
15+
Pinetime::Controllers::HeartRateController& heartRateController,
16+
Pinetime::Controllers::Settings& settingsController):
1717
lcd{lcd}, bleController{bleController} {
1818
msgQueue = xQueueCreate(queueSize, itemSize);
1919

src/displayapp/DisplayAppRecovery.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@
1414
#include "components/firmwarevalidator/FirmwareValidator.h"
1515
#include "drivers/Cst816s.h"
1616
#include <date/date.h>
17-
#include "displayapp/screens/Clock.h"
1817
#include <drivers/Watchdog.h>
18+
#include <components/heartrate/HeartRateController.h>
19+
#include <components/settings/Settings.h>
1920
#include "TouchEvents.h"
2021
#include "Apps.h"
2122
#include "Messages.h"
@@ -33,7 +34,8 @@ namespace Pinetime {
3334
Controllers::DateTime &dateTimeController, Drivers::WatchdogView &watchdog,
3435
System::SystemTask &systemTask,
3536
Pinetime::Controllers::NotificationManager& notificationManager,
36-
Pinetime::Controllers::HeartRateController& heartRateController);
37+
Pinetime::Controllers::HeartRateController& heartRateController,
38+
Pinetime::Controllers::Settings& settingsController);
3739
void Start();
3840
void PushMessage(Pinetime::Applications::Display::Messages msg);
3941

0 commit comments

Comments
 (0)