EmbAJAX
Simplistic framework for creating and handling displays and controls on a web page served by an embeddable device (Arduino or other microcontroller with Arduino support).
|
A momentary "press-and-hold" button. More...
#include <EmbAJAX.h>
Public Types | |
enum | Status { Pressed , MaybePressed , Released } |
![]() | |
enum | Property { Visibility , Enabledness , Value , FirstElementSpecificProperty , HTMLAllowed } |
Public Member Functions | |
EmbAJAXMomentaryButton (const char *id, const char *label, uint16_t timeout=600, void(*callback)(EmbAJAXPushButton *)=0) | |
void | print () const override |
Status | status () const |
void | updateFromDriverArg (const char *argname) override |
![]() | |
EmbAJAXPushButton (const char *id, const char *label, void(*callback)(EmbAJAXPushButton *)) | |
void | setText (const char *label, bool allowHTML=false) |
const char * | value (uint8_t which=EmbAJAXBase::Value) const override |
const char * | valueProperty (uint8_t which=EmbAJAXBase::Value) const override |
bool | valueNeedsEscaping (uint8_t which=EmbAJAXBase::Value) const override |
![]() | |
EmbAJAXElement (const char *id) | |
const char * | id () const |
bool | sendUpdates (uint16_t since, bool first) override |
EmbAJAXElement * | toElement () override final |
![]() | |
void | setVisible (bool visible) |
void | setEnabled (bool enabled) |
virtual EmbAJAXElement * | findChild (const char *id) const |
Additional Inherited Members | |
![]() | |
static void | setDriver (EmbAJAXOutputDriverBase *driver) |
![]() | |
void | setBasicProperty (uint8_t num, bool status) override |
bool | basicProperty (uint8_t num) const |
void | setChanged () |
bool | changed (uint16_t since) |
void | printTextInput (size_t size, const char *value) const |
![]() | |
void | printChildren (EmbAJAXBase **children, size_t num) const |
bool | sendUpdates (EmbAJAXBase **children, size_t num, uint16_t since, bool first) |
EmbAJAXElement * | findChild (EmbAJAXBase **children, size_t num, const char *id) const |
void | printPage (EmbAJAXBase **children, size_t num, const char *_title, const char *_header, uint16_t _min_interval) const |
void | handleRequest (EmbAJAXBase **children, size_t num, void(*change_callback)()) |
![]() | |
void(* | _callback )(EmbAJAXPushButton *) |
const char * | _label |
![]() | |
byte | _flags |
const char * | _id |
![]() | |
static EmbAJAXOutputDriverBase * | _driver |
static char | itoa_buf [8] |
constexpr static const char | null_string [1] |
A momentary "press-and-hold" button.
This button will be return status()==Pressed while the button is actively held pressed in a client. While the button is pressed, the client will send continuous "pings" to the server. If a button press has been registered, but the latest ping has timed out, the status() will return MayBePressed, instead, so your code can take select an appropriate fallback behavior in case of unreliable connections (e.g. stopping an RC car).
EmbAJAXMomentaryButton::EmbAJAXMomentaryButton | ( | const char * | id, |
const char * | label, | ||
uint16_t | timeout = 600 , |
||
void(*)(EmbAJAXPushButton *) | callback = 0 |
||
) |
text |
ping_interval | While the button is pressed, the client will send "ping" messages every timeout/1.5 milliseconds. If no ping has been received within timeout, status() will return MaybePressed. |
callback | Called when the button was clicked or relased in the UI (with a pointer to the button as parameter) Not called, when a ping has timed out. |
|
overridevirtual |
override this in your derived class to allow updates to be propagated from client to server (if wanted). The implementation need not call setChanged().
Reimplemented from EmbAJAXPushButton.