#include #include #define INTERNAL_DISPLAY_DASHBOARD_PAGE 0 #define INTERNAL_DISPLAY_INPUT_PAGE 1 #define INTERNAL_DISPLAY_OUTPUT_PAGE 2 #define INTERNAL_DISPLAY_AC_PAGE 3 class InternalDisplay : public ESPMegaDisplay { public: InternalDisplay(HardwareSerial *displayAdapter); void begin(ESPMegaPRO *espmega); void loop(); void bindInputCard(uint8_t card_id); void bindOutputCard(uint8_t card_id); private: uint8_t bindedInputCard; uint8_t bindedOutputCard; ESPMegaPRO *espmega; void handleInputStateChange(uint8_t pin, bool state); void handlePwmStateChange(uint8_t pin, uint16_t value); void handlePageChange(uint8_t page); void setOutputBar(uint8_t pin, uint16_t value); void setOutputStateColor(uint8_t pin, bool state); void setInputMarker(uint8_t pin, bool state); void setPWMAdjustmentSlider(uint16_t value); void setPWMAdjustmentPin(uint8_t pin); void setPWMAdjustmentButton(bool state); void saveNetworkConfig(); void saveMQTTConfig(); void updateStatusIcons(); void updateClock(); void refreshPage(); void refreshPage(uint8_t page); void refreshDashboard(); void refreshInput(); void refreshOutput(); void refreshAC(); };