#include <ArduinoJson.h>
#include <LittleFS.h>
#include <FastBot.h>
#include <GyverPortal.h>
#include <GyverNTP.h>
GyverPortal portal(&LittleFS);
exit status 1
Ошибка компиляции для платы LOLIN(WEMOS) D1 R2 & mini.
C:\Users\User\Documents\Arduino\libraries\FastBot\src/FastBot.h: In member function 'uint8_t FastBot::update(uint8_t)':
C:\Users\User\Documents\Arduino\libraries\FastBot\src/FastBot.h:782:65: error: 'class ESP8266HTTPUpdate' has no member named 'updateFS'
else if (OTAflag == FB_SPIFFS) OTAstate = ESPhttpUpdate.updateFS(client, *_file_ptr);
Ядро обновиСсылается вот на эту ошибку:
Не используют, там системный класс FileFastBot и GyverPortal уже используют LittleFS
[ 28455][E][WebServer.cpp:649] _handleRequest(): request handler not found
[ 40085][E][WebServer.cpp:649] _handleRequest(): request handler not found
Upload: DWprj.hmi, from: file_upl
Uploaded file: DWprj.hmi, from: file_upl
[ 56292][E][WebServer.cpp:649] _handleRequest(): request handler not found
[ 56298][E][vfs_api.cpp:175] remove(): /test.txt does not exists or is directory
[272024][E][WebServer.cpp:649] _handleRequest(): request handler not found
[280009][E][WebServer.cpp:649] _handleRequest(): request handler not found
[280016][E][vfs_api.cpp:175] remove(): /test.txt does not exists or is directory
_handleRequest(): request handler not found
void build() {
GP.BUILD_BEGIN();
GP.THEME(GP_DARK);
GP.FILE_UPLOAD("file_upl", "Выбрать файл: ");
GP.FILE_MANAGER(&SD); // файловый менеджер
GP.BUTTON("btn", "Hint", "bnt"); //имя, текст, id
GP.BUILD_END();
}
Это "фича" стандартной библиотеки: есть хэндлер onNotFound, который как раз используется для обработки запросов с портала. Но зачем-то этот хэндлер пуляет ошибки [E] в отладку при его использованииА это сообщение является ошибкой?
GP.FILE_MANAGER(&SD, Directory);
// ======================= ФАЙЛОВЫЙ МЕНЕДЖЕР =======================
void _href(const String& url, const String& text) {
*_GPP += F("<a style='text-decoration:none' href='");
*_GPP += url;
*_GPP += F("'>");
*_GPP += text;
*_GPP += F("</a>");
}
void _fileRow(const String& fpath, const String& fname, int size, int i) {
*_GPP += "<tr>";
*_GPP += F("<td align='left' style='padding-right:5px'>");
*_GPP += String(i) + ". ";
_href(fpath+fname, fname);
*_GPP += F("<td>");
*_GPP += '[';
*_GPP += String(size / 1000.0, 1);
*_GPP += F(" kB]");
*_GPP += "<td>";
_href(String("?GP_delete=") + fpath+""+fname, "❌");
}
void _showFiles(fs::FS *fs, const String& path, __attribute__((unused)) uint8_t levels = 0) {
#ifdef ESP8266
yield();
Dir dir = fs->openDir(path);
while (dir.next()) {
if (dir.isFile() && dir.fileName().length()) {
String fpath = '/' + path + dir.fileName();
_fileRow(fpath, dir.fileSize());
}
if (dir.isDirectory()) {
String p = path;
p += dir.fileName();
p += '/';
Dir sdir = fs->openDir(p);
_showFiles(fs, p);
}
}
#else // ESP32
File root = fs->open(path.length() ? path.c_str() : ("/"));
if (!root || !root.isDirectory()) return;
File file;
int i=0;
while (file = root.openNextFile()) {
if (file.isDirectory()) {
//if (levels) _showFiles(fs, file.path(), levels - 1);
} else {
_fileRow(path +'/', file.name(), file.size(), i);
i++;
}
}
#endif
}
void FILE_MANAGER(fs::FS *fs, const String workPath) {
*_GPP += F("<table>");
_showFiles(fs, workPath, 5 );
0. main1221-9xx.txt [0.1 kB] ❌
Сделать свой кастомный компонент как в примере customComponents и хранить его рядом со скетчемЕсть ли решение как избежать этого?