aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/ble
diff options
context:
space:
mode:
authorFintasticMan <finlay.neon.kid@gmail.com>2024-10-09 12:04:53 +0200
committerJF <JF002@users.noreply.github.com>2024-11-04 21:22:38 +0100
commitf7c87a700d2d9cd05469f1b5b2966a01808ce0e1 (patch)
treebac5094b51df022074ed30e584d8ea38ae23950b /src/components/ble
parente247bd701903cc507ba0e0ac4f938ab4616562e7 (diff)
weather: Switch to std::optional for Forecast days
Also only iterate over the number of days actually in use, rather than MaxNbForecastDays.
Diffstat (limited to 'src/components/ble')
-rw-r--r--src/components/ble/SimpleWeatherService.cpp8
-rw-r--r--src/components/ble/SimpleWeatherService.h4
2 files changed, 6 insertions, 6 deletions
diff --git a/src/components/ble/SimpleWeatherService.cpp b/src/components/ble/SimpleWeatherService.cpp
index a58c3a76..51baf543 100644
--- a/src/components/ble/SimpleWeatherService.cpp
+++ b/src/components/ble/SimpleWeatherService.cpp
@@ -52,7 +52,7 @@ namespace {
SimpleWeatherService::Forecast CreateForecast(const uint8_t* dataBuffer) {
auto timestamp = static_cast<uint64_t>(ToUInt64(&dataBuffer[2]));
- std::array<SimpleWeatherService::Forecast::Day, SimpleWeatherService::MaxNbForecastDays> days;
+ std::array<std::optional<SimpleWeatherService::Forecast::Day>, SimpleWeatherService::MaxNbForecastDays> days;
const uint8_t nbDaysInBuffer = dataBuffer[10];
const uint8_t nbDays = std::min(SimpleWeatherService::MaxNbForecastDays, nbDaysInBuffer);
for (int i = 0; i < nbDays; i++) {
@@ -112,9 +112,9 @@ int SimpleWeatherService::OnCommand(struct ble_gatt_access_ctxt* ctxt) {
for (int i = 0; i < 5; i++) {
NRF_LOG_INFO("\t[%d] Min: %d - Max : %d - Icon : %d",
i,
- forecast->days[i].minTemperature.PreciseCelsius(),
- forecast->days[i].maxTemperature.PreciseCelsius(),
- forecast->days[i].iconId);
+ forecast->days[i]->minTemperature.PreciseCelsius(),
+ forecast->days[i]->maxTemperature.PreciseCelsius(),
+ forecast->days[i]->iconId);
}
}
break;
diff --git a/src/components/ble/SimpleWeatherService.h b/src/components/ble/SimpleWeatherService.h
index 36bbea48..0f8c181b 100644
--- a/src/components/ble/SimpleWeatherService.h
+++ b/src/components/ble/SimpleWeatherService.h
@@ -63,7 +63,7 @@ namespace Pinetime {
class Temperature {
public:
- explicit Temperature(int16_t raw = 0) : raw {raw} {
+ explicit Temperature(int16_t raw) : raw {raw} {
}
[[nodiscard]] int16_t PreciseCelsius() const {
@@ -129,7 +129,7 @@ namespace Pinetime {
bool operator==(const Day& other) const;
};
- std::array<Day, MaxNbForecastDays> days;
+ std::array<std::optional<Day>, MaxNbForecastDays> days;
bool operator==(const Forecast& other) const;
};