knxdisplay/main/widgets/ChartWidget.hpp
2026-01-29 19:33:12 +01:00

26 lines
703 B
C++

#pragma once
#include "Widget.hpp"
#include "../HistoryStore.hpp"
#include <array>
class ChartWidget : public Widget {
public:
explicit ChartWidget(const WidgetConfig& config);
lv_obj_t* create(lv_obj_t* parent) override;
void applyStyle() override;
void onHistoryUpdate() override;
private:
void refreshData();
void applyAxisLabels();
static const char** labelsForPeriod(ChartPeriod period, uint8_t* count);
lv_obj_t* chart_ = nullptr;
lv_obj_t* yScale_ = nullptr;
lv_obj_t* xScale_ = nullptr;
lv_chart_series_t* series_[CHART_MAX_SERIES] = {};
std::array<std::array<int32_t, HistoryStore::CHART_POINT_COUNT>, CHART_MAX_SERIES> seriesData_ = {};
};