From 7e5b611c2344bf9ade2f446e32dc280a6887ded7 Mon Sep 17 00:00:00 2001 From: biver Date: Fri, 3 Dec 2021 09:52:45 +0300 Subject: [PATCH 1/8] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B2=D1=81=D0=B5=D1=85=20?= =?UTF-8?q?=D0=BF=D0=B8=D0=BD=D0=BE=D0=B2=20=D0=BD=D0=B0=20ESP32=20=D0=B2?= =?UTF-8?q?=20=D0=BA=D0=B0=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=B5=20=D0=BA?= =?UTF-8?q?=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8=20=D0=BF=D1=83=D1=82=D0=B5=D0=BC?= =?UTF-8?q?=20=D1=8F=D0=B2=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=83=D0=BA=D0=B0?= =?UTF-8?q?=D0=B7=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=80=D0=B5=D0=B6=D0=B8=D0=BC?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/items/ButtonInClass.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/items/ButtonInClass.h b/include/items/ButtonInClass.h index 8adab9cc..e9719874 100644 --- a/include/items/ButtonInClass.h +++ b/include/items/ButtonInClass.h @@ -20,7 +20,7 @@ class ButtonInClass : public LineParsing { void init() { if (_pin != "") { int number = numberEntering++; - buttons[number].attach(_pin.toInt()); + buttons[number].attach(_pin.toInt(), INPUT); buttons[number].interval(_db.toInt()); but[number] = true; jsonWriteStr(configOptionJson, "switch_num_" + String(number), _key); From 725cf26d4197dc8d98c7a230ebf5e5859bfcb5e5 Mon Sep 17 00:00:00 2001 From: biver Date: Fri, 3 Dec 2021 10:03:20 +0300 Subject: [PATCH 2/8] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BD=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=20=D1=81=D0=B5?= =?UTF-8?q?=D0=BD=D1=81=D0=BE=D1=80=D0=B0=20SHT20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/items/vSensorSHT20.h | 40 ++++++++++++++++ src/items/vSensorSHT20.cpp | 91 ++++++++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 include/items/vSensorSHT20.h create mode 100644 src/items/vSensorSHT20.cpp diff --git a/include/items/vSensorSHT20.h b/include/items/vSensorSHT20.h new file mode 100644 index 00000000..0f79ab0b --- /dev/null +++ b/include/items/vSensorSHT20.h @@ -0,0 +1,40 @@ +#ifdef EnableSensorSht20 +#pragma once +#include +#include "Wire.h" +#include "SHT2x.h" + +#include "Global.h" + +extern SHT2x* sht; + +class SensorSht20; + +typedef std::vector MySensorSht20Vector; + +struct paramsSht { + String key; + unsigned long interval; + float c; +}; + +class SensorSht20 { + public: + SensorSht20(const paramsSht& paramsTmp, const paramsSht& paramsHum); + ~SensorSht20(); + + void loop(); + void read(); + + private: + paramsSht _paramsTmp; + paramsSht _paramsHum; + + unsigned long prevMillis; + unsigned long difference; +}; + +extern MySensorSht20Vector* mySensorSht20; + +extern void sht20Sensor(); +#endif \ No newline at end of file diff --git a/src/items/vSensorSHT20.cpp b/src/items/vSensorSHT20.cpp new file mode 100644 index 00000000..9c58b133 --- /dev/null +++ b/src/items/vSensorSHT20.cpp @@ -0,0 +1,91 @@ +#include "Consts.h" +#ifdef EnableSensorSht20 +#include "items/vSensorSht20.h" + +#include + +#include "BufferExecute.h" +#include "Class/LineParsing.h" +#include "Global.h" + +#include "Wire.h" +#include "SHT2x.h" +SHT2x* sht = nullptr; + +SensorSht20::SensorSht20(const paramsSht& paramsTmp, const paramsSht& paramsHum) { + _paramsTmp = paramsSht(paramsTmp); + _paramsHum = paramsSht(paramsHum); + + if (!sht) { + sht = new SHT2x; + } + + sht->begin(); + + uint8_t stat = sht->getStatus(); + Serial.print(stat, HEX); + Serial.println(); +} + +SensorSht20::~SensorSht20() {} + +void SensorSht20::loop() { + difference = millis() - prevMillis; + if (difference >= _paramsHum.interval) { + prevMillis = millis(); + read(); + } +} + +void SensorSht20::read() { + sht->read(); + + float tmp = sht->getTemperature(); + float hum = sht->getHumidity(); + + tmp = tmp * _paramsTmp.c; + hum = hum * _paramsHum.c; + + eventGen2(_paramsTmp.key, String(tmp)); + jsonWriteStr(configLiveJson, _paramsTmp.key, String(tmp)); + publishStatus(_paramsTmp.key, String(tmp)); + SerialPrint("I", "Sensor", "'" + _paramsTmp.key + "' data: " + String(tmp)); + + eventGen2(_paramsHum.key, String(hum)); + jsonWriteStr(configLiveJson, _paramsHum.key, String(hum)); + publishStatus(_paramsHum.key, String(hum)); + SerialPrint("I", "Sensor", "'" + _paramsHum.key + "' data: " + String(hum)); +} + +MySensorSht20Vector* mySensorSht20 = nullptr; + +void sht20Sensor() { + myLineParsing.update(); + String key = myLineParsing.gkey(); + String interval = myLineParsing.gint(); + String c = myLineParsing.gc(); + myLineParsing.clear(); + + static int enterCnt = -1; + enterCnt++; + + static paramsSht paramsTmp; + static paramsSht paramsHum; + + if (enterCnt == 0) { + paramsTmp.key = key; + paramsTmp.c = c.toFloat(); + } + + if (enterCnt == 1) { + paramsHum.key = key; + paramsHum.c = c.toFloat(); + paramsHum.interval = interval.toInt() * 1000; + + static bool firstTime = true; + if (firstTime) mySensorSht20 = new MySensorSht20Vector(); + firstTime = false; + mySensorSht20->push_back(SensorSht20(paramsTmp, paramsHum)); + } +} +#endif \ No newline at end of file From 55ee70849f7e2a8bce84b77e682679cec80b2c7c Mon Sep 17 00:00:00 2001 From: biver Date: Fri, 3 Dec 2021 10:05:44 +0300 Subject: [PATCH 3/8] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=B1=D0=B8=D0=B1=D0=BB=D0=B8=D0=BE=D1=82=D0=B5?= =?UTF-8?q?=D0=BA=D1=83=20SHT2x=20=D0=BA=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platformio.ini | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/platformio.ini b/platformio.ini index af26cc6c..0fbb2bf6 100644 --- a/platformio.ini +++ b/platformio.ini @@ -8,34 +8,20 @@ ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html - -;============================================================================================== -;To choose firmware please use one of definition: -;esp8266_1mb , esp8266_4mb , esp32_4mb , esp8266_mysensors_4mb , esp32_mysensors_4mb [platformio] default_envs = esp32_4mb - - -;data_esp => esp8266_1mb , esp8266_4mb , esp32_4mb -;data_ms => esp8266_mysensors_4mb , esp32_mysensors_4mb -;data_svelte => new web interface (in progress...) data_dir = data_esp -;============================================================================================== - [common_env_data] lib_deps_external = bblanchon/ArduinoJson @5.* knolleary/PubSubClient - - lib_deps_internal = ESP Async WebServer GyverFilters OneWire EspSoftwareSerial - [env:esp8266_4mb] build_flags = -Desp8266_4mb="esp8266_4mb" framework = arduino @@ -54,12 +40,12 @@ lib_deps = adafruit/Adafruit BME280 Library adafruit/Adafruit CCS811 Library milesburton/DallasTemperature + robtillaart/SHT2x@^0.1.1 monitor_filters = esp8266_exception_decoder upload_speed = 921600 monitor_speed = 115200 board_build.filesystem = littlefs - [env:esp8266_1mb] build_flags = -Desp8266_1mb="esp8266_1mb" framework = arduino @@ -78,11 +64,11 @@ lib_deps = adafruit/Adafruit BME280 Library adafruit/Adafruit CCS811 Library milesburton/DallasTemperature + robtillaart/SHT2x@^0.1.1 monitor_filters = esp8266_exception_decoder upload_speed = 921600 monitor_speed = 115200 - [env:esp8266_mysensors_4mb] build_flags = -Desp8266_mysensors_4mb="esp8266_mysensors_4mb" framework = arduino @@ -96,17 +82,17 @@ lib_deps = ESPAsyncUDP CTBot @2.1.6 MySensors @2.3.2 + robtillaart/SHT2x@^0.1.1 monitor_filters = esp8266_exception_decoder upload_speed = 921600 monitor_speed = 115200 board_build.filesystem = littlefs - [env:esp32_4mb] build_flags = -Desp32_4mb="esp32_4mb" framework = arduino board = esp32dev -platform = espressif32 @3.3.0 +platform = espressif32 @3.3.0 lib_deps = ${common_env_data.lib_deps_external} ${common_env_data.lib_deps_internal} @@ -121,16 +107,16 @@ lib_deps = adafruit/Adafruit BME280 Library adafruit/Adafruit CCS811 Library milesburton/DallasTemperature + robtillaart/SHT2x@^0.1.1 monitor_filters = esp32_exception_decoder upload_speed = 921600 monitor_speed = 115200 - [env:esp32_mysensors_4mb] build_flags = -Desp32_mysensors_4mb="esp32_mysensors_4mb" framework = arduino board = esp32dev -platform = espressif32 @3.3.0 +platform = espressif32 @3.3.0 lib_deps = ${common_env_data.lib_deps_external} ${common_env_data.lib_deps_internal} @@ -140,6 +126,7 @@ lib_deps = ESP32 AnalogWrite ESP32Servo MySensors @2.3.2 + robtillaart/SHT2x@^0.1.1 monitor_filters = esp32_exception_decoder upload_speed = 921600 -monitor_speed = 115200 \ No newline at end of file +monitor_speed = 115200 From de2075664b5aff21a253acecfeb8224061838080 Mon Sep 17 00:00:00 2001 From: biver Date: Fri, 3 Dec 2021 10:30:56 +0300 Subject: [PATCH 4/8] =?UTF-8?q?=D0=98=D0=BD=D1=82=D0=B5=D0=B3=D1=80=D0=B8?= =?UTF-8?q?=D1=80=D1=83=D0=B5=D0=BC=20=D0=B4=D0=B0=D1=82=D1=87=D0=B8=D0=BA?= =?UTF-8?q?=20SHT20=20=D0=B2=20=D0=BE=D1=81=D0=BD=D0=BE=D0=B2=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20=D1=84=D0=B0=D0=BB=D1=8B=20=D0=BF=D1=80=D0=BE=D0=B5?= =?UTF-8?q?=D0=BA=D1=82=D0=B0=20=D0=BA=D1=80=D0=BE=D0=BC=D0=B5=20set.devic?= =?UTF-8?q?e.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_esp/items/items.txt | 4 +++- include/Consts.h | 1 + src/BufferExecute.cpp | 5 +++++ src/Init.cpp | 6 ++++++ src/main.cpp | 8 ++++++++ 5 files changed, 23 insertions(+), 1 deletion(-) diff --git a/data_esp/items/items.txt b/data_esp/items/items.txt index b75f01f0..bdacaa1a 100644 --- a/data_esp/items/items.txt +++ b/data_esp/items/items.txt @@ -31,4 +31,6 @@ 0;output-value;txtid;anydata;Вывод;Температура;order* 0;logging;crtid;chart;Графики;История;order;val[any];int[60];cnt[100]* 0;logging;crtid;chart3;Графики;История;order;val[any];int[23:30];cnt[100];st[0]* -0;uptime;uptid;anydataTime;Системные;%name%#uptime;order;int[60]* \ No newline at end of file +0;uptime;uptid;anydataTime;Системные;%name%#uptime;order;int[60]* +0;sht20;tmpid;anydataTemp;Сенсоры;Температура;1;c[1] +0;sht20;humid;anydataHum;Сенсоры;Влажность;2;c[1];int[50]* \ No newline at end of file diff --git a/include/Consts.h b/include/Consts.h index 959e00ff..aa914156 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -70,6 +70,7 @@ #define EnablePwmOut #define EnableSensorAnalog #define EnableSensorBme280 +#define EnableSensorSht20 #define EnableSensorBmp280 #define EnableSensorCcs811 #define EnableSensorDallas diff --git a/src/BufferExecute.cpp b/src/BufferExecute.cpp index e7972a03..b9c7d6ac 100644 --- a/src/BufferExecute.cpp +++ b/src/BufferExecute.cpp @@ -12,6 +12,7 @@ #include "items/vPwmOut.h" #include "items/vSensorAnalog.h" #include "items/vSensorBme280.h" +#include "items/vSensorSht20.h" #include "items/vSensorBmp280.h" #include "items/vSensorCcs811.h" #include "items/vSensorDallas.h" @@ -110,6 +111,10 @@ void csvCmdExecute(String& cmdStr) { } else if (order == F("bme280")) { #ifdef EnableSensorBme280 sCmd.addCommand(order.c_str(), bme280Sensor); +#endif + } else if (order == F("sht20")) { +#ifdef EnableSensorSht20 + sCmd.addCommand(order.c_str(), sht20Sensor); #endif } else if (order == F("bmp280")) { #ifdef EnableSensorBmp280 diff --git a/src/Init.cpp b/src/Init.cpp index 3c9b2055..29a51585 100644 --- a/src/Init.cpp +++ b/src/Init.cpp @@ -13,6 +13,7 @@ #include "items/vPwmOut.h" #include "items/vSensorAnalog.h" #include "items/vSensorBme280.h" +#include "items/vSensorSht20.h" #include "items/vSensorBmp280.h" #include "items/vSensorCcs811.h" #include "items/vSensorDallas.h" @@ -187,6 +188,11 @@ void clearVectors() { mySensorBme280->clear(); } #endif +#ifdef EnableSensorSht20 + if (mySensorSht20 != nullptr) { + mySensorSht20->clear(); + } +#endif #ifdef EnableSensorBmp280 if (mySensorBmp280 != nullptr) { mySensorBmp280->clear(); diff --git a/src/main.cpp b/src/main.cpp index 158435c2..218cf9a9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -25,6 +25,7 @@ #include "items/vLogging.h" #include "items/vSensorAnalog.h" #include "items/vSensorBme280.h" +#include "items/vSensorSht20.h" #include "items/vSensorBmp280.h" #include "items/vSensorCcs811.h" #include "items/vSensorDallas.h" @@ -173,6 +174,13 @@ void loop() { } } #endif +#ifdef EnableSensorSht20 + if (mySensorSht20 != nullptr) { + for (unsigned int i = 0; i < mySensorSht20->size(); i++) { + mySensorSht20->at(i).loop(); + } + } +#endif #ifdef EnableSensorBmp280 if (mySensorBmp280 != nullptr) { for (unsigned int i = 0; i < mySensorBmp280->size(); i++) { From f1c573b8825d8510acb9c16049699468cd99cd06 Mon Sep 17 00:00:00 2001 From: biver Date: Fri, 3 Dec 2021 10:34:25 +0300 Subject: [PATCH 5/8] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BF=D1=83=D0=BD=D0=BA=D1=82=2025.=D0=94=D0=B0?= =?UTF-8?q?=D1=82=D1=87=D0=B8=D0=BA=20=D1=82=D0=B5=D0=BC=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B0=D1=82=D1=83=D1=80=D1=8B,=20=D0=B2=D0=BB=D0=B0=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20SHT2x,=20HTU2x=20and=20Si70xx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_esp/set.device.json.gz | Bin 2922 -> 2957 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/data_esp/set.device.json.gz b/data_esp/set.device.json.gz index 8be8227505d0c56ceba73f6a427c44e0b165fe7c..fde7425435593eed47dbf43689ca335411430fc3 100644 GIT binary patch literal 2957 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 DV}hsd literal 2922 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 Date: Fri, 3 Dec 2021 10:51:10 +0300 Subject: [PATCH 6/8] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BF=D1=83=D0=BD=D0=BA=D1=82=2025.=D0=94=D0=B0?= =?UTF-8?q?=D1=82=D1=87=D0=B8=D0=BA=20=D1=82=D0=B5=D0=BC=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B0=D1=82=D1=83=D1=80=D1=8B,=20=D0=B2=D0=BB=D0=B0=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20SHT2x,=20HTU2x=20and=20Si70xx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_esp/set.device.json.gz | Bin 2957 -> 2956 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/data_esp/set.device.json.gz b/data_esp/set.device.json.gz index fde7425435593eed47dbf43689ca335411430fc3..50db98a9384e6b626e7686cdc85fc9db6c5cbd69 100644 GIT binary patch delta 1418 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 Date: Fri, 3 Dec 2021 11:04:55 +0300 Subject: [PATCH 7/8] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D1=8F=D0=B5=D0=BC?= =?UTF-8?q?=20=D0=BC=D1=83=D1=81=D0=BE=D1=80=20=D0=BE=D1=82=20=D0=BA=D0=B0?= =?UTF-8?q?=D1=81=D0=BF=D0=B5=D1=80=D1=81=D0=BA=D0=BE=D0=B3=D0=BE=207=20?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B0=20=D0=B8=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F=D0=B5=D0=BC=20=D0=B2=D0=BE=D0=B7?= =?UTF-8?q?=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B0=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=20CSV=20=D0=B2=20=D0=B2=D0=B5=D0=B1-=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=B0=D0=BA=D1=82=D0=BE=D1=80=D0=B5=20=D0=B2=20=D1=84=D0=B0?= =?UTF-8?q?=D0=B9=D0=BB=D0=B5=20edit.htm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_esp/edit.htm.gz | Bin 5455 -> 5286 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/data_esp/edit.htm.gz b/data_esp/edit.htm.gz index 5786121f98a84b5695314c9ad8e5537f57650ba4..d41d10c1c56f308ad3cac07e98993703426b577d 100644 GIT binary patch literal 5286 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 z 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 Date: Fri, 3 Dec 2021 11:18:48 +0300 Subject: [PATCH 8/8] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D0=BC=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D1=83=20?= =?UTF-8?q?=D0=B2=20=D0=B0=D0=BB=D0=B3=D0=BE=D1=80=D0=B8=D1=82=D0=BC=D0=B5?= =?UTF-8?q?=20=D1=87=D1=82=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=B8=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D0=B8.=20openNextFile()=20?= =?UTF-8?q?=D0=B2=D0=BE=D0=B7=D0=B2=D1=80=D0=B0=D1=89=D0=B0=D0=B5=D1=82=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/FSEditor.cpp | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/FSEditor.cpp b/src/FSEditor.cpp index 98be53cd..d7708c57 100644 --- a/src/FSEditor.cpp +++ b/src/FSEditor.cpp @@ -184,21 +184,22 @@ void FSEditor::getDirList(const String &path, String &output) { } #else void FSEditor::getDirList(const String &path, String &output) { - auto dir = _fs.open(path, FILE_READ); + File dir = _fs.open(path.c_str(), FILE_READ); dir.rewindDirectory(); - while (dir.openNextFile()) { - String fname = dir.name(); - if (!path.endsWith("/") && !fname.startsWith("/")) { - fname = "/" + fname; - } - fname = path + fname; - if (isExcluded(_fs, fname.c_str())) { - continue; - } - if (dir.isDirectory()) { - getDirList(fname, output); - continue; - } + File file; + while (file = dir.openNextFile()) { + String fname = file.name(); + //if (!path.endsWith("/") && !fname.startsWith("/")) { + // fname = "/" + fname; + //} + //fname = path + fname; + //if (isExcluded(_fs, fname.c_str())) { + // continue; + //} + //if (dir.isDirectory()) { + // getDirList(fname, output); + // continue; + //} if (output != "[") output += ','; char buf[128]; sprintf(buf, "{\"type\":\"file\",\"name\":\"%s\",\"size\":%d}", fname.c_str(), dir.size());