61 lines
1.7 KiB
C++
61 lines
1.7 KiB
C++
#ifndef DRIVERVIEWVIEW_HPP
|
|
#define DRIVERVIEWVIEW_HPP
|
|
|
|
#include "gui/common/NamedField.hpp"
|
|
#include "gui/containers/DriverViewFieldSelection.hpp"
|
|
#include "touchgfx/Unicode.hpp"
|
|
#include "touchgfx/containers/scrollers/DrawableList.hpp"
|
|
#include <gui/driverview_screen/DriverViewPresenter.hpp>
|
|
#include <gui_generated/driverview_screen/DriverViewViewBase.hpp>
|
|
|
|
#include "vehicle_state.h"
|
|
|
|
enum class DriverViewProgressType { PRECHARGE, R2D };
|
|
|
|
class DriverViewView : public DriverViewViewBase {
|
|
public:
|
|
DriverViewView();
|
|
virtual ~DriverViewView() {}
|
|
virtual void setupScreen() override;
|
|
virtual void tearDownScreen() override;
|
|
|
|
void fieldTypeSelectionUpdateItem(DriverViewFieldSelection &item,
|
|
int16_t itemIndex) override;
|
|
|
|
void setFieldType(size_t i, DataFieldType type);
|
|
void updateFieldValues();
|
|
void updateStatusItems();
|
|
|
|
void setTemps(const Temperatures &temps);
|
|
void setTSSoC(uint8_t soc);
|
|
void setProgress(bool active, DriverViewProgressType type, float progress);
|
|
|
|
void showAMSError();
|
|
void clearErrorPopup();
|
|
|
|
void selectPrevField() override;
|
|
void selectNextField() override;
|
|
void selectPrevFieldType() override;
|
|
void selectNextFieldType() override;
|
|
void confirmFieldType() override;
|
|
|
|
static constexpr size_t NUM_FIELDS = 3;
|
|
|
|
protected:
|
|
private:
|
|
DriverViewField &getField(size_t i);
|
|
|
|
void updateSelectedField(size_t select);
|
|
void updateSelectedFieldIndex(size_t index, bool animate = true);
|
|
void updateSelectedFieldType(DataFieldType type, bool animate = true);
|
|
|
|
size_t selectedField;
|
|
size_t selectedFieldIndex;
|
|
DataFieldType fieldTypes[NUM_FIELDS];
|
|
|
|
touchgfx::Unicode::UnicodeChar r2dProgBuffer[16];
|
|
touchgfx::Unicode::UnicodeChar socBuffer[4];
|
|
};
|
|
|
|
#endif // DRIVERVIEWVIEW_HPP
|