uEspConfigLib
https://github.com/Naguissa/uEspConfigLib
Loading...
Searching...
No Matches
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 0b00000000
45
49#define uEspConfigLib_OPTION_SCANNER 0b00000001
50
54#define uEspConfigLib_OPTION_NUMERIC 0b00000010
55
56struct uEspConfigLibList {
57 uEspConfigLibList() : next(0), name(0), description(0), defaultValue(0), value(0), option(uEspConfigLib_OPTION_NONE) {};
58 uEspConfigLibList *next;
59 char * name;
60 char * description;
61 char * defaultValue;
62 char * value;
63 uint8_t option;
64};
65
66#define uEspConfigLib_free(field) if (field != 0) { free(field); field = 0; }
67#define uEspConfigLib_malloc(value) (char *) malloc(sizeof(char) * (strlen(value) + 1))
68#define uEspConfigLib_WebServer_sendContent(data) if (*data != 0) { server->sendContent(data); }
69
71 public:
78
79 // Regular usage functions
88 void addOption(const char *, const char *, const char *, const uint8_t = uEspConfigLib_OPTION_NONE);
89
97 bool set(const char *, const char *);
98
105 char * getPointer(const char *);
106
113 bool clear(const char *);
114
115 // Web server functions
124 void handleConfigRequestHtml(uEspConfigLib_WebServer *, const char * = "/uConfigLib/saveConfig");
125
156 void handleConfigRequestJson(uEspConfigLib_WebServer *);
157
172 void handleSaveConfig(uEspConfigLib_WebServer *);
173
174
175 // FS functions
176
182 bool loadConfigFile();
183
189 bool saveConfigFile();
190
191 private:
192 uEspConfigLib(); // 1 arg needed
193 void _copyName(uEspConfigLibList *, const char *);
194 void _copyDefault(uEspConfigLibList *, const char *);
195 void _copyValue(uEspConfigLibList *, const char *);
196 void _copyValue(uEspConfigLibList *, const String);
197 void _copyDescription(uEspConfigLibList *, const char *);
198 void _parseConfigLine(String);
199 void _handleWifiScan(uEspConfigLib_WebServer *, const String);
200 void handleWifiScanResult();
201 uEspConfigLibList *list;
203};
204
The deffinitive ESP32 and ESP8266 configuration Arduino library, uEspConfigLib - FileSystem interface...
Definition uEspConfigLibFSInterface.h:50
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:272
void handleSaveConfig(uEspConfigLib_WebServer *)
Handles a save configuration request.
Definition uEspConfigLib.cpp:324
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:376
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:395
void addOption(const char *, const char *, const char *, const uint8_t=uEspConfigLib_OPTION_NONE)
Defines a configuration option.
Definition uEspConfigLib.cpp:81
uEspConfigLib(uEspConfigLibFSInterface *)
Constructor.
Definition uEspConfigLib.cpp:36
Definition uEspConfigLib.h:56
#define uEspConfigLib_OPTION_NONE
Regular field.
Definition uEspConfigLib.h:44