summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichele Bini <michele.bini@gmail.com>2022-03-25 15:04:54 (GMT)
committerMichele Bini <michele.bini@gmail.com>2022-03-25 15:04:54 (GMT)
commitbfddfc467425891853d8c39451fd2acdcf7b8e77 (patch)
treec159055af5c6b5fd1a58826feb1448e45c199dff
parent1d240df4e0106742fb5b438242cda66f1824b5e2 (diff)
sans sysinfo
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/displayapp/Apps.h1
-rw-r--r--src/displayapp/DisplayApp.cpp10
-rw-r--r--src/displayapp/screens/ApplicationList.cpp1
-rw-r--r--src/displayapp/screens/SystemInfo.cpp279
-rw-r--r--src/displayapp/screens/SystemInfo.h57
-rw-r--r--src/displayapp/screens/settings/Settings.cpp2
7 files changed, 3 insertions, 349 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e62b3ec..e55938b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -401,7 +401,6 @@ list(APPEND SOURCE_FILES
displayapp/screens/BleIcon.cpp
displayapp/screens/NotificationIcon.cpp
displayapp/screens/Brightness.cpp
- displayapp/screens/SystemInfo.cpp
displayapp/screens/Label.cpp
displayapp/screens/FirmwareUpdate.cpp
displayapp/screens/Motion.cpp
@@ -593,7 +592,6 @@ set(INCLUDE_FILES
displayapp/screens/BleIcon.h
displayapp/screens/NotificationIcon.h
displayapp/screens/Brightness.h
- displayapp/screens/SystemInfo.h
displayapp/screens/ScreenList.h
displayapp/screens/Label.h
displayapp/screens/FirmwareUpdate.h
diff --git a/src/displayapp/Apps.h b/src/displayapp/Apps.h
index b3eac43..d8b36c9 100644
--- a/src/displayapp/Apps.h
+++ b/src/displayapp/Apps.h
@@ -6,7 +6,6 @@ namespace Pinetime {
None,
Launcher,
Clock,
- SysInfo,
FirmwareUpdate,
FirmwareValidation,
NotificationsPreview,
diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp
index dc7ec57..03de120 100644
--- a/src/displayapp/DisplayApp.cpp
+++ b/src/displayapp/DisplayApp.cpp
@@ -16,7 +16,6 @@
#include "displayapp/screens/FirmwareValidation.h"
#include "displayapp/screens/Meter.h"
#include "displayapp/screens/Notifications.h"
-#include "displayapp/screens/SystemInfo.h"
#include "displayapp/screens/Tile.h"
#include "displayapp/screens/Steps.h"
#include "displayapp/screens/Error.h"
@@ -253,8 +252,8 @@ void DisplayApp::Refresh() {
}
break;
case Messages::ButtonLongerPressed:
- // Create reboot app and open it instead
- LoadApp(Apps::SysInfo, DisplayApp::FullRefreshDirections::Up);
+ // Open up Firmware window, before possible reboot if press continues
+ LoadApp(Apps::FirmwareValidation, DisplayApp::FullRefreshDirections::Up);
break;
case Messages::ButtonDoubleClicked:
if (currentApp != Apps::Notifications && currentApp != Apps::NotificationsPreview) {
@@ -385,11 +384,6 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction)
currentScreen = std::make_unique<Screens::SettingAirplaneMode>(this, settingsController);
ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break;
- case Apps::SysInfo:
- currentScreen = std::make_unique<Screens::SystemInfo>(
- this, dateTimeController, batteryController, brightnessController, bleController, watchdog, motionController, touchPanel);
- ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
- break;
case Apps::HeartRate:
currentScreen = std::make_unique<Screens::HeartRate>(this, heartRateController, *systemTask);
break;
diff --git a/src/displayapp/screens/ApplicationList.cpp b/src/displayapp/screens/ApplicationList.cpp
index 42f37ad..a34a255 100644
--- a/src/displayapp/screens/ApplicationList.cpp
+++ b/src/displayapp/screens/ApplicationList.cpp
@@ -60,7 +60,6 @@ std::unique_ptr<Screen> ApplicationList::CreateScreen2() {
std::array<Screens::Tile::Applications, 6> applications {
{{"A", Apps::Meter},
{"C", Apps::Clock},
- {"E", Apps::SysInfo},
{"F", Apps::Brightness}
}
};
diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp
deleted file mode 100644
index e0138f8..0000000
--- a/src/displayapp/screens/SystemInfo.cpp
+++ /dev/null
@@ -1,279 +0,0 @@
-#include <FreeRTOS.h>
-#include <task.h>
-#include "displayapp/screens/SystemInfo.h"
-#include <lvgl/lvgl.h>
-#include "displayapp/DisplayApp.h"
-#include "displayapp/screens/Label.h"
-#include "Version.h"
-#include "BootloaderVersion.h"
-#include "components/battery/BatteryController.h"
-#include "components/ble/BleController.h"
-#include "components/brightness/BrightnessController.h"
-#include "components/datetime/DateTimeController.h"
-#include "components/motion/MotionController.h"
-#include "drivers/Watchdog.h"
-
-using namespace Pinetime::Applications::Screens;
-
-namespace {
- const char* ToString(const Pinetime::Controllers::MotionController::DeviceTypes deviceType) {
- switch (deviceType) {
- case Pinetime::Controllers::MotionController::DeviceTypes::BMA421:
- return "BMA421";
- case Pinetime::Controllers::MotionController::DeviceTypes::BMA425:
- return "BMA425";
- case Pinetime::Controllers::MotionController::DeviceTypes::Unknown:
- return "???";
- }
- return "???";
- }
-}
-
-SystemInfo::SystemInfo(Pinetime::Applications::DisplayApp* app,
- Pinetime::Controllers::DateTime& dateTimeController,
- Pinetime::Controllers::Battery& batteryController,
- Pinetime::Controllers::BrightnessController& brightnessController,
- Pinetime::Controllers::Ble& bleController,
- Pinetime::Drivers::WatchdogView& watchdog,
- Pinetime::Controllers::MotionController& motionController,
- Pinetime::Drivers::Cst816S& touchPanel)
- : Screen(app),
- dateTimeController {dateTimeController},
- batteryController {batteryController},
- brightnessController {brightnessController},
- bleController {bleController},
- watchdog {watchdog},
- motionController {motionController},
- touchPanel {touchPanel},
- screens {app,
- 0,
- {[this]() -> std::unique_ptr<Screen> {
- return CreateScreen1();
- },
- [this]() -> std::unique_ptr<Screen> {
- return CreateScreen2();
- },
- [this]() -> std::unique_ptr<Screen> {
- return CreateScreen3();
- },
- [this]() -> std::unique_ptr<Screen> {
- return CreateScreen4();
- },
- [this]() -> std::unique_ptr<Screen> {
- return CreateScreen5();
- }},
- Screens::ScreenListModes::UpDown} {
-}
-
-SystemInfo::~SystemInfo() {
- lv_obj_clean(lv_scr_act());
-}
-
-bool SystemInfo::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
- return screens.OnTouchEvent(event);
-}
-
-std::unique_ptr<Screen> SystemInfo::CreateScreen1() {
- lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr);
- lv_label_set_recolor(label, true);
- lv_label_set_text_fmt(label,
- "#FFFF00 InfiniTime#\n\n"
- "#444444 Version# %ld.%ld.%ld\n"
- "#444444 Short Ref# %s\n"
- "#444444 Build date#\n"
- "%s\n"
- "%s\n\n"
- "#444444 Bootloader# %s",
- Version::Major(),
- Version::Minor(),
- Version::Patch(),
- Version::GitCommitHash(),
- __DATE__,
- __TIME__,
- BootloaderVersion::VersionString());
- lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
- lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0);
- return std::make_unique<Screens::Label>(0, 5, app, label);
-}
-
-std::unique_ptr<Screen> SystemInfo::CreateScreen2() {
- auto batteryPercent = batteryController.PercentRemaining();
- auto resetReason = [this]() {
- switch (watchdog.ResetReason()) {
- case Drivers::Watchdog::ResetReasons::Watchdog:
- return "wtdg";
- case Drivers::Watchdog::ResetReasons::HardReset:
- return "hardr";
- case Drivers::Watchdog::ResetReasons::NFC:
- return "nfc";
- case Drivers::Watchdog::ResetReasons::SoftReset:
- return "softr";
- case Drivers::Watchdog::ResetReasons::CpuLockup:
- return "cpulock";
- case Drivers::Watchdog::ResetReasons::SystemOff:
- return "off";
- case Drivers::Watchdog::ResetReasons::LpComp:
- return "lpcomp";
- case Drivers::Watchdog::ResetReasons::DebugInterface:
- return "dbg";
- case Drivers::Watchdog::ResetReasons::ResetPin:
- return "rst";
- default:
- return "?";
- }
- }();
-
- // uptime
- static constexpr uint32_t secondsInADay = 60 * 60 * 24;
- static constexpr uint32_t secondsInAnHour = 60 * 60;
- static constexpr uint32_t secondsInAMinute = 60;
- uint32_t uptimeSeconds = dateTimeController.Uptime().count();
- uint32_t uptimeDays = (uptimeSeconds / secondsInADay);
- uptimeSeconds = uptimeSeconds % secondsInADay;
- uint32_t uptimeHours = uptimeSeconds / secondsInAnHour;
- uptimeSeconds = uptimeSeconds % secondsInAnHour;
- uint32_t uptimeMinutes = uptimeSeconds / secondsInAMinute;
- uptimeSeconds = uptimeSeconds % secondsInAMinute;
- // TODO handle more than 100 days of uptime
-
- lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr);
- lv_label_set_recolor(label, true);
- lv_label_set_text_fmt(label,
- "#444444 Date# %02d/%02d/%04d\n"
- "#444444 Time# %02d:%02d:%02d\n"
- "#444444 Uptime#\n %02lud %02lu:%02lu:%02lu\n"
- "#444444 Battery# %d%%/%03imV\n"
- "#444444 Backlight# %s\n"
- "#444444 Last reset# %s\n"
- "#444444 Accel.# %s\n"
- "#444444 Touch.# %x.%x.%x\n",
- dateTimeController.Day(),
- static_cast<uint8_t>(dateTimeController.Month()),
- dateTimeController.Year(),
- dateTimeController.Hours(),
- dateTimeController.Minutes(),
- dateTimeController.Seconds(),
- uptimeDays,
- uptimeHours,
- uptimeMinutes,
- uptimeSeconds,
- batteryPercent,
- batteryController.Voltage(),
- brightnessController.ToString(),
- resetReason,
- ToString(motionController.DeviceType()),
- touchPanel.GetChipId(),
- touchPanel.GetVendorId(),
- touchPanel.GetFwVersion());
- lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0);
- return std::make_unique<Screens::Label>(1, 5, app, label);
-}
-
-std::unique_ptr<Screen> SystemInfo::CreateScreen3() {
- lv_mem_monitor_t mon;
- lv_mem_monitor(&mon);
-
- lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr);
- lv_label_set_recolor(label, true);
- auto& bleAddr = bleController.Address();
- lv_label_set_text_fmt(label,
- "#444444 BLE MAC#\n"
- " %02x:%02x:%02x:%02x:%02x:%02x"
- "\n"
- "#444444 LVGL Memory#\n"
- " #444444 used# %d (%d%%)\n"
- " #444444 max used# %lu\n"
- " #444444 frag# %d%%\n"
- " #444444 free# %d",
- bleAddr[5],
- bleAddr[4],
- bleAddr[3],
- bleAddr[2],
- bleAddr[1],
- bleAddr[0],
- static_cast<int>(mon.total_size - mon.free_size),
- mon.used_pct,
- mon.max_used,
- mon.frag_pct,
- static_cast<int>(mon.free_biggest_size));
- lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0);
- return std::make_unique<Screens::Label>(2, 5, app, label);
-}
-
-bool SystemInfo::sortById(const TaskStatus_t& lhs, const TaskStatus_t& rhs) {
- return lhs.xTaskNumber < rhs.xTaskNumber;
-}
-
-std::unique_ptr<Screen> SystemInfo::CreateScreen4() {
- static constexpr uint8_t maxTaskCount = 9;
- TaskStatus_t tasksStatus[maxTaskCount];
-
- lv_obj_t* infoTask = lv_table_create(lv_scr_act(), nullptr);
- lv_table_set_col_cnt(infoTask, 4);
- lv_table_set_row_cnt(infoTask, maxTaskCount + 1);
- lv_obj_set_style_local_pad_all(infoTask, LV_TABLE_PART_CELL1, LV_STATE_DEFAULT, 0);
- lv_obj_set_style_local_border_color(infoTask, LV_TABLE_PART_CELL1, LV_STATE_DEFAULT, LV_COLOR_GRAY);
-
- lv_table_set_cell_value(infoTask, 0, 0, "#");
- lv_table_set_col_width(infoTask, 0, 30);
- lv_table_set_cell_value(infoTask, 0, 1, "S"); // State
- lv_table_set_col_width(infoTask, 1, 30);
- lv_table_set_cell_value(infoTask, 0, 2, "Task");
- lv_table_set_col_width(infoTask, 2, 80);
- lv_table_set_cell_value(infoTask, 0, 3, "Free");
- lv_table_set_col_width(infoTask, 3, 90);
-
- auto nb = uxTaskGetSystemState(tasksStatus, maxTaskCount, nullptr);
- std::sort(tasksStatus, tasksStatus + nb, sortById);
- for (uint8_t i = 0; i < nb && i < maxTaskCount; i++) {
- char buffer[7] = {0};
-
- sprintf(buffer, "%lu", tasksStatus[i].xTaskNumber);
- lv_table_set_cell_value(infoTask, i + 1, 0, buffer);
- switch (tasksStatus[i].eCurrentState) {
- case eReady:
- case eRunning:
- buffer[0] = 'R';
- break;
- case eBlocked:
- buffer[0] = 'B';
- break;
- case eSuspended:
- buffer[0] = 'S';
- break;
- case eDeleted:
- buffer[0] = 'D';
- break;
- default:
- buffer[0] = 'I'; // Invalid
- break;
- }
- buffer[1] = '\0';
- lv_table_set_cell_value(infoTask, i + 1, 1, buffer);
- lv_table_set_cell_value(infoTask, i + 1, 2, tasksStatus[i].pcTaskName);
- if (tasksStatus[i].usStackHighWaterMark < 20) {
- sprintf(buffer, "%d low", tasksStatus[i].usStackHighWaterMark);
- } else {
- sprintf(buffer, "%d", tasksStatus[i].usStackHighWaterMark);
- }
- lv_table_set_cell_value(infoTask, i + 1, 3, buffer);
- }
- return std::make_unique<Screens::Label>(3, 5, app, infoTask);
-}
-
-std::unique_ptr<Screen> SystemInfo::CreateScreen5() {
- lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr);
- lv_label_set_recolor(label, true);
- lv_label_set_text_static(label,
- "Software Licensed\n"
- "under the terms of\n"
- "the GNU General\n"
- "Public License v3\n"
- "#444444 Source code#\n"
- "#FFFF00 https://github.com/#\n"
- "#FFFF00 InfiniTimeOrg/#\n"
- "#FFFF00 InfiniTime#");
- lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
- lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0);
- return std::make_unique<Screens::Label>(4, 5, app, label);
-} \ No newline at end of file
diff --git a/src/displayapp/screens/SystemInfo.h b/src/displayapp/screens/SystemInfo.h
deleted file mode 100644
index a382ed8..0000000
--- a/src/displayapp/screens/SystemInfo.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#pragma once
-
-#include <memory>
-#include "displayapp/screens/Screen.h"
-#include "displayapp/screens/ScreenList.h"
-
-namespace Pinetime {
- namespace Controllers {
- class DateTime;
- class Battery;
- class BrightnessController;
- class Ble;
- }
-
- namespace Drivers {
- class WatchdogView;
- }
-
- namespace Applications {
- class DisplayApp;
-
- namespace Screens {
- class SystemInfo : public Screen {
- public:
- explicit SystemInfo(DisplayApp* app,
- Pinetime::Controllers::DateTime& dateTimeController,
- Pinetime::Controllers::Battery& batteryController,
- Pinetime::Controllers::BrightnessController& brightnessController,
- Pinetime::Controllers::Ble& bleController,
- Pinetime::Drivers::WatchdogView& watchdog,
- Pinetime::Controllers::MotionController& motionController,
- Pinetime::Drivers::Cst816S& touchPanel);
- ~SystemInfo() override;
- bool OnTouchEvent(TouchEvents event) override;
-
- private:
- Pinetime::Controllers::DateTime& dateTimeController;
- Pinetime::Controllers::Battery& batteryController;
- Pinetime::Controllers::BrightnessController& brightnessController;
- Pinetime::Controllers::Ble& bleController;
- Pinetime::Drivers::WatchdogView& watchdog;
- Pinetime::Controllers::MotionController& motionController;
- Pinetime::Drivers::Cst816S& touchPanel;
-
- ScreenList<5> screens;
-
- static bool sortById(const TaskStatus_t& lhs, const TaskStatus_t& rhs);
-
- std::unique_ptr<Screen> CreateScreen1();
- std::unique_ptr<Screen> CreateScreen2();
- std::unique_ptr<Screen> CreateScreen3();
- std::unique_ptr<Screen> CreateScreen4();
- std::unique_ptr<Screen> CreateScreen5();
- };
- }
- }
-}
diff --git a/src/displayapp/screens/settings/Settings.cpp b/src/displayapp/screens/settings/Settings.cpp
index c819a38..ba80869 100644
--- a/src/displayapp/screens/settings/Settings.cpp
+++ b/src/displayapp/screens/settings/Settings.cpp
@@ -48,7 +48,7 @@ std::unique_ptr<Screen> Settings::CreateScreen2() {
{Symbols::tachometer, "Shake Calib.", Apps::SettingShakeThreshold},
{Symbols::check, "Firmware", Apps::FirmwareValidation},
{Symbols::airplane, "Airplane mode", Apps::SettingAirplaneMode},
- {Symbols::list, "About", Apps::SysInfo}
+ {Symbols::none, "None", Apps::None}
}};
return std::make_unique<Screens::List>(1, 2, app, settingsController, applications);