Web Server Config page without submission
This commit is contained in:
parent
d340142879
commit
19cfaf6cba
5 changed files with 727 additions and 13 deletions
|
@ -1,44 +1,57 @@
|
|||
#include <ESPMegaWebServer.hpp>
|
||||
|
||||
ESPMegaWebServer::ESPMegaWebServer(uint16_t port, ESPMegaIoT *iot) {
|
||||
ESPMegaWebServer::ESPMegaWebServer(uint16_t port, ESPMegaIoT *iot)
|
||||
{
|
||||
this->port = port;
|
||||
this->iot = iot;
|
||||
this->server = new AsyncWebServer(port);
|
||||
}
|
||||
|
||||
ESPMegaWebServer::~ESPMegaWebServer() {
|
||||
ESPMegaWebServer::~ESPMegaWebServer()
|
||||
{
|
||||
delete this->server;
|
||||
}
|
||||
|
||||
void ESPMegaWebServer::begin() {
|
||||
void ESPMegaWebServer::begin()
|
||||
{
|
||||
this->server->begin();
|
||||
auto bindedDashboardHandler = std::bind(&ESPMegaWebServer::dashboardHandler, this, std::placeholders::_1);
|
||||
this->server->on("/", HTTP_GET, bindedDashboardHandler);
|
||||
auto bindedConfigHandler = std::bind(&ESPMegaWebServer::configHandler, this, std::placeholders::_1);
|
||||
this->server->on("/config", HTTP_GET, bindedConfigHandler);
|
||||
}
|
||||
|
||||
void ESPMegaWebServer::loop() {
|
||||
void ESPMegaWebServer::loop()
|
||||
{
|
||||
// AsyncWebServer doesn't have a loop function
|
||||
}
|
||||
|
||||
void ESPMegaWebServer::dashboardHandler(AsyncWebServerRequest *request) {
|
||||
void ESPMegaWebServer::dashboardHandler(AsyncWebServerRequest *request)
|
||||
{
|
||||
auto bindedDashboardProcessor = std::bind(&ESPMegaWebServer::dashboardProcessor, this, std::placeholders::_1);
|
||||
request->send_P(200, "text/html", ota_html, bindedDashboardProcessor);
|
||||
}
|
||||
|
||||
String ESPMegaWebServer::dashboardProcessor(const String& var) {
|
||||
if (var == "hostname") {
|
||||
String ESPMegaWebServer::dashboardProcessor(const String &var)
|
||||
{
|
||||
if (var == "hostname")
|
||||
{
|
||||
return String(this->iot->getNetworkConfig()->hostname);
|
||||
}
|
||||
else if (var == "ip_address") {
|
||||
else if (var == "ip_address")
|
||||
{
|
||||
return this->iot->getIp().toString();
|
||||
}
|
||||
else if (var == "mac_address") {
|
||||
else if (var == "mac_address")
|
||||
{
|
||||
return this->iot->getMac();
|
||||
}
|
||||
else if (var == "model") {
|
||||
else if (var == "model")
|
||||
{
|
||||
return String("ESPMega PRO R3.3c");
|
||||
}
|
||||
else if (var == "mqtt_connection_string") {
|
||||
else if (var == "mqtt_connection_string")
|
||||
{
|
||||
MqttConfig *mqttConfig = this->iot->getMqttConfig();
|
||||
String connectionString;
|
||||
connectionString += mqttConfig->mqtt_server;
|
||||
|
@ -46,11 +59,69 @@ String ESPMegaWebServer::dashboardProcessor(const String& var) {
|
|||
connectionString += mqttConfig->mqtt_port;
|
||||
return connectionString;
|
||||
}
|
||||
else if (var == "base_topic") {
|
||||
else if (var == "base_topic")
|
||||
{
|
||||
return String(this->iot->getMqttConfig()->base_topic);
|
||||
}
|
||||
else if (var == "mqtt_connected") {
|
||||
else if (var == "mqtt_connected")
|
||||
{
|
||||
return this->iot->mqttConnected() ? "Connected" : "Standalone";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
void ESPMegaWebServer::configHandler(AsyncWebServerRequest *request)
|
||||
{
|
||||
auto bindedConfigProcessor = std::bind(&ESPMegaWebServer::configProcessor, this, std::placeholders::_1);
|
||||
request->send_P(200, "text/html", config_html, bindedConfigProcessor);
|
||||
}
|
||||
|
||||
String ESPMegaWebServer::configProcessor(const String &var)
|
||||
{
|
||||
MqttConfig *mqttConfig = this->iot->getMqttConfig();
|
||||
NetworkConfig *networkConfig = this->iot->getNetworkConfig();
|
||||
if (var == "ip_address")
|
||||
{
|
||||
return networkConfig->ip.toString();
|
||||
}
|
||||
else if (var == "netmask")
|
||||
{
|
||||
return networkConfig->subnet.toString();
|
||||
}
|
||||
else if (var == "gateway")
|
||||
{
|
||||
return networkConfig->gateway.toString();
|
||||
}
|
||||
else if (var == "dns")
|
||||
{
|
||||
return networkConfig->dns1.toString();
|
||||
}
|
||||
else if (var == "hostname")
|
||||
{
|
||||
return String(networkConfig->hostname);
|
||||
}
|
||||
else if (var == "bms_ip")
|
||||
{
|
||||
return String(mqttConfig->mqtt_server);
|
||||
}
|
||||
else if (var == "bms_port")
|
||||
{
|
||||
return String(mqttConfig->mqtt_port);
|
||||
}
|
||||
else if (var == "bms_useauth") {
|
||||
return mqttConfig->mqtt_useauth ? "checked=\"checked\"" : "";
|
||||
}
|
||||
else if (var == "bms_username")
|
||||
{
|
||||
return String(mqttConfig->mqtt_user);
|
||||
}
|
||||
else if (var == "bms_password")
|
||||
{
|
||||
return String(mqttConfig->mqtt_password);
|
||||
}
|
||||
else if (var == "bms_endpoint")
|
||||
{
|
||||
return String(mqttConfig->base_topic);
|
||||
}
|
||||
return "";
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue