From ef2c43156928b659d02a4ac9412ee947d0cc4d27 Mon Sep 17 00:00:00 2001 From: Jean-François Milants Date: Sat, 23 Dec 2023 15:54:23 +0100 Subject: Simple Weather Service Code improvements : icon fields are now typed as Icons, move the location string when creating a new instance of CurrentWeather, fix SimpleWeatherService::CurrentWeather::operator== (location was missing from the comparison). --- src/components/ble/SimpleWeatherService.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/components/ble/SimpleWeatherService.h') diff --git a/src/components/ble/SimpleWeatherService.h b/src/components/ble/SimpleWeatherService.h index 890497d7..561917eb 100644 --- a/src/components/ble/SimpleWeatherService.h +++ b/src/components/ble/SimpleWeatherService.h @@ -61,20 +61,20 @@ namespace Pinetime { Unknown = 255 }; + using Location = std::array; // 32 char + \0 (end of string) struct CurrentWeather { CurrentWeather(uint64_t timestamp, uint8_t temperature, uint8_t minTemperature, uint8_t maxTemperature, - uint8_t iconId, - const char* location) + Icons iconId, + Location&& location) : timestamp {timestamp}, temperature {temperature}, minTemperature {minTemperature}, maxTemperature {maxTemperature}, - iconId {iconId} { - std::memcpy(this->location, location, 32); - this->location[32] = 0; + iconId {iconId}, + location{std::move(location)} { } uint64_t timestamp; @@ -82,7 +82,7 @@ namespace Pinetime { uint8_t minTemperature; uint8_t maxTemperature; Icons iconId; - char location[33]; // 32 char + \0 (end of string) + Location location; bool operator==(const CurrentWeather& other) const; }; @@ -94,7 +94,7 @@ namespace Pinetime { struct Day { uint8_t minTemperature; uint8_t maxTemperature; - uint8_t iconId; + Icons iconId; }; std::array days; -- cgit v1.2.3-70-g09d2