Skip to content

Commit

Permalink
Use setExternals for common updates to exteral vars - this is temporary
Browse files Browse the repository at this point in the history
  • Loading branch information
steadramon committed Sep 1, 2024
1 parent 30893d5 commit 98704c6
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 31 deletions.
73 changes: 42 additions & 31 deletions ESPGeiger/src/ConfigManager/ConfigManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ static WiFiManagerParameter ESPGeigerParams[] =
// The broker parameters
WiFiManagerParameter("<h1>ESPGeiger Config</h1>"),
WiFiManagerParameter("geigerModel", "Model", GEIGER_MODEL, 32),
WiFiManagerParameter("geigerRatio", "Ratio for calculating uSv", "151.0", 8),
WiFiManagerParameter("geigerRatio", "Ratio for calculating uSv", "151.0", 8, "required"),
WiFiManagerParameter("geigerWarn", "Warning CPM", "50", 4, "pattern='\\d{1,4}'"),
WiFiManagerParameter("geigerAlert", "Alert CPM", "100", 4, "pattern='\\d{1,4}'"),
#ifndef RXPIN_BLOCKED
Expand Down Expand Up @@ -262,21 +262,6 @@ void ConfigManager::startWebPortal()

ConfigManager::loadParams();

const char* ratioChar = ConfigManager::getParamValueFromID("geigerRatio");
float ratio = atof(ratioChar);
gcounter.set_ratio(ratio);
int cfgint = atoi(ConfigManager::getParamValueFromID("geigerWarn"));
gcounter.set_warning(cfgint);
cfgint = atoi(ConfigManager::getParamValueFromID("geigerAlert"));
gcounter.set_alert(cfgint);
#if defined(SSD1306_DISPLAY) && defined(GEIGER_PUSHBUTTON)
cfgint = atoi(ConfigManager::getParamValueFromID("dispTimeout"));
display.setTimeout(cfgint);
#endif
#ifdef GEIGER_NEOPIXEL
cfgint = atoi(ConfigManager::getParamValueFromID("neopixelBrightness"));
neopixel.setBrightness(cfgint);
#endif
#ifndef RXPIN_BLOCKED
cfgint = atoi(ConfigManager::getParamValueFromID("geigerRX"));
gcounter.set_rx_pin(cfgint);
Expand All @@ -287,12 +272,52 @@ void ConfigManager::startWebPortal()
gcounter.set_tx_pin(cfgint);
#endif
#endif
ConfigManager::setExternals();

WiFiManager::setWebServerCallback(std::bind(&ConfigManager::bindServerCallback, this));
WiFiManager::setSaveParamsCallback(std::bind(&ConfigManager::saveParams, this));
WiFiManager::startWebPortal();
}

void ConfigManager::setExternals() {
const char* cfgvar;
cfgvar = ConfigManager::getParamValueFromID("geigerRatio");
if (cfgvar == NULL) {
cfgvar = "151.0";
}
float ratio = atof(cfgvar);
gcounter.set_ratio(ratio);

cfgvar = ConfigManager::getParamValueFromID("geigerWarn");
if (cfgvar == NULL) {
cfgvar = "50";
}
int cfgint = atoi(cfgvar);
gcounter.set_warning(cfgint);

cfgvar = ConfigManager::getParamValueFromID("geigerWarn");
if (cfgvar == NULL) {
cfgvar = "100";
}
cfgint = atoi(cfgvar);
gcounter.set_alert(cfgint);

#if defined(SSD1306_DISPLAY) && defined(GEIGER_PUSHBUTTON)
cfgvar = ConfigManager::getParamValueFromID("dispTimeout");
if (cfgvar == NULL) {
cfgvar = "120";
}
display.setTimeout(atoi(cfgvar));
#endif
#ifdef GEIGER_NEOPIXEL
cfgvar = ConfigManager::getParamValueFromID("neopixelBrightness");
if (cfgvar == NULL) {
cfgvar = "15";
}
neopixel.setBrightness(atoi(cfgvar));
#endif
}

void ConfigManager::handleRoot() {
handleRequest();
server->client().flush();
Expand Down Expand Up @@ -896,21 +921,7 @@ void ConfigManager::saveParams()
mqtt.disconnect();
mqtt.begin();
#endif
const char* ratioChar = ConfigManager::getParamValueFromID("geigerRatio");
float ratio = atof(ratioChar);
gcounter.set_ratio(ratio);
int cfgint = atoi(ConfigManager::getParamValueFromID("geigerWarn"));
gcounter.set_warning(cfgint);
cfgint = atoi(ConfigManager::getParamValueFromID("geigerAlert"));
gcounter.set_alert(cfgint);
#if defined(SSD1306_DISPLAY) && defined(GEIGER_PUSHBUTTON)
cfgint = atoi(ConfigManager::getParamValueFromID("dispTimeout"));
display.setTimeout(cfgint);
#endif
#ifdef GEIGER_NEOPIXEL
cfgint = atoi(ConfigManager::getParamValueFromID("neopixelBrightness"));
neopixel.setBrightness(cfgint);
#endif
ConfigManager::setExternals();
}

const char* ConfigManager::getParamValueFromID(const char* str)
Expand Down
1 change: 1 addition & 0 deletions ESPGeiger/src/ConfigManager/ConfigManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ class ConfigManager : public WiFiManager
const char* getParamValueFromID_P(const __FlashStringHelper* param_p);
int getIndexFromID(const char* str);
void loadParams();
void setExternals();
void preSaveParams();
void saveParams();
void delay(unsigned long m);
Expand Down

0 comments on commit 98704c6

Please sign in to comment.