From e0ee932fff78e716fc0130640a956d44e8184eef Mon Sep 17 00:00:00 2001 From: Lukas Bachschwell Date: Sun, 29 Dec 2019 14:50:09 +0100 Subject: [PATCH] new tab image --- README.md | 33 +++++++++++++++++++++++---------- docs/ui_tabs.png | Bin 20218 -> 20778 bytes 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 8325e73..80130b3 100644 --- a/README.md +++ b/README.md @@ -3,20 +3,16 @@ - Text field ✅ - Data directory ✅ - Verbosity setting ✅ + - Tab usage ✅ + - OptionList ✅ + - - Graph Usage - Number min and max value to docs - - Slider - - OptionList ✅ - - Tab usage ✅ - Generic creation and updates - - additionsl parameters sliderContinuous - - jsonUpdateDocumentSize = 2000; - jsonInitialDocumentSize = 8000; # ESPUI (v2.X) -![ESPUI](https://github.com/s00500/ESPUI/blob/master/docs/ui_complete.png) // -TODO: Update Logo +![ESPUI](https://github.com/s00500/ESPUI/blob/master/docs/ui_complete.png) ESPUI is a simple library to make a web user interface for your projects using the **ESP8266** or the **ESP32** It uses web sockets and lets you create, @@ -240,7 +236,14 @@ The Slider can be used to slide through a value from 1 to 100. Slides provide realtime data, are touch compatible and can be used to for example control a Servo. The current value is shown while the slider is dragged in a little bubble over the handle. In the Callback the slider does not return an int but a String. -Use the .toInt +Use the .toInt function to convert the value, see the **gui** example to check how it works. + +A slider usually only sends a new value when it is released to save the esps from being spammed with values. This behaviour can be cahnged globally using a property of the ESPUI object before `begin()`: + +``` + ESPUI.sliderContinuous = true; + ESPUI.begin("ESPUI Control"); +``` #### Number Input @@ -316,6 +319,16 @@ Loglevels are: VerboseJSON outputs the most debug information. +### Advanced properties + +If you have many different widgets it might be necessary to adjust the JSON Buffers used internally in ESPUI before .begin() : + +``` + ESPUI.jsonUpdateDocumentSize = 2000; // This is the default, and this value is not affected by the amount of widgets + ESPUI.jsonInitialDocumentSize = 8000; // This is the default, adjust when you have too many widgets or options + ESPUI.begin("ESPUI Control"); +``` + # Notes for Development If you want to work on the HTML/CSS/JS files, do make changes in the _data_ @@ -338,6 +351,6 @@ commits. (Do **NOT** commit all the minified versions for the non changed files) # Contribute Liked this Library? You can **support** me by sending me a :coffee: -[Coffee](https://paypal.me/lukasbachschwell/3). +[Coffee](https://paypal.me/lukasbachschwell/5). Otherwise I really welcome **Pull Requests**. diff --git a/docs/ui_tabs.png b/docs/ui_tabs.png index b1ec089e835ac83ed8d859e514a498a42d5b5d70..e034e2e4fe4eceaef4ff1370016d5d93f6305ce1 100644 GIT binary patch delta 16717 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 LL81U+;PZb0SeeX_ delta 16307 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