1#pragma once
2
3#include <ArduinoJson.h>
4#include <LittleFS.h>
5#include <ESP8266WiFi.h>
6#include <ESP8266WebServer.h>
7
8extern DynamicJsonDocument readJsonFile(const char* fileName);
9extern void writeJsonFile(const char* file_path, DynamicJsonDocument& doc);
10extern void listDir(const char* dirname, uint8_t levels);
11extern void storageInfo();
12extern void BLINK(int times);
13
14void listDir(const char* dirname, uint8_t levels) {
15 File root = LittleFS.open(dirname,"r");
16 if (!root) {
17 Serial.println("Failed to open directory");
18 return;
19 }
20
21 if (!root.isDirectory()) {
22 Serial.println("Not a directory");
23 return;
24 }
25
26 File file = root.openNextFile();
27 while (file) {
28 if (file.isDirectory()) {
29 Serial.println("-"+String(file.name()));
30 if (levels) {
31 listDir(file.name(), levels - 1);
32 }
33 } else {
34 Serial.print(" |- ");
35 Serial.print(file.name());
36 Serial.print(" SIZE: ");
37 Serial.print(file.size());
38 Serial.println(" bytes");
39 }
40
41 file = root.openNextFile();
42 }
43}
44
45DynamicJsonDocument readJsonFile(const char* file_path) {
46 DynamicJsonDocument doc(4000);
47 File file = LittleFS.open(file_path, "r");
48 deserializeJson(doc, file);
49 file.close();
50 return doc;
51}
52
53void writeJsonFile(const char* file_path, DynamicJsonDocument& doc) {
54 File file = LittleFS.open(file_path, "w");
55 serializeJson(doc, file);
56 file.close();
57}
58
59void storageInfo(){
60 FSInfo fs_info;
61 LittleFS.info(fs_info);
62 Serial.printf("LittleFS Total space: %u KB\n", fs_info.totalBytes/1000);
63 Serial.printf("LittleFS Used space: %u KB\n", fs_info.usedBytes/1000);
64 Serial.printf("LittleFS Free space: %u KB\n", (fs_info.totalBytes - fs_info.usedBytes)/1000);
65}
66
67void BLINK(int times) {
68 for (int counter = 0; counter < times * 2 ; counter++)
69 {
70 digitalWrite(BUILTIN_LED, counter % 2);
71 delay(500);
72 }
73}