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
|
Change a setting in NVM
|
||||||
*/
|
*/
|
||||||
@ -173,6 +207,12 @@ bool loadConfig() {
|
|||||||
Start the async web server
|
Start the async web server
|
||||||
*/
|
*/
|
||||||
void startHTTPD() {
|
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) {
|
server.on("/api/reboot", HTTP_POST, [](AsyncWebServerRequest * request) {
|
||||||
request->redirect("/");
|
request->redirect("/");
|
||||||
server.end();
|
server.end();
|
||||||
@ -236,7 +276,6 @@ void setup() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Serial.println("Disabling Bluetooth.");
|
Serial.println("Disabling Bluetooth.");
|
||||||
btStop();
|
btStop();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user