introduce config get json API
This commit is contained in:
parent
e1fd1a3aec
commit
e93bda9774
43
wiflash_esp32/data/template/configuration.json
Normal file
43
wiflash_esp32/data/template/configuration.json
Normal file
@ -0,0 +1,43 @@
|
||||
{
|
||||
"wifi" : {
|
||||
"mode" : "%WIFI_MODE%",
|
||||
"ssid" : "%WIFI_SSID%",
|
||||
"password" : "%WIFI_PASSWORD%"
|
||||
},
|
||||
"network" : {
|
||||
"hostname" : "%HOSTNAME%",
|
||||
"dhcp" : "%DHCP_ENABLE%",
|
||||
"ipv4" : "%IPV4_ADDRESS%",
|
||||
"mask" : "%SUBNET_MASK%",
|
||||
"gateway" : "%GATEWAY_IP%"
|
||||
},
|
||||
"button" : {
|
||||
"enable": "%BUTTON_ENABLE%",
|
||||
"pin" : "%BUTTON_PIN%",
|
||||
"osc" : {
|
||||
"host": "%OSC_HOST%",
|
||||
"port": "%OSC_PORT%",
|
||||
"pressed": {
|
||||
"address": "%OSC_PRESSED_ADDR%",
|
||||
"value": "%OSC_PRESSED_VALUE%"
|
||||
},
|
||||
"released": {
|
||||
"address": "%OSC_RELEASED_ADDR%",
|
||||
"value": "%OSC_RELEASED_VALUE%"
|
||||
}
|
||||
}
|
||||
},
|
||||
"strobe" : {
|
||||
"enable" : "%STROBE_ENABLE%",
|
||||
"pin" : "%STROBE_PIN%",
|
||||
"universe" : "%STROBE_UNIVERSE%",
|
||||
"address" : "%STROBE_ADDRESS%"
|
||||
},
|
||||
"strip" : {
|
||||
"enable" : "%STRIP_ENABLE%",
|
||||
"pin" : "%STRIP_PIN%",
|
||||
"count" : "%STRIP_LED_COUNT%",
|
||||
"universe" : "%STRIP_UNIVERSE%",
|
||||
"address" : "%STRIP_ADDRESS%"
|
||||
}
|
||||
}
|
@ -112,6 +112,40 @@ void recvPixelData(Universe *universe) {
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Template variables
|
||||
*/
|
||||
String templateProcessor(const String& var) {
|
||||
// configuration values
|
||||
if (var == "WIFI_MODE") return String(config.mode);
|
||||
if (var == "WIFI_SSID") return config.ssid;
|
||||
if (var == "WIFI_PASSWORD") return config.pwd;
|
||||
if (var == "HOSTNAME") return config.hostname;
|
||||
if (var == "DHCP_ENABLE") return String(config.dhcp);
|
||||
if (var == "IPV4_ADDRESS") return config.ip;
|
||||
if (var == "SUBNET_MASK") return config.subnet;
|
||||
if (var == "GATEWAY_IP") return config.gateway;
|
||||
if (var == "BUTTON_ENABLE") return String(config.button_enable);
|
||||
if (var == "BUTTON_PIN") return String(config.button_pin);
|
||||
if (var == "OSC_HOST") return config.osc_host;
|
||||
if (var == "OSC_PORT") return String(config.osc_port);
|
||||
if (var == "OSC_PRESSED_ADDR") return config.osc_pressed_addr;
|
||||
if (var == "OSC_PRESSED_VALUE") return config.osc_pressed_value;
|
||||
if (var == "OSC_RELEASED_ADDR") return config.osc_released_addr;
|
||||
if (var == "OSC_RELEASED_VALUE") return config.osc_released_value;
|
||||
if (var == "STROBE_ENABLE") return String(config.strobe_enable);
|
||||
if (var == "STROBE_PIN") return String(config.strobe_led_pin);
|
||||
if (var == "STROBE_UNIVERSE") return String(config.strobe_universe);
|
||||
if (var == "STROBE_ADDRESS") return String(config.strobe_address);
|
||||
if (var == "STRIP_ENABLE") return String(config.strip_enable);
|
||||
if (var == "STRIP_PIN") return String(config.strip_data_pin);
|
||||
if (var == "STRIP_LED_COUNT") return String(config.strip_led_count);
|
||||
if (var == "STRIP_UNIVERSE") return String(config.strip_universe);
|
||||
if (var == "STRIP_ADDRESS") return String(config.strip_address);
|
||||
|
||||
return String();
|
||||
}
|
||||
|
||||
/*
|
||||
Change a setting in NVM
|
||||
*/
|
||||
@ -173,6 +207,12 @@ bool loadConfig() {
|
||||
Start the async web server
|
||||
*/
|
||||
void startHTTPD() {
|
||||
server.on("/api/config", HTTP_GET, [](AsyncWebServerRequest * request) {
|
||||
AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/template/configuration.json", "application/json", false, templateProcessor);
|
||||
response->addHeader("Access-Control-Allow-Origin", "*");
|
||||
request->send(response);
|
||||
});
|
||||
|
||||
server.on("/api/reboot", HTTP_POST, [](AsyncWebServerRequest * request) {
|
||||
request->redirect("/");
|
||||
server.end();
|
||||
@ -236,7 +276,6 @@ void setup() {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Serial.println("Disabling Bluetooth.");
|
||||
btStop();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user