I've been happily using [AsyncFsWebserver](https://github.com/cotestatnt/async-esp-fs-webserver/tree/master/src)
for a project, using its handleFormData.ino
example as a starting point. The webserver automatically creates an /edit
and a /setup
page. Actually, that's a bit of a fib. The line server.enableFsCodeEditor();
causes the /edit
page to show up, and the /setup
page appears automatically.
Looking into the code, it appears that in AsyncFsWebServer.h
(line 31), if ESP_FS_WS_SETUP
is defined, then various other bits of code will be eliminated and no /setup
page will be handled. (See AsyncFsWebServer.cpp
, line 29, for example). Sadly, if I insert the line
#define ESP_FS_WS_SETUP 0
just before line 3 of handleFormData.ino
, and adjust line 90 to use my local WiFi credentials, I get a jackpot of error messages ( which I'll paste below)
- Am I misunderstanding the intent of that
ESP_FS_WS_SETUP
constant? - Can someone advise on how to make the
/setup
page not appear?
Compile errors:
In file included from /Users/jhughes/Documents/Projects/Them/AsyncFsExample/AsyncFsExample.ino:8:
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:135:5: error: 'SetupConfigurator' does not name a type
135 | SetupConfigurator* setup = nullptr;
| ^~~~~~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:299:79: error: 'MIN_F' was not declared in this scope
299 | void addOption(const char *lbl, T val, bool hidden = false, double min = MIN_F,
| ^~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:300:20: error: 'MAX_F' was not declared in this scope
300 | double max = MAX_F, double st = 1.0) {
| ^~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In constructor 'AsyncFsWebServer::AsyncFsWebServer(uint16_t, fs::FS&, const char*)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:142:19: error: expected type-specifier before 'SetupConfigurator'
142 | setup = new SetupConfigurator(m_filesystem);
| ^~~~~~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'fs::File AsyncFsWebServer::getConfigFile(const char*)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:236:38: error: 'ESP_FS_WS_CONFIG_FILE' was not declared in this scope
236 | File file = m_filesystem->open(ESP_FS_WS_CONFIG_FILE, mode);
| ^~~~~~~~~~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'const char* AsyncFsWebServer::getConfiFileName()':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:244:14: error: 'ESP_FS_WS_CONFIG_FILE' was not declared in this scope
244 | return ESP_FS_WS_CONFIG_FILE;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::setSetupPageTitle(const char*)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:285:56: error: request for member 'addOption' in '* setup', which is of non-class type 'void()'
285 | void setSetupPageTitle(const char* title) { setup->addOption("name-logo", title); }
| ^~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addHTML(const char*, const char*, bool)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:286:77: error: request for member 'addHTML' in '* setup', which is of non-class type 'void()'
286 | void addHTML(const char* html, const char* id, bool ow = false) {setup->addHTML(html, id, ow);}
| ^~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addCSS(const char*, const char*, bool)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:287:74: error: request for member 'addCSS' in '* setup', which is of non-class type 'void()'
287 | void addCSS(const char* css, const char* id, bool ow = false){setup->addCSS(css, id, ow);}
| ^~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addJavascript(const char*, const char*, bool)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:288:85: error: request for member 'addJavascript' in '* setup', which is of non-class type 'void()'
288 | void addJavascript(const char* script, const char* id, bool ow = false) {setup->addJavascript(script, id, ow);}
| ^~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addDropdownList(const char*, const char**, size_t)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:289:79: error: request for member 'addDropdownList' in '* setup', which is of non-class type 'void()'
289 | void addDropdownList(const char *lbl, const char** a, size_t size){setup->addDropdownList(lbl, a, size);}
| ^~~~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addOptionBox(const char*)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:290:51: error: request for member 'addOption' in '* setup', which is of non-class type 'void()'
290 | void addOptionBox(const char* title) { setup->addOption("param-box", title); }
| ^~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::setLogoBase64(const char*, const char*, const char*, bool)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:292:14: error: request for member 'setLogoBase64' in '* setup', which is of non-class type 'void()'
292 | setup->setLogoBase64(logo, w, h, ow);
| ^~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addOption(const char*, T, double, double, double)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:296:14: error: request for member 'addOption' in 'setup->', which is of non-class type 'void()'
296 | setup->addOption(lbl, val, false, min, max, st);
| ^~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addOption(const char*, T, bool, double, double, double)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:301:14: error: request for member 'addOption' in 'setup->', which is of non-class type 'void()'
301 | setup->addOption(lbl, val, hidden, min, max, st);
| ^~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'bool AsyncFsWebServer::getOptionValue(const char*, T&)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:304:66: error: request for member 'getOptionValue' in 'setup->', which is of non-class type 'void()'
304 | bool getOptionValue(const char *lbl, T &var) { return setup->getOptionValue(lbl, var);}
| ^~~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'bool AsyncFsWebServer::saveOptionValue(const char*, T)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:306:66: error: request for member 'saveOptionValue' in 'setup->', which is of non-class type 'void()'
306 | bool saveOptionValue(const char *lbl, T val) { return setup->saveOptionValue(lbl, val);}
| ^~~~~~~~~~~~~~~