Usermod Settings polishing/documentation (#2061)
* Testing new wrapper functions to read Usermod config * Usermod Settings polishing - remove getBoolFromJsonKey() (no longer needed), fix getValueFromJsonKey(element, destination, defaultvalue) - Update Usermod Settings html "number" field to use step="any", and make wider to make maximum values fully visible - step="any" allows viewing/submitting full 7/8-digit float values, and the arrow buttons step by 1 now, instead of .00001 (which wasn't good for integers or floats) - html wasn't generated/compressed yet * Update usermod_v2_example.h with more complete example and documentation for Usermod Settings - readFromConfig() has three options for how to load values from the config JSON, we need to pick one * Update/rename usermode_rotary_brightness_color, to be used as an example of more robust parsing Usermod Settings values * Update Usermod example, rename getValueFromJsonKey() to getJsonValue() - chose single readFromConfig() pattern - demonstrating 3-argument getJsonValue() - remove leftover printf in getJsonValue() Co-authored-by: Louis Beaudoin <louis@embedded-creations.com>
This commit is contained in:
@@ -32,6 +32,27 @@ bool deserializeConfigSec();
|
||||
void serializeConfig();
|
||||
void serializeConfigSec();
|
||||
|
||||
template<typename DestType>
|
||||
bool getJsonValue(const JsonVariant& element, DestType& destination) {
|
||||
if (element.isNull()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
destination = element.as<DestType>();
|
||||
return true;
|
||||
}
|
||||
|
||||
template<typename DestType, typename DefaultType>
|
||||
bool getJsonValue(const JsonVariant& element, DestType& destination, const DefaultType defaultValue) {
|
||||
if(!getJsonValue(element, destination)) {
|
||||
destination = defaultValue;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//colors.cpp
|
||||
void colorFromUint32(uint32_t in, bool secondary = false);
|
||||
void colorFromUint24(uint32_t in, bool secondary = false);
|
||||
@@ -190,7 +211,7 @@ class Usermod {
|
||||
virtual void addToJsonInfo(JsonObject& obj) {}
|
||||
virtual void readFromJsonState(JsonObject& obj) {}
|
||||
virtual void addToConfig(JsonObject& obj) {}
|
||||
virtual bool readFromConfig(JsonObject& obj) { return true; } //Heads up! readFromConfig() now needs to return a bool
|
||||
virtual bool readFromConfig(JsonObject& obj) { return true; } // Note as of 2021-06 readFromConfig() now needs to return a bool, see usermod_v2_example.h
|
||||
virtual void onMqttConnect(bool sessionPresent) {}
|
||||
virtual bool onMqttMessage(char* topic, char* payload) { return false; }
|
||||
virtual uint16_t getId() {return USERMOD_ID_UNSPECIFIED;}
|
||||
|
||||
Reference in New Issue
Block a user