boots normally now

This commit is contained in:
Siwat Sirichai 2024-03-22 23:24:41 +07:00
parent 4e20578b20
commit c802f901f5
5 changed files with 133 additions and 96 deletions

View File

@ -13,4 +13,5 @@ platform = espressif32
board = wt32-eth01
framework = arduino
lib_deps = siwats/ESPMegaPROR3@^2.3.8
monitor_speed = 115200
monitor_speed = 115200
build_flags = -DCORE_DEBUG_LEVEL=5

View File

@ -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)

View File

@ -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;
};

View File

@ -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

View File

@ -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");
}