better handle interaction between CT and analog card

This commit is contained in:
Siwat Sirichai 2024-03-10 01:07:23 +07:00
parent fe75c3aceb
commit 29a975a1af

View file

@ -1,5 +1,7 @@
#include <main.hpp> #include <main.hpp>
bool analogCardAvailable = false;
RemoteVariable pm25_in = RemoteVariable(); RemoteVariable pm25_in = RemoteVariable();
RemoteVariable pm25_out = RemoteVariable(); RemoteVariable pm25_out = RemoteVariable();
RemoteVariable temp_out = RemoteVariable(); RemoteVariable temp_out = RemoteVariable();
@ -121,7 +123,6 @@ void setup()
espmega.enableWebServer(80); espmega.enableWebServer(80);
espmega.inputs.registerCallback(on_pin_change); espmega.inputs.registerCallback(on_pin_change);
espmega.outputs.setAutoSaveToFRAM(true); espmega.outputs.setAutoSaveToFRAM(true);
analogCard.begin();
// Set value of pin 0-12 to 4095 // Set value of pin 0-12 to 4095
for (uint8_t i = 0; i < 13; i++) for (uint8_t i = 0; i < 13; i++)
{ {
@ -136,19 +137,26 @@ void setup()
climateCard.setFRAMAutoSave(true); climateCard.setFRAMAutoSave(true);
espmega.display->bindClimateCard(&climateCard); espmega.display->bindClimateCard(&climateCard);
ESP_LOGD("ISE OS", "Installing current transformer cards"); ESP_LOGD("ISE OS", "Installing current transformer cards");
espmega.installCard(4, &ct_light_phase1); analogCardAvailable = espmega.installCard(4, &analogCard);
espmega.installCard(5, &ct_light_phase2); if (analogCardAvailable) {
espmega.installCard(6, &ct_socket); ESP_LOGV("ISE OS", "Analog card available, installing current transformer cards");
espmega.installCard(7, &ct_ac_phase1); espmega.installCard(5, &ct_light_phase1);
espmega.installCard(8, &ct_ac_phase2); espmega.installCard(6, &ct_light_phase2);
espmega.installCard(9, &ct_ac_phase3); espmega.installCard(7, &ct_socket);
ESP_LOGD("ISE OS", "Registering Current Transformer Cards with IoT Module"); espmega.installCard(8, &ct_ac_phase1);
espmega.installCard(9, &ct_ac_phase2);
espmega.installCard(10, &ct_ac_phase3);
espmega.iot->registerCard(4); espmega.iot->registerCard(4);
espmega.iot->registerCard(5); espmega.iot->registerCard(5);
espmega.iot->registerCard(6); espmega.iot->registerCard(6);
espmega.iot->registerCard(7); espmega.iot->registerCard(7);
espmega.iot->registerCard(8); espmega.iot->registerCard(8);
espmega.iot->registerCard(9); espmega.iot->registerCard(9);
} else {
ESP_LOGE("ISE OS", "Analog card not available, current transformer cards cannot and will not be installed.");
}
ESP_LOGD("ISE OS", "Registering Current Transformer Cards with IoT Module");
// auto binded_display_update_on_pm25_out = std::bind(&display_update,0,std::placeholders::_1); // auto binded_display_update_on_pm25_out = std::bind(&display_update,0,std::placeholders::_1);
// auto binded_display_update_on_pm25_in = std::bind(&display_update,1,std::placeholders::_1); // auto binded_display_update_on_pm25_in = std::bind(&display_update,1,std::placeholders::_1);
// auto binded_display_update_on_temp_out = std::bind(&display_update,2,std::placeholders::_1); // auto binded_display_update_on_temp_out = std::bind(&display_update,2,std::placeholders::_1);