From fb64ba8fb6953fe7e98db6874207a687d0d57bac Mon Sep 17 00:00:00 2001 From: JF Date: Sun, 22 Mar 2020 12:03:17 +0100 Subject: Add new App : Sysinfo. It displays various info about the running system : version, date/time, battery, brightness and resetreason. It contains placeholder for future use (like mac address, uptime,...). --- src/DisplayApp/Screens/ScreenList.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/DisplayApp/Screens/ScreenList.h (limited to 'src/DisplayApp/Screens/ScreenList.h') diff --git a/src/DisplayApp/Screens/ScreenList.h b/src/DisplayApp/Screens/ScreenList.h new file mode 100644 index 00000000..ba8e7700 --- /dev/null +++ b/src/DisplayApp/Screens/ScreenList.h @@ -0,0 +1,34 @@ +#pragma once + +#include +#include "Screen.h" +#include "Label.h" + +namespace Pinetime { + namespace Applications { + namespace Screens { + class ScreenList : public Screen { + public: + explicit ScreenList(DisplayApp* app, + Pinetime::Controllers::DateTime& dateTimeController, + Pinetime::Controllers::Battery& batteryController, + Pinetime::Controllers::BrightnessController& brightnessController, + Pinetime::Drivers::WatchdogView& watchdog); + ~ScreenList() override; + bool Refresh() override; + bool OnButtonPushed() override; + bool OnTouchEvent(TouchEvents event) override; + private: + bool running = true; + uint8_t screenIndex = 0; + + // TODO choose another container without dynamic alloc + std::vector screens; + Pinetime::Controllers::DateTime& dateTimeController; + Pinetime::Controllers::Battery& batteryController; + Pinetime::Controllers::BrightnessController& brightnessController; + Pinetime::Drivers::WatchdogView& watchdog; + }; + } + } +} \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 7e9a7e4d5fa0f55b43180600d499f1d0ce6aded1 Mon Sep 17 00:00:00 2001 From: JF Date: Sun, 22 Mar 2020 12:14:38 +0100 Subject: Fix bad memory alloaction in sysinfo screen. --- src/DisplayApp/Screens/ScreenList.cpp | 18 ++++-------------- src/DisplayApp/Screens/ScreenList.h | 4 ++++ 2 files changed, 8 insertions(+), 14 deletions(-) (limited to 'src/DisplayApp/Screens/ScreenList.h') diff --git a/src/DisplayApp/Screens/ScreenList.cpp b/src/DisplayApp/Screens/ScreenList.cpp index bea335ff..93a91212 100644 --- a/src/DisplayApp/Screens/ScreenList.cpp +++ b/src/DisplayApp/Screens/ScreenList.cpp @@ -16,7 +16,7 @@ ScreenList::ScreenList(Pinetime::Applications::DisplayApp *app, Pinetime::Contro // TODO all of this is far too heavy (string processing). This should be improved. // TODO the info (battery, time,...) should be updated in the Refresh method. - char t1[200]; + auto batteryPercent = static_cast(batteryController.PercentRemaining()); if(batteryPercent > 100) batteryPercent = 100; @@ -57,23 +57,13 @@ ScreenList::ScreenList(Pinetime::Applications::DisplayApp *app, Pinetime::Contro dateTimeController.Hours(), dateTimeController.Minutes(), dateTimeController.Seconds(), dateTimeController.Day(), dateTimeController.Month(), dateTimeController.Year(), batteryPercent, brightness, resetReason); -/* - auto t1 = "Pinetime\n" - "Version:\n" - "Build: 23/03/2020\n" - "Time: 17:23:12\n" - "date: 23/03/2020\n" - "Uptime: 2d 13h52:21\n" - "Battery: 3.56v/82%\n" - "Backlight: 2/3\n" - "Last reset: wtdg\n" - "BLE MAC: \n AA:BB:CC:DD:EE:FF";*/ + screens.emplace_back(t1); - auto t2 = "Hello from\nthe developper!"; + strncpy(t2, "Hello from\nthe developper!", 27); screens.emplace_back(t2); - auto t3 = "Place holder\nin case we need\nmore room!"; + strncpy(t3, "Place holder\nin case we need\nmore room!", 40); screens.emplace_back(t3); auto &screen = screens[screenIndex]; diff --git a/src/DisplayApp/Screens/ScreenList.h b/src/DisplayApp/Screens/ScreenList.h index ba8e7700..ad093d35 100644 --- a/src/DisplayApp/Screens/ScreenList.h +++ b/src/DisplayApp/Screens/ScreenList.h @@ -28,6 +28,10 @@ namespace Pinetime { Pinetime::Controllers::Battery& batteryController; Pinetime::Controllers::BrightnessController& brightnessController; Pinetime::Drivers::WatchdogView& watchdog; + + char t1[200]; + char t2[30]; + char t3[42]; }; } } -- cgit v1.2.3-70-g09d2