mirror of
https://github.com/s00500/ESPUI.git
synced 2024-11-22 09:10:54 +00:00
Adding Slider Related functions and cleaning up
This commit is contained in:
parent
fa4499c7ca
commit
ba06ff5fbf
@ -1,7 +1,47 @@
|
|||||||
#include "ESPUI.h"
|
#include "ESPUI.h"
|
||||||
|
|
||||||
|
#include "uploadDataIndex.h"
|
||||||
|
#include "uploadDataControls.h"
|
||||||
|
#include "uploadDataStyle.h"
|
||||||
|
|
||||||
|
#include "uploadDataZepto.h"
|
||||||
|
#include "uploadDataNormalize.h"
|
||||||
|
|
||||||
#include <ESPAsyncWebServer.h>
|
#include <ESPAsyncWebServer.h>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
|
void ESPUIClass::prepareFileSystem(){
|
||||||
|
// this function should only be used once, maybe even halt the system
|
||||||
|
/*
|
||||||
|
Needed Things
|
||||||
|
index.htm HTML_INDEX
|
||||||
|
|
||||||
|
style/style.css
|
||||||
|
stye/normalize.css
|
||||||
|
|
||||||
|
js/controls.js
|
||||||
|
js/zepto.js
|
||||||
|
|
||||||
|
*/
|
||||||
|
if(!SPIFFS.begin()){
|
||||||
|
if(debug) Serial.println("SPIFFS Mount Failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
listDir(SPIFFS, "/", 0);
|
||||||
|
writeFile(SPIFFS, "/hello.txt", "Hello ");
|
||||||
|
appendFile(SPIFFS, "/hello.txt", "World!\n");
|
||||||
|
readFile(SPIFFS, "/hello.txt");
|
||||||
|
deleteFile(SPIFFS, "/foo.txt");
|
||||||
|
renameFile(SPIFFS, "/hello.txt", "/foo.txt");
|
||||||
|
readFile(SPIFFS, "/foo.txt");
|
||||||
|
testFileIO(SPIFFS, "/test.txt");
|
||||||
|
*/
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Handle Websockets Communication
|
// Handle Websockets Communication
|
||||||
void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client,
|
void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client,
|
||||||
AwsEventType type, void *arg, uint8_t *data, size_t len) {
|
AwsEventType type, void *arg, uint8_t *data, size_t len) {
|
||||||
@ -22,48 +62,37 @@ void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client,
|
|||||||
for (size_t i = 0; i < len; i++) {
|
for (size_t i = 0; i < len; i++) {
|
||||||
msg += (char)data[i];
|
msg += (char)data[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Control *c = ESPUI.controls[msg.substring(msg.lastIndexOf(':') + 1).toInt()];
|
||||||
|
|
||||||
if (msg.startsWith("bdown:")) {
|
if (msg.startsWith("bdown:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(6).toInt()];
|
|
||||||
c->callback(*c, B_DOWN);
|
c->callback(*c, B_DOWN);
|
||||||
} else if (msg.startsWith("bup:")) {
|
} else if (msg.startsWith("bup:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(4).toInt()];
|
|
||||||
c->callback(*c, B_UP);
|
c->callback(*c, B_UP);
|
||||||
} else if (msg.startsWith("pfdown:")) {
|
} else if (msg.startsWith("pfdown:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(7).toInt()];
|
|
||||||
c->callback(*c, P_FOR_DOWN);
|
c->callback(*c, P_FOR_DOWN);
|
||||||
} else if (msg.startsWith("pfup:")) {
|
} else if (msg.startsWith("pfup:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(5).toInt()];
|
|
||||||
c->callback(*c, P_FOR_UP);
|
c->callback(*c, P_FOR_UP);
|
||||||
} else if (msg.startsWith("pldown:")) {
|
} else if (msg.startsWith("pldown:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(7).toInt()];
|
|
||||||
c->callback(*c, P_LEFT_DOWN);
|
c->callback(*c, P_LEFT_DOWN);
|
||||||
} else if (msg.startsWith("plup:")) {
|
} else if (msg.startsWith("plup:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(5).toInt()];
|
|
||||||
c->callback(*c, P_LEFT_UP);
|
c->callback(*c, P_LEFT_UP);
|
||||||
} else if (msg.startsWith("prdown:")) {
|
} else if (msg.startsWith("prdown:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(7).toInt()];
|
|
||||||
c->callback(*c, P_RIGHT_DOWN);
|
c->callback(*c, P_RIGHT_DOWN);
|
||||||
} else if (msg.startsWith("prup:")) {
|
} else if (msg.startsWith("prup:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(5).toInt()];
|
|
||||||
c->callback(*c, P_RIGHT_UP);
|
c->callback(*c, P_RIGHT_UP);
|
||||||
} else if (msg.startsWith("pbdown:")) {
|
} else if (msg.startsWith("pbdown:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(7).toInt()];
|
|
||||||
c->callback(*c, P_BACK_DOWN);
|
c->callback(*c, P_BACK_DOWN);
|
||||||
} else if (msg.startsWith("pbup:")) {
|
} else if (msg.startsWith("pbup:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(5).toInt()];
|
|
||||||
c->callback(*c, P_BACK_UP);
|
c->callback(*c, P_BACK_UP);
|
||||||
} else if (msg.startsWith("pcdown:")) {
|
} else if (msg.startsWith("pcdown:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(7).toInt()];
|
|
||||||
c->callback(*c, P_CENTER_DOWN);
|
c->callback(*c, P_CENTER_DOWN);
|
||||||
} else if (msg.startsWith("pcup:")) {
|
} else if (msg.startsWith("pcup:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(5).toInt()];
|
|
||||||
c->callback(*c, P_CENTER_UP);
|
c->callback(*c, P_CENTER_UP);
|
||||||
} else if (msg.startsWith("sactive:")) {
|
} else if (msg.startsWith("sactive:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(8).toInt()];
|
|
||||||
ESPUI.updateSwitcher(c->id, true);
|
ESPUI.updateSwitcher(c->id, true);
|
||||||
c->callback(*c, S_ACTIVE);
|
c->callback(*c, S_ACTIVE);
|
||||||
} else if (msg.startsWith("sinactive:")) {
|
} else if (msg.startsWith("sinactive:")) {
|
||||||
Control *c = ESPUI.controls[msg.substring(10).toInt()];
|
|
||||||
ESPUI.updateSwitcher(c->id, false);
|
ESPUI.updateSwitcher(c->id, false);
|
||||||
c->callback(*c, S_INACTIVE);
|
c->callback(*c, S_INACTIVE);
|
||||||
}
|
}
|
||||||
@ -93,6 +122,29 @@ void ESPUIClass::label(const char *label, int color, String value) {
|
|||||||
cIndex++;
|
cIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: this still needs a range setting
|
||||||
|
void ESPUIClass::slider(const char *label, void (*callBack)(Control, int), int color, String value) {
|
||||||
|
if (labelExists(label)) {
|
||||||
|
if (debug)
|
||||||
|
Serial.println("UI ERROR: Element " + String(label) +
|
||||||
|
" exists, skipping creating element!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Control *newSL = new Control();
|
||||||
|
newSL->type = UI_SLIDER;
|
||||||
|
newSL->label = label;
|
||||||
|
newSL->color = color;
|
||||||
|
if (value != "")
|
||||||
|
newSL->value = value;
|
||||||
|
else
|
||||||
|
newSL->value = ""; // TODO: init with half value
|
||||||
|
newSL->callback = callBack;
|
||||||
|
newSL->id = cIndex;
|
||||||
|
controls[cIndex] = newSL;
|
||||||
|
cIndex++;
|
||||||
|
}
|
||||||
|
|
||||||
void ESPUIClass::button(const char *label, void (*callBack)(Control, int),
|
void ESPUIClass::button(const char *label, void (*callBack)(Control, int),
|
||||||
int color, String value) {
|
int color, String value) {
|
||||||
if (labelExists(label)) {
|
if (labelExists(label)) {
|
||||||
@ -253,6 +305,7 @@ void ESPUIClass::jsonDom(AsyncWebSocketClient *client) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ESPUIClass::begin(const char *_title) {
|
void ESPUIClass::begin(const char *_title) {
|
||||||
|
|
||||||
ui_title = _title;
|
ui_title = _title;
|
||||||
server = new AsyncWebServer(80);
|
server = new AsyncWebServer(80);
|
||||||
ws = new AsyncWebSocket("/ws");
|
ws = new AsyncWebSocket("/ws");
|
||||||
|
@ -36,6 +36,8 @@ typedef struct Control {
|
|||||||
#define UI_CPAD 5
|
#define UI_CPAD 5
|
||||||
#define UPDATE_LABEL 6
|
#define UPDATE_LABEL 6
|
||||||
#define UPDATE_SWITCH 7
|
#define UPDATE_SWITCH 7
|
||||||
|
#define UI_SLIDER 8
|
||||||
|
#define UPDATE_SLIDER 9
|
||||||
|
|
||||||
// Values
|
// Values
|
||||||
#define B_DOWN -1
|
#define B_DOWN -1
|
||||||
@ -71,6 +73,8 @@ class ESPUIClass {
|
|||||||
public:
|
public:
|
||||||
void begin(const char *_title); // Setup servers and page
|
void begin(const char *_title); // Setup servers and page
|
||||||
|
|
||||||
|
void prepareFileSystem(); // Initially preps the filesystem and loads a lot of stuff into SPIFFS
|
||||||
|
|
||||||
// Creating Elements
|
// Creating Elements
|
||||||
void label(const char *label, int color, String value = ""); // Create Label
|
void label(const char *label, int color, String value = ""); // Create Label
|
||||||
void button(const char *label, void (*callBack)(Control, int), int color,
|
void button(const char *label, void (*callBack)(Control, int), int color,
|
||||||
@ -80,6 +84,7 @@ public:
|
|||||||
int color); // Create Toggle Button
|
int color); // Create Toggle Button
|
||||||
void pad(const char *label, bool centerButton, void (*callBack)(Control, int),
|
void pad(const char *label, bool centerButton, void (*callBack)(Control, int),
|
||||||
int color); // Create Pad Control
|
int color); // Create Pad Control
|
||||||
|
void slider(const char *label, void (*callBack)(Control, int), int color, String value); // Create Slider Control
|
||||||
|
|
||||||
// Update Elements
|
// Update Elements
|
||||||
void print(int id, String value);
|
void print(int id, String value);
|
||||||
@ -88,6 +93,9 @@ public:
|
|||||||
void updateSwitcher(int id, bool nValue);
|
void updateSwitcher(int id, bool nValue);
|
||||||
void updateSwitcher(String label, bool nValue);
|
void updateSwitcher(String label, bool nValue);
|
||||||
|
|
||||||
|
void updateSlider(int id, int nValue);
|
||||||
|
void updateSlider(String label, int nValue);
|
||||||
|
|
||||||
// Variables ---
|
// Variables ---
|
||||||
const char *ui_title = "ESPUI"; // Store UI Title and Header Name
|
const char *ui_title = "ESPUI"; // Store UI Title and Header Name
|
||||||
int cIndex = 0; // Control index
|
int cIndex = 0; // Control index
|
||||||
|
Loading…
Reference in New Issue
Block a user