diff --git a/lib/patrix/console.cpp b/lib/patrix/console.cpp index a25f5d8..6b0c94e 100644 --- a/lib/patrix/console.cpp +++ b/lib/patrix/console.cpp @@ -248,3 +248,28 @@ const char *getFlashChipMode() { return "[???]"; } } + +bool setDouble(const char *name, double *destinationPtr, double min, double max) { + const char *valueStr = strtok(nullptr, ""); + if (valueStr == nullptr) { + consolePrintUsage(); + return false; + } + double value = strtod(valueStr, nullptr); + if (isnan(value)) { + error("Failed to parse double for \"%s\": %s", name, valueStr); + return false; + } + if ((!isnan(min) && value < min) || (!isnan(max) && value > max)) { + error("Value out of range for \"%s\" [%f..%f]: %f", name, min, max, value); + return false; + } + if (*destinationPtr != value) { + *destinationPtr = value; + info("Value for \"%s\" set to: %f", name, value); + configPutDouble(name, value); + } else { + info("Value for \"%s\" unchanged: %f", name, value); + } + return true; +} diff --git a/lib/patrix/console.h b/lib/patrix/console.h index d412363..c9abd53 100644 --- a/lib/patrix/console.h +++ b/lib/patrix/console.h @@ -11,4 +11,6 @@ bool patrix_command(char *cmd); void consolePrintUsage(); +bool setDouble(const char *name, double *destinationPtr, double min, double max); + #endif diff --git a/src/Fermenter/Fermenter.cpp b/src/Fermenter/Fermenter.cpp index b0b8e8f..f4b15f6 100644 --- a/src/Fermenter/Fermenter.cpp +++ b/src/Fermenter/Fermenter.cpp @@ -136,31 +136,6 @@ void writeDecimal(int *digit, double value) { lc.setDigit(0, (*digit)++, integer / 10 % 10, false); } -bool setDouble(const char *name, double *destinationPtr, double min, double max) { - const char *valueStr = strtok(nullptr, ""); - if (valueStr == nullptr) { - consolePrintUsage(); - return false; - } - double value = strtod(valueStr, nullptr); - if (isnan(value)) { - error("Failed to parse double for \"%s\": %s", name, valueStr); - return false; - } - if ((!isnan(min) && value < min) || (!isnan(max) && value > max)) { - error("Value out of range for \"%s\" [%f..%f]: %f", name, min, max, value); - return false; - } - if (*destinationPtr != value) { - *destinationPtr = value; - info("Value for \"%s\" set to: %f", name, value); - configPutDouble(name, value); - } else { - info("Value for \"%s\" unchanged: %f", name, value); - } - return true; -} - bool patrix_command(char *first) { bool result = false; if (strcmp(first, "over") == 0 || strcmp(first, "o") == 0) {