#ifndef __UI_DEBUG_BATTERY_HPP__ #define __UI_DEBUG_BATTERY_HPP__ #include "ui.hpp" #include "ui_widget.hpp" #include "ui_navigation.hpp" #include "battery.hpp" #include "i2cdevmanager.hpp" #include "i2cdev_max17055.hpp" namespace ui { class BatteryCapacityView : public View { public: BatteryCapacityView(NavigationView& nav); void focus() override; std::string title() const override { return "MAX17055 Registers"; } bool on_encoder(const EncoderEvent delta) override; using RegisterEntry = i2cdev::I2cDev_MAX17055::RegisterEntry; private: static RegisterEntry get_entry(size_t index); Labels labels{ {{0 * 8, 0 * 16}, "Reg", Theme::getInstance()->fg_yellow->foreground}, {{9 * 8, 0 * 16}, "Addr", Theme::getInstance()->fg_yellow->foreground}, {{14 * 8, 0 * 16}, "Hex", Theme::getInstance()->fg_yellow->foreground}, {{21 * 8, 0 * 16}, "Value", Theme::getInstance()->fg_yellow->foreground}, }; std::array name_texts = {}; std::array addr_texts = {}; std::array hex_texts = {}; std::array value_texts = {}; Text page_text{{144, 284, 80, 16}, "Page 1/1"}; Button button_done{{16, 280, 96, 24}, "Done"}; void update_values(); void populate_page(int start_index); void update_page_text(); int current_page = 0; static constexpr int ENTRIES_PER_PAGE = 16; }; } // namespace ui #endif // __UI_DEBUG_BATTERY_HPP__