mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-28 13:46:36 +00:00
Separate input and output config pages
This commit is contained in:
parent
859a111d9e
commit
7e80c81ea1
@ -1516,15 +1516,16 @@ void webHandleGpioConfig()
|
|||||||
if(webServer.hasArg(PSTR("save"))) {
|
if(webServer.hasArg(PSTR("save"))) {
|
||||||
uint8_t id = webServer.arg(F("id")).toInt();
|
uint8_t id = webServer.arg(F("id")).toInt();
|
||||||
uint8_t pin = webServer.arg(F("pin")).toInt();
|
uint8_t pin = webServer.arg(F("pin")).toInt();
|
||||||
uint8_t type = webServer.arg(F("type")).toInt() + webServer.arg(F("state")).toInt();
|
uint8_t type = webServer.arg(F("type")).toInt();
|
||||||
uint8_t group = webServer.arg(F("group")).toInt();
|
uint8_t group = webServer.arg(F("group")).toInt();
|
||||||
uint8_t pinfunc = webServer.arg(F("func")).toInt();
|
uint8_t pinfunc = webServer.arg(F("func")).toInt();
|
||||||
gpioSavePinConfig(id, pin, type, group, pinfunc);
|
bool inverted = webServer.arg(F("state")).toInt();
|
||||||
|
gpioSavePinConfig(id, pin, type, group, pinfunc, inverted);
|
||||||
}
|
}
|
||||||
if(webServer.hasArg(PSTR("del"))) {
|
if(webServer.hasArg(PSTR("del"))) {
|
||||||
uint8_t id = webServer.arg(F("id")).toInt();
|
uint8_t id = webServer.arg(F("id")).toInt();
|
||||||
uint8_t pin = webServer.arg(F("pin")).toInt();
|
uint8_t pin = webServer.arg(F("pin")).toInt();
|
||||||
gpioSavePinConfig(id, pin, HASP_GPIO_FREE, 0, 0);
|
gpioSavePinConfig(id, pin, hasp_gpio_type_t::FREE, 0, 0, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -1546,54 +1547,72 @@ void webHandleGpioConfig()
|
|||||||
httpMessage += F("<tr><td>");
|
httpMessage += F("<tr><td>");
|
||||||
// httpMessage += halGpioName(gpio);
|
// httpMessage += halGpioName(gpio);
|
||||||
httpMessage += haspDevice.gpio_name(gpio).c_str();
|
httpMessage += haspDevice.gpio_name(gpio).c_str();
|
||||||
httpMessage += F("</td><td>");
|
if(conf.type >= 0x80) {
|
||||||
|
httpMessage += F("</td><td><a href='/config/gpio/input?id=");
|
||||||
|
} else {
|
||||||
|
httpMessage += F("</td><td><a href='/config/gpio/options?id=");
|
||||||
|
}
|
||||||
|
httpMessage += id;
|
||||||
|
httpMessage += F("'>");
|
||||||
|
|
||||||
switch(conf.type) {
|
switch(conf.type) {
|
||||||
case HASP_GPIO_SWITCH:
|
case hasp_gpio_type_t::SWITCH:
|
||||||
httpMessage += F(D_GPIO_SWITCH);
|
httpMessage += F(D_GPIO_SWITCH);
|
||||||
break;
|
break;
|
||||||
case HASP_GPIO_BUTTON:
|
case hasp_gpio_type_t::BUTTON:
|
||||||
httpMessage += F(D_GPIO_BUTTON);
|
httpMessage += F(D_GPIO_BUTTON);
|
||||||
break;
|
break;
|
||||||
case HASP_GPIO_TOUCH:
|
case hasp_gpio_type_t::TOUCH:
|
||||||
httpMessage += F(D_GPIO_TOUCH);
|
httpMessage += F(D_GPIO_TOUCH);
|
||||||
break;
|
break;
|
||||||
case HASP_GPIO_LED:
|
case hasp_gpio_type_t::LED:
|
||||||
httpMessage += F(D_GPIO_LED);
|
httpMessage += F(D_GPIO_LED);
|
||||||
break;
|
break;
|
||||||
case HASP_GPIO_LED_R:
|
case hasp_gpio_type_t::LED_R:
|
||||||
httpMessage += F(D_GPIO_LED_R);
|
httpMessage += F(D_GPIO_LED_R);
|
||||||
break;
|
break;
|
||||||
case HASP_GPIO_LED_G:
|
case hasp_gpio_type_t::LED_G:
|
||||||
httpMessage += F(D_GPIO_LED_G);
|
httpMessage += F(D_GPIO_LED_G);
|
||||||
break;
|
break;
|
||||||
case HASP_GPIO_LED_B:
|
case hasp_gpio_type_t::LED_B:
|
||||||
httpMessage += F(D_GPIO_LED_B);
|
httpMessage += F(D_GPIO_LED_B);
|
||||||
break;
|
break;
|
||||||
case HASP_GPIO_RELAY:
|
case hasp_gpio_type_t::LIGHT_RELAY:
|
||||||
|
httpMessage += F("LIGHT_RELAY");
|
||||||
|
break;
|
||||||
|
case hasp_gpio_type_t::POWER_RELAY:
|
||||||
httpMessage += F(D_GPIO_RELAY);
|
httpMessage += F(D_GPIO_RELAY);
|
||||||
break;
|
break;
|
||||||
case HASP_GPIO_PWM:
|
case hasp_gpio_type_t::SHUTTER_RELAY:
|
||||||
|
httpMessage += F("SHUTTER_RELAY");
|
||||||
|
break;
|
||||||
|
case hasp_gpio_type_t::PWM:
|
||||||
httpMessage += F(D_GPIO_PWM);
|
httpMessage += F(D_GPIO_PWM);
|
||||||
break;
|
break;
|
||||||
case HASP_GPIO_DAC:
|
case hasp_gpio_type_t::DAC:
|
||||||
httpMessage += F(D_GPIO_DAC);
|
httpMessage += F(D_GPIO_DAC);
|
||||||
break;
|
break;
|
||||||
case HASP_GPIO_SERIAL_DIMMER:
|
case hasp_gpio_type_t::SERIAL_DIMMER:
|
||||||
httpMessage += F(D_GPIO_SERIAL_DIMMER);
|
httpMessage += F(D_GPIO_SERIAL_DIMMER);
|
||||||
break;
|
break;
|
||||||
|
#if defined(LANBONL8)
|
||||||
|
case hasp_gpio_type_t::SERIAL_DIMMER_EU:
|
||||||
|
httpMessage += F("L8-HD (EU)");
|
||||||
|
break;
|
||||||
|
case hasp_gpio_type_t::SERIAL_DIMMER_AU:
|
||||||
|
httpMessage += F("L8-HD (AU)");
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
httpMessage += F(D_GPIO_UNKNOWN);
|
httpMessage += F(D_GPIO_UNKNOWN);
|
||||||
}
|
}
|
||||||
|
|
||||||
httpMessage += F("</td><td>");
|
httpMessage += F("</a></td><td>");
|
||||||
httpMessage += conf.group;
|
httpMessage += conf.group;
|
||||||
httpMessage += F("</td><td>");
|
httpMessage += F("</td><td>");
|
||||||
httpMessage += (conf.inverted) ? F("Inverted") : F("Normal");
|
httpMessage += (conf.inverted) ? F("Inverted") : F("Normal");
|
||||||
|
|
||||||
httpMessage += F("</td><td><a href='/config/gpio/options?id=");
|
httpMessage += ("</td><td><a href='/config/gpio?del=&id=");
|
||||||
httpMessage += id;
|
|
||||||
httpMessage += ("'>Edit</a> <a href='/config/gpio?del=&id=");
|
|
||||||
httpMessage += id;
|
httpMessage += id;
|
||||||
httpMessage += ("&pin=");
|
httpMessage += ("&pin=");
|
||||||
httpMessage += conf.pin;
|
httpMessage += conf.pin;
|
||||||
@ -1663,39 +1682,44 @@ void webHandleGpioOptions()
|
|||||||
bool selected;
|
bool selected;
|
||||||
httpMessage += F("<p><b>Type</b> <select id='type' name='type'>");
|
httpMessage += F("<p><b>Type</b> <select id='type' name='type'>");
|
||||||
|
|
||||||
selected = (conf.type == HASP_GPIO_SWITCH);
|
selected = (conf.type == hasp_gpio_type_t::LED);
|
||||||
httpMessage += getOption(HASP_GPIO_SWITCH, F(D_GPIO_SWITCH), selected);
|
httpMessage += getOption(hasp_gpio_type_t::LED, F(D_GPIO_LED), selected);
|
||||||
|
|
||||||
selected = (conf.type == HASP_GPIO_BUTTON);
|
selected = (conf.type == hasp_gpio_type_t::LED_R);
|
||||||
httpMessage += getOption(HASP_GPIO_BUTTON, F(D_GPIO_BUTTON), selected);
|
httpMessage += getOption(hasp_gpio_type_t::LED_R, F(D_GPIO_LED_R), selected);
|
||||||
|
|
||||||
selected = (conf.type == HASP_GPIO_TOUCH);
|
selected = (conf.type == hasp_gpio_type_t::LED_G);
|
||||||
httpMessage += getOption(HASP_GPIO_TOUCH, F(D_GPIO_TOUCH), selected);
|
httpMessage += getOption(hasp_gpio_type_t::LED_G, F(D_GPIO_LED_G), selected);
|
||||||
|
|
||||||
selected = (conf.type == HASP_GPIO_LED);
|
selected = (conf.type == hasp_gpio_type_t::LED_B);
|
||||||
httpMessage += getOption(HASP_GPIO_LED, F(D_GPIO_LED), selected);
|
httpMessage += getOption(hasp_gpio_type_t::LED_B, F(D_GPIO_LED_B), selected);
|
||||||
|
|
||||||
selected = (conf.type == HASP_GPIO_LED_R);
|
selected = (conf.type == hasp_gpio_type_t::LIGHT_RELAY);
|
||||||
httpMessage += getOption(HASP_GPIO_LED_R, F(D_GPIO_LED_R), selected);
|
httpMessage += getOption(hasp_gpio_type_t::LIGHT_RELAY, F("Light Relay"), selected);
|
||||||
|
|
||||||
selected = (conf.type == HASP_GPIO_LED_G);
|
selected = (conf.type == hasp_gpio_type_t::POWER_RELAY);
|
||||||
httpMessage += getOption(HASP_GPIO_LED_G, F(D_GPIO_LED_G), selected);
|
httpMessage += getOption(hasp_gpio_type_t::POWER_RELAY, F(D_GPIO_RELAY), selected);
|
||||||
|
|
||||||
selected = (conf.type == HASP_GPIO_LED_B);
|
selected = (conf.type == hasp_gpio_type_t::SHUTTER_RELAY);
|
||||||
httpMessage += getOption(HASP_GPIO_LED_B, F(D_GPIO_LED_B), selected);
|
httpMessage += getOption(hasp_gpio_type_t::SHUTTER_RELAY, F("Shutter Relay"), selected);
|
||||||
|
|
||||||
selected = (conf.type == HASP_GPIO_RELAY);
|
selected = (conf.type == hasp_gpio_type_t::DAC);
|
||||||
httpMessage += getOption(HASP_GPIO_RELAY, F(D_GPIO_RELAY), selected);
|
httpMessage += getOption(hasp_gpio_type_t::DAC, F(D_GPIO_DAC), selected);
|
||||||
|
|
||||||
selected = (conf.type == HASP_GPIO_DAC);
|
selected = (conf.type == hasp_gpio_type_t::SERIAL_DIMMER);
|
||||||
httpMessage += getOption(HASP_GPIO_DAC, F(D_GPIO_DAC), selected);
|
httpMessage += getOption(hasp_gpio_type_t::SERIAL_DIMMER, F(D_GPIO_SERIAL_DIMMER), selected);
|
||||||
|
|
||||||
selected = (conf.type == HASP_GPIO_SERIAL_DIMMER);
|
#if defined(LANBONL8)
|
||||||
httpMessage += getOption(HASP_GPIO_SERIAL_DIMMER, F(D_GPIO_SERIAL_DIMMER), selected);
|
selected = (conf.type == hasp_gpio_type_t::SERIAL_DIMMER_AU);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::SERIAL_DIMMER_AU, F("L8-HD (AU)"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::SERIAL_DIMMER_EU);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::SERIAL_DIMMER_EU, F("L8-HD (EU)"), selected);
|
||||||
|
#endif
|
||||||
|
|
||||||
if(digitalPinHasPWM(webServer.arg(0).toInt())) {
|
if(digitalPinHasPWM(webServer.arg(0).toInt())) {
|
||||||
selected = (conf.type == HASP_GPIO_PWM);
|
selected = (conf.type == hasp_gpio_type_t::PWM);
|
||||||
httpMessage += getOption(HASP_GPIO_PWM, F(D_GPIO_PWM), selected);
|
httpMessage += getOption(hasp_gpio_type_t::PWM, F(D_GPIO_PWM), selected);
|
||||||
}
|
}
|
||||||
httpMessage += F("</select></p>");
|
httpMessage += F("</select></p>");
|
||||||
|
|
||||||
@ -1710,7 +1734,7 @@ void webHandleGpioOptions()
|
|||||||
}
|
}
|
||||||
httpMessage += F("</select></p>");
|
httpMessage += F("</select></p>");
|
||||||
|
|
||||||
httpMessage += F("<p><b>Default State</b> <select id='state' name='state'>");
|
httpMessage += F("<p><b>Value</b> <select id='state' name='state'>");
|
||||||
httpMessage += getOption(0, F("Normal"), !conf.inverted);
|
httpMessage += getOption(0, F("Normal"), !conf.inverted);
|
||||||
httpMessage += getOption(1, F("Inverted"), conf.inverted);
|
httpMessage += getOption(1, F("Inverted"), conf.inverted);
|
||||||
httpMessage += F("</select></p>");
|
httpMessage += F("</select></p>");
|
||||||
@ -1728,6 +1752,134 @@ void webHandleGpioOptions()
|
|||||||
|
|
||||||
// if(webServer.hasArg(F("action"))) dispatch_text_line(webServer.arg(F("action")).c_str()); // Security check
|
// if(webServer.hasArg(F("action"))) dispatch_text_line(webServer.arg(F("action")).c_str()); // Security check
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
void webHandleGpioInput()
|
||||||
|
{ // http://plate01/config/gpio/options
|
||||||
|
if(!httpIsAuthenticated(F("config/gpio/input"))) return;
|
||||||
|
{
|
||||||
|
StaticJsonDocument<256> settings;
|
||||||
|
guiGetConfig(settings.to<JsonObject>());
|
||||||
|
|
||||||
|
uint8_t config_id = webServer.arg(F("id")).toInt();
|
||||||
|
|
||||||
|
String httpMessage((char*)0);
|
||||||
|
httpMessage.reserve(HTTP_PAGE_SIZE);
|
||||||
|
httpMessage += F("<h1>");
|
||||||
|
httpMessage += haspDevice.get_hostname();
|
||||||
|
httpMessage += F("</h1><hr>");
|
||||||
|
|
||||||
|
httpMessage += F("<form method='GET' action='/config/gpio'>");
|
||||||
|
httpMessage += F("<input type='hidden' name='id' value='");
|
||||||
|
httpMessage += config_id;
|
||||||
|
httpMessage += F("'>");
|
||||||
|
|
||||||
|
httpMessage += F("<p><b>GPIO Options");
|
||||||
|
httpMessage += config_id;
|
||||||
|
httpMessage += F(" Options</b></p>");
|
||||||
|
|
||||||
|
httpMessage += F("<p><b>" D_GPIO_PIN "</b> <select id='pin' name='pin'>");
|
||||||
|
hasp_gpio_config_t conf = gpioGetPinConfig(config_id);
|
||||||
|
|
||||||
|
for(uint8_t io = 0; io < NUM_DIGITAL_PINS; io++) {
|
||||||
|
if(((conf.pin == io) || !gpioInUse(io)) && !gpioIsSystemPin(io)) {
|
||||||
|
httpMessage += getOption(io, haspDevice.gpio_name(io).c_str(), conf.pin == io);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
httpMessage += F("</select></p>");
|
||||||
|
|
||||||
|
bool selected;
|
||||||
|
httpMessage += F("<p><b>Type</b> <select id='type' name='type'>");
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::BUTTON);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::BUTTON, F(D_GPIO_BUTTON), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::SWITCH);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::SWITCH, F(D_GPIO_SWITCH), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::DOOR);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::DOOR, F("door"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::GARAGE_DOOR);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::GARAGE_DOOR, F("garage_door"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::GAS);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::GAS, F("gas"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::LIGHT);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::LIGHT, F("light"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::LOCK);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::LOCK, F("lock"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::MOISTURE);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::MOISTURE, F("moisture"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::MOTION);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::MOTION, F("motion"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::OCCUPANCY);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::OCCUPANCY, F("occupancy"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::OPENING);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::OPENING, F("opening"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::PRESENCE);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::PRESENCE, F("presence"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::PROBLEM);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::PROBLEM, F("problem"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::SAFETY);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::SAFETY, F("Safety"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::SMOKE);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::SMOKE, F("Smoke"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::VIBRATION);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::VIBRATION, F("Vibration"), selected);
|
||||||
|
|
||||||
|
selected = (conf.type == hasp_gpio_type_t::WINDOW);
|
||||||
|
httpMessage += getOption(hasp_gpio_type_t::WINDOW, F("Window"), selected);
|
||||||
|
|
||||||
|
httpMessage += F("</select></p>");
|
||||||
|
|
||||||
|
httpMessage += F("<p><b>" D_GPIO_GROUP "</b> <select id='group' name='group'>");
|
||||||
|
httpMessage += getOption(0, F(D_GPIO_GROUP_NONE), conf.group == 0);
|
||||||
|
String group((char*)0);
|
||||||
|
group.reserve(10);
|
||||||
|
for(int i = 1; i < 15; i++) {
|
||||||
|
group = F(D_GPIO_GROUP " ");
|
||||||
|
group += i;
|
||||||
|
httpMessage += getOption(i, group, conf.group == i);
|
||||||
|
}
|
||||||
|
httpMessage += F("</select></p>");
|
||||||
|
|
||||||
|
httpMessage += F("<p><b>Default State</b> <select id='state' name='state'>");
|
||||||
|
httpMessage += getOption(0, F("Normally Open"), !conf.inverted);
|
||||||
|
httpMessage += getOption(1, F("Normally Closed"), conf.inverted);
|
||||||
|
httpMessage += F("</select></p>");
|
||||||
|
|
||||||
|
httpMessage += F("<p><b>Resistor</b> <select id='func' name='func'>");
|
||||||
|
httpMessage += getOption(hasp_gpio_function_t::INTERNAL_PULLUP, F("Internal Pullup"), conf.gpio_function);
|
||||||
|
httpMessage += getOption(hasp_gpio_function_t::INTERNAL_PULLDOWN, F("Internal Pulldown"), conf.gpio_function);
|
||||||
|
httpMessage += getOption(hasp_gpio_function_t::EXTERNAL_PULLUP, F("External Pullup"), conf.gpio_function);
|
||||||
|
httpMessage += getOption(hasp_gpio_function_t::EXTERNAL_PULLDOWN, F("External Pulldown"), conf.gpio_function);
|
||||||
|
httpMessage += F("</select></p>");
|
||||||
|
|
||||||
|
httpMessage +=
|
||||||
|
F("<p><button type='submit' name='save' value='gpio'>" D_HTTP_SAVE_SETTINGS "</button></p></form>");
|
||||||
|
|
||||||
|
httpMessage += PSTR("<p><form method='GET' action='/config/gpio'><button type='submit'>↩ " D_HTTP_BACK
|
||||||
|
"</button></form></p>");
|
||||||
|
|
||||||
|
webSendPage(haspDevice.get_hostname(), httpMessage.length(), false);
|
||||||
|
webServer.sendContent(httpMessage);
|
||||||
|
}
|
||||||
|
webSendFooter();
|
||||||
|
|
||||||
|
// if(webServer.hasArg(F("action"))) dispatch_text_line(webServer.arg(F("action")).c_str()); // Security check
|
||||||
|
}
|
||||||
#endif // HASP_USE_GPIO
|
#endif // HASP_USE_GPIO
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -2184,6 +2336,7 @@ void httpSetup()
|
|||||||
#if HASP_USE_GPIO > 0
|
#if HASP_USE_GPIO > 0
|
||||||
webServer.on(F("/config/gpio"), webHandleGpioConfig);
|
webServer.on(F("/config/gpio"), webHandleGpioConfig);
|
||||||
webServer.on(F("/config/gpio/options"), webHandleGpioOptions);
|
webServer.on(F("/config/gpio/options"), webHandleGpioOptions);
|
||||||
|
webServer.on(F("/config/gpio/input"), webHandleGpioInput);
|
||||||
#endif
|
#endif
|
||||||
webServer.on(F("/saveConfig"), webHandleSaveConfig);
|
webServer.on(F("/saveConfig"), webHandleSaveConfig);
|
||||||
webServer.on(F("/resetConfig"), httpHandleResetConfig);
|
webServer.on(F("/resetConfig"), httpHandleResetConfig);
|
||||||
@ -2223,7 +2376,8 @@ void httpReconnect()
|
|||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
IRAM_ATTR void httpLoop(void)
|
IRAM_ATTR void httpLoop(void)
|
||||||
{
|
{
|
||||||
if(http_config.enable) webServer.handleClient();
|
// if(http_config.enable)
|
||||||
|
webServer.handleClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
x
Reference in New Issue
Block a user