#pragma once #include #include #include #include "libcontrol.h" #include "rpc/RemoteDebugging.h" #include "tabs/InformationTab.h" #include "tabs/LoggingTab.h" #include "tabs/FirmwareUpdateTab.h" #include "tabs/TaskManagerTab.h" #include "tabs/ConfigurationTab.h" #include "tabs/CoredumpTab.h" #include using namespace ftxui; class DeviceDetailsApp { public: DeviceDetailsApp(std::shared_ptr robot_controller, uint8_t device_id); void run(); private: std::shared_ptr robot_controller_; std::shared_ptr remote_debugging_; uint8_t device_id_; int selected_tab_ = 0; Component main_component_; // Tab instances std::unique_ptr information_tab_; std::unique_ptr logging_tab_; std::unique_ptr firmware_update_tab_; std::unique_ptr task_manager_tab_; std::unique_ptr configuration_tab_; std::unique_ptr coredump_tab_; // Tab names std::vector tab_names_ = {"Information", "Logging", "Firmware Update", "TaskManager", "Configuration", "Core Dump"}; void setupUI(); };