173 lines
4.8 KiB
C++
173 lines
4.8 KiB
C++
|
#include <Arduino.h>
|
||
|
#include <ESPUI.h>
|
||
|
|
||
|
uint16_t button1;
|
||
|
uint16_t switchOne;
|
||
|
uint16_t status;
|
||
|
|
||
|
void initWebUI();
|
||
|
|
||
|
void numberCall( Control* sender, int type ) {
|
||
|
Serial.println( sender->value );
|
||
|
}
|
||
|
|
||
|
void textCall( Control* sender, int type ) {
|
||
|
Serial.print("Text: ID: ");
|
||
|
Serial.print(sender->id);
|
||
|
Serial.print(", Value: ");
|
||
|
Serial.println( sender->value );}
|
||
|
|
||
|
void slider( Control* sender, int type ) {
|
||
|
Serial.print("Slider: ID: ");
|
||
|
Serial.print(sender->id);
|
||
|
Serial.print(", Value: ");
|
||
|
Serial.println( sender->value );}
|
||
|
|
||
|
void buttonCallback( Control* sender, int type ) {
|
||
|
switch ( type ) {
|
||
|
case B_DOWN:
|
||
|
Serial.println( "Button DOWN" );
|
||
|
break;
|
||
|
|
||
|
case B_UP:
|
||
|
Serial.println( "Button UP" );
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void buttonExample( Control* sender, int type ) {
|
||
|
switch ( type ) {
|
||
|
case B_DOWN:
|
||
|
Serial.println( "Status: Start" );
|
||
|
ESPUI.updateControlValue( status, "Start" );
|
||
|
|
||
|
ESPUI.getControl( button1 )->color = ControlColor::Carrot;
|
||
|
ESPUI.updateControl( button1 );
|
||
|
break;
|
||
|
|
||
|
case B_UP:
|
||
|
Serial.println( "Status: Stop" );
|
||
|
ESPUI.updateControlValue( status, "Stop" );
|
||
|
|
||
|
ESPUI.getControl( button1 )->color = ControlColor::Peterriver;
|
||
|
ESPUI.updateControl( button1 );
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void padExample( Control* sender, int value ) {
|
||
|
switch ( value ) {
|
||
|
case P_LEFT_DOWN:
|
||
|
Serial.print( "left down" );
|
||
|
break;
|
||
|
|
||
|
case P_LEFT_UP:
|
||
|
Serial.print( "left up" );
|
||
|
break;
|
||
|
|
||
|
case P_RIGHT_DOWN:
|
||
|
Serial.print( "right down" );
|
||
|
break;
|
||
|
|
||
|
case P_RIGHT_UP:
|
||
|
Serial.print( "right up" );
|
||
|
break;
|
||
|
|
||
|
case P_FOR_DOWN:
|
||
|
Serial.print( "for down" );
|
||
|
break;
|
||
|
|
||
|
case P_FOR_UP:
|
||
|
Serial.print( "for up" );
|
||
|
break;
|
||
|
|
||
|
case P_BACK_DOWN:
|
||
|
Serial.print( "back down" );
|
||
|
break;
|
||
|
|
||
|
case P_BACK_UP:
|
||
|
Serial.print( "back up" );
|
||
|
break;
|
||
|
|
||
|
case P_CENTER_DOWN:
|
||
|
Serial.print( "center down" );
|
||
|
break;
|
||
|
|
||
|
case P_CENTER_UP:
|
||
|
Serial.print( "center up" );
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
Serial.print( " " );
|
||
|
Serial.println( sender->id );
|
||
|
}
|
||
|
|
||
|
void switchExample( Control* sender, int value ) {
|
||
|
switch ( value ) {
|
||
|
case S_ACTIVE:
|
||
|
Serial.print( "Active:" );
|
||
|
break;
|
||
|
|
||
|
case S_INACTIVE:
|
||
|
Serial.print( "Inactive" );
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
Serial.print( " " );
|
||
|
Serial.println( sender->id );
|
||
|
}
|
||
|
|
||
|
void selectExample( Control* sender, int value ) {
|
||
|
Serial.print("Select: ID: ");
|
||
|
Serial.print(sender->id);
|
||
|
Serial.print(", Value: ");
|
||
|
Serial.println( sender->value );
|
||
|
}
|
||
|
|
||
|
void otherSwitchExample( Control* sender, int value ) {
|
||
|
switch ( value ) {
|
||
|
case S_ACTIVE:
|
||
|
Serial.print( "Active:" );
|
||
|
break;
|
||
|
|
||
|
case S_INACTIVE:
|
||
|
Serial.print( "Inactive" );
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
Serial.print( " " );
|
||
|
Serial.println( sender->id );
|
||
|
}
|
||
|
|
||
|
void initWebUI (void){
|
||
|
|
||
|
uint16_t tab1 = ESPUI.addControl( ControlType::Tab, "Settings 1", "Settings 1" );
|
||
|
uint16_t tab2 = ESPUI.addControl( ControlType::Tab, "Settings 2", "Settings 2" );
|
||
|
uint16_t tab3 = ESPUI.addControl( ControlType::Tab, "Settings 3", "Settings 3" );
|
||
|
|
||
|
// shown above all tabs
|
||
|
status = ESPUI.addControl( ControlType::Label, "Status:", "Stop", ControlColor::Turquoise );
|
||
|
|
||
|
uint16_t select1 = ESPUI.addControl( ControlType::Select, "Select:", "", ControlColor::Alizarin, tab1, &selectExample );
|
||
|
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 );
|
||
|
|
||
|
ESPUI.addControl( ControlType::Text, "Text Test:", "a Text Field", ControlColor::Alizarin, tab1, &textCall );
|
||
|
|
||
|
// tabbed controls
|
||
|
ESPUI.addControl( ControlType::Label, "Millis:", "0", ControlColor::Emerald, tab1 );
|
||
|
button1 = ESPUI.addControl( ControlType::Button, "Push Button", "Press", ControlColor::Peterriver, tab1, &buttonCallback );
|
||
|
ESPUI.addControl( ControlType::Button, "Other Button", "Press", ControlColor::Wetasphalt, tab1, &buttonExample );
|
||
|
ESPUI.addControl( ControlType::PadWithCenter, "Pad with center", "", ControlColor::Sunflower, tab2, &padExample );
|
||
|
ESPUI.addControl( ControlType::Pad, "Pad without center", "", ControlColor::Carrot, tab3, &padExample );
|
||
|
switchOne = ESPUI.addControl( ControlType::Switcher, "Switch one", "", ControlColor::Alizarin, tab3, &switchExample );
|
||
|
ESPUI.addControl( ControlType::Switcher, "Switch two", "", ControlColor::None, tab3, &otherSwitchExample );
|
||
|
ESPUI.addControl( ControlType::Slider, "Slider one", "30", ControlColor::Alizarin, tab1, &slider );
|
||
|
ESPUI.addControl( ControlType::Slider, "Slider two", "100", ControlColor::Alizarin, tab3, &slider );
|
||
|
ESPUI.addControl( ControlType::Number, "Number:", "50", ControlColor::Alizarin, tab3, &numberCall );
|
||
|
|
||
|
ESPUI.begin("ESPUI Control");
|
||
|
}
|
||
|
|