🪄 Formats StatefulService
This commit is contained in:
@@ -14,54 +14,45 @@
|
|||||||
|
|
||||||
#include <SettingValue.h>
|
#include <SettingValue.h>
|
||||||
|
|
||||||
namespace SettingValue
|
namespace SettingValue {
|
||||||
{
|
const String PLATFORM = "esp32";
|
||||||
const String PLATFORM = "esp32";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a new string after replacing each instance of the pattern with a value generated by calling the provided
|
* Returns a new string after replacing each instance of the pattern with a value generated by calling the provided
|
||||||
* callback.
|
* callback.
|
||||||
*/
|
*/
|
||||||
String replaceEach(String value, String pattern, String (*generateReplacement)())
|
String replaceEach(String value, String pattern, String (*generateReplacement)()) {
|
||||||
{
|
while (true) {
|
||||||
while (true)
|
int index = value.indexOf(pattern);
|
||||||
{
|
if (index == -1) {
|
||||||
int index = value.indexOf(pattern);
|
break;
|
||||||
if (index == -1)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
value = value.substring(0, index) + generateReplacement() + value.substring(index + pattern.length());
|
|
||||||
}
|
}
|
||||||
return value;
|
value = value.substring(0, index) + generateReplacement() + value.substring(index + pattern.length());
|
||||||
}
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates a random number, encoded as a hex string.
|
* Generates a random number, encoded as a hex string.
|
||||||
*/
|
*/
|
||||||
String getRandom()
|
String getRandom() { return String(random(2147483647), HEX); }
|
||||||
{
|
|
||||||
return String(random(2147483647), HEX);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Uses the station's MAC address to create a unique id for each device.
|
* Uses the station's MAC address to create a unique id for each device.
|
||||||
*/
|
*/
|
||||||
String getUniqueId()
|
String getUniqueId() {
|
||||||
{
|
uint8_t mac[6];
|
||||||
uint8_t mac[6];
|
esp_read_mac(mac, ESP_MAC_WIFI_STA);
|
||||||
esp_read_mac(mac, ESP_MAC_WIFI_STA);
|
char macStr[13] = {0};
|
||||||
char macStr[13] = {0};
|
sprintf(macStr, "%02x%02x%02x%02x%02x%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
|
||||||
sprintf(macStr, "%02x%02x%02x%02x%02x%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
|
return String(macStr);
|
||||||
return String(macStr);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
String format(String value)
|
String format(String value) {
|
||||||
{
|
value = replaceEach(value, "#{random}", getRandom);
|
||||||
value = replaceEach(value, "#{random}", getRandom);
|
value.replace("#{unique_id}", getUniqueId());
|
||||||
value.replace("#{unique_id}", getUniqueId());
|
value.replace("#{platform}", PLATFORM);
|
||||||
value.replace("#{platform}", PLATFORM);
|
return value;
|
||||||
return value;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}; // end namespace SettingValue
|
}; // end namespace SettingValue
|
||||||
|
|||||||
@@ -17,9 +17,8 @@
|
|||||||
|
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
|
|
||||||
namespace SettingValue
|
namespace SettingValue {
|
||||||
{
|
String format(String value);
|
||||||
String format(String value);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // end SettingValue
|
#endif // end SettingValue
|
||||||
|
|||||||
Reference in New Issue
Block a user