Const
Member
Привет. Использую библиотеку AsyncWiFiManager для подключения к wifi в которой есть возможность устанавливать кастомные параметры на страницу настроек подключения. Ниже код который я набросал для генерации ошибки.
Самый первый параметр 'param_mqtt_title' должен просто выводить HTML, но по каким то причинам текст который передан в конструктор вставляется в тег input. Я порылся в коде библиотеки и понял что условие
Возвращает true из за чего дальнейшее выполнение идет не по тому сценарию. В конструкторе
В поле _id устанавливается null и далее нигде не меняется.
C++:
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESPAsyncWebServer.h>
#include <ESP8266HTTPClient.h>
#include <DNSServer.h>
#include <ESPAsyncWiFiManager.h>
#include "LittleFS.h"
AsyncWebServer server(80);
DNSServer dns;
void setup() {
Serial.begin(115200);
LittleFS.begin();
AsyncWiFiManager wifiManager(&server, &dns);
wifiManager.setDebugOutput(true);
AsyncWiFiManagerParameter param_mqtt_title("<h3>Title</h3>");
AsyncWiFiManagerParameter param_mqtt_checkbox("mqtt", "", "1", 1, " type=\"checkbox\"");
AsyncWiFiManagerParameter param_mqtt_checkbox_label("<label for=\"mqtt\">Using MQTT</label>");
AsyncWiFiManagerParameter div("<div></div>");
AsyncWiFiManagerParameter param_mqtt_ip_label("<label for=\"mqtt_ip\">Mqtt ip:</label>");
AsyncWiFiManagerParameter param_mqtt_ip("mqtt_ip", "0.0.0.0", "", 16, " type=\"text\" disabled");
AsyncWiFiManagerParameter param_mqtt_port_label("<label for=\"mqtt_port\">Mqtt port:</label>");
AsyncWiFiManagerParameter param_mqtt_port("mqtt_port", "1883", "1883", 5, " type=\"text\" disabled");
AsyncWiFiManagerParameter param_mqtt_user_label("<label for=\"mqtt_user\">Mqtt user:</label>");
AsyncWiFiManagerParameter param_mqtt_user("mqtt_user", "User", "", 16, " type=\"text\" disabled");
AsyncWiFiManagerParameter param_mqtt_pass_label("<label for=\"mqtt_pass\">Mqtt password:</label>");
AsyncWiFiManagerParameter param_mqtt_pass("mqtt_pass", "", "", 16, " type=\"text\" disabled");
AsyncWiFiManagerParameter param_mqtt_script("<script>function b(d){mqtt_ip.disabled = mqtt_port.disabled = mqtt_user.disabled = mqtt_pass.disabled = d}mqtt.addEventListener('change', (event) => b(!mqtt.checked));</script>");
wifiManager.addParameter(¶m_mqtt_title);
wifiManager.addParameter(¶m_mqtt_checkbox);
wifiManager.addParameter(¶m_mqtt_checkbox_label);
wifiManager.addParameter(&div);
wifiManager.addParameter(¶m_mqtt_ip_label);
wifiManager.addParameter(¶m_mqtt_ip);
wifiManager.addParameter(¶m_mqtt_port_label);
wifiManager.addParameter(¶m_mqtt_port);
wifiManager.addParameter(¶m_mqtt_user_label);
wifiManager.addParameter(¶m_mqtt_user);
wifiManager.addParameter(¶m_mqtt_pass_label);
wifiManager.addParameter(¶m_mqtt_pass);
wifiManager.addParameter(¶m_mqtt_script);
wifiManager.autoConnect(("Module-"+String(ESP.getChipId())).c_str());
}
void loop() {
}
C++:
_params[i]->getID() != NULL
C++:
AsyncWiFiManagerParameter::AsyncWiFiManagerParameter(const char *custom)
{
_id = NULL;
_placeholder = NULL;
_length = 0;
_value = NULL;
_customHTML = custom;
}