mirror of
https://github.com/s00500/ESPUI.git
synced 2025-07-03 19:50:20 +00:00
Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
7e4dbd7e03 | |||
6dabc32905 | |||
feedd21413 |
@ -12,60 +12,6 @@ const char *password = "";
|
||||
long oldTime = 0;
|
||||
bool switchi = false;
|
||||
|
||||
void setup(void) {
|
||||
Serial.begin(115200);
|
||||
WiFi.mode(WIFI_AP);
|
||||
|
||||
#if defined(ESP32)
|
||||
WiFi.setHostname(ssid);
|
||||
#else
|
||||
WiFi.hostname(ssid);
|
||||
#endif
|
||||
|
||||
WiFi.softAP(ssid);
|
||||
// WiFi.softAP(ssid, password);
|
||||
Serial.println("");
|
||||
Serial.print("IP address: ");
|
||||
Serial.println(WiFi.softAPIP());
|
||||
|
||||
// change the beginning to this if you want to join an existing network
|
||||
/*
|
||||
Serial.begin(115200);
|
||||
WiFi.begin(ssid, password);
|
||||
Serial.println("");
|
||||
// Wait for connection
|
||||
while (WiFi.status() != WL_CONNECTED) {
|
||||
delay(500);
|
||||
Serial.print(".");
|
||||
}
|
||||
Serial.println("");
|
||||
Serial.print("IP address: ");
|
||||
Serial.println(WiFi.localIP());
|
||||
*/
|
||||
|
||||
ESPUI.label("Status:", COLOR_TURQUOISE, "Stop");
|
||||
ESPUI.label("Millis:", COLOR_EMERALD, "0");
|
||||
ESPUI.button("Push Button", &buttonCallback, COLOR_PETERRIVER);
|
||||
ESPUI.button("Other Button", &buttonExample, COLOR_WETASPHALT, "Press");
|
||||
ESPUI.pad("Pad with center", true, &padExample, COLOR_SUNFLOWER);
|
||||
ESPUI.pad("Pad without center", false, &padExample, COLOR_CARROT);
|
||||
ESPUI.switcher("Switch one", false, &switchExample, COLOR_ALIZARIN);
|
||||
ESPUI.switcher("Switch two", true, &otherSwitchExample, COLOR_NONE);
|
||||
ESPUI.slider("Slider one", &slider, COLOR_ALIZARIN, "30");
|
||||
ESPUI.slider("Slider two", &slider, COLOR_NONE, "100");
|
||||
|
||||
ESPUI.begin("ESP32 Control");
|
||||
}
|
||||
|
||||
void loop(void) {
|
||||
if (millis() - oldTime > 5000) {
|
||||
ESPUI.print("Millis:", String(millis()));
|
||||
switchi = !switchi;
|
||||
ESPUI.updateSwitcher("Switch one", switchi);
|
||||
oldTime = millis();
|
||||
}
|
||||
}
|
||||
|
||||
void slider(Control sender, int type) {
|
||||
Serial.println(sender.value);
|
||||
}
|
||||
@ -155,3 +101,57 @@ void otherSwitchExample(Control sender, int value) {
|
||||
Serial.print(" ");
|
||||
Serial.println(sender.id);
|
||||
}
|
||||
|
||||
void setup(void) {
|
||||
Serial.begin(115200);
|
||||
WiFi.mode(WIFI_AP);
|
||||
|
||||
#if defined(ESP32)
|
||||
WiFi.setHostname(ssid);
|
||||
#else
|
||||
WiFi.hostname(ssid);
|
||||
#endif
|
||||
|
||||
WiFi.softAP(ssid);
|
||||
// WiFi.softAP(ssid, password);
|
||||
Serial.println("");
|
||||
Serial.print("IP address: ");
|
||||
Serial.println(WiFi.softAPIP());
|
||||
|
||||
// change the beginning to this if you want to join an existing network
|
||||
/*
|
||||
Serial.begin(115200);
|
||||
WiFi.begin(ssid, password);
|
||||
Serial.println("");
|
||||
// Wait for connection
|
||||
while (WiFi.status() != WL_CONNECTED) {
|
||||
delay(500);
|
||||
Serial.print(".");
|
||||
}
|
||||
Serial.println("");
|
||||
Serial.print("IP address: ");
|
||||
Serial.println(WiFi.localIP());
|
||||
*/
|
||||
|
||||
ESPUI.label("Status:", COLOR_TURQUOISE, "Stop");
|
||||
ESPUI.label("Millis:", COLOR_EMERALD, "0");
|
||||
ESPUI.button("Push Button", &buttonCallback, COLOR_PETERRIVER);
|
||||
ESPUI.button("Other Button", &buttonExample, COLOR_WETASPHALT, "Press");
|
||||
ESPUI.pad("Pad with center", true, &padExample, COLOR_SUNFLOWER);
|
||||
ESPUI.pad("Pad without center", false, &padExample, COLOR_CARROT);
|
||||
ESPUI.switcher("Switch one", false, &switchExample, COLOR_ALIZARIN);
|
||||
ESPUI.switcher("Switch two", true, &otherSwitchExample, COLOR_NONE);
|
||||
ESPUI.slider("Slider one", &slider, COLOR_ALIZARIN, "30");
|
||||
ESPUI.slider("Slider two", &slider, COLOR_NONE, "100");
|
||||
|
||||
ESPUI.begin("ESP32 Control");
|
||||
}
|
||||
|
||||
void loop(void) {
|
||||
if (millis() - oldTime > 5000) {
|
||||
ESPUI.print("Millis:", String(millis()));
|
||||
switchi = !switchi;
|
||||
ESPUI.updateSwitcher("Switch one", switchi);
|
||||
oldTime = millis();
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
name=ESPUI
|
||||
version=1.4.3
|
||||
version=1.4.4
|
||||
author=Lukas Bachschwell
|
||||
maintainer=Lukas Bachschwell <lukas@lbsfilm.at>
|
||||
sentence=ESP32 and ESP8266 Web Interface Library
|
||||
|
@ -14,25 +14,58 @@
|
||||
#include <functional>
|
||||
|
||||
// ################# Spiffs functions
|
||||
void deleteFile(fs::FS &fs, const char * path){
|
||||
if(!fs.exists(path)){
|
||||
|
||||
void listDir(const char * dirname, uint8_t levels){
|
||||
Serial.printf("Listing directory: %s\n", dirname);
|
||||
|
||||
File root = SPIFFS.open(dirname);
|
||||
if(!root){
|
||||
Serial.println("Failed to open directory");
|
||||
return;
|
||||
}
|
||||
if(!root.isDirectory()){
|
||||
Serial.println("Not a directory");
|
||||
return;
|
||||
}
|
||||
|
||||
File file = root.openNextFile();
|
||||
while(file){
|
||||
if(file.isDirectory()){
|
||||
Serial.print(" DIR : ");
|
||||
Serial.println(file.name());
|
||||
if(levels){
|
||||
listDir(file.name(), levels -1);
|
||||
}
|
||||
} else {
|
||||
Serial.print(" FILE: ");
|
||||
Serial.print(file.name());
|
||||
Serial.print(" SIZE: ");
|
||||
Serial.println(file.size());
|
||||
}
|
||||
file = root.openNextFile();
|
||||
}
|
||||
}
|
||||
|
||||
void deleteFile(const char * path) {
|
||||
Serial.print(SPIFFS.exists(path));
|
||||
if(!SPIFFS.exists(path)){
|
||||
Serial.printf("File: %s does not exist, not deleting\n", path);
|
||||
return;
|
||||
}
|
||||
|
||||
Serial.printf("Deleting file: %s\n", path);
|
||||
|
||||
if(fs.remove(path)){
|
||||
if(SPIFFS.remove(path)){
|
||||
Serial.println("File deleted");
|
||||
} else {
|
||||
Serial.println("Delete failed");
|
||||
}
|
||||
}
|
||||
|
||||
void writeFile(fs::FS &fs, const char * path, const char * data){
|
||||
void writeFile(const char * path, const char * data) {
|
||||
Serial.printf("Writing file: %s\n", path);
|
||||
|
||||
File file = fs.open(path, FILE_WRITE);
|
||||
File file = SPIFFS.open(path, FILE_WRITE);
|
||||
if(!file){
|
||||
Serial.println("Failed to open file for writing");
|
||||
return;
|
||||
@ -42,6 +75,7 @@ void writeFile(fs::FS &fs, const char * path, const char * data){
|
||||
} else {
|
||||
Serial.println("Write failed");
|
||||
}
|
||||
file.close();
|
||||
}
|
||||
|
||||
// end Spiffs functions
|
||||
@ -52,37 +86,58 @@ void ESPUIClass::prepareFileSystem(){
|
||||
Serial.println("About to prepare filesystem...");
|
||||
|
||||
#if defined(ESP32)
|
||||
SPIFFS.format();
|
||||
if(!SPIFFS.begin(true)) {
|
||||
Serial.println("SPIFFS Mount Failed");
|
||||
return;
|
||||
}
|
||||
Serial.println("SPIFFS Mount ESP32 Done");
|
||||
#else
|
||||
SPIFFS.begin();
|
||||
SPIFFS.format();
|
||||
SPIFFS.begin();
|
||||
Serial.println("SPIFFS Mount ESP8266 Done");
|
||||
#endif
|
||||
|
||||
deleteFile(SPIFFS, "/index.htm");
|
||||
listDir("/", 1);
|
||||
|
||||
deleteFile(SPIFFS, "/css/style.css");
|
||||
deleteFile(SPIFFS, "/css/normalize.css");
|
||||
//TODO: This is a workaround, have to find out why SPIFFS on ESP32 behaves incredibly strangely, see issue #6
|
||||
/*
|
||||
deleteFile("/index.htm");
|
||||
|
||||
deleteFile(SPIFFS, "/js/controls.js");
|
||||
deleteFile(SPIFFS, "/js/zepto.min.js");
|
||||
deleteFile(SPIFFS, "/js/slider.js");
|
||||
deleteFile("/css/style.css");
|
||||
deleteFile("/css/normalize.css");
|
||||
|
||||
Serial.println('Cleanup done');
|
||||
deleteFile("/js/zepto.min.js");
|
||||
deleteFile("/js/controls.js");
|
||||
deleteFile("/js/slider.js");
|
||||
*/
|
||||
|
||||
Serial.println("Cleanup done");
|
||||
|
||||
// Now write
|
||||
writeFile(SPIFFS, "/index.htm", HTML_INDEX);
|
||||
writeFile("/index.htm", HTML_INDEX);
|
||||
|
||||
writeFile(SPIFFS, "/css/style.css", CSS_STYLE);
|
||||
writeFile(SPIFFS, "/css/normalize.css", CSS_NORMALIZE);
|
||||
writeFile("/css/style.css", CSS_STYLE);
|
||||
writeFile("/css/normalize.css", CSS_NORMALIZE);
|
||||
|
||||
writeFile(SPIFFS, "/js/zepto.min.js", JS_ZEPTO);
|
||||
writeFile(SPIFFS, "/js/controls.js", JS_CONTROLS);
|
||||
writeFile(SPIFFS, "/js/slider.js", JS_SLIDER);
|
||||
writeFile("/js/zepto.min.js", JS_ZEPTO);
|
||||
writeFile("/js/controls.js", JS_CONTROLS);
|
||||
writeFile("/js/slider.js", JS_SLIDER);
|
||||
|
||||
Serial.println("Done Initializing filesystem :-)");
|
||||
listDir("/", 1);
|
||||
SPIFFS.end();
|
||||
}
|
||||
|
||||
void ESPUIClass::list() {
|
||||
if(!SPIFFS.begin()) {
|
||||
Serial.println("SPIFFS Mount Failed");
|
||||
return;
|
||||
}
|
||||
listDir("/", 1);
|
||||
|
||||
Serial.println(SPIFFS.totalBytes());
|
||||
Serial.println(SPIFFS.usedBytes());
|
||||
}
|
||||
|
||||
|
||||
@ -398,10 +453,12 @@ void ESPUIClass::begin(const char *_title) {
|
||||
ui_title = _title;
|
||||
server = new AsyncWebServer(80);
|
||||
ws = new AsyncWebSocket("/ws");
|
||||
|
||||
if(!SPIFFS.begin()) {
|
||||
Serial.println("SPIFFS Mount Failed, PLEASE CHECK THE README ON HOW TO PREPARE YOUR ESP!!!!!!!");
|
||||
return;
|
||||
}
|
||||
listDir("/", 1);
|
||||
|
||||
if(!SPIFFS.exists( "/index.htm")) {
|
||||
Serial.println("Please read the README!!!!!!!, Make sure to ESPUI.prepareFileSystem() once in an empty sketch");
|
||||
|
@ -89,7 +89,7 @@ public:
|
||||
void begin(const char *_title); // Setup servers and page
|
||||
|
||||
void prepareFileSystem(); // Initially preps the filesystem and loads a lot of stuff into SPIFFS
|
||||
|
||||
void list();
|
||||
// Creating Elements
|
||||
void label(const char *label, int color, String value = ""); // Create Label
|
||||
void button(const char *label, void (*callBack)(Control, int), int color,
|
||||
|
Reference in New Issue
Block a user