uEspConfigLib
https://github.com/Naguissa/uEspConfigLib
uEspConfigLib.h
Go to the documentation of this file.
1
21#pragma once
22
23#include <Arduino.h>
24#ifdef ARDUINO_ARCH_ESP32
25 #include <WiFi.h>
26 #include <WiFiAP.h>
27 #include "WebServer.h"
28#else
29 #include "ESP8266WebServer.h"
30#endif
32#ifdef ARDUINO_ARCH_ESP32
33 #include "WebServer.h"
34 #define uEspConfigLib_WebServer WebServer
35#else
36 #include "ESP8266WebServer.h"
37 #define uEspConfigLib_WebServer ESP8266WebServer
38#endif
39
40
44#define uEspConfigLib_OPTION_NONE 0
48#define uEspConfigLib_OPTION_SCANNER 1
49
50
52 uEspConfigLibList() : next(0), name(0), description(0), defaultValue(0), value(0), option(uEspConfigLib_OPTION_NONE) {};
54 char * name;
55 char * description;
56 char * defaultValue;
57 char * value;
58 uint8_t option;
59};
60
61#define uEspConfigLib_free(field) if (field != 0) { free(field); field = 0; }
62#define uEspConfigLib_malloc(value) (char *) malloc(sizeof(char) * (strlen(value) + 1))
63#define uEspConfigLib_WebServer_sendContent(data) if (*data != 0) { server->sendContent(data); }
64
66 public:
73
74 // Regular usage functions
83 void addOption(const char *, const char *, const char *, const uint8_t = uEspConfigLib_OPTION_NONE);
84
92 bool set(const char *, const char *);
93
100 char * getPointer(const char *);
101
108 bool clear(const char *);
109
110 // Web server functions
119 void handleConfigRequestHtml(uEspConfigLib_WebServer *, const char * = "/uConfigLib/saveConfig");
120
151 void handleConfigRequestJson(uEspConfigLib_WebServer *);
152
167 void handleSaveConfig(uEspConfigLib_WebServer *);
168
169
170 // FS functions
171
177 bool loadConfigFile();
178
184 bool saveConfigFile();
185
186 private:
187 uEspConfigLib(); // 1 arg needed
188 void _copyName(uEspConfigLibList *, const char *);
189 void _copyDefault(uEspConfigLibList *, const char *);
190 void _copyValue(uEspConfigLibList *, const char *);
191 void _copyValue(uEspConfigLibList *, const String);
192 void _copyDescription(uEspConfigLibList *, const char *);
193 void _parseConfigLine(String);
194 void _handleWifiScan(uEspConfigLib_WebServer *, const String);
195 void handleWifiScanResult();
196 uEspConfigLibList *list;
198};
199
The deffinitive ESP32 and ESP8266 configuration Arduino library, uEspConfigLib - FileSystem interface...
Definition: uEspConfigLibFSInterface.h:50
The deffinitive ESP32 and ESP8266 configuration Arduino library, uEspConfigLib.
Definition: uEspConfigLib.h:65
char * getPointer(const char *)
Gets a char pointer to the current value of a configuration option.
Definition: uEspConfigLib.cpp:142
void handleConfigRequestJson(uEspConfigLib_WebServer *)
Handles a configuration JSON request.
Definition: uEspConfigLib.cpp:265
void handleSaveConfig(uEspConfigLib_WebServer *)
Handles a save configuration request.
Definition: uEspConfigLib.cpp:317
void handleConfigRequestHtml(uEspConfigLib_WebServer *, const char *="/uConfigLib/saveConfig")
Handles a configuration HTML form request.
Definition: uEspConfigLib.cpp:176
bool set(const char *, const char *)
Changes a configuration option current value.
Definition: uEspConfigLib.cpp:122
bool loadConfigFile()
Loads config file from FileSystem and processes it.
Definition: uEspConfigLib.cpp:369
bool clear(const char *)
Changes a configuration option to its default value.
Definition: uEspConfigLib.cpp:157
bool saveConfigFile()
Recreates and overwrites config file to FileSystem with current configurations.
Definition: uEspConfigLib.cpp:388
void addOption(const char *, const char *, const char *, const uint8_t=uEspConfigLib_OPTION_NONE)
Defines a configuration option.
Definition: uEspConfigLib.cpp:81
Definition: uEspConfigLib.h:51
#define uEspConfigLib_OPTION_NONE
Regular field.
Definition: uEspConfigLib.h:44