introduce config get json API

This commit is contained in:
Kevin Matz 2020-12-16 16:44:42 -05:00
parent e1fd1a3aec
commit e93bda9774
2 changed files with 83 additions and 1 deletions

View 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%"
}
}

View File

@ -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();