mirror of
https://github.com/s00500/ESPUI.git
synced 2024-11-24 22:40:54 +00:00
More ducumentation
This commit is contained in:
parent
2b4141fed3
commit
71576d7686
102
README.md
102
README.md
@ -1,4 +1,4 @@
|
|||||||
* Cleanup and extend Documentation
|
- Cleanup and extend Documentation
|
||||||
- Number field ✅
|
- Number field ✅
|
||||||
- Text field ✅
|
- Text field ✅
|
||||||
- Data directory ✅
|
- Data directory ✅
|
||||||
@ -6,15 +6,14 @@
|
|||||||
- Graph Usage
|
- Graph Usage
|
||||||
- Number min and max value to docs
|
- Number min and max value to docs
|
||||||
- Slider
|
- Slider
|
||||||
- OptionList
|
- OptionList ✅
|
||||||
- Tab usage
|
- Tab usage ✅
|
||||||
- prepare filesystem things ?
|
|
||||||
- Generic creation and updates
|
- Generic creation and updates
|
||||||
- additionsl parameters sliderContinuous
|
- additionsl parameters sliderContinuous
|
||||||
- jsonUpdateDocumentSize = 2000;
|
- jsonUpdateDocumentSize = 2000;
|
||||||
jsonInitialDocumentSize = 8000;
|
jsonInitialDocumentSize = 8000;
|
||||||
|
|
||||||
# ESPUI 2.0
|
# ESPUI (v2.X)
|
||||||
|
|
||||||
![ESPUI](https://github.com/s00500/ESPUI/blob/master/docs/ui_complete.png) //
|
![ESPUI](https://github.com/s00500/ESPUI/blob/master/docs/ui_complete.png) //
|
||||||
TODO: Update Logo
|
TODO: Update Logo
|
||||||
@ -43,13 +42,18 @@ The Library runs fine on any kind of **ESP8266** and **ESP32** (NodeMCU Boards,
|
|||||||
|
|
||||||
### Added features
|
### Added features
|
||||||
|
|
||||||
- Tabs by @eringerli ISSUE #45
|
- Tabs by @eringerli #45
|
||||||
- Generic API by @eringerli
|
- Generic API by @eringerli
|
||||||
- Min Max on slider by @eringerli
|
- Min Max on slider by @eringerli
|
||||||
- OptionList by @eringerli
|
- OptionList by @eringerli
|
||||||
- Public Access to ESPAsyncServer
|
- Public Access to ESPAsyncServer
|
||||||
- Graph Widget (Persist save graph in local storage #10)
|
- Graph Widget (Persist save graph in local storage #10)
|
||||||
|
|
||||||
|
## Further Roadmap
|
||||||
|
|
||||||
|
- Slider css issues
|
||||||
|
- implement Gauge
|
||||||
|
- File upload ?
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
@ -71,7 +75,10 @@ Make sure all the dependencies are installed, then install like so:
|
|||||||
Just include this library as a dependency on lib_deps like so:
|
Just include this library as a dependency on lib_deps like so:
|
||||||
|
|
||||||
```
|
```
|
||||||
lib_deps = ESPUI
|
lib_deps =
|
||||||
|
ESPUI
|
||||||
|
ESPAsyncWebserver
|
||||||
|
ESPAsyncTCP # or AsyncTCP on ESP32
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Directly Through Arduino IDE (_recommended_)
|
#### Directly Through Arduino IDE (_recommended_)
|
||||||
@ -129,6 +136,8 @@ more program memory to work with.
|
|||||||
- Slider
|
- Slider
|
||||||
- Text Input
|
- Text Input
|
||||||
- Numberinput
|
- Numberinput
|
||||||
|
- Graph
|
||||||
|
- Option select
|
||||||
|
|
||||||
Checkout the example for the usage or see the detailed info below
|
Checkout the example for the usage or see the detailed info below
|
||||||
|
|
||||||
@ -175,9 +184,8 @@ of the UI library:
|
|||||||
Buttons have a name and a callback value. They have one event for press (`B_DOWN`) and one
|
Buttons have a name and a callback value. They have one event for press (`B_DOWN`) and one
|
||||||
for release (`B_UP`).
|
for release (`B_UP`).
|
||||||
|
|
||||||
* B_DOWN
|
- B_DOWN
|
||||||
* B_UP
|
- B_UP
|
||||||
|
|
||||||
|
|
||||||
#### Switch
|
#### Switch
|
||||||
|
|
||||||
@ -188,9 +196,9 @@ their value they change visibly on all tablets or computers that currently
|
|||||||
display the interface. They also have two types of events: one when turning on (`S_ACTIVE`)
|
display the interface. They also have two types of events: one when turning on (`S_ACTIVE`)
|
||||||
and one when turning off (`S_INACTIVE`).
|
and one when turning off (`S_INACTIVE`).
|
||||||
|
|
||||||
* S_ACTIVE
|
- S_ACTIVE
|
||||||
* S_INACTIVE
|
- S_INACTIVE
|
||||||
|
|
||||||
#### Buttonpad
|
#### Buttonpad
|
||||||
|
|
||||||
![control pads](https://github.com/s00500/ESPUI/blob/master/docs/ui_controlpad.png)
|
![control pads](https://github.com/s00500/ESPUI/blob/master/docs/ui_controlpad.png)
|
||||||
@ -200,17 +208,16 @@ useful for con-trolling all kinds of movements of vehicles or also of course our
|
|||||||
walking robots. They use a single callback per pad and have 8 or 10 different
|
walking robots. They use a single callback per pad and have 8 or 10 different
|
||||||
event types to differentiate the button actions.
|
event types to differentiate the button actions.
|
||||||
|
|
||||||
* P_LEFT_DOWN
|
- P_LEFT_DOWN
|
||||||
* P_LEFT_UP
|
- P_LEFT_UP
|
||||||
* P_RIGHT_DOWN
|
- P_RIGHT_DOWN
|
||||||
* P_RIGHT_UP
|
- P_RIGHT_UP
|
||||||
* P_FOR_DOWN
|
- P_FOR_DOWN
|
||||||
* P_FOR_UP
|
- P_FOR_UP
|
||||||
* P_BACK_DOWN
|
- P_BACK_DOWN
|
||||||
* P_BACK_UP
|
- P_BACK_UP
|
||||||
* P_CENTER_DOWN
|
- P_CENTER_DOWN
|
||||||
* P_CENTER_UP
|
- P_CENTER_UP
|
||||||
|
|
||||||
|
|
||||||
#### Labels
|
#### Labels
|
||||||
|
|
||||||
@ -237,7 +244,7 @@ Use the .toInt
|
|||||||
|
|
||||||
#### Number Input
|
#### Number Input
|
||||||
|
|
||||||
TODO: Add image
|
![labels](https://github.com/s00500/ESPUI/blob/master/docs/ui_number.png)
|
||||||
|
|
||||||
The numberinput can be used to directly input numbers to your program. You can
|
The numberinput can be used to directly input numbers to your program. You can
|
||||||
enter a Value into it and when you are done with your change it is sent to the
|
enter a Value into it and when you are done with your change it is sent to the
|
||||||
@ -245,7 +252,7 @@ ESP.
|
|||||||
|
|
||||||
#### Text Input
|
#### Text Input
|
||||||
|
|
||||||
TODO: Add image
|
![labels](https://github.com/s00500/ESPUI/blob/master/docs/ui_text.png)
|
||||||
|
|
||||||
The textinput works very similar like the number input but with a string. You
|
The textinput works very similar like the number input but with a string. You
|
||||||
can enter a String into it and when you are done with your change it is sent to
|
can enter a String into it and when you are done with your change it is sent to
|
||||||
@ -253,17 +260,42 @@ the ESP.
|
|||||||
|
|
||||||
#### Graph
|
#### Graph
|
||||||
|
|
||||||
TODO: Add image
|
![labels](https://github.com/s00500/ESPUI/blob/master/docs/ui_graph.png)
|
||||||
|
|
||||||
// TODO: add docs
|
The graph widget can display graph points with timestamp at wich they arrive
|
||||||
|
|
||||||
#### Using Tabs
|
#### Option select
|
||||||
|
|
||||||
TODO: Add image
|
![labels](https://github.com/s00500/ESPUI/blob/master/docs/ui_select1.png)
|
||||||
|
![labels](https://github.com/s00500/ESPUI/blob/master/docs/ui_select2.png)
|
||||||
|
|
||||||
// TODO: add Text for tabs
|
The option select works by first creating a select widget like so
|
||||||
|
|
||||||
#### Initialisation of the UI
|
`uint16_t select1 = ESPUI.addControl( ControlType::Select, "Select:", "", ControlColor::Alizarin, tab1, &selectExample );`
|
||||||
|
|
||||||
|
And then adding Options to it like seperate widgets, specifying the select as the parent:
|
||||||
|
|
||||||
|
```
|
||||||
|
ESPUI.addControl( ControlType::Option, "Option1", "Opt1", ControlColor::Alizarin, select1 );
|
||||||
|
ESPUI.addControl( ControlType::Option, "Option2", "Opt2", ControlColor::Alizarin, select1 );
|
||||||
|
ESPUI.addControl( ControlType::Option, "Option3", "Opt3", ControlColor::Alizarin, select1 );
|
||||||
|
```
|
||||||
|
|
||||||
|
Check the **tabbedGui** example for a working demo
|
||||||
|
|
||||||
|
### Using Tabs
|
||||||
|
|
||||||
|
![labels](https://github.com/s00500/ESPUI/blob/master/docs/ui_tabs.png)
|
||||||
|
|
||||||
|
Tabs can be used to organize your widgets in pages. Check the tabbedGui example.
|
||||||
|
Tabs can be created using the generic functions like so:
|
||||||
|
`ESPUI.addControl( ControlType::Tab, "Settings 1", "Settings 1" );`
|
||||||
|
|
||||||
|
Then all widgets for the tab need to be added to it by specifying the tab as the parrent (widgets not added to a tab will be shown above the tab selctor)
|
||||||
|
|
||||||
|
`ESPUI.addControl( ControlType::Text, "Text Title:", "a Text Field", ControlColor::Alizarin, tab1, &textCall );`
|
||||||
|
|
||||||
|
### Initialisation of the UI
|
||||||
|
|
||||||
After all the elements are configured you can use `ESPUI.begin("Some Title");`
|
After all the elements are configured you can use `ESPUI.begin("Some Title");`
|
||||||
to start the UI interface. (Or `ESPUI.beginSPIFFS("Some Title");` respectively)
|
to start the UI interface. (Or `ESPUI.beginSPIFFS("Some Title");` respectively)
|
||||||
@ -271,7 +303,7 @@ Make sure you setup a working network connection or AccesPoint **before** (See
|
|||||||
gui.ino example). The web interface can then be used from multiple devices at once and
|
gui.ino example). The web interface can then be used from multiple devices at once and
|
||||||
also shows an connection status in the top bar.
|
also shows an connection status in the top bar.
|
||||||
|
|
||||||
#### Log output
|
### Log output
|
||||||
|
|
||||||
ESPUI has several different log levels. You can set them using the
|
ESPUI has several different log levels. You can set them using the
|
||||||
`ESPUI.setVerbosity(Verbosity::VerboseJSON)` function.
|
`ESPUI.setVerbosity(Verbosity::VerboseJSON)` function.
|
||||||
@ -286,7 +318,7 @@ VerboseJSON outputs the most debug information.
|
|||||||
|
|
||||||
# Notes for Development
|
# Notes for Development
|
||||||
|
|
||||||
If you want to work on the HTML/CSS/JS files, do make changes in the *data*
|
If you want to work on the HTML/CSS/JS files, do make changes in the _data_
|
||||||
directory. When you need to transfer that code to the ESP, run
|
directory. When you need to transfer that code to the ESP, run
|
||||||
`tools/prepare_static_ui_sources.py -a` (this script needs **python3** with the
|
`tools/prepare_static_ui_sources.py -a` (this script needs **python3** with the
|
||||||
modules **htmlmin**, **jsmin** and **csscompressor**). This will generate a) minified files
|
modules **htmlmin**, **jsmin** and **csscompressor**). This will generate a) minified files
|
||||||
|
BIN
docs/ui_graph.png
Normal file
BIN
docs/ui_graph.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 64 KiB |
BIN
docs/ui_number.png
Normal file
BIN
docs/ui_number.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
BIN
docs/ui_select1.png
Normal file
BIN
docs/ui_select1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
BIN
docs/ui_select2.png
Normal file
BIN
docs/ui_select2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
BIN
docs/ui_tabs.png
Normal file
BIN
docs/ui_tabs.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
BIN
docs/ui_text.png
Normal file
BIN
docs/ui_text.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
@ -207,7 +207,6 @@ void setup(void) {
|
|||||||
ESPUI.number("Numbertest", &numberCall, ControlColor::Alizarin, 5, 0, 10);
|
ESPUI.number("Numbertest", &numberCall, ControlColor::Alizarin, 5, 0, 10);
|
||||||
|
|
||||||
graphId = ESPUI.graph("Graph Test", ControlColor::Wetasphalt);
|
graphId = ESPUI.graph("Graph Test", ControlColor::Wetasphalt);
|
||||||
ESPUI.gauge("Gauge Test", ControlColor::Wetasphalt, 58, 0, 100); // Gauge has
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* .begin loads and serves all files from PROGMEM directly.
|
* .begin loads and serves all files from PROGMEM directly.
|
||||||
|
@ -18,7 +18,6 @@ const char* hostname = "espui";
|
|||||||
uint16_t button1;
|
uint16_t button1;
|
||||||
uint16_t switchOne;
|
uint16_t switchOne;
|
||||||
uint16_t status;
|
uint16_t status;
|
||||||
uint16_t millisLabelId;
|
|
||||||
|
|
||||||
void numberCall( Control* sender, int type ) {
|
void numberCall( Control* sender, int type ) {
|
||||||
Serial.println( sender->value );
|
Serial.println( sender->value );
|
||||||
@ -255,7 +254,6 @@ void loop( void ) {
|
|||||||
static bool switchi = false;
|
static bool switchi = false;
|
||||||
|
|
||||||
if ( millis() - oldTime > 5000 ) {
|
if ( millis() - oldTime > 5000 ) {
|
||||||
ESPUI.updateControlValue( millisLabelId, String( millis() ) );
|
|
||||||
switchi = !switchi;
|
switchi = !switchi;
|
||||||
ESPUI.updateControlValue( switchOne, switchi ? "1" : "0" );
|
ESPUI.updateControlValue( switchOne, switchi ? "1" : "0" );
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user