diff --git a/platformio.ini b/platformio.ini index 1916350..09540d7 100644 --- a/platformio.ini +++ b/platformio.ini @@ -13,4 +13,5 @@ platform = espressif32 board = wt32-eth01 framework = arduino lib_deps = siwats/ESPMegaPROR3@^2.3.8 -monitor_speed = 115200 \ No newline at end of file +monitor_speed = 115200 +build_flags = -DCORE_DEBUG_LEVEL=5 \ No newline at end of file diff --git a/src/display.cpp b/src/display.cpp index 9e8f2c6..7dd9adc 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -20,9 +20,12 @@ CUDDisplay::CUDDisplay(cud_display_conf_t *conf) : ESPMegaDisplay(conf->uart, co .picture_off_pressed = {LCD_DASHBOARD_PIC_FAN_1_OFF_PRESSED, LCD_DASHBOARD_PIC_FAN_2_OFF_PRESSED, LCD_DASHBOARD_PIC_FAN_3_OFF_PRESSED}}; } -void CUDDisplay::begin() +void CUDDisplay::begin(cud_display_cards_t cards) { + // Save Cards + this->cards = cards; // Register callbacks + ESP_LOGV("CUD Display", "Registering callbacks"); auto binded_input_callback = std::bind(&CUDDisplay::handle_input_change, this, std::placeholders::_1, std::placeholders::_2); auto binded_output_callback = std::bind(&CUDDisplay::handle_output_change, this, std::placeholders::_1, std::placeholders::_2); auto binded_aqi_callback = std::bind(&CUDDisplay::handle_aqi_change, this, std::placeholders::_1); @@ -30,24 +33,35 @@ void CUDDisplay::begin() auto binded_touch_callback = std::bind(&CUDDisplay::handle_touch, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3); auto binded_ac_callback = std::bind(&CUDDisplay::handle_ac_change, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3); auto binded_ac_sensor_callback = std::bind(&CUDDisplay::handle_ac_sensor, this, std::placeholders::_1, std::placeholders::_2); - this->conf->inputCard->registerCallback(binded_input_callback); - this->conf->outputCard->registerChangeCallback(binded_output_callback); + ESP_LOGV("CUD Display", "Registering Input Card Callbacks"); + this->cards.inputCard->registerCallback(binded_input_callback); + ESP_LOGV("CUD Display", "Registering Output Card Callbacks"); + this->cards.outputCard->registerChangeCallback(binded_output_callback); + ESP_LOGV("CUD Display", "Registering AQI Callbacks"); this->conf->aqi->registerCallback(binded_aqi_callback); + ESP_LOGV("CUD Display", "Registering Display Payload Callbacks"); this->registerPayloadCallback(binded_payload_callback); + ESP_LOGV("CUD Display", "Registering Display Touch Callbacks"); this->registerTouchCallback(binded_touch_callback); - this->conf->ac->registerChangeCallback(binded_ac_callback); - this->conf->ac->registerSensorCallback(binded_ac_sensor_callback); + ESP_LOGV("CUD Display", "Registering AC Callbacks"); + this->cards.ac->registerChangeCallback(binded_ac_callback); + ESP_LOGV("CUD Display", "Registering AC Sensor Callbacks"); + this->cards.ac->registerSensorCallback(binded_ac_sensor_callback); // Initialize the display + ESP_LOGV("CUD Display", "Initializing display"); this->display_init(); } void CUDDisplay::display_init() { // Perform a reset on the display + ESP_LOGV("CUD Display", "Resetting display"); this->reset(); // Set the display to the main screen + ESP_LOGV("CUD Display", "Setting display to main screen"); this->jumpToPage(LCD_PAGE_ID_DASHBOARD); // Send the initial states to the display + ESP_LOGV("CUD Display", "Sending initial states to display"); this->refresh_display(); } @@ -55,7 +69,7 @@ bool CUDDisplay::get_lights_state() { for (int i = 0; i < 4; i++) { - if (this->conf->outputCard->getState(this->conf->light_pins[i])) + if (this->cards.outputCard->getState(this->conf->light_pins[i])) return true; } return false; @@ -65,7 +79,7 @@ bool CUDDisplay::get_fans_state() { for (int i = 0; i < 3; i++) { - if (this->conf->outputCard->getState(this->conf->fan_pins[i])) + if (this->cards.outputCard->getState(this->conf->fan_pins[i])) return true; } return false; @@ -131,7 +145,7 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch bool light_on = this->get_lights_state(); for (int i = 0; i < 4; i++) { - this->conf->outputCard->setState(this->conf->light_pins[i], !light_on); + this->cards.outputCard->setState(this->conf->light_pins[i], !light_on); } return; } @@ -142,7 +156,7 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch bool fan_on = this->get_fans_state(); for (int i = 0; i < 3; i++) { - this->conf->outputCard->setState(this->conf->fan_pins[i], !fan_on); + this->cards.outputCard->setState(this->conf->fan_pins[i], !fan_on); } return; } @@ -150,14 +164,14 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch else if (element_id == LCD_DASHBOARD_ELEMENT_AIR_PURIFIER) { // If it is, toggle the air purifier - this->conf->outputCard->setState(this->conf->air_purifier_pin, !this->conf->outputCard->getState(this->conf->air_purifier_pin)); + this->cards.outputCard->setState(this->conf->air_purifier_pin, !this->cards.outputCard->getState(this->conf->air_purifier_pin)); return; } // Check if element_id is the mosquito zapper button else if (element_id == LCD_DASHBOARD_ELEMENT_MOSQUITO_ZAPPER) { // If it is, toggle the mosquito zapper - this->conf->outputCard->setState(this->conf->mosquito_zapper_pin, !this->conf->outputCard->getState(this->conf->mosquito_zapper_pin)); + this->cards.outputCard->setState(this->conf->mosquito_zapper_pin, !this->cards.outputCard->getState(this->conf->mosquito_zapper_pin)); return; } // Check if element_id is a light button @@ -166,7 +180,7 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch if (element_id == this->light_group.element_id[i]) { // If it is, toggle the light - this->conf->outputCard->setState(this->conf->light_pins[i], !this->conf->outputCard->getState(this->conf->light_pins[i])); + this->cards.outputCard->setState(this->conf->light_pins[i], !this->cards.outputCard->getState(this->conf->light_pins[i])); return; } } @@ -176,7 +190,7 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch if (element_id == this->fan_group.element_id[i]) { // If it is, toggle the fan - this->conf->outputCard->setState(this->conf->fan_pins[i], !this->conf->outputCard->getState(this->conf->fan_pins[i])); + this->cards.outputCard->setState(this->conf->fan_pins[i], !this->cards.outputCard->getState(this->conf->fan_pins[i])); return; } } @@ -188,15 +202,15 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch return; // Toggle the AC // Is the AC on? - if (this->conf->ac->getMode() != 0) + if (this->cards.ac->getMode() != 0) { // If it is, turn it off - this->conf->ac->setMode(0); + this->cards.ac->setMode(0); } else { // If it is not, turn it on - this->conf->ac->setMode(previous_mode); + this->cards.ac->setMode(previous_mode); } return; } @@ -207,7 +221,7 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch if (this->ac_locked) return; // Set the AC mode to fan - this->conf->ac->setMode(1); + this->cards.ac->setMode(1); return; } // Check if element_id is the AC mode cool button @@ -217,7 +231,7 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch if (this->ac_locked) return; // Set the AC mode to cool - this->conf->ac->setMode(2); + this->cards.ac->setMode(2); return; } // Check if element_id is the AC fan speed auto button @@ -227,7 +241,7 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch if (this->ac_locked) return; // Set the AC fan speed to auto - this->conf->ac->setFanSpeed(0); + this->cards.ac->setFanSpeed(0); return; } // Check if element_id is the AC fan speed low button @@ -237,7 +251,7 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch if (this->ac_locked) return; // Set the AC fan speed to low - this->conf->ac->setFanSpeed(1); + this->cards.ac->setFanSpeed(1); return; } // Check if element_id is the AC fan speed medium button @@ -247,7 +261,7 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch if (this->ac_locked) return; // Set the AC fan speed to medium - this->conf->ac->setFanSpeed(2); + this->cards.ac->setFanSpeed(2); return; } // Check if element_id is the AC fan speed high button @@ -257,7 +271,7 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch if (this->ac_locked) return; // Set the AC fan speed to high - this->conf->ac->setFanSpeed(3); + this->cards.ac->setFanSpeed(3); return; } // Check if element_id is the AC temperature up button @@ -267,7 +281,7 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch if (this->ac_locked) return; // Increase the AC temperature - this->conf->ac->setTemperature(this->conf->ac->getTemperature() + 1); + this->cards.ac->setTemperature(this->cards.ac->getTemperature() + 1); return; } // Check if element_id is the AC temperature down button @@ -277,7 +291,7 @@ void CUDDisplay::handle_touch(uint8_t page_id, uint8_t element_id, uint8_t touch if (this->ac_locked) return; // Decrease the AC temperature - this->conf->ac->setTemperature(this->conf->ac->getTemperature() - 1); + this->cards.ac->setTemperature(this->cards.ac->getTemperature() - 1); return; } // The element_id is not the one that our display is handling, so we can ignore it @@ -351,6 +365,11 @@ void CUDDisplay::handle_ac_change(uint8_t mode, uint8_t fan_speed, uint8_t tempe this->refresh_display_ac(); } +void CUDDisplay::handle_ac_sensor(float temperature, float humidity) +{ + // Not needed for now +} + void CUDDisplay::set_display_light_state(uint8_t row, bool state) { this->takeSerialMutex(); @@ -416,29 +435,38 @@ void CUDDisplay::set_display_air_purifier_state(bool state) void CUDDisplay::refresh_display() { // Send every states to the display + ESP_LOGV("CUD Display", "Refreshing all light button states"); this->set_display_light_all_state(); + ESP_LOGV("CUD Display", "Refreshing all fan button states"); this->set_display_fan_all_state(); - this->set_display_air_purifier_state(this->conf->outputCard->getState(this->conf->air_purifier_pin)); - this->set_display_mosquito_zapper_state(this->conf->outputCard->getState(this->conf->mosquito_zapper_pin)); + ESP_LOGV("CUD Display", "Refreshing air purifier state"); + this->set_display_air_purifier_state(this->cards.outputCard->getState(this->conf->air_purifier_pin)); + ESP_LOGV("CUD Display", "Refreshing mosquito zapper state"); + this->set_display_mosquito_zapper_state(this->cards.outputCard->getState(this->conf->mosquito_zapper_pin)); + ESP_LOGV("CUD Display", "Refreshing light states"); for (int i = 0; i < 4; i++) { - this->set_display_light_state(i, this->conf->outputCard->getState(this->conf->light_pins[i])); + this->set_display_light_state(i, this->cards.outputCard->getState(this->conf->light_pins[i])); } + ESP_LOGV("CUD Display", "Refreshing Fan state"); for (int i = 0; i < 3; i++) { - this->set_display_fan_state(i, this->conf->outputCard->getState(this->conf->fan_pins[i])); + this->set_display_fan_state(i, this->cards.outputCard->getState(this->conf->fan_pins[i])); } + refresh_display_ac(); } void CUDDisplay::refresh_display_ac() { // Fetch data from the AC - uint8_t mode = this->conf->ac->getMode(); + uint8_t mode = this->cards.ac->getMode(); bool state = mode != 0; previous_mode = previous_mode == 0 ? 2 : previous_mode; bool drawn_mode = mode == 0? previous_mode : mode; - uint8_t fan_speed = this->conf->ac->getFanSpeed(); - uint8_t temperature = this->conf->ac->getTemperature(); + uint8_t fan_speed = this->cards.ac->getFanSpeed(); + uint8_t temperature = this->cards.ac->getTemperature(); + ESP_LOGV("CUD Display", "Mode: %d, Fan Speed: %d, Temperature: %d", mode, fan_speed, temperature); + ESP_LOGV("CUD Display", "Previous Mode: %d", previous_mode); // Draw the state picture set // Is the AC locked? if (this->ac_locked) diff --git a/src/display.hpp b/src/display.hpp index e99914b..0fc9f59 100644 --- a/src/display.hpp +++ b/src/display.hpp @@ -19,9 +19,6 @@ struct cud_display_conf_t { RemoteVariable *aqi; - DigitalInputCard *inputCard; - DigitalOutputCard *outputCard; - ClimateCard *ac; HardwareSerial *uart; const int tx; const int rx; @@ -33,6 +30,13 @@ struct cud_display_conf_t uint8_t mosquito_zapper_pin; }; +struct cud_display_cards_t +{ + DigitalInputCard *inputCard; + DigitalOutputCard *outputCard; + ClimateCard *ac; +}; + struct cud_display_light_group_t { uint8_t element_id[4]; @@ -57,7 +61,7 @@ class CUDDisplay : public ESPMegaDisplay { public: CUDDisplay(cud_display_conf_t *conf); - void begin(); + void begin(cud_display_cards_t cards); void display_init(); private: // States Calculation @@ -89,6 +93,7 @@ class CUDDisplay : public ESPMegaDisplay uint8_t previous_mode; // Used to store mode prior to turning off // Local Variables cud_display_conf_t *conf; + cud_display_cards_t cards; cud_display_light_group_t light_group; cud_display_fan_group_t fan_group; }; \ No newline at end of file diff --git a/src/lcd_elements.hpp b/src/lcd_elements.hpp index ce35778..beceee9 100644 --- a/src/lcd_elements.hpp +++ b/src/lcd_elements.hpp @@ -120,74 +120,74 @@ #define LCD_DASHBOARD_PIC_SOCKET_POWER_OFF 13 // Air Conditioner -#define LCD_DASHBOARD_ELEMENT_AC_STATE 12 -#define LCD_DASHBOARD_ELEMENT_NAME_AC_STATE "ac_state" +#define LCD_DASHBOARD_ELEMENT_AC_STATE 20 +#define LCD_DASHBOARD_ELEMENT_NAME_AC_STATE "btn_ac_toggle" #define LCD_DASHBOARD_ELEMENT_NAME_ICO_LOCK "ico_ac_lock" -#define LCD_DASHBOARD_PIC_AC_STATE_OFF 30 -#define LCD_DASHBOARD_PIC_AC_STATE_OFF_PRESSED 31 -#define LCD_DASHBOARD_PIC_AC_STATE_OFF_LOCKED 31 -#define LCD_DASHBOARD_PIC_AC_STATE_ON 32 -#define LCD_DASHBOARD_PIC_AC_STATE_ON_PRESSED 33 -#define LCD_DASHBOARD_PIC_AC_STATE_ON_LOCKED 33 +#define LCD_DASHBOARD_PIC_AC_STATE_OFF 59 +#define LCD_DASHBOARD_PIC_AC_STATE_OFF_PRESSED 58 +#define LCD_DASHBOARD_PIC_AC_STATE_OFF_LOCKED 59 +#define LCD_DASHBOARD_PIC_AC_STATE_ON 61 +#define LCD_DASHBOARD_PIC_AC_STATE_ON_PRESSED 60 +#define LCD_DASHBOARD_PIC_AC_STATE_ON_LOCKED 61 -#define LCD_DASHBOARD_ELEMENT_AC_MODE_FAN 13 -#define LCD_DASHBOARD_ELEMENT_NAME_AC_MODE_FAN "ac_mode_fan" -#define LCD_DASHBOARD_PIC_AC_MODE_FAN_ACTIVE 34 -#define LCD_DASHBOARD_PIC_AC_MODE_FAN_ACTIVE_PRESS 35 -#define LCD_DASHBOARD_PIC_AC_MODE_FAN_INACTIVE 35 -#define LCD_DASHBOARD_PIC_AC_MODE_FAN_INACTIVE_PRESS 34 +#define LCD_DASHBOARD_ELEMENT_AC_MODE_FAN 23 +#define LCD_DASHBOARD_ELEMENT_NAME_AC_MODE_FAN "btn_acm_fan" +#define LCD_DASHBOARD_PIC_AC_MODE_FAN_ACTIVE 70 +#define LCD_DASHBOARD_PIC_AC_MODE_FAN_ACTIVE_PRESS 69 +#define LCD_DASHBOARD_PIC_AC_MODE_FAN_INACTIVE 68 +#define LCD_DASHBOARD_PIC_AC_MODE_FAN_INACTIVE_PRESS 67 -#define LCD_DASHBOARD_ELEMENT_AC_MODE_COOL 14 -#define LCD_DASHBOARD_ELEMENT_NAME_AC_MODE_COOL "ac_mode_cool" -#define LCD_DASHBOARD_PIC_AC_MODE_COOL_ACTIVE 36 -#define LCD_DASHBOARD_PIC_AC_MODE_COOL_ACTIVE_PRESS 37 -#define LCD_DASHBOARD_PIC_AC_MODE_COOL_INACTIVE 37 -#define LCD_DASHBOARD_PIC_AC_MODE_COOL_INACTIVE_PRESS 36 +#define LCD_DASHBOARD_ELEMENT_AC_MODE_COOL 22 +#define LCD_DASHBOARD_ELEMENT_NAME_AC_MODE_COOL "btn_acm_cool" +#define LCD_DASHBOARD_PIC_AC_MODE_COOL_ACTIVE 70 +#define LCD_DASHBOARD_PIC_AC_MODE_COOL_ACTIVE_PRESS 69 +#define LCD_DASHBOARD_PIC_AC_MODE_COOL_INACTIVE 68 +#define LCD_DASHBOARD_PIC_AC_MODE_COOL_INACTIVE_PRESS 67 -#define LCD_DASHBOARD_ELEMENT_AC_FAN_SPEED_AUTO 15 -#define LCD_DASHBOARD_ELEMENT_NAME_AC_FAN_SPEED_AUTO "ac_fan_auto" -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_AUTO_ACTIVE 38 -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_AUTO_ACTIVE_PRESS 39 -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_AUTO_INACTIVE 39 -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_AUTO_INACTIVE_PRESS 38 +#define LCD_DASHBOARD_ELEMENT_AC_FAN_SPEED_AUTO 24 +#define LCD_DASHBOARD_ELEMENT_NAME_AC_FAN_SPEED_AUTO "btn_acfs_auto" +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_AUTO_ACTIVE 74 +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_AUTO_ACTIVE_PRESS 73 +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_AUTO_INACTIVE 72 +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_AUTO_INACTIVE_PRESS 71 -#define LCD_DASHBOARD_ELEMENT_AC_FAN_SPEED_HIGH 16 -#define LCD_DASHBOARD_ELEMENT_NAME_AC_FAN_SPEED_HIGH "ac_fan_high" -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_HIGH_ACTIVE 40 -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_HIGH_ACTIVE_PRESS 41 -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_HIGH_INACTIVE 41 -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_HIGH_INACTIVE_PRESS 40 +#define LCD_DASHBOARD_ELEMENT_AC_FAN_SPEED_LOW 25 +#define LCD_DASHBOARD_ELEMENT_NAME_AC_FAN_SPEED_LOW "btn_acfs_low" +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_LOW_ACTIVE 82 +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_LOW_ACTIVE_PRESS 81 +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_LOW_INACTIVE 80 +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_LOW_INACTIVE_PRESS 79 -#define LCD_DASHBOARD_ELEMENT_AC_FAN_SPEED_MEDIUM 17 -#define LCD_DASHBOARD_ELEMENT_NAME_AC_FAN_SPEED_MEDIUM "ac_fan_medium" -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_MEDIUM_ACTIVE 42 -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_MEDIUM_ACTIVE_PRESS 43 -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_MEDIUM_INACTIVE 43 -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_MEDIUM_INACTIVE_PRESS 42 +#define LCD_DASHBOARD_ELEMENT_AC_FAN_SPEED_MEDIUM 26 +#define LCD_DASHBOARD_ELEMENT_NAME_AC_FAN_SPEED_MEDIUM "btn_acfs_medium" +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_MEDIUM_ACTIVE 86 +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_MEDIUM_ACTIVE_PRESS 85 +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_MEDIUM_INACTIVE 84 +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_MEDIUM_INACTIVE_PRESS 83 -#define LCD_DASHBOARD_ELEMENT_AC_FAN_SPEED_LOW 18 -#define LCD_DASHBOARD_ELEMENT_NAME_AC_FAN_SPEED_LOW "ac_fan_low" -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_LOW_ACTIVE 44 -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_LOW_ACTIVE_PRESS 45 -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_LOW_INACTIVE 45 -#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_LOW_INACTIVE_PRESS 44 +#define LCD_DASHBOARD_ELEMENT_AC_FAN_SPEED_HIGH 27 +#define LCD_DASHBOARD_ELEMENT_NAME_AC_FAN_SPEED_HIGH "btn_acfs_high" +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_HIGH_ACTIVE +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_HIGH_ACTIVE_PRESS +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_HIGH_INACTIVE 76 +#define LCD_DASHBOARD_PIC_AC_FAN_SPEED_HIGH_INACTIVE_PRESS 75 -#define LCD_DASHBOARD_ELEMENT_AC_TEMPERATURE 19 -#define LCD_DASHBOARD_ELEMENT_NAME_AC_TEMPERATURE "ac_temp" +#define LCD_DASHBOARD_ELEMENT_AC_TEMPERATURE 6 +#define LCD_DASHBOARD_ELEMENT_NAME_AC_TEMPERATURE "txt_ac_temp" -#define LCD_DASHBOARD_ELEMENT_AC_TEMP_UP_BUTTON 20 -#define LCD_DASHBOARD_ELEMENT_NAME_AC_TEMP_UP_BUTTON "ac_temp_up" +#define LCD_DASHBOARD_ELEMENT_AC_TEMP_UP_BUTTON 19 +#define LCD_DASHBOARD_ELEMENT_NAME_AC_TEMP_UP_BUTTON "btn_temp_up" -#define LCD_DASHBOARD_ELEMENT_AC_TEMP_DOWN_BUTTON 21 -#define LCD_DASHBOARD_ELEMENT_NAME_AC_TEMP_DOWN_BUTTON "ac_temp_down" +#define LCD_DASHBOARD_ELEMENT_AC_TEMP_DOWN_BUTTON 18 +#define LCD_DASHBOARD_ELEMENT_NAME_AC_TEMP_DOWN_BUTTON "btn_temp_down" -#define LCD_DASHBOARD_ELEMENT_ROOM_TEMPERATURE 19 -#define LCD_DASHBOARD_ELEMENT_NAME_ROOM_TEMPERATURE "room_temp" +#define LCD_DASHBOARD_ELEMENT_ROOM_TEMPERATURE 4 +#define LCD_DASHBOARD_ELEMENT_NAME_ROOM_TEMPERATURE "txt_room_temp" // All System Button -#define LCD_DASHBOARD_ELEMENT_ALL_SYSTEM_TOGGLE 20 -#define LCD_DASHBOARD_ELEMENT_NAME_ALL_SYSTEM_TOGGLE "all_toggle" -#define LCD_DASHBOARD_PIC_ALL_SYSTEM_TOGGLE_ON 46 -#define LCD_DASHBOARD_PIC_ALL_SYSTEM_TOGGLE_ON_PRESSED 47 -#define LCD_DASHBOARD_PIC_ALL_SYSTEM_TOGGLE_OFF 47 -#define LCD_DASHBOARD_PIC_ALL_SYSTEM_TOGGLE_OFF_PRESSED 46 +#define LCD_DASHBOARD_ELEMENT_ALL_SYSTEM_TOGGLE 17 +#define LCD_DASHBOARD_ELEMENT_NAME_ALL_SYSTEM_TOGGLE "btn_allsys" +#define LCD_DASHBOARD_PIC_ALL_SYSTEM_TOGGLE_ON 57 +#define LCD_DASHBOARD_PIC_ALL_SYSTEM_TOGGLE_ON_PRESSED 56 +#define LCD_DASHBOARD_PIC_ALL_SYSTEM_TOGGLE_OFF 55 +#define LCD_DASHBOARD_PIC_ALL_SYSTEM_TOGGLE_OFF_PRESSED 54 diff --git a/src/main.cpp b/src/main.cpp index 9a888ad..5b7c1a6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -20,7 +20,6 @@ ClimateCard ac = ClimateCard(AC_IR_TX_PIN, ac_config, AC_SENSOR_TYPE, AC_SENSOR_ cud_display_conf_t cud_display_conf = { .aqi = &aqi, - .ac = &ac, .uart = &DISPLAY_UART, .tx = DISPLAY_TX, .rx = DISPLAY_RX, @@ -99,7 +98,11 @@ void setup() espmega.inputs.registerCallback(handle_input_change); // Start the display routine ESP_LOGV("CUD IoT OS", "Starting CUDDisplay"); - cudDisplay.begin(); + cud_display_cards_t cards = { + .inputCard = &espmega.inputs, + .outputCard = &espmega.outputs, + .ac = &ac}; + cudDisplay.begin(cards); ESP_LOGI("CUD IoT OS", "Initialization Complete"); }