乐鑫技术交流
直播中

刘慧

7年用户 1727经验值
私信 关注
[问答]

是否有一种“简单”的方法来增加允许的“打开”文件的最大数量?

问题:是否有一种“简单”的方法来增加允许的“打开”文件的最大数量(=====>SPIFFS)
我在 esp8266 HTML 页面上使用#include“ESPAsyncWebServer.h”,总共有大约 100 张图像只有 7 个唯一的 xxxx.gif 名称
(将 Web 索引页面视为数字 VU 表)
似乎有时 SPIFFS 的异步负载在 index.html 加载期间增加到
同时下载超过 6 个不同的图像..... (这是 7 个不同的 gif 图片之一)
ps: if (!MaxOpenFiles is only for testing the error by using a different file
*********************Part
server .on(\"/img/Icon-blink-red.gif\", HTTP_GET,handle_blink_red_gif);
~~~~
void handle_QBoxIcon_red_gif(AsyncWebServerRequest*request) {if (!MaxOpenFiles(\"/Icon-red.gif\")){request->send(SPIFFS, \"/Icon-red.gif\" ,\"image/gif\" );}}
~ ~~~~~
boolean MaxOpenFiles(String CFileName){
  //SPIFFS.gc();
  //CFileName = \"/QBox_Debug.txt\";
  DEBUG_MSG(\"尝试执行: server(on)(\" + CFileName);
  File fsFile;
  fsFile = SPIFFS.open(\"/QBox_Debug.txt\", FILE_READ);
  if (!fsFile) {
      DEBUG_MSG( \" file_reading of dummy read / Debug.txt 失败。我们需要忽略实际的文件请求:\" + CFileName);
      return true;}
    else {
      fsFile.close();
      return false;


在那一刻,一个文件无法打开我有一种“强烈的感觉”,这是由于最大打开文件的强制限制,与内存堆栈等
无关我知道 SPIFFS 中打开文件的最大数量是硬编码为“5”这部分给出了问题,因为在 index.html server.on(\"/\", HTTP_ANY,handle_OnConnect) 期间打开了太多文件;************** void handle_OnConnect(AsyncWebServerRequest *request) { request->send(SPIFFS, \"/index.html\", String(), false, 处理器); }

更多回帖

发帖
×
20
完善资料,
赚取积分