Merge branch 'Aircoookie:main' into pr_fxsegs
This commit is contained in:
commit
5c721ee435
@ -399,10 +399,10 @@ build_unflags = ${common.build_unflags}
|
|||||||
lib_deps = ${esp32c3.lib_deps}
|
lib_deps = ${esp32c3.lib_deps}
|
||||||
|
|
||||||
[env:esp32s3dev_8MB]
|
[env:esp32s3dev_8MB]
|
||||||
;; ESP32-S3-DevKitC-1 development board, with 8MB FLASH, no PSRAM
|
;; ESP32-S3-DevKitC-1 development board, with 8MB FLASH, no PSRAM (flash_mode: qio)
|
||||||
board = esp32-s3-devkitc-1
|
board = esp32-s3-devkitc-1
|
||||||
platform = espressif32@5.1.1
|
platform = espressif32@5.1.1
|
||||||
platform_packages = platformio/framework-arduinoespressif32@3.20004.220825
|
platform_packages =
|
||||||
upload_speed = 921600
|
upload_speed = 921600
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
build_flags = ${common.build_flags} ${esp32s3.build_flags} -D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0 -D ARDUINO_USB_MODE=1 -D ARDUINO_USB_CDC_ON_BOOT=0 -D ARDUINO_USB_MSC_ON_BOOT=0
|
build_flags = ${common.build_flags} ${esp32s3.build_flags} -D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0 -D ARDUINO_USB_MODE=1 -D ARDUINO_USB_CDC_ON_BOOT=0 -D ARDUINO_USB_MSC_ON_BOOT=0
|
||||||
@ -412,6 +412,26 @@ board_build.f_flash = 80000000L
|
|||||||
board_build.flash_mode = qio
|
board_build.flash_mode = qio
|
||||||
monitor_filters = esp32_exception_decoder
|
monitor_filters = esp32_exception_decoder
|
||||||
|
|
||||||
|
[env:esp32s3dev_8MB_PSRAM]
|
||||||
|
;; ESP32-TinyS3 development board, with 8MB FLASH and 8MB PSRAM (memory_type: qio_opi, qio_qspi, or opi_opi)
|
||||||
|
;board = um_tinys3 ; -> needs workaround from https://github.com/Aircoookie/WLED/pull/2905#issuecomment-1328049860
|
||||||
|
;board = esp32s3box ; -> error: 'esp32_adc2gpio' was not declared in this scope
|
||||||
|
board = esp32-s3-devkitc-1 ; -> compiles, but does not support PSRAM
|
||||||
|
platform = espressif32 @ ~5.2.0
|
||||||
|
platform_packages =
|
||||||
|
upload_speed = 921600
|
||||||
|
build_unflags = ${common.build_unflags}
|
||||||
|
build_flags = ${common.build_flags} ${esp32s3.build_flags}
|
||||||
|
-D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0 -D ARDUINO_USB_MODE=1 -D ARDUINO_USB_MSC_ON_BOOT=0
|
||||||
|
; -D ARDUINO_USB_CDC_ON_BOOT=0
|
||||||
|
; -D WLED_RELEASE_NAME=ESP32-S3_PSRAM
|
||||||
|
-D WLED_USE_PSRAM -DBOARD_HAS_PSRAM ; tells WLED that PSRAM shall be used
|
||||||
|
lib_deps = ${esp32s3.lib_deps}
|
||||||
|
board_build.partitions = tools/WLED_ESP32_8MB.csv
|
||||||
|
board_build.f_flash = 80000000L
|
||||||
|
board_build.flash_mode = qio
|
||||||
|
monitor_filters = esp32_exception_decoder
|
||||||
|
|
||||||
[env:esp8285_4CH_MagicHome]
|
[env:esp8285_4CH_MagicHome]
|
||||||
board = esp8285
|
board = esp8285
|
||||||
platform = ${common.platform_wled_default}
|
platform = ${common.platform_wled_default}
|
||||||
@ -515,9 +535,12 @@ build_flags = ${common.build_flags_esp32}
|
|||||||
-D USERMOD_DALLASTEMPERATURE
|
-D USERMOD_DALLASTEMPERATURE
|
||||||
-D USERMOD_FOUR_LINE_DISPLAY
|
-D USERMOD_FOUR_LINE_DISPLAY
|
||||||
-D TEMPERATURE_PIN=23
|
-D TEMPERATURE_PIN=23
|
||||||
|
-D USE_ALT_DISPlAY ; new versions of USERMOD_FOUR_LINE_DISPLAY and USERMOD_ROTARY_ENCODER_UI
|
||||||
|
-D USERMOD_AUDIOREACTIVE
|
||||||
lib_deps = ${esp32.lib_deps}
|
lib_deps = ${esp32.lib_deps}
|
||||||
OneWire@~2.3.5
|
OneWire@~2.3.5
|
||||||
olikraus/U8g2 @ ^2.28.8
|
olikraus/U8g2 @ ^2.28.8
|
||||||
|
https://github.com/blazoncek/arduinoFFT.git
|
||||||
board_build.partitions = ${esp32.default_partitions}
|
board_build.partitions = ${esp32.default_partitions}
|
||||||
|
|
||||||
[env:m5atom]
|
[env:m5atom]
|
||||||
|
@ -16,14 +16,15 @@ private:
|
|||||||
// NOTE: Do not implement any compile-time variables, anything the user needs to configure
|
// NOTE: Do not implement any compile-time variables, anything the user needs to configure
|
||||||
// should be configurable from the Usermod menu using the methods below
|
// should be configurable from the Usermod menu using the methods below
|
||||||
// key settings set via usermod menu
|
// key settings set via usermod menu
|
||||||
unsigned long TemperatureDecimals = 0; // Number of decimal places in published temperaure values
|
uint8_t TemperatureDecimals = 0; // Number of decimal places in published temperaure values
|
||||||
unsigned long HumidityDecimals = 0; // Number of decimal places in published humidity values
|
uint8_t HumidityDecimals = 0; // Number of decimal places in published humidity values
|
||||||
unsigned long PressureDecimals = 0; // Number of decimal places in published pressure values
|
uint8_t PressureDecimals = 0; // Number of decimal places in published pressure values
|
||||||
unsigned long TemperatureInterval = 5; // Interval to measure temperature (and humidity, dew point if available) in seconds
|
uint16_t TemperatureInterval = 5; // Interval to measure temperature (and humidity, dew point if available) in seconds
|
||||||
unsigned long PressureInterval = 300; // Interval to measure pressure in seconds
|
uint16_t PressureInterval = 300; // Interval to measure pressure in seconds
|
||||||
bool PublishAlways = false; // Publish values even when they have not changed
|
bool PublishAlways = false; // Publish values even when they have not changed
|
||||||
bool UseCelsius = true; // Use Celsius for Reporting
|
bool UseCelsius = true; // Use Celsius for Reporting
|
||||||
bool HomeAssistantDiscovery = false; // Publish Home Assistant Device Information
|
bool HomeAssistantDiscovery = false; // Publish Home Assistant Device Information
|
||||||
|
bool enabled = true;
|
||||||
|
|
||||||
// set the default pins based on the architecture, these get overridden by Usermod menu settings
|
// set the default pins based on the architecture, these get overridden by Usermod menu settings
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
@ -70,15 +71,10 @@ private:
|
|||||||
|
|
||||||
// MQTT topic strings for publishing Home Assistant discovery topics
|
// MQTT topic strings for publishing Home Assistant discovery topics
|
||||||
bool mqttInitialized = false;
|
bool mqttInitialized = false;
|
||||||
String mqttTemperatureTopic = "";
|
|
||||||
String mqttHumidityTopic = "";
|
|
||||||
String mqttPressureTopic = "";
|
|
||||||
String mqttHeatIndexTopic = "";
|
|
||||||
String mqttDewPointTopic = "";
|
|
||||||
|
|
||||||
// Store packet IDs of MQTT publications
|
// strings to reduce flash memory usage (used more than twice)
|
||||||
uint16_t mqttTemperaturePub = 0;
|
static const char _name[];
|
||||||
uint16_t mqttPressurePub = 0;
|
static const char _enabled[];
|
||||||
|
|
||||||
// Read the BME280/BMP280 Sensor (which one runs depends on whether Celsius or Farenheit being set in Usermod Menu)
|
// Read the BME280/BMP280 Sensor (which one runs depends on whether Celsius or Farenheit being set in Usermod Menu)
|
||||||
void UpdateBME280Data(int SensorType)
|
void UpdateBME280Data(int SensorType)
|
||||||
@ -95,7 +91,7 @@ private:
|
|||||||
sensorTemperature = _temperature;
|
sensorTemperature = _temperature;
|
||||||
sensorHumidity = _humidity;
|
sensorHumidity = _humidity;
|
||||||
sensorPressure = _pressure;
|
sensorPressure = _pressure;
|
||||||
tempScale = "°C";
|
tempScale = F("°C");
|
||||||
if (sensorType == 1)
|
if (sensorType == 1)
|
||||||
{
|
{
|
||||||
sensorHeatIndex = EnvironmentCalculations::HeatIndex(_temperature, _humidity, envTempUnit);
|
sensorHeatIndex = EnvironmentCalculations::HeatIndex(_temperature, _humidity, envTempUnit);
|
||||||
@ -111,7 +107,7 @@ private:
|
|||||||
sensorTemperature = _temperature;
|
sensorTemperature = _temperature;
|
||||||
sensorHumidity = _humidity;
|
sensorHumidity = _humidity;
|
||||||
sensorPressure = _pressure;
|
sensorPressure = _pressure;
|
||||||
tempScale = "°F";
|
tempScale = F("°F");
|
||||||
if (sensorType == 1)
|
if (sensorType == 1)
|
||||||
{
|
{
|
||||||
sensorHeatIndex = EnvironmentCalculations::HeatIndex(_temperature, _humidity, envTempUnit);
|
sensorHeatIndex = EnvironmentCalculations::HeatIndex(_temperature, _humidity, envTempUnit);
|
||||||
@ -123,18 +119,23 @@ private:
|
|||||||
// Procedure to define all MQTT discovery Topics
|
// Procedure to define all MQTT discovery Topics
|
||||||
void _mqttInitialize()
|
void _mqttInitialize()
|
||||||
{
|
{
|
||||||
mqttTemperatureTopic = String(mqttDeviceTopic) + F("/temperature");
|
char mqttTemperatureTopic[128];
|
||||||
mqttPressureTopic = String(mqttDeviceTopic) + F("/pressure");
|
char mqttHumidityTopic[128];
|
||||||
mqttHumidityTopic = String(mqttDeviceTopic) + F("/humidity");
|
char mqttPressureTopic[128];
|
||||||
mqttHeatIndexTopic = String(mqttDeviceTopic) + F("/heat_index");
|
char mqttHeatIndexTopic[128];
|
||||||
mqttDewPointTopic = String(mqttDeviceTopic) + F("/dew_point");
|
char mqttDewPointTopic[128];
|
||||||
|
snprintf_P(mqttTemperatureTopic, 127, PSTR("%s/temperature"), mqttDeviceTopic);
|
||||||
|
snprintf_P(mqttPressureTopic, 127, PSTR("%s/pressure"), mqttDeviceTopic);
|
||||||
|
snprintf_P(mqttHumidityTopic, 127, PSTR("%s/humidity"), mqttDeviceTopic);
|
||||||
|
snprintf_P(mqttHeatIndexTopic, 127, PSTR("%s/heat_index"), mqttDeviceTopic);
|
||||||
|
snprintf_P(mqttDewPointTopic, 127, PSTR("%s/dew_point"), mqttDeviceTopic);
|
||||||
|
|
||||||
if (HomeAssistantDiscovery) {
|
if (HomeAssistantDiscovery) {
|
||||||
_createMqttSensor(F("Temperature"), mqttTemperatureTopic, F("temperature"), tempScale);
|
_createMqttSensor(F("Temperature"), mqttTemperatureTopic, "temperature", tempScale);
|
||||||
_createMqttSensor(F("Pressure"), mqttPressureTopic, F("pressure"), F("hPa"));
|
_createMqttSensor(F("Pressure"), mqttPressureTopic, "pressure", F("hPa"));
|
||||||
_createMqttSensor(F("Humidity"), mqttHumidityTopic, F("humidity"), F("%"));
|
_createMqttSensor(F("Humidity"), mqttHumidityTopic, "humidity", F("%"));
|
||||||
_createMqttSensor(F("HeatIndex"), mqttHeatIndexTopic, F("temperature"), tempScale);
|
_createMqttSensor(F("HeatIndex"), mqttHeatIndexTopic, "temperature", tempScale);
|
||||||
_createMqttSensor(F("DewPoint"), mqttDewPointTopic, F("temperature"), tempScale);
|
_createMqttSensor(F("DewPoint"), mqttDewPointTopic, "temperature", tempScale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,6 +170,15 @@ private:
|
|||||||
mqtt->publish(t.c_str(), 0, true, temp.c_str());
|
mqtt->publish(t.c_str(), 0, true, temp.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void publishMqtt(const char *topic, const char* state) {
|
||||||
|
//Check if MQTT Connected, otherwise it will crash the 8266
|
||||||
|
if (WLED_MQTT_CONNECTED){
|
||||||
|
char subuf[128];
|
||||||
|
snprintf_P(subuf, 127, PSTR("%s/%s"), mqttDeviceTopic, topic);
|
||||||
|
mqtt->publish(subuf, 0, false, state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
@ -183,7 +193,7 @@ public:
|
|||||||
if (!bme.begin())
|
if (!bme.begin())
|
||||||
{
|
{
|
||||||
sensorType = 0;
|
sensorType = 0;
|
||||||
DEBUG_PRINTLN(F("Could not find BME280I2C sensor!"));
|
DEBUG_PRINTLN(F("Could not find BME280 I2C sensor!"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -207,14 +217,16 @@ public:
|
|||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
{
|
{
|
||||||
|
if (!enabled || strip.isUpdating()) return;
|
||||||
|
|
||||||
// BME280 sensor MQTT publishing
|
// BME280 sensor MQTT publishing
|
||||||
// Check if sensor present and MQTT Connected, otherwise it will crash the MCU
|
// Check if sensor present and Connected, otherwise it will crash the MCU
|
||||||
if (sensorType != 0 && WLED_MQTT_CONNECTED)
|
if (sensorType != 0)
|
||||||
{
|
{
|
||||||
// Timer to fetch new temperature, humidity and pressure data at intervals
|
// Timer to fetch new temperature, humidity and pressure data at intervals
|
||||||
timer = millis();
|
timer = millis();
|
||||||
|
|
||||||
if (timer - lastTemperatureMeasure >= TemperatureInterval * 1000 || mqttTemperaturePub == 0)
|
if (timer - lastTemperatureMeasure >= TemperatureInterval * 1000)
|
||||||
{
|
{
|
||||||
lastTemperatureMeasure = timer;
|
lastTemperatureMeasure = timer;
|
||||||
|
|
||||||
@ -223,18 +235,11 @@ public:
|
|||||||
float temperature = roundf(sensorTemperature * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals);
|
float temperature = roundf(sensorTemperature * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals);
|
||||||
float humidity, heatIndex, dewPoint;
|
float humidity, heatIndex, dewPoint;
|
||||||
|
|
||||||
if (WLED_MQTT_CONNECTED && !mqttInitialized)
|
|
||||||
{
|
|
||||||
_mqttInitialize();
|
|
||||||
mqttInitialized = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If temperature has changed since last measure, create string populated with device topic
|
// If temperature has changed since last measure, create string populated with device topic
|
||||||
// from the UI and values read from sensor, then publish to broker
|
// from the UI and values read from sensor, then publish to broker
|
||||||
if (temperature != lastTemperature || PublishAlways)
|
if (temperature != lastTemperature || PublishAlways)
|
||||||
{
|
{
|
||||||
String topic = String(mqttDeviceTopic) + "/temperature";
|
publishMqtt("temperature", String(temperature, TemperatureDecimals).c_str());
|
||||||
mqttTemperaturePub = mqtt->publish(topic.c_str(), 0, false, String(temperature, TemperatureDecimals).c_str());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lastTemperature = temperature; // Update last sensor temperature for next loop
|
lastTemperature = temperature; // Update last sensor temperature for next loop
|
||||||
@ -247,20 +252,17 @@ public:
|
|||||||
|
|
||||||
if (humidity != lastHumidity || PublishAlways)
|
if (humidity != lastHumidity || PublishAlways)
|
||||||
{
|
{
|
||||||
String topic = String(mqttDeviceTopic) + F("/humidity");
|
publishMqtt("humidity", String(humidity, HumidityDecimals).c_str());
|
||||||
mqtt->publish(topic.c_str(), 0, false, String(humidity, HumidityDecimals).c_str());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (heatIndex != lastHeatIndex || PublishAlways)
|
if (heatIndex != lastHeatIndex || PublishAlways)
|
||||||
{
|
{
|
||||||
String topic = String(mqttDeviceTopic) + F("/heat_index");
|
publishMqtt("heat_index", String(heatIndex, TemperatureDecimals).c_str());
|
||||||
mqtt->publish(topic.c_str(), 0, false, String(heatIndex, TemperatureDecimals).c_str());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dewPoint != lastDewPoint || PublishAlways)
|
if (dewPoint != lastDewPoint || PublishAlways)
|
||||||
{
|
{
|
||||||
String topic = String(mqttDeviceTopic) + F("/dew_point");
|
publishMqtt("dew_point", String(dewPoint, TemperatureDecimals).c_str());
|
||||||
mqtt->publish(topic.c_str(), 0, false, String(dewPoint, TemperatureDecimals).c_str());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lastHumidity = humidity;
|
lastHumidity = humidity;
|
||||||
@ -269,7 +271,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (timer - lastPressureMeasure >= PressureInterval * 1000 || mqttPressurePub == 0)
|
if (timer - lastPressureMeasure >= PressureInterval * 1000)
|
||||||
{
|
{
|
||||||
lastPressureMeasure = timer;
|
lastPressureMeasure = timer;
|
||||||
|
|
||||||
@ -277,8 +279,7 @@ public:
|
|||||||
|
|
||||||
if (pressure != lastPressure || PublishAlways)
|
if (pressure != lastPressure || PublishAlways)
|
||||||
{
|
{
|
||||||
String topic = String(mqttDeviceTopic) + F("/pressure");
|
publishMqtt("pressure", String(pressure, PressureDecimals).c_str());
|
||||||
mqttPressurePub = mqtt->publish(topic.c_str(), 0, true, String(pressure, PressureDecimals).c_str());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lastPressure = pressure;
|
lastPressure = pressure;
|
||||||
@ -286,6 +287,15 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void onMqttConnect(bool sessionPresent)
|
||||||
|
{
|
||||||
|
if (WLED_MQTT_CONNECTED && !mqttInitialized)
|
||||||
|
{
|
||||||
|
_mqttInitialize();
|
||||||
|
mqttInitialized = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* API calls te enable data exchange between WLED modules
|
* API calls te enable data exchange between WLED modules
|
||||||
*/
|
*/
|
||||||
@ -295,8 +305,8 @@ public:
|
|||||||
} else {
|
} else {
|
||||||
return (float)roundf(sensorTemperature * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals) * 1.8f + 32;
|
return (float)roundf(sensorTemperature * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals) * 1.8f + 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline float getTemperatureF() {
|
inline float getTemperatureF() {
|
||||||
if (UseCelsius) {
|
if (UseCelsius) {
|
||||||
return ((float)roundf(sensorTemperature * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals) -32) * 0.56f;
|
return ((float)roundf(sensorTemperature * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals) -32) * 0.56f;
|
||||||
@ -304,12 +314,15 @@ public:
|
|||||||
return (float)roundf(sensorTemperature * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals);
|
return (float)roundf(sensorTemperature * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline float getHumidity() {
|
inline float getHumidity() {
|
||||||
return (float)roundf(sensorHumidity * powf(10, HumidityDecimals));
|
return (float)roundf(sensorHumidity * powf(10, HumidityDecimals));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline float getPressure() {
|
inline float getPressure() {
|
||||||
return (float)roundf(sensorPressure * powf(10, PressureDecimals));
|
return (float)roundf(sensorPressure * powf(10, PressureDecimals));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline float getDewPointC() {
|
inline float getDewPointC() {
|
||||||
if (UseCelsius) {
|
if (UseCelsius) {
|
||||||
return (float)roundf(sensorDewPoint * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals);
|
return (float)roundf(sensorDewPoint * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals);
|
||||||
@ -317,6 +330,7 @@ public:
|
|||||||
return (float)roundf(sensorDewPoint * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals) * 1.8f + 32;
|
return (float)roundf(sensorDewPoint * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals) * 1.8f + 32;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline float getDewPointF() {
|
inline float getDewPointF() {
|
||||||
if (UseCelsius) {
|
if (UseCelsius) {
|
||||||
return ((float)roundf(sensorDewPoint * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals) -32) * 0.56f;
|
return ((float)roundf(sensorDewPoint * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals) -32) * 0.56f;
|
||||||
@ -324,13 +338,16 @@ public:
|
|||||||
return (float)roundf(sensorDewPoint * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals);
|
return (float)roundf(sensorDewPoint * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline float getHeatIndexC() {
|
inline float getHeatIndexC() {
|
||||||
if (UseCelsius) {
|
if (UseCelsius) {
|
||||||
return (float)roundf(sensorHeatIndex * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals);
|
return (float)roundf(sensorHeatIndex * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals);
|
||||||
} else {
|
} else {
|
||||||
return (float)roundf(sensorHeatIndex * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals) * 1.8f + 32;
|
return (float)roundf(sensorHeatIndex * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals) * 1.8f + 32;
|
||||||
}
|
}
|
||||||
}inline float getHeatIndexF() {
|
}
|
||||||
|
|
||||||
|
inline float getHeatIndexF() {
|
||||||
if (UseCelsius) {
|
if (UseCelsius) {
|
||||||
return ((float)roundf(sensorHeatIndex * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals) -32) * 0.56f;
|
return ((float)roundf(sensorHeatIndex * powf(10, TemperatureDecimals)) / powf(10, TemperatureDecimals) -32) * 0.56f;
|
||||||
} else {
|
} else {
|
||||||
@ -384,7 +401,8 @@ public:
|
|||||||
// Save Usermod Config Settings
|
// Save Usermod Config Settings
|
||||||
void addToConfig(JsonObject& root)
|
void addToConfig(JsonObject& root)
|
||||||
{
|
{
|
||||||
JsonObject top = root.createNestedObject(F("BME280/BMP280"));
|
JsonObject top = root.createNestedObject(FPSTR(_name));
|
||||||
|
top[FPSTR(_enabled)] = enabled;
|
||||||
top[F("TemperatureDecimals")] = TemperatureDecimals;
|
top[F("TemperatureDecimals")] = TemperatureDecimals;
|
||||||
top[F("HumidityDecimals")] = HumidityDecimals;
|
top[F("HumidityDecimals")] = HumidityDecimals;
|
||||||
top[F("PressureDecimals")] = PressureDecimals;
|
top[F("PressureDecimals")] = PressureDecimals;
|
||||||
@ -405,17 +423,17 @@ public:
|
|||||||
// default settings values could be set here (or below using the 3-argument getJsonValue()) instead of in the class definition or constructor
|
// default settings values could be set here (or below using the 3-argument getJsonValue()) instead of in the class definition or constructor
|
||||||
// setting them inside readFromConfig() is slightly more robust, handling the rare but plausible use case of single value being missing after boot (e.g. if the cfg.json was manually edited and a value was removed)
|
// setting them inside readFromConfig() is slightly more robust, handling the rare but plausible use case of single value being missing after boot (e.g. if the cfg.json was manually edited and a value was removed)
|
||||||
|
|
||||||
|
|
||||||
int8_t newPin[2]; for (byte i=0; i<2; i++) newPin[i] = ioPin[i]; // prepare to note changed pins
|
int8_t newPin[2]; for (byte i=0; i<2; i++) newPin[i] = ioPin[i]; // prepare to note changed pins
|
||||||
|
|
||||||
JsonObject top = root[F("BME280/BMP280")];
|
JsonObject top = root[FPSTR(_name)];
|
||||||
if (top.isNull()) {
|
if (top.isNull()) {
|
||||||
DEBUG_PRINT(F("BME280/BMP280"));
|
DEBUG_PRINT(F(_name));
|
||||||
DEBUG_PRINTLN(F(": No config found. (Using defaults.)"));
|
DEBUG_PRINTLN(F(": No config found. (Using defaults.)"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
bool configComplete = !top.isNull();
|
bool configComplete = !top.isNull();
|
||||||
|
|
||||||
|
configComplete &= getJsonValue(top[FPSTR(_enabled)], enabled);
|
||||||
// A 3-argument getJsonValue() assigns the 3rd argument as a default value if the Json value is missing
|
// A 3-argument getJsonValue() assigns the 3rd argument as a default value if the Json value is missing
|
||||||
configComplete &= getJsonValue(top[F("TemperatureDecimals")], TemperatureDecimals, 1);
|
configComplete &= getJsonValue(top[F("TemperatureDecimals")], TemperatureDecimals, 1);
|
||||||
configComplete &= getJsonValue(top[F("HumidityDecimals")], HumidityDecimals, 0);
|
configComplete &= getJsonValue(top[F("HumidityDecimals")], HumidityDecimals, 0);
|
||||||
@ -427,7 +445,7 @@ public:
|
|||||||
configComplete &= getJsonValue(top[F("HomeAssistantDiscovery")], HomeAssistantDiscovery, false);
|
configComplete &= getJsonValue(top[F("HomeAssistantDiscovery")], HomeAssistantDiscovery, false);
|
||||||
for (byte i=0; i<2; i++) configComplete &= getJsonValue(top[F("pin")][i], newPin[i], ioPin[i]);
|
for (byte i=0; i<2; i++) configComplete &= getJsonValue(top[F("pin")][i], newPin[i], ioPin[i]);
|
||||||
|
|
||||||
DEBUG_PRINT(FPSTR(F("BME280/BMP280")));
|
DEBUG_PRINT(FPSTR(_name));
|
||||||
if (!initDone) {
|
if (!initDone) {
|
||||||
// first run: reading from cfg.json
|
// first run: reading from cfg.json
|
||||||
for (byte i=0; i<2; i++) ioPin[i] = newPin[i];
|
for (byte i=0; i<2; i++) ioPin[i] = newPin[i];
|
||||||
@ -455,3 +473,6 @@ public:
|
|||||||
return USERMOD_ID_BME280;
|
return USERMOD_ID_BME280;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const char UsermodBME280::_name[] PROGMEM = "BME280/BMP280";
|
||||||
|
const char UsermodBME280::_enabled[] PROGMEM = "enabled";
|
||||||
|
@ -1554,18 +1554,18 @@ class AudioReactive : public Usermod {
|
|||||||
pinArray.add(sdaPin);
|
pinArray.add(sdaPin);
|
||||||
pinArray.add(sclPin);
|
pinArray.add(sclPin);
|
||||||
|
|
||||||
JsonObject cfg = top.createNestedObject("cfg");
|
JsonObject cfg = top.createNestedObject("config");
|
||||||
cfg[F("squelch")] = soundSquelch;
|
cfg[F("squelch")] = soundSquelch;
|
||||||
cfg[F("gain")] = sampleGain;
|
cfg[F("gain")] = sampleGain;
|
||||||
cfg[F("AGC")] = soundAgc;
|
cfg[F("AGC")] = soundAgc;
|
||||||
|
|
||||||
JsonObject dynLim = top.createNestedObject("dynamics");
|
JsonObject dynLim = top.createNestedObject("dynamics");
|
||||||
dynLim[F("Limiter")] = limiterOn;
|
dynLim[F("limiter")] = limiterOn;
|
||||||
dynLim[F("Rise")] = attackTime;
|
dynLim[F("rise")] = attackTime;
|
||||||
dynLim[F("Fall")] = decayTime;
|
dynLim[F("fall")] = decayTime;
|
||||||
|
|
||||||
JsonObject freqScale = top.createNestedObject("Frequency");
|
JsonObject freqScale = top.createNestedObject("frequency");
|
||||||
freqScale[F("Scale")] = FFTScalingMode;
|
freqScale[F("scale")] = FFTScalingMode;
|
||||||
|
|
||||||
JsonObject sync = top.createNestedObject("sync");
|
JsonObject sync = top.createNestedObject("sync");
|
||||||
sync[F("port")] = audioSyncPort;
|
sync[F("port")] = audioSyncPort;
|
||||||
@ -1605,15 +1605,15 @@ class AudioReactive : public Usermod {
|
|||||||
configComplete &= getJsonValue(top[FPSTR(_digitalmic)]["pin"][4], sdaPin);
|
configComplete &= getJsonValue(top[FPSTR(_digitalmic)]["pin"][4], sdaPin);
|
||||||
configComplete &= getJsonValue(top[FPSTR(_digitalmic)]["pin"][5], sclPin);
|
configComplete &= getJsonValue(top[FPSTR(_digitalmic)]["pin"][5], sclPin);
|
||||||
|
|
||||||
configComplete &= getJsonValue(top["cfg"][F("squelch")], soundSquelch);
|
configComplete &= getJsonValue(top["config"][F("squelch")], soundSquelch);
|
||||||
configComplete &= getJsonValue(top["cfg"][F("gain")], sampleGain);
|
configComplete &= getJsonValue(top["config"][F("gain")], sampleGain);
|
||||||
configComplete &= getJsonValue(top["cfg"][F("AGC")], soundAgc);
|
configComplete &= getJsonValue(top["config"][F("AGC")], soundAgc);
|
||||||
|
|
||||||
configComplete &= getJsonValue(top["dynamics"][F("Limiter")], limiterOn);
|
configComplete &= getJsonValue(top["dynamics"][F("limiter")], limiterOn);
|
||||||
configComplete &= getJsonValue(top["dynamics"][F("Rise")], attackTime);
|
configComplete &= getJsonValue(top["dynamics"][F("rise")], attackTime);
|
||||||
configComplete &= getJsonValue(top["dynamics"][F("Fall")], decayTime);
|
configComplete &= getJsonValue(top["dynamics"][F("fall")], decayTime);
|
||||||
|
|
||||||
configComplete &= getJsonValue(top["Frequency"][F("Scale")], FFTScalingMode);
|
configComplete &= getJsonValue(top["frequency"][F("scale")], FFTScalingMode);
|
||||||
|
|
||||||
configComplete &= getJsonValue(top["sync"][F("port")], audioSyncPort);
|
configComplete &= getJsonValue(top["sync"][F("port")], audioSyncPort);
|
||||||
configComplete &= getJsonValue(top["sync"][F("mode")], audioSyncEnabled);
|
configComplete &= getJsonValue(top["sync"][F("mode")], audioSyncEnabled);
|
||||||
@ -1635,20 +1635,20 @@ class AudioReactive : public Usermod {
|
|||||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3)
|
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
oappend(SET_F("addOption(dd,'Generic I2S PDM',5);"));
|
oappend(SET_F("addOption(dd,'Generic I2S PDM',5);"));
|
||||||
#endif
|
#endif
|
||||||
oappend(SET_F("dd=addDropdown('AudioReactive','cfg:AGC');"));
|
oappend(SET_F("dd=addDropdown('AudioReactive','config:AGC');"));
|
||||||
oappend(SET_F("addOption(dd,'Off',0);"));
|
oappend(SET_F("addOption(dd,'Off',0);"));
|
||||||
oappend(SET_F("addOption(dd,'Normal',1);"));
|
oappend(SET_F("addOption(dd,'Normal',1);"));
|
||||||
oappend(SET_F("addOption(dd,'Vivid',2);"));
|
oappend(SET_F("addOption(dd,'Vivid',2);"));
|
||||||
oappend(SET_F("addOption(dd,'Lazy',3);"));
|
oappend(SET_F("addOption(dd,'Lazy',3);"));
|
||||||
|
|
||||||
oappend(SET_F("dd=addDropdown('AudioReactive','dynamics:Limiter');"));
|
oappend(SET_F("dd=addDropdown('AudioReactive','dynamics:limiter');"));
|
||||||
oappend(SET_F("addOption(dd,'Off',0);"));
|
oappend(SET_F("addOption(dd,'Off',0);"));
|
||||||
oappend(SET_F("addOption(dd,'On',1);"));
|
oappend(SET_F("addOption(dd,'On',1);"));
|
||||||
oappend(SET_F("addInfo('AudioReactive:dynamics:Limiter',0,' On ');")); // 0 is field type, 1 is actual field
|
oappend(SET_F("addInfo('AudioReactive:dynamics:limiter',0,' On ');")); // 0 is field type, 1 is actual field
|
||||||
oappend(SET_F("addInfo('AudioReactive:dynamics:Rise',1,'ms <i>(♪ effects only)</i>');"));
|
oappend(SET_F("addInfo('AudioReactive:dynamics:rise',1,'ms <i>(♪ effects only)</i>');"));
|
||||||
oappend(SET_F("addInfo('AudioReactive:dynamics:Fall',1,'ms <i>(♪ effects only)</i>');"));
|
oappend(SET_F("addInfo('AudioReactive:dynamics:fall',1,'ms <i>(♪ effects only)</i>');"));
|
||||||
|
|
||||||
oappend(SET_F("dd=addDropdown('AudioReactive','Frequency:Scale');"));
|
oappend(SET_F("dd=addDropdown('AudioReactive','frequency:scale');"));
|
||||||
oappend(SET_F("addOption(dd,'None',0);"));
|
oappend(SET_F("addOption(dd,'None',0);"));
|
||||||
oappend(SET_F("addOption(dd,'Linear (Amplitude)',2);"));
|
oappend(SET_F("addOption(dd,'Linear (Amplitude)',2);"));
|
||||||
oappend(SET_F("addOption(dd,'Square Root (Energy)',3);"));
|
oappend(SET_F("addOption(dd,'Square Root (Energy)',3);"));
|
||||||
@ -1659,16 +1659,16 @@ class AudioReactive : public Usermod {
|
|||||||
oappend(SET_F("addOption(dd,'Send',1);"));
|
oappend(SET_F("addOption(dd,'Send',1);"));
|
||||||
oappend(SET_F("addOption(dd,'Receive',2);"));
|
oappend(SET_F("addOption(dd,'Receive',2);"));
|
||||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:type',1,'<i>requires reboot!</i>');")); // 0 is field type, 1 is actual field
|
oappend(SET_F("addInfo('AudioReactive:digitalmic:type',1,'<i>requires reboot!</i>');")); // 0 is field type, 1 is actual field
|
||||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',0,'I2S SD');"));
|
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',0,'I2S Serial Data', '<i><span class=\"h\">sd/data/dout</span></i>');"));
|
||||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',1,'I2S WS');"));
|
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',1,'I2S L/R Clock','<i><span class=\"h\">ws/clk/lrck</span></i>');"));
|
||||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',2,'I2S SCK');"));
|
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',2,'I2S Serial Clock','<i>sck/bclk</i>');"));
|
||||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3)
|
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',3,'I2S Master CLK <i>only use -1, 0, 1 or 3 for MCLK</i>');"));
|
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',3,'I2S Master CLK','<i>only use -1, 0, 1 or 3</i>');"));
|
||||||
#else
|
#else
|
||||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',3,'I2S Master CLK');"));
|
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',3,'', 'I2S Master CLK');"));
|
||||||
#endif
|
#endif
|
||||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',4,'I2C SDA');"));
|
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',4,'', 'I2C SDA');"));
|
||||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',5,'I2C SCL');"));
|
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',5,'', 'I2C SCL');"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1032,11 +1032,11 @@ class FourLineDisplayUsermod : public Usermod {
|
|||||||
oappend(SET_F("addOption(dd,'SSD1305 128x64',5);"));
|
oappend(SET_F("addOption(dd,'SSD1305 128x64',5);"));
|
||||||
oappend(SET_F("addOption(dd,'SSD1306 SPI',6);"));
|
oappend(SET_F("addOption(dd,'SSD1306 SPI',6);"));
|
||||||
oappend(SET_F("addOption(dd,'SSD1306 SPI 128x64',7);"));
|
oappend(SET_F("addOption(dd,'SSD1306 SPI 128x64',7);"));
|
||||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',0,'I2C/SPI CLK (-1 use global)');"));
|
oappend(SET_F("addInfo('4LineDisplay:pin[]',0,'<i>-1 use global</i>','I2C/SPI CLK');"));
|
||||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',1,'I2C/SPI DTA (-1 use global)');"));
|
oappend(SET_F("addInfo('4LineDisplay:pin[]',1,'<i>-1 use global</i>','I2C/SPI DTA');"));
|
||||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',2,'SPI CS');"));
|
oappend(SET_F("addInfo('4LineDisplay:pin[]',2,'','SPI CS');"));
|
||||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',3,'SPI DC');"));
|
oappend(SET_F("addInfo('4LineDisplay:pin[]',3,'','SPI DC');"));
|
||||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',4,'SPI RST');"));
|
oappend(SET_F("addInfo('4LineDisplay:pin[]',4,'','SPI RST');"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -191,7 +191,7 @@ private:
|
|||||||
re_sortModes(modes_qstrings, modes_alpha_indexes, strip.getModeCount(), MODE_SORT_SKIP_COUNT);
|
re_sortModes(modes_qstrings, modes_alpha_indexes, strip.getModeCount(), MODE_SORT_SKIP_COUNT);
|
||||||
|
|
||||||
palettes_qstrings = re_findModeStrings(JSON_palette_names, strip.getPaletteCount());
|
palettes_qstrings = re_findModeStrings(JSON_palette_names, strip.getPaletteCount());
|
||||||
palettes_alpha_indexes = re_initIndexArray(strip.getPaletteCount());
|
palettes_alpha_indexes = re_initIndexArray(strip.getPaletteCount()); // only use internal palettes
|
||||||
|
|
||||||
// How many palette names start with '*' and should not be sorted?
|
// How many palette names start with '*' and should not be sorted?
|
||||||
// (Also skipping the first one, 'Default').
|
// (Also skipping the first one, 'Default').
|
||||||
|
@ -596,7 +596,7 @@ uint16_t mode_twinkle(void) {
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_TWINKLE[] PROGMEM = "Twinkle@!;!,!;!;mp12=0,1d"; //pixels
|
static const char _data_FX_MODE_TWINKLE[] PROGMEM = "Twinkle@!;!,!;!;m12=0,1d"; //pixels
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -673,7 +673,7 @@ uint16_t mode_sparkle(void) {
|
|||||||
SEGMENT.setPixelColor(SEGENV.aux0, SEGCOLOR(0));
|
SEGMENT.setPixelColor(SEGENV.aux0, SEGCOLOR(0));
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_SPARKLE[] PROGMEM = "Sparkle@!;!,!;!;mp12=0,1d";
|
static const char _data_FX_MODE_SPARKLE[] PROGMEM = "Sparkle@!;!,!;!;m12=0,1d";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -694,7 +694,7 @@ uint16_t mode_flash_sparkle(void) {
|
|||||||
}
|
}
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_FLASH_SPARKLE[] PROGMEM = "Sparkle Dark@!,!;Bg,Fx;!;mp12=0,1d";
|
static const char _data_FX_MODE_FLASH_SPARKLE[] PROGMEM = "Sparkle Dark@!,!;Bg,Fx;!;m12=0,1d";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -717,7 +717,7 @@ uint16_t mode_hyper_sparkle(void) {
|
|||||||
}
|
}
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_HYPER_SPARKLE[] PROGMEM = "Sparkle+@!,!;Bg,Fx;!;mp12=0,1d";
|
static const char _data_FX_MODE_HYPER_SPARKLE[] PROGMEM = "Sparkle+@!,!;Bg,Fx;!;m12=0,1d";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -799,7 +799,7 @@ uint16_t mode_android(void) {
|
|||||||
|
|
||||||
return 3 + ((8 * (uint32_t)(255 - SEGMENT.speed)) / SEGLEN);
|
return 3 + ((8 * (uint32_t)(255 - SEGMENT.speed)) / SEGLEN);
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_ANDROID[] PROGMEM = "Android@!,Width;!,!;!;mp12=1,1d"; //vertical
|
static const char _data_FX_MODE_ANDROID[] PROGMEM = "Android@!,Width;!,!;!;m12=1,1d"; //vertical
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1146,7 +1146,7 @@ uint16_t larson_scanner(bool dual) {
|
|||||||
uint16_t mode_larson_scanner(void){
|
uint16_t mode_larson_scanner(void){
|
||||||
return larson_scanner(false);
|
return larson_scanner(false);
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_LARSON_SCANNER[] PROGMEM = "Scanner@!,Fade rate;!,!;!;mp12=0,1d";
|
static const char _data_FX_MODE_LARSON_SCANNER[] PROGMEM = "Scanner@!,Fade rate;!,!;!;m12=0,1d";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1156,7 +1156,7 @@ static const char _data_FX_MODE_LARSON_SCANNER[] PROGMEM = "Scanner@!,Fade rate;
|
|||||||
uint16_t mode_dual_larson_scanner(void){
|
uint16_t mode_dual_larson_scanner(void){
|
||||||
return larson_scanner(true);
|
return larson_scanner(true);
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_DUAL_LARSON_SCANNER[] PROGMEM = "Scanner Dual@!,Fade rate;!,!;!;mp12=0,1d";
|
static const char _data_FX_MODE_DUAL_LARSON_SCANNER[] PROGMEM = "Scanner Dual@!,Fade rate;!,!;!;m12=0,1d";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1508,7 +1508,7 @@ uint16_t mode_fairytwinkle() {
|
|||||||
}
|
}
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_FAIRYTWINKLE[] PROGMEM = "Fairy Twinkle@;;;mp12=0,1d"; //pixels
|
static const char _data_FX_MODE_FAIRYTWINKLE[] PROGMEM = "Fairy Twinkle@;;;m12=0,1d"; //pixels
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2016,7 +2016,7 @@ uint16_t mode_fire_2012()
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_FIRE_2012[] PROGMEM = "Fire 2012@Cooling,Spark rate;1,2,3;!;sx=120,ix=64,mp12=1,1d"; //bars
|
static const char _data_FX_MODE_FIRE_2012[] PROGMEM = "Fire 2012@Cooling,Spark rate;1,2,3;!;sx=120,ix=64,m12=1,1d"; //bars
|
||||||
|
|
||||||
|
|
||||||
// ColorWavesWithPalettes by Mark Kriegsman: https://gist.github.com/kriegsman/8281905786e8b2632aeb
|
// ColorWavesWithPalettes by Mark Kriegsman: https://gist.github.com/kriegsman/8281905786e8b2632aeb
|
||||||
@ -2248,7 +2248,7 @@ uint16_t mode_colortwinkle()
|
|||||||
}
|
}
|
||||||
return FRAMETIME_FIXED;
|
return FRAMETIME_FIXED;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_COLORTWINKLE[] PROGMEM = "Colortwinkles@Fade speed,Spawn speed;1,2,3;!;mp12=0,1d"; //pixels
|
static const char _data_FX_MODE_COLORTWINKLE[] PROGMEM = "Colortwinkles@Fade speed,Spawn speed;1,2,3;!;m12=0,1d"; //pixels
|
||||||
|
|
||||||
|
|
||||||
//Calm effect, like a lake at night
|
//Calm effect, like a lake at night
|
||||||
@ -2857,7 +2857,7 @@ uint16_t mode_bouncing_balls(void) {
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_BOUNCINGBALLS[] PROGMEM = "Bouncing Balls@Gravity,# of balls;!,!,!;!;mp12=1,1d"; //bar
|
static const char _data_FX_MODE_BOUNCINGBALLS[] PROGMEM = "Bouncing Balls@Gravity,# of balls;!,!,!;!;m12=1,1d"; //bar
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2927,7 +2927,7 @@ uint16_t mode_glitter()
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_GLITTER[] PROGMEM = "Glitter@,!;!,!,!;!;mp12=0,1d"; //pixels
|
static const char _data_FX_MODE_GLITTER[] PROGMEM = "Glitter@,!;!,!,!;!;m12=0,1d"; //pixels
|
||||||
|
|
||||||
|
|
||||||
//each needs 19 bytes
|
//each needs 19 bytes
|
||||||
@ -3000,7 +3000,7 @@ uint16_t mode_popcorn(void) {
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_POPCORN[] PROGMEM = "Popcorn@!,!;!,!,!;!;mp12=1,1d"; //bar
|
static const char _data_FX_MODE_POPCORN[] PROGMEM = "Popcorn@!,!;!,!,!;!;m12=1,1d"; //bar
|
||||||
|
|
||||||
|
|
||||||
//values close to 100 produce 5Hz flicker, which looks very candle-y
|
//values close to 100 produce 5Hz flicker, which looks very candle-y
|
||||||
@ -3227,7 +3227,7 @@ uint16_t mode_starburst(void) {
|
|||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
#undef STARBURST_MAX_FRAG
|
#undef STARBURST_MAX_FRAG
|
||||||
static const char _data_FX_MODE_STARBURST[] PROGMEM = "Fireworks Starburst@Chance,Fragments;,!;!;pal=11,mp12=0,1d";
|
static const char _data_FX_MODE_STARBURST[] PROGMEM = "Fireworks Starburst@Chance,Fragments;,!;!;pal=11,m12=0,1d";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3449,7 +3449,7 @@ uint16_t mode_drip(void)
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_DRIP[] PROGMEM = "Drip@Gravity,# of drips;!,!;!;mp12=1,1d"; //bar
|
static const char _data_FX_MODE_DRIP[] PROGMEM = "Drip@Gravity,# of drips;!,!;!;m12=1,1d"; //bar
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3538,7 +3538,7 @@ uint16_t mode_tetrix(void) {
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_TETRIX[] PROGMEM = "Tetrix@!,Width;!,!;!;sx=0,ix=0,pal=11,mp12=1,1d";
|
static const char _data_FX_MODE_TETRIX[] PROGMEM = "Tetrix@!,Width;!,!;!;sx=0,ix=0,pal=11,m12=1,1d";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3650,7 +3650,7 @@ uint16_t mode_heartbeat(void) {
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_HEARTBEAT[] PROGMEM = "Heartbeat@!,!;!,!;!;mp12=1,1d";
|
static const char _data_FX_MODE_HEARTBEAT[] PROGMEM = "Heartbeat@!,!;!,!;!;m12=1,1d";
|
||||||
|
|
||||||
|
|
||||||
// "Pacifica"
|
// "Pacifica"
|
||||||
@ -3782,7 +3782,7 @@ uint16_t mode_solid_glitter()
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_SOLID_GLITTER[] PROGMEM = "Solid Glitter@,!;!;0;mp12=0,1d";
|
static const char _data_FX_MODE_SOLID_GLITTER[] PROGMEM = "Solid Glitter@,!;!;0;m12=0,1d";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3891,7 +3891,7 @@ uint16_t mode_twinkleup(void) { // A very short twinkle routine
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_TWINKLEUP[] PROGMEM = "Twinkleup@!,Intensity;!,!;!;mp12=0,1d";
|
static const char _data_FX_MODE_TWINKLEUP[] PROGMEM = "Twinkleup@!,Intensity;!,!;!;m12=0,1d";
|
||||||
|
|
||||||
|
|
||||||
// Peaceful noise that's slow and with gradually changing palettes. Does not support WLED palettes or default colours or controls.
|
// Peaceful noise that's slow and with gradually changing palettes. Does not support WLED palettes or default colours or controls.
|
||||||
@ -3990,7 +3990,7 @@ uint16_t mode_flow(void)
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_FLOW[] PROGMEM = "Flow@!,!;!,!,!;!;mp12=1,1d"; //vertical
|
static const char _data_FX_MODE_FLOW[] PROGMEM = "Flow@!,!;!,!,!;!;m12=1,1d"; //vertical
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -6048,7 +6048,7 @@ uint16_t mode_ripplepeak(void) { // * Ripple peak. By Andrew Tuli
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_ripplepeak()
|
} // mode_ripplepeak()
|
||||||
static const char _data_FX_MODE_RIPPLEPEAK[] PROGMEM = "Ripple Peak@Fade rate,Max # of ripples,Select bin,Volume (min);!,!;!;c2=0,mp12=0,ssim=0,1d,vo"; // Pixel, Beatsin
|
static const char _data_FX_MODE_RIPPLEPEAK[] PROGMEM = "Ripple Peak@Fade rate,Max # of ripples,Select bin,Volume (min);!,!;!;c2=0,m12=0,si=0,1d,vo"; // Pixel, Beatsin
|
||||||
|
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_2D
|
#ifndef WLED_DISABLE_2D
|
||||||
@ -6096,7 +6096,7 @@ uint16_t mode_2DSwirl(void) {
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_2DSwirl()
|
} // mode_2DSwirl()
|
||||||
static const char _data_FX_MODE_2DSWIRL[] PROGMEM = "Swirl@!,Sensitivity,Blur;,Bg Swirl;!;ix=64ssim=0,2d,vo"; // Beatsin
|
static const char _data_FX_MODE_2DSWIRL[] PROGMEM = "Swirl@!,Sensitivity,Blur;,Bg Swirl;!;ix=64si=0,2d,vo"; // Beatsin
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////
|
/////////////////////////
|
||||||
@ -6142,7 +6142,7 @@ uint16_t mode_2DWaverly(void) {
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_2DWaverly()
|
} // mode_2DWaverly()
|
||||||
static const char _data_FX_MODE_2DWAVERLY[] PROGMEM = "Waverly@Amplification,Sensitivity;;!;ix=64,ssim=0,2d,vo"; // Beatsin
|
static const char _data_FX_MODE_2DWAVERLY[] PROGMEM = "Waverly@Amplification,Sensitivity;;!;ix=64,si=0,2d,vo"; // Beatsin
|
||||||
|
|
||||||
#endif // WLED_DISABLE_2D
|
#endif // WLED_DISABLE_2D
|
||||||
|
|
||||||
@ -6202,7 +6202,7 @@ uint16_t mode_gravcenter(void) { // Gravcenter. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_gravcenter()
|
} // mode_gravcenter()
|
||||||
static const char _data_FX_MODE_GRAVCENTER[] PROGMEM = "Gravcenter@Rate of fall,Sensitivity;,!;!;ix=128,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin
|
static const char _data_FX_MODE_GRAVCENTER[] PROGMEM = "Gravcenter@Rate of fall,Sensitivity;,!;!;ix=128,m12=2,si=0,1d,vo"; // Circle, Beatsin
|
||||||
|
|
||||||
|
|
||||||
///////////////////////
|
///////////////////////
|
||||||
@ -6253,7 +6253,7 @@ uint16_t mode_gravcentric(void) { // Gravcentric. By Andrew
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_gravcentric()
|
} // mode_gravcentric()
|
||||||
static const char _data_FX_MODE_GRAVCENTRIC[] PROGMEM = "Gravcentric@Rate of fall,Sensitivity;!;!;ix=128,mp12=3,ssim=0,1d,vo"; // Corner, Beatsin
|
static const char _data_FX_MODE_GRAVCENTRIC[] PROGMEM = "Gravcentric@Rate of fall,Sensitivity;!;!;ix=128,m12=3,si=0,1d,vo"; // Corner, Beatsin
|
||||||
|
|
||||||
|
|
||||||
///////////////////////
|
///////////////////////
|
||||||
@ -6299,7 +6299,7 @@ uint16_t mode_gravimeter(void) { // Gravmeter. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_gravimeter()
|
} // mode_gravimeter()
|
||||||
static const char _data_FX_MODE_GRAVIMETER[] PROGMEM = "Gravimeter@Rate of fall,Sensitivity;!,!;!;ix=128,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin
|
static const char _data_FX_MODE_GRAVIMETER[] PROGMEM = "Gravimeter@Rate of fall,Sensitivity;!,!;!;ix=128,m12=2,si=0,1d,vo"; // Circle, Beatsin
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
@ -6322,7 +6322,7 @@ uint16_t mode_juggles(void) { // Juggles. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_juggles()
|
} // mode_juggles()
|
||||||
static const char _data_FX_MODE_JUGGLES[] PROGMEM = "Juggles@!,# of balls;,!;!;mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin
|
static const char _data_FX_MODE_JUGGLES[] PROGMEM = "Juggles@!,# of balls;,!;!;m12=0,si=0,1d,vo"; // Pixels, Beatsin
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
@ -6354,7 +6354,7 @@ uint16_t mode_matripix(void) { // Matripix. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_matripix()
|
} // mode_matripix()
|
||||||
static const char _data_FX_MODE_MATRIPIX[] PROGMEM = "Matripix@!,Brightness;!,!;!;ix=64,mp12=2,ssim=1,1d,vo"; //,rev=1,mi=1,rY=1,mY=1 Circle, WeWillRockYou, reverseX
|
static const char _data_FX_MODE_MATRIPIX[] PROGMEM = "Matripix@!,Brightness;!,!;!;ix=64,m12=2,si=1,1d,vo"; //,rev=1,mi=1,rY=1,mY=1 Circle, WeWillRockYou, reverseX
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
@ -6389,7 +6389,7 @@ uint16_t mode_midnoise(void) { // Midnoise. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_midnoise()
|
} // mode_midnoise()
|
||||||
static const char _data_FX_MODE_MIDNOISE[] PROGMEM = "Midnoise@Fade rate,Maximum length;,!;!;ix=128,mp12=1,ssim=0,1d,vo"; // Bar, Beatsin
|
static const char _data_FX_MODE_MIDNOISE[] PROGMEM = "Midnoise@Fade rate,Maximum length;,!;!;ix=128,m12=1,si=0,1d,vo"; // Bar, Beatsin
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
@ -6422,7 +6422,7 @@ uint16_t mode_noisefire(void) { // Noisefire. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_noisefire()
|
} // mode_noisefire()
|
||||||
static const char _data_FX_MODE_NOISEFIRE[] PROGMEM = "Noisefire@!,!;;;mp12=2,ssim=0,1d,vo"; // Circle, Beatsin
|
static const char _data_FX_MODE_NOISEFIRE[] PROGMEM = "Noisefire@!,!;;;m12=2,si=0,1d,vo"; // Circle, Beatsin
|
||||||
|
|
||||||
|
|
||||||
///////////////////////
|
///////////////////////
|
||||||
@ -6457,7 +6457,7 @@ uint16_t mode_noisemeter(void) { // Noisemeter. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_noisemeter()
|
} // mode_noisemeter()
|
||||||
static const char _data_FX_MODE_NOISEMETER[] PROGMEM = "Noisemeter@Fade rate,Width;!,!;!;ix=128,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin
|
static const char _data_FX_MODE_NOISEMETER[] PROGMEM = "Noisemeter@Fade rate,Width;!,!;!;ix=128,m12=2,si=0,1d,vo"; // Circle, Beatsin
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
@ -6491,7 +6491,7 @@ uint16_t mode_pixelwave(void) { // Pixelwave. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_pixelwave()
|
} // mode_pixelwave()
|
||||||
static const char _data_FX_MODE_PIXELWAVE[] PROGMEM = "Pixelwave@!,Sensitivity;!,!;!;ix=64,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin
|
static const char _data_FX_MODE_PIXELWAVE[] PROGMEM = "Pixelwave@!,Sensitivity;!,!;!;ix=64,m12=2,si=0,1d,vo"; // Circle, Beatsin
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
@ -6532,7 +6532,7 @@ uint16_t mode_plasmoid(void) { // Plasmoid. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_plasmoid()
|
} // mode_plasmoid()
|
||||||
static const char _data_FX_MODE_PLASMOID[] PROGMEM = "Plasmoid@Phase,# of pixels;!,!;!;sx=128,ix=128,mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin
|
static const char _data_FX_MODE_PLASMOID[] PROGMEM = "Plasmoid@Phase,# of pixels;!,!;!;sx=128,ix=128,m12=0,si=0,1d,vo"; // Pixels, Beatsin
|
||||||
|
|
||||||
|
|
||||||
///////////////////////
|
///////////////////////
|
||||||
@ -6576,7 +6576,7 @@ uint16_t mode_puddlepeak(void) { // Puddlepeak. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_puddlepeak()
|
} // mode_puddlepeak()
|
||||||
static const char _data_FX_MODE_PUDDLEPEAK[] PROGMEM = "Puddlepeak@Fade rate,Puddle size,Select bin,Volume (min);!,!;!;c2=0,mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin
|
static const char _data_FX_MODE_PUDDLEPEAK[] PROGMEM = "Puddlepeak@Fade rate,Puddle size,Select bin,Volume (min);!,!;!;c2=0,m12=0,si=0,1d,vo"; // Pixels, Beatsin
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
@ -6607,7 +6607,7 @@ uint16_t mode_puddles(void) { // Puddles. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_puddles()
|
} // mode_puddles()
|
||||||
static const char _data_FX_MODE_PUDDLES[] PROGMEM = "Puddles@Fade rate,Puddle size;!,!;!;mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin
|
static const char _data_FX_MODE_PUDDLES[] PROGMEM = "Puddles@Fade rate,Puddle size;!,!;!;m12=0,si=0,1d,vo"; // Pixels, Beatsin
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
@ -6635,7 +6635,7 @@ uint16_t mode_pixels(void) { // Pixels. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_pixels()
|
} // mode_pixels()
|
||||||
static const char _data_FX_MODE_PIXELS[] PROGMEM = "Pixels@Fade rate,# of pixels;,!;!;mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin
|
static const char _data_FX_MODE_PIXELS[] PROGMEM = "Pixels@Fade rate,# of pixels;,!;!;m12=0,si=0,1d,vo"; // Pixels, Beatsin
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////
|
///////////////////////////////
|
||||||
@ -6676,7 +6676,7 @@ uint16_t mode_blurz(void) { // Blurz. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_blurz()
|
} // mode_blurz()
|
||||||
static const char _data_FX_MODE_BLURZ[] PROGMEM = "Blurz@Fade rate,Blur amount;!,Color mix;!;mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin
|
static const char _data_FX_MODE_BLURZ[] PROGMEM = "Blurz@Fade rate,Blur amount;!,Color mix;!;m12=0,si=0,1d,fr"; // Pixels, Beatsin
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////
|
/////////////////////////
|
||||||
@ -6711,7 +6711,7 @@ uint16_t mode_DJLight(void) { // Written by ??? Adapted by Wil
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_DJLight()
|
} // mode_DJLight()
|
||||||
static const char _data_FX_MODE_DJLIGHT[] PROGMEM = "DJ Light@Speed;;;mp12=2,ssim=0,1d,fr"; // Circle, Beatsin
|
static const char _data_FX_MODE_DJLIGHT[] PROGMEM = "DJ Light@Speed;;;m12=2,si=0,1d,fr"; // Circle, Beatsin
|
||||||
|
|
||||||
|
|
||||||
////////////////////
|
////////////////////
|
||||||
@ -6747,7 +6747,7 @@ uint16_t mode_freqmap(void) { // Map FFT_MajorPeak to SEGLEN.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_freqmap()
|
} // mode_freqmap()
|
||||||
static const char _data_FX_MODE_FREQMAP[] PROGMEM = "Freqmap@Fade rate,Starting color;,!;!;mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin
|
static const char _data_FX_MODE_FREQMAP[] PROGMEM = "Freqmap@Fade rate,Starting color;,!;!;m12=0,si=0,1d,fr"; // Pixels, Beatsin
|
||||||
|
|
||||||
|
|
||||||
///////////////////////
|
///////////////////////
|
||||||
@ -6802,7 +6802,7 @@ uint16_t mode_freqmatrix(void) { // Freqmatrix. By Andreas Plesch
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_freqmatrix()
|
} // mode_freqmatrix()
|
||||||
static const char _data_FX_MODE_FREQMATRIX[] PROGMEM = "Freqmatrix@Time delay,Sound effect,Low bin,High bin,Sensivity;;;mp12=3,ssim=0,1d,fr"; // Corner, Beatsin
|
static const char _data_FX_MODE_FREQMATRIX[] PROGMEM = "Freqmatrix@Time delay,Sound effect,Low bin,High bin,Sensivity;;;m12=3,si=0,1d,fr"; // Corner, Beatsin
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
@ -6837,7 +6837,7 @@ uint16_t mode_freqpixels(void) { // Freqpixel. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_freqpixels()
|
} // mode_freqpixels()
|
||||||
static const char _data_FX_MODE_FREQPIXELS[] PROGMEM = "Freqpixels@Fade rate,Starting colour and # of pixels;;;mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin
|
static const char _data_FX_MODE_FREQPIXELS[] PROGMEM = "Freqpixels@Fade rate,Starting colour and # of pixels;;;m12=0,si=0,1d,fr"; // Pixels, Beatsin
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
@ -6906,7 +6906,7 @@ uint16_t mode_freqwave(void) { // Freqwave. By Andreas Pleschun
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_freqwave()
|
} // mode_freqwave()
|
||||||
static const char _data_FX_MODE_FREQWAVE[] PROGMEM = "Freqwave@Time delay,Sound effect,Low bin,High bin,Pre-amp;;;mp12=2,ssim=0,1d,fr"; // Circle, Beatsin
|
static const char _data_FX_MODE_FREQWAVE[] PROGMEM = "Freqwave@Time delay,Sound effect,Low bin,High bin,Pre-amp;;;m12=2,si=0,1d,fr"; // Circle, Beatsin
|
||||||
|
|
||||||
|
|
||||||
///////////////////////
|
///////////////////////
|
||||||
@ -6958,7 +6958,7 @@ uint16_t mode_gravfreq(void) { // Gravfreq. By Andrew Tuline.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_gravfreq()
|
} // mode_gravfreq()
|
||||||
static const char _data_FX_MODE_GRAVFREQ[] PROGMEM = "Gravfreq@Rate of fall,Sensivity;,!;!;ix=128,mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin
|
static const char _data_FX_MODE_GRAVFREQ[] PROGMEM = "Gravfreq@Rate of fall,Sensivity;,!;!;ix=128,m12=0,si=0,1d,fr"; // Pixels, Beatsin
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
@ -6986,7 +6986,7 @@ uint16_t mode_noisemove(void) { // Noisemove. By: Andrew Tuli
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_noisemove()
|
} // mode_noisemove()
|
||||||
static const char _data_FX_MODE_NOISEMOVE[] PROGMEM = "Noisemove@Speed of perlin movement,Fade rate;,!;!;mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin
|
static const char _data_FX_MODE_NOISEMOVE[] PROGMEM = "Noisemove@Speed of perlin movement,Fade rate;,!;!;m12=0,si=0,1d,fr"; // Pixels, Beatsin
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
@ -7026,7 +7026,7 @@ uint16_t mode_rocktaves(void) { // Rocktaves. Same note from eac
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_rocktaves()
|
} // mode_rocktaves()
|
||||||
static const char _data_FX_MODE_ROCKTAVES[] PROGMEM = "Rocktaves@;,!;!;mp12=1,ssim=0,1d,fr"; // Bar, Beatsin
|
static const char _data_FX_MODE_ROCKTAVES[] PROGMEM = "Rocktaves@;,!;!;m12=1,si=0,1d,fr"; // Bar, Beatsin
|
||||||
|
|
||||||
|
|
||||||
///////////////////////
|
///////////////////////
|
||||||
@ -7078,7 +7078,7 @@ uint16_t mode_waterfall(void) { // Waterfall. By: Andrew Tulin
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_waterfall()
|
} // mode_waterfall()
|
||||||
static const char _data_FX_MODE_WATERFALL[] PROGMEM = "Waterfall@!,Adjust color,Select bin,Volume (min);!,!;!;c2=0,mp12=2,ssim=0,1d,fr"; // Circles, Beatsin
|
static const char _data_FX_MODE_WATERFALL[] PROGMEM = "Waterfall@!,Adjust color,Select bin,Volume (min);!,!;!;c2=0,m12=2,si=0,1d,fr"; // Circles, Beatsin
|
||||||
|
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_2D
|
#ifndef WLED_DISABLE_2D
|
||||||
@ -7138,7 +7138,7 @@ uint16_t mode_2DGEQ(void) { // By Will Tatam. Code reduction by Ewoud Wijma.
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_2DGEQ()
|
} // mode_2DGEQ()
|
||||||
static const char _data_FX_MODE_2DGEQ[] PROGMEM = "GEQ@Fade speed,Ripple decay,# of bands,,,Color bars;!,,Peak Color;!;c1=255,c2=64,pal=11,ssim=0,2d,fr"; // Beatsin
|
static const char _data_FX_MODE_2DGEQ[] PROGMEM = "GEQ@Fade speed,Ripple decay,# of bands,,,Color bars;!,,Peak Color;!;c1=255,c2=64,pal=11,si=0,2d,fr"; // Beatsin
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////
|
/////////////////////////
|
||||||
@ -7196,7 +7196,7 @@ uint16_t mode_2DFunkyPlank(void) { // Written by ??? Adapted by Wil
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_2DFunkyPlank
|
} // mode_2DFunkyPlank
|
||||||
static const char _data_FX_MODE_2DFUNKYPLANK[] PROGMEM = "Funky Plank@Scroll speed,,# of bands;;;ssim=0,2d,fr"; // Beatsin
|
static const char _data_FX_MODE_2DFUNKYPLANK[] PROGMEM = "Funky Plank@Scroll speed,,# of bands;;;si=0,2d,fr"; // Beatsin
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////
|
/////////////////////////
|
||||||
@ -7299,7 +7299,7 @@ uint16_t mode_2DAkemi(void) {
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
} // mode_2DAkemi
|
} // mode_2DAkemi
|
||||||
static const char _data_FX_MODE_2DAKEMI[] PROGMEM = "Akemi@Color speed,Dance;Head palette,Arms & Legs,Eyes & Mouth;Face palette;ssim=0,2d,fr"; //beatsin
|
static const char _data_FX_MODE_2DAKEMI[] PROGMEM = "Akemi@Color speed,Dance;Head palette,Arms & Legs,Eyes & Mouth;Face palette;si=0,2d,fr"; //beatsin
|
||||||
#endif // WLED_DISABLE_2D
|
#endif // WLED_DISABLE_2D
|
||||||
|
|
||||||
|
|
||||||
|
@ -767,7 +767,7 @@ class WS2812FX { // 96 bytes
|
|||||||
inline uint8_t getSegmentsNum(void) { return _segments.size(); } // returns currently present segments
|
inline uint8_t getSegmentsNum(void) { return _segments.size(); } // returns currently present segments
|
||||||
inline uint8_t getCurrSegmentId(void) { return _segment_index; }
|
inline uint8_t getCurrSegmentId(void) { return _segment_index; }
|
||||||
inline uint8_t getMainSegmentId(void) { return _mainSegment; }
|
inline uint8_t getMainSegmentId(void) { return _mainSegment; }
|
||||||
inline uint8_t getPaletteCount() { return 13 + GRADIENT_PALETTE_COUNT; }
|
inline uint8_t getPaletteCount() { return 13 + GRADIENT_PALETTE_COUNT; } // will only return built-in palette count
|
||||||
inline uint8_t getTargetFps() { return _targetFps; }
|
inline uint8_t getTargetFps() { return _targetFps; }
|
||||||
inline uint8_t getModeCount() { return _modeCount; }
|
inline uint8_t getModeCount() { return _modeCount; }
|
||||||
|
|
||||||
|
@ -114,10 +114,11 @@ void IRAM_ATTR WS2812FX::setPixelColorXY(int x, int y, uint32_t col)
|
|||||||
#ifndef WLED_DISABLE_2D
|
#ifndef WLED_DISABLE_2D
|
||||||
if (!isMatrix) return; // not a matrix set-up
|
if (!isMatrix) return; // not a matrix set-up
|
||||||
uint16_t index = y * matrixWidth + x;
|
uint16_t index = y * matrixWidth + x;
|
||||||
|
if (index >= customMappingSize) return; // customMappingSize is always W * H of matrix in 2D setup
|
||||||
#else
|
#else
|
||||||
uint16_t index = x;
|
uint16_t index = x;
|
||||||
#endif
|
|
||||||
if (index >= _length) return;
|
if (index >= _length) return;
|
||||||
|
#endif
|
||||||
if (index < customMappingSize) index = customMappingTable[index];
|
if (index < customMappingSize) index = customMappingTable[index];
|
||||||
busses.setPixelColor(index, col);
|
busses.setPixelColor(index, col);
|
||||||
}
|
}
|
||||||
@ -126,10 +127,11 @@ void IRAM_ATTR WS2812FX::setPixelColorXY(int x, int y, uint32_t col)
|
|||||||
uint32_t WS2812FX::getPixelColorXY(uint16_t x, uint16_t y) {
|
uint32_t WS2812FX::getPixelColorXY(uint16_t x, uint16_t y) {
|
||||||
#ifndef WLED_DISABLE_2D
|
#ifndef WLED_DISABLE_2D
|
||||||
uint16_t index = (y * matrixWidth + x);
|
uint16_t index = (y * matrixWidth + x);
|
||||||
|
if (index >= customMappingSize) return 0; // customMappingSize is always W * H of matrix in 2D setup
|
||||||
#else
|
#else
|
||||||
uint16_t index = x;
|
uint16_t index = x;
|
||||||
#endif
|
|
||||||
if (index >= _length) return 0;
|
if (index >= _length) return 0;
|
||||||
|
#endif
|
||||||
if (index < customMappingSize) index = customMappingTable[index];
|
if (index < customMappingSize) index = customMappingTable[index];
|
||||||
return busses.getPixelColor(index);
|
return busses.getPixelColor(index);
|
||||||
}
|
}
|
||||||
|
@ -412,18 +412,13 @@ void Segment::setMode(uint8_t fx, bool loadDefaults) {
|
|||||||
sOpt = extractModeDefaults(fx, "c1"); if (sOpt >= 0) custom1 = sOpt;
|
sOpt = extractModeDefaults(fx, "c1"); if (sOpt >= 0) custom1 = sOpt;
|
||||||
sOpt = extractModeDefaults(fx, "c2"); if (sOpt >= 0) custom2 = sOpt;
|
sOpt = extractModeDefaults(fx, "c2"); if (sOpt >= 0) custom2 = sOpt;
|
||||||
sOpt = extractModeDefaults(fx, "c3"); if (sOpt >= 0) custom3 = sOpt;
|
sOpt = extractModeDefaults(fx, "c3"); if (sOpt >= 0) custom3 = sOpt;
|
||||||
sOpt = extractModeDefaults(fx, "mp12"); if (sOpt >= 0) map1D2D = constrain(sOpt, 0, 7);
|
sOpt = extractModeDefaults(fx, "m12"); if (sOpt >= 0) map1D2D = constrain(sOpt, 0, 7);
|
||||||
sOpt = extractModeDefaults(fx, "ssim"); if (sOpt >= 0) soundSim = constrain(sOpt, 0, 7);
|
sOpt = extractModeDefaults(fx, "si"); if (sOpt >= 0) soundSim = constrain(sOpt, 0, 7);
|
||||||
sOpt = extractModeDefaults(fx, "rev"); if (sOpt >= 0) reverse = (bool)sOpt;
|
sOpt = extractModeDefaults(fx, "rev"); if (sOpt >= 0) reverse = (bool)sOpt;
|
||||||
sOpt = extractModeDefaults(fx, "mi"); if (sOpt >= 0) mirror = (bool)sOpt; // NOTE: setting this option is a risky business
|
sOpt = extractModeDefaults(fx, "mi"); if (sOpt >= 0) mirror = (bool)sOpt; // NOTE: setting this option is a risky business
|
||||||
sOpt = extractModeDefaults(fx, "rY"); if (sOpt >= 0) reverse_y = (bool)sOpt;
|
sOpt = extractModeDefaults(fx, "rY"); if (sOpt >= 0) reverse_y = (bool)sOpt;
|
||||||
sOpt = extractModeDefaults(fx, "mY"); if (sOpt >= 0) mirror_y = (bool)sOpt; // NOTE: setting this option is a risky business
|
sOpt = extractModeDefaults(fx, "mY"); if (sOpt >= 0) mirror_y = (bool)sOpt; // NOTE: setting this option is a risky business
|
||||||
sOpt = extractModeDefaults(fx, "pal");
|
sOpt = extractModeDefaults(fx, "pal"); if (sOpt >= 0) setPalette(sOpt);
|
||||||
if (sOpt >= 0 && (size_t)sOpt < strip.getPaletteCount() + strip.customPalettes.size()) {
|
|
||||||
if (sOpt != palette) {
|
|
||||||
palette = sOpt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
stateChanged = true; // send UDP/WS broadcast
|
stateChanged = true; // send UDP/WS broadcast
|
||||||
}
|
}
|
||||||
@ -431,13 +426,13 @@ void Segment::setMode(uint8_t fx, bool loadDefaults) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Segment::setPalette(uint8_t pal) {
|
void Segment::setPalette(uint8_t pal) {
|
||||||
if (pal < strip.getPaletteCount()) {
|
if (pal < 245 && pal > GRADIENT_PALETTE_COUNT+13) pal = 0; // built in palettes
|
||||||
if (pal != palette) {
|
if (pal > 245 && (strip.customPalettes.size() == 0 || 255U-pal > strip.customPalettes.size()-1)) pal = 0; // custom palettes
|
||||||
if (strip.paletteFade) startTransition(strip.getTransition());
|
if (pal != palette) {
|
||||||
palette = pal;
|
if (strip.paletteFade) startTransition(strip.getTransition());
|
||||||
}
|
palette = pal;
|
||||||
|
stateChanged = true; // send UDP/WS broadcast
|
||||||
}
|
}
|
||||||
stateChanged = true; // send UDP/WS broadcast
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2D matrix
|
// 2D matrix
|
||||||
|
@ -718,19 +718,19 @@ function populateSegments(s)
|
|||||||
miYck = `<label class="check revchkl">Mirror<input type="checkbox" id="seg${i}mY" onchange="setMiY(${i})" ${inst.mY?"checked":""}><span class="checkmark"></span></label>`;
|
miYck = `<label class="check revchkl">Mirror<input type="checkbox" id="seg${i}mY" onchange="setMiY(${i})" ${inst.mY?"checked":""}><span class="checkmark"></span></label>`;
|
||||||
}
|
}
|
||||||
let map2D = `<div id="seg${i}map2D" data-map="map2D" class="lbl-s hide">Expand 1D FX<br>
|
let map2D = `<div id="seg${i}map2D" data-map="map2D" class="lbl-s hide">Expand 1D FX<br>
|
||||||
<div class="sel-p"><select class="sel-p" id="seg${i}mp12" onchange="setMp12(${i})">
|
<div class="sel-p"><select class="sel-p" id="seg${i}m12" onchange="setM12(${i})">
|
||||||
<option value="0" ${inst.mp12==0?' selected':''}>Pixels</option>
|
<option value="0" ${inst.m12==0?' selected':''}>Pixels</option>
|
||||||
<option value="1" ${inst.mp12==1?' selected':''}>Bar</option>
|
<option value="1" ${inst.m12==1?' selected':''}>Bar</option>
|
||||||
<option value="2" ${inst.mp12==2?' selected':''}>Arc</option>
|
<option value="2" ${inst.m12==2?' selected':''}>Arc</option>
|
||||||
<option value="3" ${inst.mp12==3?' selected':''}>Corner</option>
|
<option value="3" ${inst.m12==3?' selected':''}>Corner</option>
|
||||||
</select></div>
|
</select></div>
|
||||||
</div>`;
|
</div>`;
|
||||||
let sndSim = `<div data-snd="ssim" class="lbl-s hide">Sound sim<br>
|
let sndSim = `<div data-snd="si" class="lbl-s hide">Sound sim<br>
|
||||||
<div class="sel-p"><select class="sel-p" id="seg${i}ssim" onchange="setSSim(${i})">
|
<div class="sel-p"><select class="sel-p" id="seg${i}si" onchange="setSi(${i})">
|
||||||
<option value="0" ${inst.ssim==0?' selected':''}>BeatSin</option>
|
<option value="0" ${inst.si==0?' selected':''}>BeatSin</option>
|
||||||
<option value="1" ${inst.ssim==1?' selected':''}>WeWillRockYou</option>
|
<option value="1" ${inst.si==1?' selected':''}>WeWillRockYou</option>
|
||||||
<option value="2" ${inst.ssim==2?' selected':''}>U10_3</option>
|
<option value="2" ${inst.si==2?' selected':''}>U10_3</option>
|
||||||
<option value="3" ${inst.ssim==3?' selected':''}>U14_3</option>
|
<option value="3" ${inst.si==3?' selected':''}>U14_3</option>
|
||||||
</select></div>
|
</select></div>
|
||||||
</div>`;
|
</div>`;
|
||||||
cn += `<div class="seg lstI ${i==s.mainseg ? 'selected' : ''} ${exp ? "expanded":""}" id="seg${i}">
|
cn += `<div class="seg lstI ${i==s.mainseg ? 'selected' : ''} ${exp ? "expanded":""}" id="seg${i}">
|
||||||
@ -1195,7 +1195,7 @@ function updateSelectedFx()
|
|||||||
var selectedName = selectedEffect.querySelector(".lstIname").innerText;
|
var selectedName = selectedEffect.querySelector(".lstIname").innerText;
|
||||||
var segs = gId("segcont").querySelectorAll(`div[data-map="map2D"]`);
|
var segs = gId("segcont").querySelectorAll(`div[data-map="map2D"]`);
|
||||||
for (const seg of segs) if (selectedName.indexOf("\u25A6")<0) seg.classList.remove("hide"); else seg.classList.add("hide");
|
for (const seg of segs) if (selectedName.indexOf("\u25A6")<0) seg.classList.remove("hide"); else seg.classList.add("hide");
|
||||||
var segs = gId("segcont").querySelectorAll(`div[data-snd="ssim"]`);
|
var segs = gId("segcont").querySelectorAll(`div[data-snd="si"]`);
|
||||||
for (const seg of segs) if (selectedName.indexOf("\u266A")<0 && selectedName.indexOf("\266B")<0) seg.classList.add("hide"); else seg.classList.remove("hide"); // also "♫ "?
|
for (const seg of segs) if (selectedName.indexOf("\u266A")<0 && selectedName.indexOf("\266B")<0) seg.classList.add("hide"); else seg.classList.remove("hide"); // also "♫ "?
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1535,8 +1535,8 @@ function requestJson(command=null)
|
|||||||
if (json.info) {
|
if (json.info) {
|
||||||
let i = json.info;
|
let i = json.info;
|
||||||
// append custom palettes (when loading for the 1st time)
|
// append custom palettes (when loading for the 1st time)
|
||||||
if (!command && isEmpty(lastinfo) && i.leds && i.leds.cpal) {
|
if (!command && isEmpty(lastinfo) && i.cpalcount) {
|
||||||
for (let j = 0; j<i.leds.cpal; j++) {
|
for (let j = 0; j<i.cpalcount; j++) {
|
||||||
let div = d.createElement("div");
|
let div = d.createElement("div");
|
||||||
gId('pallist').appendChild(div);
|
gId('pallist').appendChild(div);
|
||||||
div.outerHTML = generateListItemHtml(
|
div.outerHTML = generateListItemHtml(
|
||||||
@ -2073,17 +2073,17 @@ function setMiY(s)
|
|||||||
requestJson(obj);
|
requestJson(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
function setMp12(s)
|
function setM12(s)
|
||||||
{
|
{
|
||||||
var value = gId(`seg${s}mp12`).selectedIndex;
|
var value = gId(`seg${s}m12`).selectedIndex;
|
||||||
var obj = {"seg": {"id": s, "mp12": value}};
|
var obj = {"seg": {"id": s, "m12": value}};
|
||||||
requestJson(obj);
|
requestJson(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
function setSSim(s)
|
function setSi(s)
|
||||||
{
|
{
|
||||||
var value = gId(`seg${s}ssim`).selectedIndex;
|
var value = gId(`seg${s}si`).selectedIndex;
|
||||||
var obj = {"seg": {"id": s, "ssim": value}};
|
var obj = {"seg": {"id": s, "si": value}};
|
||||||
requestJson(obj);
|
requestJson(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2238,7 +2238,7 @@ function saveP(i,pl)
|
|||||||
obj.ib = gId(`p${i}ibtgl`).checked;
|
obj.ib = gId(`p${i}ibtgl`).checked;
|
||||||
obj.sb = gId(`p${i}sbtgl`).checked;
|
obj.sb = gId(`p${i}sbtgl`).checked;
|
||||||
obj.sc = gId(`p${i}sbchk`).checked;
|
obj.sc = gId(`p${i}sbchk`).checked;
|
||||||
if (gId(`p${i}lmp`).value!=="") obj.ledmap = parseInt(gId(`p${i}lmp`).value);
|
if (gId(`p${i}lmp`) && gId(`p${i}lmp`).value!=="") obj.ledmap = parseInt(gId(`p${i}lmp`).value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,9 +104,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function initCap(s) {
|
||||||
|
if (typeof s !== 'string') return ''
|
||||||
|
return s.charAt(0).toUpperCase() + s.slice(1)
|
||||||
|
}
|
||||||
function addField(k,f,o,a=false) { //key, field, (sub)object, isArray
|
function addField(k,f,o,a=false) { //key, field, (sub)object, isArray
|
||||||
if (isO(o)) {
|
if (isO(o)) {
|
||||||
urows += '<hr class="sml">';
|
urows += '<hr class="sml">';
|
||||||
|
if (f!=='unknown' && !k.includes(":")) urows += `<p><u>${initCap(f)}</u></p>`; //show group title
|
||||||
for (const [s,v] of Object.entries(o)) {
|
for (const [s,v] of Object.entries(o)) {
|
||||||
// possibility to nest objects (only 1 level)
|
// possibility to nest objects (only 1 level)
|
||||||
if (f!=='unknown' && !k.includes(":")) addField(k+":"+f,s,v);
|
if (f!=='unknown' && !k.includes(":")) addField(k+":"+f,s,v);
|
||||||
@ -135,8 +140,7 @@
|
|||||||
t = "text"; c = `value="${o}" style="width:250px;"`;
|
t = "text"; c = `value="${o}" style="width:250px;"`;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (k.includes(":")) urows += k.substr(k.indexOf(":")+1);
|
urows += ` ${initCap(f)} `; //only show field (key is shown in grouping)
|
||||||
urows += ` ${f}: `;
|
|
||||||
// https://stackoverflow.com/questions/11657123/posting-both-checked-and-unchecked-checkboxes
|
// https://stackoverflow.com/questions/11657123/posting-both-checked-and-unchecked-checkboxes
|
||||||
if (t=="checkbox") urows += `<input type="hidden" name="${k}:${f}${a?"[]":""}" value="false">`;
|
if (t=="checkbox") urows += `<input type="hidden" name="${k}:${f}${a?"[]":""}" value="false">`;
|
||||||
else if (!a) urows += `<input type="hidden" name="${k}:${f}${a?"[]":""}" value="${t}">`;
|
else if (!a) urows += `<input type="hidden" name="${k}:${f}${a?"[]":""}" value="${t}">`;
|
||||||
@ -179,11 +183,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// https://stackoverflow.com/questions/26440494/insert-text-after-this-input-element-with-javascript
|
// https://stackoverflow.com/questions/26440494/insert-text-after-this-input-element-with-javascript
|
||||||
function addInfo(name,el,txt) {
|
function addInfo(name,el,txt, txt2="") {
|
||||||
let obj = d.getElementsByName(name);
|
let obj = d.getElementsByName(name);
|
||||||
if (!obj.length) return;
|
if (!obj.length) return;
|
||||||
if (typeof el === "string" && obj[0]) obj[0].placeholder = el;
|
if (typeof el === "string" && obj[0]) obj[0].placeholder = el;
|
||||||
else if (obj[el]) obj[el].insertAdjacentHTML('afterend', ' '+txt);
|
else if (obj[el]) {
|
||||||
|
if (txt!="") obj[el].insertAdjacentHTML('afterend', ' '+txt);
|
||||||
|
if (txt2!="") obj[el].insertAdjacentHTML('beforebegin', txt2 + ' '); //add pre texts
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// load settings and insert values into DOM
|
// load settings and insert values into DOM
|
||||||
function ldS() {
|
function ldS() {
|
||||||
|
@ -6,13 +6,106 @@
|
|||||||
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/>
|
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/>
|
||||||
<title>WiFi Settings</title>
|
<title>WiFi Settings</title>
|
||||||
<script>
|
<script>
|
||||||
var d=document;
|
var d = document;
|
||||||
var loc = false, locip;
|
var loc = false, locip;
|
||||||
|
var scanLoops = 0, preScanSSID = "";
|
||||||
|
|
||||||
|
function gId(e) { return d.getElementById(e); }
|
||||||
|
function cE(e) { return d.createElement(e); }
|
||||||
function H(){window.open("https://kno.wled.ge/features/settings/#wifi-settings");}
|
function H(){window.open("https://kno.wled.ge/features/settings/#wifi-settings");}
|
||||||
function B(){window.open("/settings","_self");}
|
function B(){window.open("/settings","_self");}
|
||||||
|
function N() {
|
||||||
|
const url = (loc?`http://${locip}`:"") + "/json/net";
|
||||||
|
|
||||||
|
const button = gId("scan");
|
||||||
|
button.disabled = true;
|
||||||
|
button.innerHTML = "Scanning...";
|
||||||
|
|
||||||
|
fetch(url).then((response) => {
|
||||||
|
return response.json();
|
||||||
|
}).then((json) => {
|
||||||
|
// Get the list of networks only, defaulting to an empty array.
|
||||||
|
return Object.assign(
|
||||||
|
{},
|
||||||
|
{"networks": []},
|
||||||
|
json,
|
||||||
|
).networks.sort(
|
||||||
|
// Sort by signal strength, descending.
|
||||||
|
(a, b) => b.rssi - a.rssi
|
||||||
|
).reduce(
|
||||||
|
// Filter out duplicate SSIDs. Since it is sorted by signal
|
||||||
|
// strength, the strongest signal will be kept in the
|
||||||
|
// order it orginally appeared in the array.
|
||||||
|
(unique, other) => {
|
||||||
|
if(!unique.some(obj => obj.ssid === other.ssid)) {
|
||||||
|
unique.push(other);
|
||||||
|
}
|
||||||
|
return unique;
|
||||||
|
},
|
||||||
|
[],
|
||||||
|
);
|
||||||
|
}).then((networks) => {
|
||||||
|
// If there are no networks, fetch it again in a second.
|
||||||
|
// but only do this a few times.
|
||||||
|
if (networks.length === 0 && scanLoops < 10) {
|
||||||
|
scanLoops++;
|
||||||
|
setTimeout(N, 1000);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
scanLoops = 0;
|
||||||
|
|
||||||
|
let cs = gId("CS");
|
||||||
|
if (cs) {
|
||||||
|
let select = cE("select");
|
||||||
|
select.setAttribute("id", "CS");
|
||||||
|
select.setAttribute("name", "CS");
|
||||||
|
select.setAttribute("onchange", "T()");
|
||||||
|
preScanSSID = cs.value;
|
||||||
|
|
||||||
|
for (let i = 0; i < select.children.length; i++) {
|
||||||
|
select.removeChild(select.children[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < networks.length; i++) {
|
||||||
|
const option = cE("option");
|
||||||
|
|
||||||
|
option.setAttribute("value", networks[i].ssid);
|
||||||
|
option.innerHTML = `${networks[i].ssid} (${networks[i].rssi} dBm)`;
|
||||||
|
|
||||||
|
if (networks[i].ssid === cs.value) {
|
||||||
|
option.setAttribute("selected", "selected");
|
||||||
|
}
|
||||||
|
|
||||||
|
select.appendChild(option);
|
||||||
|
}
|
||||||
|
const option = cE("option");
|
||||||
|
|
||||||
|
option.setAttribute("value", "!Cs");
|
||||||
|
option.innerHTML = `Other network...`;
|
||||||
|
select.appendChild(option);
|
||||||
|
|
||||||
|
cs.replaceWith(select);
|
||||||
|
}
|
||||||
|
|
||||||
|
button.disabled = false;
|
||||||
|
button.innerHTML = "Scan";
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// replace WiFi select with custom SSID input field again
|
||||||
|
function T() {
|
||||||
|
let cs = gId("CS");
|
||||||
|
if (!cs || cs.value != "!Cs") return;
|
||||||
|
let input = cE("input");
|
||||||
|
input.type = "text";
|
||||||
|
input.id = "CS";
|
||||||
|
input.name ="CS";
|
||||||
|
input.setAttribute("maxlength",32);
|
||||||
|
input.value = preScanSSID;
|
||||||
|
cs.replaceWith(input);
|
||||||
|
}
|
||||||
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
||||||
function loadJS(FILE_URL, async = true) {
|
function loadJS(FILE_URL, async = true) {
|
||||||
let scE = d.createElement("script");
|
let scE = cE("script");
|
||||||
scE.setAttribute("src", FILE_URL);
|
scE.setAttribute("src", FILE_URL);
|
||||||
scE.setAttribute("type", "text/javascript");
|
scE.setAttribute("type", "text/javascript");
|
||||||
scE.setAttribute("async", async);
|
scE.setAttribute("async", async);
|
||||||
@ -31,13 +124,13 @@
|
|||||||
function S() {
|
function S() {
|
||||||
if (window.location.protocol == "file:") {
|
if (window.location.protocol == "file:") {
|
||||||
loc = true;
|
loc = true;
|
||||||
locip = localStorage.getItem('locIp');
|
locip = localStorage.getItem("locIp");
|
||||||
if (!locip) {
|
if (!locip) {
|
||||||
locip = prompt("File Mode. Please enter WLED IP!");
|
locip = prompt("File Mode. Please enter WLED IP!");
|
||||||
localStorage.setItem('locIp', locip);
|
localStorage.setItem("locIp", locip);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var url = (loc?`http://${locip}`:'') + '/settings/s.js?p=1';
|
let url = (loc?`http://${locip}`:'') + '/settings/s.js?p=1';
|
||||||
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
|
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -51,7 +144,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<h2>WiFi setup</h2>
|
<h2>WiFi setup</h2>
|
||||||
<h3>Connect to existing network</h3>
|
<h3>Connect to existing network</h3>
|
||||||
Network name (SSID, empty to not connect): <br><input type="text" name="CS" maxlength="32"><br>
|
<button type="button" id="scan" onclick="N()">Scan</button><br>
|
||||||
|
Network name (SSID, empty to not connect):<br>
|
||||||
|
<input type="text" id="CS" name="CS" maxlength="32"><br>
|
||||||
Network password: <br> <input type="password" name="CP" maxlength="63"><br>
|
Network password: <br> <input type="password" name="CP" maxlength="63"><br>
|
||||||
Static IP (leave at 0.0.0.0 for DHCP):<br>
|
Static IP (leave at 0.0.0.0 for DHCP):<br>
|
||||||
<input name="I0" type="number" class="s" min="0" max="255" required> .
|
<input name="I0" type="number" class="s" min="0" max="255" required> .
|
||||||
@ -68,7 +163,7 @@
|
|||||||
<input name="S1" type="number" class="s" min="0" max="255" required> .
|
<input name="S1" type="number" class="s" min="0" max="255" required> .
|
||||||
<input name="S2" type="number" class="s" min="0" max="255" required> .
|
<input name="S2" type="number" class="s" min="0" max="255" required> .
|
||||||
<input name="S3" type="number" class="s" min="0" max="255" required><br>
|
<input name="S3" type="number" class="s" min="0" max="255" required><br>
|
||||||
mDNS address (leave empty for no mDNS):<br/>
|
mDNS address (leave empty for no mDNS):<br>
|
||||||
http:// <input type="text" name="CM" maxlength="32"> .local<br>
|
http:// <input type="text" name="CM" maxlength="32"> .local<br>
|
||||||
Client IP: <span class="sip"> Not connected </span> <br>
|
Client IP: <span class="sip"> Not connected </span> <br>
|
||||||
<h3>Configure Access Point</h3>
|
<h3>Configure Access Point</h3>
|
||||||
|
@ -41,6 +41,9 @@ button.sml {
|
|||||||
min-width: 40px;
|
min-width: 40px;
|
||||||
margin: 0 0 0 10px;
|
margin: 0 0 0 10px;
|
||||||
}
|
}
|
||||||
|
#scan {
|
||||||
|
margin-top: -10px;
|
||||||
|
}
|
||||||
.toprow {
|
.toprow {
|
||||||
top: 0;
|
top: 0;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
|
@ -6,68 +6,68 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// Autogenerated from wled00/data/style.css, do not edit!!
|
// Autogenerated from wled00/data/style.css, do not edit!!
|
||||||
const uint16_t PAGE_settingsCss_length = 836;
|
const uint16_t PAGE_settingsCss_length = 847;
|
||||||
const uint8_t PAGE_settingsCss[] PROGMEM = {
|
const uint8_t PAGE_settingsCss[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x55, 0xc1, 0x8e, 0x9b, 0x30,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x55, 0xc1, 0x8e, 0x9b, 0x30,
|
||||||
0x14, 0xfc, 0x15, 0xaa, 0x68, 0xa5, 0xad, 0x14, 0x10, 0x10, 0xc8, 0xa6, 0x46, 0x95, 0xaa, 0xde,
|
0x10, 0xfd, 0x15, 0xaa, 0x68, 0xa5, 0xad, 0x14, 0x10, 0x10, 0xc8, 0xa6, 0x46, 0x95, 0xaa, 0xde,
|
||||||
0x7b, 0xab, 0xaa, 0x4a, 0xd5, 0x1e, 0x0c, 0x7e, 0x04, 0x2b, 0xc6, 0x46, 0xb6, 0xe9, 0x92, 0x22,
|
0x7b, 0xab, 0xaa, 0x4a, 0xd5, 0x1e, 0x0c, 0x1e, 0x82, 0x15, 0x63, 0x23, 0xdb, 0x74, 0x49, 0x11,
|
||||||
0xfe, 0xbd, 0xb6, 0x81, 0x85, 0x64, 0xd1, 0xf6, 0x52, 0x45, 0x89, 0x92, 0x3c, 0x63, 0xcf, 0xcc,
|
0xff, 0x5e, 0xdb, 0xc0, 0x42, 0xb2, 0x68, 0x7b, 0xa9, 0xa2, 0x44, 0xc4, 0x63, 0xc6, 0x6f, 0xde,
|
||||||
0x9b, 0x37, 0xae, 0x74, 0xcd, 0x7a, 0x2d, 0xda, 0xa2, 0xf2, 0x71, 0xa1, 0xa9, 0xe0, 0xa8, 0xc6,
|
0xbc, 0x79, 0xae, 0x74, 0xcd, 0x7a, 0x2d, 0xda, 0xa2, 0xf2, 0x71, 0xa1, 0xa9, 0xe0, 0xa8, 0xc6,
|
||||||
0x9c, 0x36, 0x2d, 0xc3, 0xf6, 0xc7, 0x90, 0x0b, 0x72, 0xed, 0x4b, 0xc1, 0xb5, 0x5f, 0xe2, 0x9a,
|
0x9c, 0x36, 0x2d, 0xc3, 0xf6, 0xcf, 0x90, 0x0b, 0x72, 0xed, 0x4b, 0xc1, 0xb5, 0x5f, 0xe2, 0x9a,
|
||||||
0xb2, 0x2b, 0xfa, 0x01, 0x92, 0x60, 0x8e, 0xf7, 0x0a, 0x73, 0xe5, 0x2b, 0x90, 0xb4, 0xcc, 0x5c,
|
0xb2, 0x2b, 0xfa, 0x01, 0x92, 0x60, 0x8e, 0xf7, 0x0a, 0x73, 0xe5, 0x2b, 0x90, 0xb4, 0xcc, 0x5c,
|
||||||
0x59, 0xd1, 0x3f, 0x80, 0x22, 0x09, 0x75, 0xa6, 0xa1, 0xd3, 0x3e, 0x66, 0xf4, 0xcc, 0x51, 0x01,
|
0x58, 0xd1, 0x3f, 0x80, 0x22, 0x09, 0x75, 0xa6, 0xa1, 0xd3, 0x3e, 0x66, 0xf4, 0xcc, 0x51, 0x01,
|
||||||
0x5c, 0x83, 0xcc, 0x72, 0x5c, 0x5c, 0xce, 0x52, 0xb4, 0x9c, 0xa0, 0x5d, 0x1c, 0xc7, 0x59, 0x21,
|
0x5c, 0x83, 0xcc, 0x72, 0x5c, 0x5c, 0xce, 0x52, 0xb4, 0x9c, 0xa0, 0x5d, 0x1c, 0xc7, 0x59, 0x21,
|
||||||
0x98, 0x90, 0x68, 0x57, 0x96, 0x65, 0xc6, 0x28, 0x07, 0xbf, 0x02, 0x7a, 0xae, 0x34, 0x8a, 0xc3,
|
0x98, 0x90, 0x68, 0x57, 0x96, 0x65, 0xc6, 0x28, 0x07, 0xbf, 0x02, 0x7a, 0xae, 0x34, 0x8a, 0xc3,
|
||||||
0xf0, 0x21, 0xab, 0xb1, 0x3c, 0x53, 0x8e, 0xc2, 0xa1, 0x92, 0x7d, 0x2e, 0x24, 0x01, 0xe9, 0x4f,
|
0xf0, 0x21, 0xab, 0xb1, 0x3c, 0x53, 0x8e, 0xc2, 0xa1, 0x92, 0x7d, 0x2e, 0x24, 0x01, 0xe9, 0x4f,
|
||||||
0xcb, 0x8f, 0xc7, 0xa3, 0xf9, 0x33, 0x50, 0x06, 0xef, 0x0b, 0x25, 0xba, 0x42, 0xf1, 0x31, 0x6c,
|
0xdb, 0x8f, 0xc7, 0xa3, 0x59, 0x0c, 0x94, 0xc1, 0xfb, 0x42, 0x89, 0xae, 0x50, 0x7c, 0x0c, 0x9b,
|
||||||
0xba, 0x01, 0xef, 0x31, 0xaa, 0xc4, 0x6f, 0x90, 0xfd, 0xb4, 0x2e, 0x3e, 0x95, 0x23, 0x06, 0x02,
|
0x6e, 0xc0, 0x7b, 0x8c, 0x2a, 0xf1, 0x1b, 0x64, 0x3f, 0xed, 0x8b, 0x4f, 0xe5, 0x88, 0x81, 0x40,
|
||||||
0x85, 0x90, 0x8e, 0x06, 0xe2, 0x82, 0xc3, 0x10, 0xe4, 0x9a, 0xef, 0xf3, 0x56, 0x6b, 0xc1, 0xfb,
|
0x21, 0xa4, 0x2b, 0x03, 0x71, 0xc1, 0x61, 0x08, 0x72, 0xcd, 0xf7, 0x79, 0xab, 0xb5, 0xe0, 0xfd,
|
||||||
0x35, 0xa4, 0xc3, 0xe1, 0xb0, 0x86, 0xf4, 0x0f, 0xb6, 0x23, 0x28, 0x14, 0x1c, 0x8a, 0xca, 0x53,
|
0x1a, 0xd2, 0xe1, 0x70, 0x58, 0x43, 0xfa, 0x47, 0xb5, 0x23, 0x28, 0x14, 0x1c, 0x8a, 0xca, 0x53,
|
||||||
0x82, 0x51, 0xe2, 0xb9, 0x0d, 0x26, 0xac, 0x12, 0x13, 0xda, 0x2a, 0x14, 0x27, 0x4d, 0x97, 0x11,
|
0x82, 0x51, 0xe2, 0xb9, 0x04, 0x13, 0x56, 0x89, 0x09, 0x6d, 0x15, 0x8a, 0x93, 0xa6, 0xcb, 0x08,
|
||||||
0xaa, 0x1a, 0x86, 0xaf, 0x88, 0x72, 0xc7, 0x32, 0x67, 0xa2, 0xb8, 0xac, 0xc4, 0x8a, 0x0d, 0xfa,
|
0x55, 0x0d, 0xc3, 0x57, 0x44, 0xb9, 0xab, 0x32, 0x67, 0xa2, 0xb8, 0xac, 0xc8, 0x8a, 0x0d, 0xfa,
|
||||||
0x99, 0x6e, 0x14, 0x37, 0x9d, 0x77, 0x1a, 0xdf, 0x59, 0x83, 0x09, 0xa1, 0xfc, 0x8c, 0xec, 0x6f,
|
0xb9, 0xdc, 0x28, 0x6e, 0x3a, 0xef, 0x34, 0x7e, 0xb3, 0x06, 0x13, 0x42, 0xf9, 0x19, 0xd9, 0xff,
|
||||||
0x5b, 0xc8, 0x6a, 0xca, 0xfd, 0x91, 0x72, 0x62, 0xeb, 0x45, 0x2b, 0x95, 0x01, 0xdb, 0x08, 0xea,
|
0x36, 0x90, 0xd5, 0x94, 0xfb, 0x63, 0xc9, 0x89, 0x8d, 0x17, 0xad, 0x54, 0x06, 0x6c, 0x23, 0xa8,
|
||||||
0xd4, 0xdd, 0xe4, 0x3a, 0xd2, 0x74, 0x62, 0xad, 0xb6, 0xbb, 0x47, 0x69, 0x11, 0xac, 0xba, 0x97,
|
0x63, 0x77, 0xb3, 0xd6, 0xb1, 0x4c, 0x47, 0xd6, 0x2a, 0xdd, 0x3d, 0x4a, 0x8b, 0x60, 0xd5, 0xbd,
|
||||||
0xde, 0x9e, 0xb5, 0xc2, 0x17, 0x7a, 0xf6, 0x15, 0x59, 0xbd, 0x03, 0x2d, 0x1a, 0x29, 0x5e, 0x8c,
|
0xf4, 0xf6, 0xac, 0x15, 0xbe, 0xd0, 0xb3, 0x9f, 0xc8, 0xf2, 0xbd, 0x53, 0x05, 0xe6, 0xfd, 0xb8,
|
||||||
0x67, 0x1a, 0x14, 0x66, 0x8d, 0x50, 0xd4, 0x9d, 0xaa, 0x34, 0x2d, 0x2e, 0xd7, 0x55, 0xab, 0xe7,
|
0xee, 0x6b, 0xd1, 0x20, 0xdf, 0x2d, 0x07, 0xe6, 0x51, 0x8a, 0x97, 0xde, 0xae, 0x84, 0x59, 0x23,
|
||||||
0xb6, 0xd9, 0x86, 0xff, 0xf1, 0x29, 0x27, 0xd0, 0xa1, 0x68, 0x08, 0x18, 0xbf, 0x4c, 0x7d, 0x35,
|
0x14, 0x75, 0x60, 0x94, 0xa6, 0xc5, 0xe5, 0xba, 0x52, 0xc0, 0xdc, 0x4d, 0xab, 0x83, 0x3f, 0x3e,
|
||||||
0x3d, 0x0e, 0x2a, 0x60, 0xcd, 0xd7, 0x7e, 0xe5, 0x18, 0x06, 0xa5, 0x5e, 0x36, 0xc5, 0xb9, 0x51,
|
0xe5, 0x04, 0x3a, 0x14, 0x0d, 0x01, 0xe3, 0x97, 0xa9, 0xdd, 0xa6, 0xf5, 0x41, 0x05, 0xac, 0xf9,
|
||||||
0xb8, 0xd5, 0x90, 0x8d, 0x88, 0x5c, 0xbf, 0x83, 0x8a, 0x12, 0xe8, 0x67, 0x6d, 0x1d, 0x59, 0xca,
|
0xda, 0xaf, 0x84, 0xc4, 0xa0, 0xd4, 0x4b, 0x52, 0x9c, 0x1b, 0xe2, 0x5b, 0x0d, 0xd9, 0x08, 0xd4,
|
||||||
0x9b, 0x56, 0xff, 0x87, 0x96, 0xa6, 0x37, 0x2d, 0x1d, 0xb7, 0x45, 0xe6, 0x24, 0x9c, 0x33, 0x20,
|
0xc9, 0x20, 0xa8, 0x28, 0x81, 0x7e, 0xa6, 0xdc, 0x71, 0x40, 0x79, 0xd3, 0xea, 0xff, 0xd0, 0xe9,
|
||||||
0xb3, 0xbd, 0x4e, 0xa7, 0xd3, 0x58, 0xf9, 0xa5, 0xaf, 0x0d, 0x7c, 0xe6, 0x6d, 0x9d, 0x83, 0x7c,
|
0xf4, 0xa6, 0xd3, 0x63, 0x5a, 0x64, 0x4e, 0xc2, 0x39, 0x03, 0x32, 0xab, 0xee, 0x74, 0x3a, 0x8d,
|
||||||
0xde, 0xaf, 0xfe, 0xb2, 0x74, 0x9e, 0xf7, 0x0a, 0x18, 0x14, 0xba, 0x5f, 0xe4, 0xad, 0xc1, 0x88,
|
0x91, 0x5f, 0xfa, 0xda, 0xc0, 0x67, 0xde, 0xd6, 0x39, 0xc8, 0xe7, 0xfd, 0x6a, 0xc9, 0x96, 0xf3,
|
||||||
0x5e, 0xcf, 0x8a, 0x9a, 0xbe, 0x6e, 0x6c, 0x33, 0x39, 0x3b, 0x81, 0x7a, 0xa3, 0x18, 0x74, 0xdd,
|
0xbc, 0x57, 0xc0, 0xa0, 0xd0, 0xfd, 0xc2, 0x7a, 0x0d, 0xa6, 0x17, 0xf5, 0x4c, 0xb4, 0x69, 0xf7,
|
||||||
0x6c, 0xfd, 0x28, 0x0c, 0x37, 0x9f, 0x0f, 0x5e, 0x57, 0x9c, 0xd2, 0xed, 0x05, 0x73, 0xfd, 0x98,
|
0x46, 0x9a, 0x49, 0xf0, 0x09, 0xd4, 0x1b, 0xc1, 0xa0, 0xeb, 0xe6, 0x89, 0x88, 0xc2, 0x70, 0xf3,
|
||||||
0x6c, 0xd7, 0xeb, 0xa9, 0x9e, 0x1e, 0xb7, 0xeb, 0xaa, 0x5f, 0x9c, 0xb8, 0x09, 0xe0, 0x75, 0xc1,
|
0xfd, 0xe0, 0x75, 0xc7, 0x29, 0xdd, 0xde, 0x30, 0xc7, 0x8f, 0xc9, 0x76, 0xbc, 0x9e, 0xe2, 0xe9,
|
||||||
0x1d, 0xc2, 0xa2, 0x82, 0xe2, 0x92, 0x8b, 0xee, 0xb9, 0xd7, 0xd2, 0x48, 0x5f, 0x0a, 0x59, 0x23,
|
0x71, 0x3b, 0xae, 0xfa, 0x45, 0xa0, 0x9b, 0x00, 0x5e, 0x37, 0xdc, 0x21, 0x2c, 0x2a, 0x28, 0x2e,
|
||||||
0x55, 0x60, 0x06, 0x8f, 0x51, 0x90, 0x7e, 0x9c, 0x64, 0xf1, 0xa5, 0x4b, 0x02, 0x67, 0x34, 0x4d,
|
0xb9, 0xe8, 0x9e, 0x7b, 0x2d, 0x0d, 0xf5, 0xa5, 0x90, 0x35, 0x32, 0x0a, 0x63, 0xf0, 0x18, 0x05,
|
||||||
0xbc, 0xcd, 0xc7, 0x6f, 0x56, 0x4a, 0x30, 0x93, 0xaf, 0xd7, 0xe7, 0x94, 0x94, 0xc1, 0xf3, 0x4a,
|
0xe9, 0xc7, 0x89, 0x16, 0x5f, 0x3a, 0x83, 0x70, 0x42, 0xd3, 0xc4, 0xdb, 0x7c, 0xfd, 0x66, 0xa7,
|
||||||
0xf6, 0xc8, 0x12, 0x99, 0x9a, 0xb1, 0x68, 0x9f, 0xfd, 0x77, 0xb7, 0x68, 0xd9, 0xaf, 0xc3, 0xcc,
|
0x04, 0x63, 0x08, 0x7a, 0x7d, 0x4e, 0x49, 0x19, 0x3c, 0xaf, 0x68, 0x8f, 0x6c, 0x21, 0x53, 0x33,
|
||||||
0x74, 0xe8, 0xc1, 0x50, 0x78, 0x9d, 0x3e, 0xdb, 0xef, 0x80, 0xa4, 0xb3, 0x38, 0x26, 0x28, 0x3f,
|
0x16, 0xee, 0xb3, 0xff, 0xae, 0x16, 0x2d, 0xfb, 0xb5, 0xc7, 0x99, 0x0e, 0x3d, 0x98, 0x12, 0x5e,
|
||||||
0xd0, 0xba, 0x11, 0x52, 0x63, 0xae, 0x87, 0xc0, 0xe8, 0xb0, 0x86, 0x1c, 0xa4, 0x36, 0x48, 0x6f,
|
0x87, 0xd2, 0xf6, 0x3b, 0x20, 0xe9, 0x4c, 0x8e, 0xf1, 0xcf, 0x0f, 0xb4, 0x6e, 0x84, 0xd4, 0x98,
|
||||||
0xe7, 0x7c, 0xd8, 0x7d, 0xff, 0xf6, 0xdd, 0xd3, 0xd6, 0x8b, 0x8b, 0x09, 0x1e, 0x86, 0x5d, 0xad,
|
0xeb, 0x21, 0x30, 0x3c, 0xac, 0x21, 0x07, 0xa9, 0xf5, 0xd7, 0xdb, 0xf1, 0x1f, 0x76, 0xdf, 0xbf,
|
||||||
0xce, 0xb7, 0xd3, 0xb0, 0xd3, 0x02, 0x2b, 0xdd, 0x8b, 0x06, 0x17, 0x54, 0x5f, 0xcd, 0x8c, 0xbe,
|
0x7d, 0xf7, 0xb4, 0xd5, 0xe2, 0x22, 0x82, 0x87, 0x61, 0x57, 0xab, 0xf3, 0xed, 0x34, 0xec, 0xb4,
|
||||||
0x9d, 0xc9, 0x24, 0x49, 0xee, 0xa2, 0x20, 0x75, 0xe1, 0x60, 0x32, 0xa3, 0x76, 0xce, 0x78, 0x23,
|
0xc0, 0x4a, 0xf7, 0xa2, 0xc1, 0x05, 0xd5, 0x57, 0x33, 0xa3, 0x6f, 0x67, 0x32, 0x49, 0x92, 0x3b,
|
||||||
0xc7, 0x88, 0xeb, 0x69, 0x95, 0x4e, 0x56, 0xd7, 0x6c, 0xc2, 0xe6, 0x9b, 0x2e, 0x70, 0xad, 0xdc,
|
0x87, 0x48, 0x9d, 0x67, 0x18, 0x2b, 0xa9, 0x9d, 0x32, 0xde, 0xd0, 0x31, 0xe2, 0x7a, 0x5a, 0x99,
|
||||||
0xf9, 0xcb, 0xf4, 0x96, 0xb4, 0x03, 0xb2, 0x71, 0x1d, 0xcc, 0x69, 0x90, 0x66, 0x8b, 0x13, 0xdc,
|
0x96, 0xe5, 0x35, 0x9b, 0xb0, 0xf9, 0xa6, 0x0b, 0x5c, 0x2b, 0x77, 0xfe, 0x32, 0xbd, 0x25, 0xed,
|
||||||
0x37, 0x73, 0xe7, 0xc0, 0xcf, 0x47, 0x3f, 0x0d, 0x1f, 0xac, 0x1f, 0xba, 0x29, 0x87, 0x3e, 0x99,
|
0x80, 0x6c, 0xdc, 0x12, 0xb3, 0x1b, 0xa4, 0xd9, 0xa2, 0x04, 0xf7, 0x64, 0xae, 0x22, 0xf8, 0xf9,
|
||||||
0x5b, 0xc1, 0xc6, 0x02, 0x4a, 0x2d, 0x5d, 0x47, 0x2e, 0x50, 0x95, 0x49, 0xa0, 0x99, 0x61, 0xb4,
|
0xe8, 0xa7, 0xe1, 0x83, 0xd5, 0x43, 0x37, 0xd9, 0xd3, 0x27, 0x73, 0x59, 0x58, 0x5b, 0x40, 0xa9,
|
||||||
0x95, 0x3a, 0xc7, 0x24, 0x33, 0xf7, 0x58, 0x3d, 0x46, 0x62, 0x89, 0x09, 0x50, 0xee, 0x05, 0xa9,
|
0x2d, 0xd7, 0x15, 0x17, 0xa8, 0xca, 0x38, 0xd0, 0x5c, 0x61, 0xb4, 0xe5, 0x3a, 0xc7, 0x24, 0x33,
|
||||||
0xda, 0x2f, 0x5f, 0xbd, 0xd8, 0x7e, 0x38, 0x03, 0xa9, 0x59, 0xb5, 0x00, 0xa4, 0x14, 0xf2, 0xdd,
|
0xd7, 0x5b, 0x3d, 0x3a, 0x65, 0x89, 0x09, 0x50, 0xee, 0x05, 0xa9, 0xda, 0x2f, 0x8f, 0x5e, 0x6c,
|
||||||
0x9d, 0xf3, 0x38, 0xda, 0xdc, 0x79, 0xf8, 0x62, 0x07, 0x1c, 0x7b, 0xaa, 0x90, 0x00, 0xdc, 0xc3,
|
0x7f, 0x9c, 0x80, 0xd4, 0xcc, 0x5a, 0x00, 0x52, 0x0a, 0xf9, 0x6e, 0xe6, 0x3c, 0x8e, 0x36, 0x33,
|
||||||
0x9c, 0x78, 0x8f, 0x0b, 0x89, 0xa7, 0xa3, 0xd1, 0xee, 0x63, 0xbf, 0xf2, 0x29, 0xd4, 0x98, 0xb2,
|
0x0f, 0x5f, 0xec, 0x80, 0x63, 0x4f, 0x15, 0x12, 0x80, 0x7b, 0x98, 0x13, 0xef, 0x71, 0x29, 0xe2,
|
||||||
0x9b, 0xdc, 0x70, 0xce, 0xdd, 0xbf, 0x9f, 0x2d, 0x0d, 0x56, 0xea, 0xc5, 0x74, 0xee, 0x2e, 0x70,
|
0xe9, 0x68, 0xb8, 0xfb, 0xd8, 0xaf, 0x74, 0x0a, 0x35, 0xa6, 0xec, 0xc6, 0x37, 0x9c, 0x72, 0xf7,
|
||||||
0xd8, 0xdb, 0x00, 0xba, 0x1f, 0x81, 0xf7, 0xf1, 0x25, 0xa7, 0xf0, 0x0e, 0xdf, 0x9b, 0x81, 0x0f,
|
0xef, 0x7b, 0x4b, 0x83, 0x95, 0x7a, 0x31, 0x9d, 0xbb, 0x33, 0x1c, 0xf6, 0xd6, 0x80, 0xee, 0x47,
|
||||||
0xff, 0x31, 0xf0, 0x87, 0xbb, 0x48, 0x1b, 0x07, 0x71, 0xba, 0xaa, 0xed, 0x85, 0x38, 0xec, 0xcc,
|
0xe0, 0x7d, 0x7c, 0xc9, 0x29, 0xbc, 0xc3, 0xf7, 0x66, 0xe0, 0xc3, 0x7f, 0x0c, 0xfc, 0xe1, 0xce,
|
||||||
0x05, 0xac, 0xbc, 0x69, 0x16, 0x27, 0x0f, 0x27, 0xb6, 0x30, 0xfc, 0x05, 0x5d, 0xc6, 0x4e, 0xd9,
|
0xd2, 0xc6, 0x41, 0x9c, 0x6e, 0x70, 0x7b, 0x4f, 0x0e, 0x3b, 0x73, 0x2f, 0x2b, 0x6f, 0x9a, 0xc5,
|
||||||
0x86, 0x08, 0x00, 0x00
|
0x49, 0xc3, 0x89, 0x0d, 0x0c, 0x7f, 0x01, 0xbc, 0xb1, 0xff, 0x31, 0x9d, 0x08, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/settings.htm, do not edit!!
|
// Autogenerated from wled00/data/settings.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_length = 985;
|
const uint16_t PAGE_settings_length = 985;
|
||||||
const uint8_t PAGE_settings[] PROGMEM = {
|
const uint8_t PAGE_settings[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x56, 0x6d, 0x6f, 0xdb, 0x36,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x56, 0x6d, 0x6f, 0xdb, 0x36,
|
||||||
0x10, 0xfe, 0xee, 0x5f, 0xc1, 0xb0, 0x58, 0x23, 0xa1, 0xb2, 0xec, 0x38, 0xc3, 0xb0, 0xc9, 0x96,
|
0x10, 0xfe, 0xee, 0x5f, 0xc1, 0xb0, 0x58, 0x23, 0xa1, 0xb2, 0xec, 0x38, 0xc3, 0xb0, 0xc9, 0x96,
|
||||||
0x8b, 0x35, 0x2f, 0x9d, 0x87, 0x04, 0x0d, 0x90, 0xa4, 0xdd, 0x80, 0x7d, 0xa1, 0xc9, 0x93, 0xcc,
|
0x8b, 0x35, 0x2f, 0x9d, 0x87, 0x04, 0x0d, 0x90, 0xa4, 0xdd, 0x80, 0x7d, 0xa1, 0xc9, 0x93, 0xcc,
|
||||||
0x46, 0x22, 0x05, 0xf2, 0xe4, 0xc4, 0x73, 0xf3, 0xdf, 0x77, 0x94, 0x9d, 0xb7, 0x36, 0xd8, 0x8a,
|
0x46, 0x22, 0x05, 0xf2, 0xe4, 0xc4, 0x73, 0xf3, 0xdf, 0x77, 0x94, 0x9d, 0xb7, 0x36, 0xd8, 0x8a,
|
||||||
@ -133,113 +133,147 @@ const uint8_t PAGE_settings[] PROGMEM = {
|
|||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/settings_wifi.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_wifi.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_wifi_length = 1563;
|
const uint16_t PAGE_settings_wifi_length = 2098;
|
||||||
const uint8_t PAGE_settings_wifi[] PROGMEM = {
|
const uint8_t PAGE_settings_wifi[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xb5, 0x57, 0xe1, 0x6e, 0xdb, 0x36,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xb5, 0x58, 0x6b, 0x6f, 0xdb, 0xca,
|
||||||
0x10, 0xfe, 0xef, 0xa7, 0x60, 0x38, 0xa0, 0xb0, 0x50, 0x59, 0x8e, 0xed, 0xa5, 0x2b, 0x52, 0xc9,
|
0x11, 0xfd, 0xae, 0x5f, 0xb1, 0xde, 0x16, 0x06, 0x09, 0xd3, 0x94, 0x64, 0x35, 0x69, 0x60, 0x8b,
|
||||||
0x5d, 0x62, 0xbb, 0x4d, 0xb6, 0x34, 0xf5, 0xa0, 0xa0, 0xc1, 0x80, 0x01, 0x05, 0x2d, 0x9d, 0x6d,
|
0x4a, 0xfd, 0xd0, 0x8d, 0xdd, 0x3a, 0x8e, 0x0a, 0x19, 0xd7, 0x28, 0xd2, 0xe0, 0x5e, 0x9a, 0x1c,
|
||||||
0x2e, 0x14, 0xa9, 0x89, 0x94, 0x9d, 0x20, 0xcd, 0xbb, 0xef, 0x48, 0xc9, 0x8e, 0x9d, 0xc4, 0x6d,
|
0x49, 0x1b, 0x93, 0xbb, 0xbc, 0xdc, 0xa5, 0x64, 0xc3, 0xd6, 0x7f, 0xef, 0xcc, 0x2e, 0xf5, 0xb4,
|
||||||
0xd1, 0x65, 0x08, 0x1c, 0x98, 0xe4, 0xdd, 0x77, 0xc7, 0xbb, 0xef, 0x8e, 0xe7, 0x70, 0x6f, 0xf8,
|
0x9d, 0x16, 0x81, 0x8b, 0x20, 0x09, 0xb9, 0x3b, 0x3b, 0x33, 0x7b, 0xe6, 0xcc, 0x83, 0xea, 0xee,
|
||||||
0x71, 0x70, 0xf1, 0xe7, 0x78, 0x44, 0xe6, 0x26, 0x13, 0xfd, 0xd0, 0xfe, 0x27, 0x82, 0xc9, 0x59,
|
0x9c, 0x7d, 0x39, 0xbd, 0xfe, 0xd7, 0xa0, 0xcf, 0x26, 0x26, 0xcf, 0x7a, 0x5d, 0xfa, 0x97, 0x65,
|
||||||
0x44, 0x41, 0x52, 0x5c, 0x03, 0x4b, 0xfb, 0x61, 0x06, 0x86, 0x91, 0x64, 0xce, 0x0a, 0x0d, 0x26,
|
0xb1, 0x1c, 0x47, 0x1c, 0x24, 0xc7, 0x77, 0x88, 0xd3, 0x5e, 0x37, 0x07, 0x13, 0xb3, 0x64, 0x12,
|
||||||
0xa2, 0xa5, 0x99, 0xb6, 0x5e, 0xd3, 0x7a, 0xb7, 0x21, 0x59, 0x06, 0x11, 0x5d, 0x70, 0x58, 0xe6,
|
0x97, 0x1a, 0x4c, 0xc4, 0x2b, 0x33, 0xda, 0xff, 0xc0, 0xeb, 0xd5, 0x86, 0x8c, 0x73, 0x88, 0xf8,
|
||||||
0xaa, 0x30, 0x94, 0x24, 0x4a, 0x1a, 0x90, 0x28, 0xb6, 0xe4, 0xa9, 0x99, 0x47, 0x07, 0xfb, 0xfb,
|
0x54, 0xc0, 0xac, 0x50, 0xa5, 0xe1, 0x2c, 0x51, 0xd2, 0x80, 0x44, 0xb1, 0x99, 0x48, 0xcd, 0x24,
|
||||||
0x6b, 0xd1, 0x07, 0x47, 0x29, 0x2c, 0x78, 0x02, 0x2d, 0xb7, 0xf0, 0xb9, 0xe4, 0x86, 0x33, 0xd1,
|
0x7a, 0xd7, 0x6a, 0x2d, 0x45, 0xb7, 0xb6, 0x52, 0x98, 0x8a, 0x04, 0xf6, 0xed, 0x4b, 0x20, 0xa4,
|
||||||
0xd2, 0x09, 0x13, 0x10, 0x75, 0xfc, 0x8c, 0x5d, 0xf3, 0xac, 0xcc, 0xd6, 0xeb, 0x52, 0x43, 0xe1,
|
0x30, 0x22, 0xce, 0xf6, 0x75, 0x12, 0x67, 0x10, 0xb5, 0x83, 0x3c, 0xbe, 0x17, 0x79, 0x95, 0x2f,
|
||||||
0x16, 0x6c, 0x82, 0x6b, 0xa9, 0xe8, 0x23, 0xcb, 0xfd, 0xd0, 0x70, 0x23, 0xa0, 0x7f, 0xc9, 0xdf,
|
0xdf, 0x2b, 0x0d, 0xa5, 0x7d, 0x89, 0x6f, 0xf1, 0x5d, 0x2a, 0xfe, 0xcc, 0x72, 0xaf, 0x6b, 0x84,
|
||||||
0x71, 0x12, 0x83, 0x31, 0x5c, 0xce, 0x74, 0xd8, 0xae, 0x36, 0x43, 0x9d, 0x14, 0x3c, 0x37, 0xfd,
|
0xc9, 0xa0, 0x77, 0x23, 0x7e, 0x11, 0x6c, 0x08, 0xc6, 0x08, 0x39, 0xd6, 0xdd, 0xa6, 0x5b, 0xec,
|
||||||
0xc6, 0x82, 0x15, 0x44, 0xa8, 0x84, 0xe7, 0x7e, 0x1a, 0xa5, 0x2a, 0x29, 0x33, 0x74, 0xc8, 0xc7,
|
0xea, 0xa4, 0x14, 0x85, 0xe9, 0x35, 0xa6, 0x71, 0xc9, 0x32, 0x95, 0x88, 0x22, 0x48, 0xa3, 0x54,
|
||||||
0x8d, 0x68, 0xaf, 0xf3, 0x66, 0x5a, 0xca, 0xc4, 0x70, 0x25, 0xc9, 0x49, 0xd3, 0xbb, 0x5d, 0x72,
|
0x25, 0x55, 0x8e, 0x0e, 0x05, 0xb8, 0x10, 0xed, 0xb4, 0x03, 0x54, 0x2f, 0x2f, 0x95, 0x2a, 0x74,
|
||||||
0x99, 0xaa, 0x65, 0xa0, 0x72, 0x90, 0x4d, 0x3a, 0x37, 0x26, 0xd7, 0x87, 0xed, 0xf6, 0x95, 0x54,
|
0xd4, 0x0a, 0x8a, 0x12, 0x86, 0xf8, 0x3a, 0x1c, 0x5e, 0x9c, 0x45, 0x9c, 0x1f, 0x8d, 0x2a, 0x99,
|
||||||
0xc1, 0x52, 0x40, 0x1a, 0xcc, 0xa0, 0x3d, 0x05, 0x66, 0xca, 0x02, 0x74, 0x5b, 0xd7, 0xb6, 0xda,
|
0x18, 0xa1, 0x24, 0x1b, 0x5f, 0xa4, 0x1e, 0xf8, 0x8f, 0x25, 0x98, 0xaa, 0x94, 0x2c, 0x0d, 0xc7,
|
||||||
0x3f, 0x2d, 0xf9, 0x94, 0xb7, 0x56, 0x4b, 0xea, 0xdd, 0xad, 0x01, 0x8f, 0x1f, 0x02, 0xae, 0x95,
|
0x60, 0xfa, 0x19, 0x90, 0x96, 0x93, 0x07, 0xbb, 0x35, 0x5f, 0x8a, 0x26, 0xfd, 0x0d, 0xc9, 0xa4,
|
||||||
0xa8, 0x4f, 0x3f, 0x6b, 0x10, 0xd3, 0x4d, 0x69, 0xa1, 0x58, 0xfa, 0x5b, 0xdc, 0x34, 0x3e, 0x44,
|
0x84, 0xd8, 0x40, 0x2d, 0xbc, 0x21, 0x78, 0xee, 0xf9, 0x8f, 0x33, 0x21, 0x53, 0x35, 0x0b, 0x55,
|
||||||
0x7b, 0xfb, 0xde, 0xad, 0x00, 0x43, 0x54, 0x94, 0x06, 0x49, 0x81, 0x16, 0x61, 0x24, 0xc0, 0xfa,
|
0x01, 0xd2, 0xe3, 0x13, 0x63, 0x0a, 0x7d, 0xd8, 0x6c, 0xde, 0x49, 0x15, 0xce, 0x32, 0x20, 0x2b,
|
||||||
0xdc, 0xa4, 0xd5, 0x8d, 0xa8, 0xf7, 0x46, 0x05, 0x08, 0x76, 0x64, 0x4c, 0xc1, 0x27, 0xa5, 0x01,
|
0xcd, 0x11, 0x9e, 0xae, 0x4a, 0xd0, 0x4d, 0x5d, 0x5f, 0xad, 0xf9, 0xa7, 0x99, 0x18, 0x89, 0xfd,
|
||||||
0x3c, 0x28, 0x12, 0xea, 0x1b, 0xcf, 0x7f, 0xb8, 0x6f, 0x6e, 0x72, 0x40, 0x73, 0x06, 0xae, 0x4d,
|
0xc5, 0x2b, 0x5f, 0x53, 0x78, 0xb2, 0xad, 0x70, 0x79, 0x88, 0x07, 0xfc, 0x37, 0x0d, 0xd9, 0x68,
|
||||||
0xfb, 0x6f, 0xb6, 0x60, 0x2b, 0x80, 0x47, 0x82, 0x4c, 0xdf, 0x48, 0x84, 0x00, 0xcf, 0x4f, 0x83,
|
0x5d, 0xfa, 0x0a, 0xa5, 0x31, 0x34, 0xda, 0x30, 0x88, 0x3c, 0x84, 0xe2, 0xa3, 0xb5, 0x8f, 0xe6,
|
||||||
0x89, 0x4a, 0x6f, 0x02, 0x96, 0xa3, 0xd3, 0xe9, 0x60, 0xce, 0x45, 0xda, 0x54, 0x56, 0x9e, 0xa5,
|
0xf9, 0x9e, 0x45, 0xea, 0x90, 0x73, 0x7f, 0x8f, 0x37, 0xbf, 0x6b, 0x25, 0x9b, 0x12, 0x0c, 0x0f,
|
||||||
0xe9, 0x68, 0x81, 0x5e, 0x9c, 0x71, 0x8d, 0x19, 0x85, 0xa2, 0x49, 0xad, 0xcf, 0xd4, 0x6f, 0x7a,
|
0x4c, 0x44, 0x28, 0x70, 0x82, 0x8b, 0xfb, 0x47, 0x26, 0x4c, 0x85, 0xa6, 0xa8, 0xa4, 0xd1, 0x4e,
|
||||||
0x51, 0xff, 0xf6, 0x3d, 0x98, 0x4f, 0x4d, 0xef, 0xee, 0x69, 0x39, 0x28, 0x0a, 0x55, 0xa0, 0x7b,
|
0x2b, 0x30, 0xa1, 0x90, 0x12, 0xca, 0xf3, 0xeb, 0xcf, 0x97, 0x11, 0x27, 0x04, 0x25, 0x9a, 0x0d,
|
||||||
0x28, 0x87, 0x74, 0xd0, 0x4a, 0x40, 0x20, 0xd4, 0xac, 0x49, 0x47, 0x76, 0x9f, 0xd4, 0x97, 0xc7,
|
0xc3, 0x90, 0x07, 0x23, 0x30, 0xc9, 0x04, 0xef, 0x1d, 0x9a, 0x09, 0xba, 0x04, 0x51, 0x0f, 0x42,
|
||||||
0xc0, 0x90, 0x29, 0x17, 0xe0, 0xae, 0x81, 0xf9, 0x2f, 0xf0, 0xba, 0x67, 0xf5, 0xbe, 0x9a, 0x5a,
|
0x52, 0xe9, 0xf9, 0xab, 0x95, 0x2f, 0xb7, 0xdf, 0x21, 0x31, 0x61, 0xac, 0xb5, 0x18, 0x4b, 0xef,
|
||||||
0x8a, 0x4d, 0xf9, 0xac, 0x2c, 0x98, 0x8b, 0x56, 0x75, 0x0d, 0x32, 0x65, 0xdc, 0x26, 0xe6, 0x2f,
|
0x71, 0x1e, 0x3c, 0xa2, 0xbd, 0x99, 0x2a, 0xef, 0xf4, 0xe1, 0xd7, 0x6f, 0xf3, 0x00, 0xcf, 0x2e,
|
||||||
0x79, 0x2a, 0x13, 0x95, 0xe5, 0x18, 0x34, 0x20, 0x39, 0x9b, 0x01, 0x49, 0x99, 0x61, 0x7b, 0x18,
|
0xde, 0x43, 0x8d, 0x21, 0xf7, 0x3c, 0x08, 0x8c, 0x1f, 0xf5, 0x4c, 0x58, 0xe2, 0x89, 0x7d, 0xb0,
|
||||||
0xde, 0x8d, 0x00, 0xc7, 0x98, 0x0e, 0x6a, 0x0d, 0x1c, 0xd2, 0x28, 0xaa, 0xf3, 0x82, 0x1c, 0x70,
|
0xff, 0xf9, 0x61, 0x09, 0x69, 0x95, 0xc0, 0x62, 0xd3, 0x03, 0x94, 0xcd, 0xc1, 0x19, 0xc4, 0xfd,
|
||||||
0x78, 0x41, 0x5e, 0x28, 0xa3, 0x12, 0x25, 0x5e, 0xbc, 0x68, 0x3a, 0x5e, 0xec, 0xfb, 0x4d, 0x47,
|
0x34, 0x8a, 0x22, 0x63, 0x1f, 0xfc, 0xa7, 0x27, 0x08, 0x8b, 0x4a, 0x4f, 0x3c, 0xe3, 0xa3, 0xee,
|
||||||
0x98, 0xc8, 0x4a, 0x88, 0xd8, 0xa8, 0x02, 0x51, 0x91, 0x00, 0xe6, 0xd4, 0x40, 0x66, 0x2f, 0x9e,
|
0xe0, 0xeb, 0xb7, 0x35, 0x57, 0x1e, 0xc5, 0xc8, 0x6b, 0xa1, 0x28, 0x84, 0x19, 0xc8, 0xb1, 0x99,
|
||||||
0x9c, 0xe6, 0xd4, 0xf3, 0xbe, 0x7c, 0xa9, 0xc5, 0x50, 0x3f, 0xcb, 0xd1, 0xe1, 0x77, 0x88, 0x4f,
|
0xec, 0xee, 0x2e, 0xd9, 0xd1, 0x6d, 0xb7, 0xfc, 0x3a, 0xaa, 0xcb, 0xb5, 0xbd, 0xbd, 0x60, 0xaa,
|
||||||
0x3e, 0xa8, 0x14, 0x02, 0x32, 0x16, 0xc0, 0x34, 0x10, 0x0c, 0x04, 0x14, 0xe4, 0xf2, 0x6c, 0x34,
|
0x44, 0xca, 0x10, 0xe7, 0x6b, 0x91, 0x83, 0xaa, 0x8c, 0x77, 0x15, 0xb4, 0xa1, 0xe3, 0x1f, 0xad,
|
||||||
0x24, 0xa7, 0x63, 0x74, 0xc9, 0xdf, 0x42, 0xd4, 0xdb, 0x88, 0xbe, 0x43, 0xf3, 0x3c, 0x2b, 0xe5,
|
0x91, 0xea, 0x28, 0x03, 0xc3, 0xa4, 0x03, 0xef, 0x74, 0x88, 0xd0, 0xa1, 0x0d, 0xe9, 0x3f, 0xd2,
|
||||||
0xe8, 0x60, 0xe1, 0xdf, 0x3a, 0x26, 0x22, 0x11, 0xe9, 0x4b, 0x77, 0x7c, 0x48, 0xa9, 0xf7, 0xf2,
|
0xaa, 0x89, 0x90, 0x2d, 0x1c, 0x23, 0x83, 0xf7, 0xb7, 0x98, 0xa2, 0xa2, 0x63, 0x63, 0x4a, 0x71,
|
||||||
0x9e, 0x4c, 0x6d, 0x1d, 0xfc, 0xad, 0xdf, 0xe6, 0x51, 0x87, 0xfa, 0x7b, 0x1d, 0xef, 0xae, 0x11,
|
0x5b, 0x19, 0xf0, 0xb8, 0x48, 0x31, 0x70, 0x74, 0x24, 0xd8, 0xde, 0xa1, 0x24, 0x78, 0x6d, 0x4f,
|
||||||
0xb6, 0x6b, 0xda, 0x87, 0xda, 0xdc, 0x60, 0x15, 0xfc, 0xca, 0x33, 0x5b, 0x2a, 0xa4, 0x2c, 0x04,
|
0x49, 0xcc, 0x59, 0x39, 0xa6, 0xfd, 0x6b, 0xcf, 0x47, 0x81, 0x75, 0x52, 0xcb, 0x70, 0x1a, 0x67,
|
||||||
0xd2, 0xc4, 0x6e, 0x05, 0x89, 0x46, 0xa2, 0xbe, 0x41, 0x41, 0x27, 0x10, 0xb6, 0xab, 0x82, 0xb7,
|
0x15, 0x1c, 0x8d, 0x54, 0xe9, 0x91, 0x07, 0x80, 0xfe, 0x41, 0xd7, 0x84, 0xc9, 0x44, 0x64, 0x69,
|
||||||
0x59, 0xc7, 0x64, 0x58, 0xcb, 0x11, 0xc5, 0x68, 0x61, 0x71, 0x4d, 0x55, 0x91, 0x35, 0x08, 0xc7,
|
0x09, 0xb2, 0xbe, 0xf7, 0x11, 0xec, 0xed, 0xf9, 0x08, 0x30, 0xe4, 0x6a, 0x0a, 0xa7, 0xb4, 0xe7,
|
||||||
0xb5, 0xfd, 0xf6, 0x59, 0x53, 0x52, 0xd5, 0x5f, 0x3c, 0xa5, 0x04, 0xcb, 0x7b, 0xae, 0xf0, 0x24,
|
0xad, 0x64, 0xbe, 0xc2, 0x37, 0x7f, 0xa9, 0x40, 0xa1, 0x02, 0xd5, 0x5d, 0xe0, 0x75, 0xa4, 0xf0,
|
||||||
0x57, 0xda, 0xd6, 0x61, 0xca, 0x17, 0x24, 0x11, 0x4c, 0xeb, 0x88, 0x1a, 0x85, 0xe1, 0x58, 0x6e,
|
0x5c, 0x4d, 0x2b, 0x61, 0x2f, 0xa7, 0x0a, 0x62, 0x1b, 0xdd, 0x7a, 0xcb, 0x4d, 0xeb, 0x07, 0x0f,
|
||||||
0xef, 0xcd, 0x41, 0xe4, 0xc7, 0xb4, 0xdf, 0x08, 0x91, 0x6d, 0x06, 0xb3, 0x61, 0x79, 0x19, 0xd1,
|
0xe0, 0xab, 0xfa, 0xe6, 0xe2, 0x12, 0x88, 0x35, 0x12, 0xfd, 0xfe, 0xe7, 0xc7, 0xe5, 0xce, 0x9c,
|
||||||
0x6a, 0x41, 0xd1, 0x6a, 0x22, 0x78, 0x72, 0x15, 0xd1, 0x13, 0x6b, 0xf6, 0x6d, 0xd8, 0xae, 0x0e,
|
0x79, 0xf5, 0x1b, 0x45, 0x7a, 0xce, 0xd2, 0x93, 0xdc, 0xff, 0x7d, 0x75, 0x10, 0xc3, 0x55, 0xdf,
|
||||||
0xd0, 0x35, 0x84, 0xe8, 0x3f, 0xad, 0xd3, 0x58, 0x2b, 0x1d, 0x5b, 0xa5, 0x63, 0x96, 0x5c, 0xdd,
|
0x6a, 0x77, 0x77, 0xdb, 0x88, 0x83, 0x16, 0x08, 0xc7, 0xe5, 0x23, 0x21, 0x16, 0x17, 0x98, 0x20,
|
||||||
0xeb, 0x6d, 0x69, 0xe8, 0x72, 0x92, 0x71, 0xf4, 0x31, 0x66, 0x0b, 0x20, 0x2f, 0xc8, 0x40, 0x49,
|
0xa9, 0xbb, 0x98, 0xf0, 0xe7, 0xce, 0x61, 0xb5, 0xe9, 0xb0, 0x7a, 0xd9, 0x61, 0xbe, 0x73, 0x8a,
|
||||||
0x09, 0x89, 0xb9, 0x17, 0x9e, 0x17, 0xe8, 0x57, 0x65, 0x69, 0xde, 0xad, 0x5a, 0x09, 0x06, 0xb7,
|
0x59, 0x17, 0xa8, 0x75, 0xc6, 0x7f, 0x41, 0xfe, 0x94, 0xac, 0x66, 0xa9, 0xa5, 0xfd, 0xa6, 0x09,
|
||||||
0xcc, 0x31, 0x30, 0x5d, 0xdc, 0xea, 0xf5, 0x6b, 0x0d, 0x62, 0x14, 0x81, 0x6b, 0x64, 0xb5, 0xa5,
|
0xe5, 0x07, 0x12, 0xc1, 0x2c, 0xb2, 0x38, 0x81, 0x1b, 0x61, 0x88, 0x7a, 0xf3, 0xf5, 0x04, 0x6a,
|
||||||
0xa4, 0x04, 0xb3, 0x54, 0x05, 0x9a, 0xc4, 0xf3, 0xc6, 0x79, 0xb5, 0x70, 0xd1, 0x21, 0xcd, 0x38,
|
0x3f, 0x4f, 0x20, 0x3e, 0x5f, 0xcb, 0x55, 0x8c, 0xe3, 0xa3, 0x8b, 0xd6, 0x06, 0x8b, 0x76, 0xe0,
|
||||||
0x3e, 0x1d, 0xfa, 0x04, 0x90, 0x10, 0x37, 0x56, 0x45, 0x2a, 0x63, 0xd9, 0x6b, 0x11, 0xbc, 0xc3,
|
0xe9, 0xc9, 0xba, 0xb3, 0x83, 0x84, 0xb5, 0xee, 0xd5, 0x0c, 0x3d, 0x5a, 0x91, 0x4b, 0xc8, 0xa2,
|
||||||
0x70, 0x52, 0xf4, 0x43, 0x2e, 0xf3, 0xd2, 0xd4, 0xce, 0xd9, 0xca, 0x5c, 0x85, 0x75, 0x10, 0xe3,
|
0x72, 0xdc, 0x32, 0x0f, 0x05, 0x16, 0x4e, 0x03, 0xf7, 0x94, 0xcb, 0x21, 0xe2, 0x46, 0x7a, 0xf0,
|
||||||
0xb5, 0xb0, 0x09, 0x0a, 0x90, 0x33, 0xec, 0x95, 0xb4, 0xd7, 0xc5, 0x20, 0xa2, 0xc2, 0x0a, 0x3e,
|
0xc9, 0x15, 0x54, 0xf7, 0xbc, 0x79, 0x63, 0xac, 0xc6, 0x2e, 0xac, 0x3c, 0xe8, 0x1c, 0x10, 0x6c,
|
||||||
0xc7, 0x50, 0xe2, 0x97, 0xf4, 0x31, 0xca, 0xea, 0x64, 0x8d, 0x34, 0xde, 0x46, 0x7a, 0xd5, 0xab,
|
0xd6, 0x46, 0xb4, 0xc6, 0xa7, 0x00, 0xb6, 0xaf, 0xb5, 0xf4, 0x39, 0x53, 0x71, 0xfa, 0xf7, 0x21,
|
||||||
0x90, 0x62, 0x83, 0x7c, 0x4f, 0x90, 0x89, 0xa4, 0x89, 0xf4, 0xc4, 0x70, 0x30, 0x43, 0xf6, 0x03,
|
0xa5, 0x23, 0x16, 0x08, 0xe7, 0xbe, 0x74, 0x74, 0xb7, 0x35, 0x19, 0x5d, 0x92, 0xdb, 0xc1, 0x2a,
|
||||||
0xf7, 0x47, 0x30, 0xc5, 0x64, 0x78, 0x32, 0x18, 0x6f, 0x39, 0x59, 0xc1, 0x9d, 0xee, 0x23, 0x5c,
|
0x13, 0x4e, 0x19, 0xb9, 0xbd, 0x4e, 0x8e, 0x23, 0xee, 0xe4, 0x79, 0xf3, 0x7b, 0x3c, 0x8d, 0x17,
|
||||||
0x65, 0x49, 0x96, 0xd9, 0x04, 0x0a, 0xba, 0xca, 0x2b, 0x52, 0x22, 0xe3, 0x32, 0xa2, 0x28, 0x80,
|
0x0a, 0x9e, 0x09, 0xc6, 0xfa, 0x41, 0xa2, 0x0a, 0xcc, 0xeb, 0x34, 0xbc, 0x55, 0xe9, 0xc3, 0x46,
|
||||||
0xe6, 0x22, 0xda, 0x3d, 0x38, 0xa0, 0xa4, 0x80, 0x7f, 0x4a, 0x5e, 0x40, 0xda, 0x27, 0x01, 0xd9,
|
0x0c, 0x24, 0xc9, 0xc7, 0x69, 0xda, 0x9f, 0x62, 0x21, 0xbe, 0x14, 0x1a, 0x7b, 0x12, 0x94, 0x1e,
|
||||||
0xc6, 0xe9, 0x3c, 0x13, 0x4e, 0xf7, 0x99, 0x70, 0x7a, 0x3f, 0x86, 0xb3, 0x11, 0xca, 0x19, 0xb6,
|
0x27, 0x37, 0x79, 0xe0, 0x61, 0xc9, 0x78, 0xfc, 0x04, 0xe6, 0x57, 0xcf, 0x9f, 0xbf, 0x2c, 0x07,
|
||||||
0xe7, 0x25, 0xbb, 0xd9, 0x88, 0x59, 0xa3, 0x06, 0x7f, 0x8f, 0xba, 0xff, 0xc9, 0xc7, 0xfa, 0xb1,
|
0x65, 0xa9, 0x4a, 0x74, 0x0f, 0xe5, 0x88, 0x2d, 0x2a, 0x43, 0xca, 0xab, 0xb1, 0xc7, 0xfb, 0xb4,
|
||||||
0x7b, 0xdf, 0x79, 0x26, 0x9c, 0xee, 0x33, 0xe1, 0xf4, 0x7e, 0x08, 0xc7, 0x06, 0xa8, 0x51, 0x07,
|
0xce, 0xea, 0xfb, 0x62, 0xd1, 0x63, 0x23, 0x91, 0x81, 0xbd, 0x06, 0x76, 0x30, 0x2c, 0x56, 0xfc,
|
||||||
0x0d, 0x2b, 0x12, 0xeb, 0x07, 0xa5, 0xf4, 0xd5, 0x63, 0xb2, 0xc5, 0xdf, 0x11, 0xb7, 0xc6, 0x77,
|
0xb2, 0x5e, 0x57, 0x23, 0x6a, 0x92, 0x23, 0x31, 0xae, 0xca, 0xd8, 0x02, 0xe4, 0xae, 0xc1, 0x46,
|
||||||
0x24, 0x37, 0xee, 0x3c, 0x13, 0x4e, 0xf7, 0x99, 0x70, 0x7a, 0x3f, 0x86, 0x63, 0x03, 0x94, 0x0d,
|
0xb1, 0xa0, 0x5a, 0xff, 0x6f, 0x79, 0x21, 0x13, 0x95, 0x17, 0x88, 0x13, 0xb0, 0x22, 0x1e, 0x03,
|
||||||
0xcf, 0x63, 0x82, 0x0f, 0x2b, 0x8e, 0x1e, 0x7a, 0x55, 0xba, 0x55, 0x83, 0xb1, 0x55, 0x2b, 0x15,
|
0x4b, 0x63, 0x13, 0xef, 0x60, 0xc5, 0x5e, 0xc3, 0x74, 0x88, 0x3c, 0xe0, 0x64, 0xe0, 0x90, 0x47,
|
||||||
0xb1, 0x02, 0x55, 0xe1, 0xd6, 0x8f, 0x05, 0x59, 0x91, 0xf1, 0x89, 0x36, 0xf3, 0xc1, 0x25, 0x68,
|
0x51, 0x5d, 0xea, 0xb1, 0x58, 0x5b, 0x7d, 0x61, 0x51, 0x2a, 0xa3, 0x12, 0x95, 0xed, 0xee, 0x7a,
|
||||||
0xb3, 0xcb, 0x10, 0xf7, 0x14, 0x0a, 0xab, 0x3f, 0x10, 0x1c, 0xdf, 0x2c, 0x6c, 0x11, 0x87, 0x24,
|
0xb6, 0xb3, 0xb5, 0x02, 0xcf, 0x16, 0xf2, 0x88, 0x24, 0xb2, 0xa1, 0x51, 0x25, 0x6a, 0xa5, 0xce,
|
||||||
0xd4, 0x39, 0x93, 0x6b, 0x2f, 0x79, 0x8e, 0xfd, 0xfb, 0xfc, 0xbe, 0x99, 0x41, 0x8a, 0x2f, 0x08,
|
0x75, 0x61, 0x20, 0xa7, 0x8b, 0x27, 0x17, 0x05, 0xf7, 0xb1, 0x1c, 0xd6, 0x62, 0x78, 0x3e, 0x2f,
|
||||||
0x0a, 0x38, 0x07, 0xeb, 0x36, 0xe9, 0x9e, 0x68, 0x20, 0x47, 0x49, 0x62, 0x1d, 0x1d, 0x2b, 0x2e,
|
0xd0, 0xe1, 0x5f, 0x50, 0x3f, 0xfb, 0xac, 0x52, 0x08, 0xd9, 0x20, 0x83, 0x58, 0x03, 0x43, 0x20,
|
||||||
0x4d, 0xd5, 0x21, 0x8f, 0xc6, 0xc4, 0xb6, 0xc5, 0x27, 0x7d, 0x3f, 0x1a, 0x7f, 0xa3, 0x2f, 0x1e,
|
0x90, 0xde, 0x37, 0x97, 0xfd, 0x33, 0x76, 0x31, 0x40, 0x97, 0x82, 0x0d, 0x8d, 0x7a, 0x53, 0x63,
|
||||||
0xc5, 0x8f, 0x1c, 0x6e, 0x58, 0x85, 0x13, 0x9e, 0xa2, 0xad, 0xb1, 0x93, 0x3a, 0x24, 0x5b, 0xea,
|
0x60, 0xb5, 0xf9, 0x3e, 0x49, 0x59, 0x06, 0xfc, 0xa0, 0xb9, 0x2c, 0x9b, 0x9a, 0xc6, 0xa6, 0xf0,
|
||||||
0xc9, 0x1c, 0x92, 0xab, 0x89, 0xba, 0x5e, 0x43, 0x9c, 0x54, 0x0d, 0xd0, 0x3a, 0xb2, 0x6a, 0x96,
|
0xb1, 0x88, 0xda, 0x3c, 0xd8, 0x69, 0xfb, 0xf3, 0x46, 0xb7, 0x59, 0x37, 0xee, 0xae, 0x36, 0x0f,
|
||||||
0x8f, 0x9d, 0xb1, 0x73, 0x9a, 0xf7, 0xed, 0xee, 0x7a, 0xf4, 0xb8, 0xbb, 0x22, 0xa8, 0xc1, 0x87,
|
0xd8, 0xc7, 0xff, 0x26, 0x72, 0x6a, 0xf6, 0xac, 0x2a, 0x33, 0xa4, 0x09, 0x2d, 0x85, 0x89, 0xc6,
|
||||||
0x1e, 0xb3, 0xd8, 0x0c, 0x6e, 0x5f, 0xfb, 0xaf, 0x7a, 0x77, 0xde, 0x17, 0x7c, 0x96, 0x88, 0x9b,
|
0x2c, 0x3c, 0x42, 0x41, 0x2b, 0xd0, 0x6d, 0xba, 0x91, 0x85, 0xa2, 0x8e, 0xc1, 0x20, 0xcb, 0x98,
|
||||||
0x44, 0x23, 0x3a, 0x72, 0x26, 0xd0, 0x02, 0x26, 0x3a, 0x20, 0xaf, 0xdd, 0x5c, 0xcd, 0x30, 0x84,
|
0x46, 0x58, 0xfd, 0x7a, 0x5d, 0x2c, 0x54, 0x79, 0x83, 0x11, 0xdd, 0xe9, 0xe9, 0x37, 0xcd, 0x99,
|
||||||
0x85, 0x5e, 0xb9, 0xb5, 0x11, 0x31, 0xe2, 0x9e, 0x20, 0x14, 0xc1, 0x30, 0x8b, 0xc3, 0x6d, 0x12,
|
0x23, 0xfc, 0x70, 0xc4, 0x19, 0x0e, 0x28, 0x13, 0x85, 0x3b, 0x85, 0xd2, 0x34, 0x49, 0xa4, 0x62,
|
||||||
0x1d, 0x0d, 0x76, 0x90, 0xe8, 0x7a, 0xc5, 0xa2, 0xce, 0x8a, 0x45, 0x9d, 0xde, 0x03, 0x12, 0xe1,
|
0xca, 0x92, 0x0c, 0xfb, 0x10, 0xa6, 0x89, 0x42, 0x38, 0x66, 0x9b, 0x6b, 0x13, 0xc8, 0x8a, 0x13,
|
||||||
0xd5, 0xed, 0x05, 0xb5, 0x4d, 0x2c, 0x08, 0xfb, 0xa0, 0xd5, 0x98, 0xf8, 0x30, 0x87, 0x2a, 0x77,
|
0xde, 0x6b, 0x74, 0x91, 0x6d, 0x06, 0xa3, 0xe1, 0x12, 0xca, 0xbd, 0x70, 0xb4, 0x9a, 0x64, 0x22,
|
||||||
0x53, 0xd2, 0x82, 0x89, 0x12, 0x2c, 0x15, 0x6d, 0xaa, 0x57, 0x99, 0xb6, 0x07, 0x6c, 0x6a, 0xe7,
|
0xb9, 0x8b, 0xf8, 0x39, 0x99, 0xfd, 0xd8, 0x6d, 0xba, 0x0d, 0x74, 0x0d, 0x55, 0xf4, 0x5e, 0x3e,
|
||||||
0x98, 0x89, 0x52, 0x98, 0xd0, 0x4a, 0xf6, 0xa1, 0x4e, 0x87, 0xf6, 0x87, 0x5c, 0x6f, 0x90, 0xe3,
|
0xd3, 0x58, 0x1e, 0x3a, 0xa1, 0x43, 0x27, 0x71, 0x72, 0xb7, 0x3a, 0xb7, 0x71, 0x42, 0x57, 0xb7,
|
||||||
0x81, 0x58, 0xa3, 0x96, 0xc3, 0xec, 0x1d, 0x09, 0x6c, 0x99, 0x7a, 0x17, 0x10, 0xbe, 0x55, 0xe7,
|
0xb9, 0x40, 0x1f, 0x87, 0xf1, 0x14, 0xd8, 0x2e, 0x3b, 0x55, 0x58, 0x2d, 0x12, 0xb3, 0x12, 0x9e,
|
||||||
0xb0, 0x40, 0x6b, 0x4d, 0xfb, 0x74, 0x16, 0x80, 0xa3, 0x1d, 0x4e, 0xbf, 0x29, 0xa4, 0xde, 0x5a,
|
0x94, 0xe8, 0x97, 0xb3, 0x34, 0x39, 0x70, 0xc3, 0x10, 0x82, 0x5b, 0x15, 0x08, 0xcc, 0x01, 0x2e,
|
||||||
0xc3, 0x4e, 0x39, 0xee, 0x0a, 0xab, 0x8b, 0x3d, 0x4d, 0x57, 0xcb, 0x56, 0x0c, 0x33, 0x5f, 0xc0,
|
0x75, 0x7a, 0xf5, 0x09, 0x66, 0x14, 0x83, 0x7b, 0x64, 0x35, 0x51, 0xb2, 0x2e, 0x58, 0x28, 0xd3,
|
||||||
0x03, 0xaa, 0x8e, 0xae, 0x73, 0x28, 0xb8, 0x9d, 0xa9, 0x91, 0xf4, 0x8e, 0xa0, 0xe8, 0xba, 0xfd,
|
0x59, 0x9a, 0x6b, 0x6c, 0x7a, 0x48, 0xb8, 0xd9, 0x8e, 0xbf, 0xba, 0xdf, 0x15, 0xb9, 0x4a, 0x05,
|
||||||
0x95, 0x51, 0xc5, 0x5e, 0x0b, 0x80, 0xfc, 0x1b, 0x8c, 0xba, 0x8c, 0xab, 0xd4, 0x85, 0xbc, 0xdf,
|
0x60, 0xcd, 0x55, 0xb4, 0x7e, 0xe5, 0x94, 0x59, 0x74, 0x99, 0x67, 0x8b, 0x03, 0x03, 0x24, 0xd4,
|
||||||
0x18, 0xa0, 0x5d, 0x3b, 0xe1, 0x90, 0x25, 0x37, 0xf3, 0x75, 0xd4, 0x16, 0x1c, 0x73, 0xce, 0xb5,
|
0x03, 0x99, 0x94, 0xca, 0x10, 0xfb, 0xc9, 0x03, 0xff, 0x90, 0xc4, 0xbb, 0xb6, 0x2e, 0xb1, 0xb5,
|
||||||
0x2e, 0x41, 0x07, 0x2e, 0xc9, 0xc3, 0x6a, 0x18, 0x00, 0xe9, 0x2c, 0xf1, 0x69, 0x65, 0x8c, 0x6b,
|
0x9a, 0xc4, 0xea, 0x8a, 0xb4, 0x98, 0xf0, 0xe8, 0x71, 0x59, 0x80, 0x22, 0xde, 0x39, 0xe0, 0xd6,
|
||||||
0x62, 0x5f, 0x77, 0x3b, 0x54, 0x24, 0xaa, 0xc0, 0xeb, 0x1a, 0x71, 0xe3, 0x13, 0x2e, 0xed, 0xe8,
|
0xce, 0xc2, 0x4c, 0x81, 0x21, 0xc1, 0x87, 0xf4, 0xb9, 0xb6, 0xc5, 0xce, 0x4a, 0xd3, 0x60, 0x43,
|
||||||
0xaf, 0x41, 0x93, 0x5c, 0x2d, 0x31, 0x16, 0x76, 0x70, 0x2e, 0x33, 0x77, 0xfb, 0x20, 0x6c, 0x73,
|
0xd3, 0xfb, 0x8e, 0xd3, 0x34, 0x34, 0x98, 0x37, 0x09, 0x32, 0x9a, 0x61, 0x23, 0x23, 0x58, 0x63,
|
||||||
0x37, 0x5c, 0x55, 0xa3, 0x19, 0xce, 0x61, 0x29, 0xad, 0x6e, 0x65, 0xe6, 0x48, 0x41, 0x6c, 0xac,
|
0xc3, 0x5a, 0xa1, 0xfd, 0xc3, 0x90, 0x2a, 0xec, 0xec, 0xfc, 0x74, 0xb0, 0xe1, 0x6c, 0xad, 0xee,
|
||||||
0x17, 0xe8, 0xb1, 0xbb, 0xd6, 0x76, 0xa2, 0x47, 0x17, 0x27, 0x4f, 0x65, 0xfa, 0x5c, 0x49, 0x68,
|
0xa2, 0xc5, 0x6b, 0x4b, 0xb2, 0xca, 0x6f, 0xa1, 0xe4, 0x0b, 0x7e, 0x20, 0xb5, 0x72, 0x21, 0x23,
|
||||||
0xec, 0x4a, 0x06, 0x66, 0x6b, 0x14, 0x8f, 0x7b, 0xdd, 0xd6, 0xf8, 0xe3, 0x68, 0x97, 0xcc, 0xab,
|
0xde, 0xb2, 0xe6, 0x22, 0x7e, 0xf0, 0xee, 0x1d, 0x67, 0x25, 0xfc, 0x51, 0x09, 0x9c, 0x4d, 0x7a,
|
||||||
0x5a, 0x66, 0x08, 0xe5, 0xf5, 0x4e, 0xa0, 0x5f, 0x68, 0xff, 0xf7, 0xd3, 0x8b, 0xd6, 0xa7, 0x9d,
|
0x2c, 0x64, 0x5b, 0x7a, 0xda, 0x6f, 0xa4, 0xe7, 0xe0, 0x8d, 0xf4, 0x74, 0x7e, 0x4a, 0xcf, 0x1a,
|
||||||
0x28, 0xf8, 0xf3, 0xf2, 0x8f, 0x92, 0x4b, 0x9c, 0x94, 0x5b, 0x43, 0x3e, 0x6b, 0x7d, 0x4c, 0x0c,
|
0x94, 0x63, 0x9c, 0x74, 0x67, 0xf1, 0xc3, 0x61, 0x63, 0x0d, 0x34, 0xa7, 0xfb, 0xd3, 0x4f, 0x63,
|
||||||
0xdb, 0x09, 0xf6, 0xf3, 0xbd, 0xac, 0xb3, 0xbc, 0x4b, 0xee, 0x00, 0x79, 0x7c, 0xb1, 0xe4, 0x82,
|
0xd6, 0xd8, 0xd4, 0xf3, 0x46, 0x98, 0x7d, 0x7a, 0x23, 0xcc, 0x3e, 0xfd, 0x3c, 0x66, 0x8d, 0x1a,
|
||||||
0xcf, 0xe6, 0xe6, 0x0c, 0x2b, 0xf8, 0xeb, 0xd2, 0x48, 0xbc, 0xcb, 0xaf, 0x0a, 0x20, 0xc5, 0x1b,
|
0x34, 0xcc, 0x6c, 0xcc, 0x43, 0x94, 0xd2, 0x77, 0x87, 0xcf, 0x70, 0x1b, 0xfe, 0x0f, 0xb8, 0x35,
|
||||||
0x97, 0x17, 0x18, 0x0c, 0x8c, 0xe4, 0x7e, 0xe7, 0x5e, 0x6a, 0x93, 0x8c, 0xee, 0x53, 0x4f, 0x93,
|
0x7e, 0xe8, 0x68, 0xad, 0xa7, 0xfd, 0x46, 0x7a, 0x0e, 0xde, 0x48, 0x4f, 0xe7, 0xe7, 0xf4, 0x10,
|
||||||
0xc5, 0xff, 0x3e, 0xbb, 0xb6, 0xed, 0x60, 0x6e, 0xcb, 0xc1, 0x4e, 0xef, 0x76, 0x94, 0xb7, 0xbf,
|
0x40, 0xf9, 0xd9, 0xd5, 0x90, 0x61, 0x83, 0xc6, 0xaf, 0x22, 0xbd, 0x48, 0x5d, 0x57, 0x68, 0x28,
|
||||||
0xe8, 0xff, 0x05, 0xa1, 0x98, 0xa8, 0xba, 0xe1, 0x0f, 0x00, 0x00
|
0x6b, 0xa5, 0x62, 0x24, 0xe0, 0x12, 0xb7, 0x6e, 0x3a, 0xb5, 0xed, 0xc6, 0x46, 0xb9, 0xa9, 0x6b,
|
||||||
|
0xc3, 0xe7, 0x67, 0x55, 0x86, 0xd9, 0x96, 0x9a, 0xd1, 0xf9, 0xd3, 0x4c, 0x60, 0xef, 0xc3, 0x12,
|
||||||
|
0x71, 0xc8, 0xba, 0xba, 0x88, 0xe5, 0xd2, 0x4b, 0x51, 0x60, 0x1f, 0xb8, 0x5a, 0x15, 0x35, 0x48,
|
||||||
|
0xb1, 0x13, 0xa1, 0x80, 0x75, 0xb0, 0x2e, 0xb7, 0xb6, 0xd5, 0x03, 0x3b, 0x4e, 0x12, 0x72, 0x74,
|
||||||
|
0xa0, 0x84, 0x34, 0xb6, 0xd2, 0x36, 0x8e, 0x07, 0x8c, 0xca, 0xe3, 0x8b, 0xbe, 0x1f, 0x0f, 0x5e,
|
||||||
|
0xad, 0x8f, 0xce, 0xe1, 0xe3, 0xe7, 0x65, 0xd1, 0xa6, 0xdb, 0xb9, 0x48, 0xd1, 0xd6, 0xc0, 0x4a,
|
||||||
|
0x1d, 0xb2, 0x8d, 0xe3, 0xc9, 0x04, 0x92, 0xbb, 0x5b, 0x75, 0xbf, 0x54, 0x71, 0xee, 0x0a, 0x20,
|
||||||
|
0x39, 0xb2, 0x28, 0x96, 0xcf, 0x9d, 0xa1, 0x4f, 0x48, 0xff, 0x47, 0xd5, 0xb5, 0x56, 0x36, 0x70,
|
||||||
|
0x91, 0x5a, 0xab, 0xae, 0xa8, 0xd4, 0xe0, 0xc0, 0x80, 0x51, 0xf4, 0xc2, 0xc7, 0x0f, 0xc1, 0xfb,
|
||||||
|
0xce, 0xdc, 0x7f, 0xc2, 0x9e, 0xc1, 0xec, 0x37, 0x79, 0xc4, 0xfb, 0xd6, 0x04, 0x5a, 0xc0, 0x40,
|
||||||
|
0x87, 0xec, 0x83, 0xfd, 0x85, 0x21, 0x46, 0x08, 0x4b, 0xbd, 0x70, 0x6b, 0x0d, 0x31, 0x66, 0x5b,
|
||||||
|
0x19, 0x7d, 0xd0, 0x48, 0xc8, 0x0e, 0x37, 0x49, 0x74, 0x7c, 0xfa, 0x0a, 0x89, 0xee, 0x17, 0x2c,
|
||||||
|
0x6a, 0x2f, 0x58, 0xd4, 0xee, 0x6c, 0x91, 0x08, 0xaf, 0x4e, 0x17, 0xd4, 0x14, 0x58, 0xfb, 0x61,
|
||||||
|
0xb0, 0xd0, 0x89, 0x0d, 0xbe, 0xeb, 0x3e, 0x01, 0x98, 0x9b, 0x76, 0x91, 0x8a, 0x14, 0xea, 0x45,
|
||||||
|
0xa4, 0x69, 0x23, 0x1e, 0xd1, 0x3c, 0x74, 0xab, 0x14, 0x06, 0xd4, 0xc9, 0x6e, 0x9f, 0x69, 0xf3,
|
||||||
|
0xde, 0x99, 0xd0, 0x6b, 0xe4, 0xd8, 0x12, 0x6b, 0xd4, 0x72, 0x18, 0xbd, 0xe3, 0x0c, 0x4b, 0xa6,
|
||||||
|
0x7e, 0x4d, 0x11, 0xf6, 0xaa, 0x2b, 0x98, 0xa2, 0x35, 0x8f, 0x5a, 0x68, 0x09, 0x38, 0x22, 0xe6,
|
||||||
|
0x38, 0xd2, 0x42, 0xea, 0x2f, 0x4f, 0xd0, 0xb4, 0x64, 0xaf, 0xb0, 0xb8, 0xd8, 0xcb, 0x74, 0x25,
|
||||||
|
0xb6, 0x22, 0xcc, 0x62, 0x0a, 0x5b, 0x54, 0xed, 0xdf, 0x17, 0x50, 0x0a, 0xfa, 0x79, 0x02, 0x49,
|
||||||
|
0x6f, 0x09, 0x7a, 0xe6, 0x3e, 0x4c, 0x1c, 0xf6, 0x3a, 0x03, 0x28, 0xfe, 0x0b, 0xa3, 0x6e, 0x86,
|
||||||
|
0x2e, 0x74, 0x5d, 0xd1, 0x6b, 0x9c, 0xa2, 0x5d, 0x9a, 0x94, 0xd8, 0x0c, 0xbf, 0x08, 0x96, 0xa8,
|
||||||
|
0x4d, 0x05, 0xc6, 0x5c, 0x68, 0x5d, 0x81, 0x0e, 0x6d, 0x90, 0xcf, 0xdc, 0x50, 0x00, 0xd2, 0x5a,
|
||||||
|
0x12, 0x23, 0x67, 0x4c, 0x68, 0x46, 0xdd, 0x9d, 0x86, 0x93, 0x44, 0x95, 0x78, 0x5d, 0x93, 0x3d,
|
||||||
|
0x04, 0x4c, 0x48, 0xfa, 0x15, 0x45, 0x83, 0x66, 0x85, 0x9a, 0x21, 0x16, 0x34, 0x80, 0x57, 0xb9,
|
||||||
|
0xbd, 0x7d, 0xd8, 0x6d, 0x0a, 0x3b, 0xa4, 0xb9, 0x11, 0x0f, 0xe7, 0xb9, 0x94, 0xbb, 0x5b, 0xd1,
|
||||||
|
0x27, 0x19, 0x15, 0xd6, 0x6b, 0xf4, 0xd8, 0x4d, 0x38, 0x1b, 0x81, 0xee, 0x5f, 0x9f, 0xbf, 0x14,
|
||||||
|
0xe9, 0x2b, 0x25, 0xa1, 0xf1, 0x5a, 0x30, 0x30, 0x5a, 0xfd, 0xe1, 0xa0, 0x73, 0xb0, 0x3f, 0xf8,
|
||||||
|
0xd2, 0x7f, 0x4d, 0xe6, 0x7d, 0x2d, 0x73, 0x06, 0xd5, 0xfd, 0xab, 0x8a, 0xfe, 0xca, 0x7b, 0xff,
|
||||||
|
0xb8, 0xb8, 0xde, 0xff, 0xf5, 0x55, 0x2d, 0x1f, 0x78, 0xef, 0x9f, 0x95, 0x90, 0x38, 0x71, 0xef,
|
||||||
|
0x9f, 0x89, 0xf1, 0xfe, 0x97, 0xc4, 0xc4, 0xaf, 0x2a, 0xfb, 0xcb, 0x4a, 0xd6, 0x5a, 0x7e, 0x4d,
|
||||||
|
0xee, 0x1d, 0xf2, 0xf8, 0x7a, 0x26, 0x32, 0x31, 0x9e, 0x98, 0x4b, 0xcc, 0xe0, 0x1f, 0x4b, 0x23,
|
||||||
|
0xf1, 0x6e, 0x7e, 0x28, 0x80, 0x14, 0x6f, 0xdc, 0x5c, 0x23, 0x18, 0x88, 0x64, 0xab, 0xbd, 0x92,
|
||||||
|
0x5a, 0x27, 0xa3, 0xfd, 0x5b, 0x4f, 0xa5, 0xe5, 0xff, 0x7d, 0x06, 0x6e, 0xd2, 0x80, 0x4f, 0xe9,
|
||||||
|
0x40, 0x5f, 0x01, 0xf4, 0x49, 0x40, 0xbf, 0x6d, 0xfe, 0x07, 0x10, 0x1c, 0x76, 0x1f, 0xeb, 0x14,
|
||||||
|
0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/settings_leds.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_leds.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_leds_length = 7391;
|
const uint16_t PAGE_settings_leds_length = 7391;
|
||||||
const uint8_t PAGE_settings_leds[] PROGMEM = {
|
const uint8_t PAGE_settings_leds[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xdd, 0x3c, 0xdb, 0x56, 0xe3, 0x48,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xdd, 0x3c, 0xdb, 0x56, 0xe3, 0x48,
|
||||||
0x92, 0xef, 0xfe, 0x8a, 0x24, 0xbb, 0x9b, 0x96, 0xc6, 0xc2, 0x96, 0x7c, 0xa1, 0x29, 0xdb, 0x32,
|
0x92, 0xef, 0xfe, 0x8a, 0x24, 0xbb, 0x9b, 0x96, 0xc6, 0xc2, 0x96, 0x7c, 0xa1, 0x29, 0xdb, 0x32,
|
||||||
0x8b, 0x81, 0xaa, 0x66, 0x06, 0x1a, 0x0e, 0xa6, 0xbb, 0x66, 0x4e, 0x75, 0x9d, 0x2a, 0x59, 0x4a,
|
0x8b, 0x81, 0xaa, 0x66, 0x06, 0x1a, 0x0e, 0xa6, 0xbb, 0x66, 0x4e, 0x75, 0x9d, 0x2a, 0x59, 0x4a,
|
||||||
0xdb, 0x2a, 0x64, 0xc9, 0x23, 0xc9, 0x80, 0x17, 0xbc, 0xdf, 0xb4, 0xdf, 0xb0, 0x5f, 0xb6, 0x11,
|
0xdb, 0x2a, 0x64, 0xc9, 0x23, 0xc9, 0x80, 0x17, 0xbc, 0xdf, 0xb4, 0xdf, 0xb0, 0x5f, 0xb6, 0x11,
|
||||||
@ -707,7 +741,7 @@ const uint8_t PAGE_settings_leds[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_dmx.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_dmx.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_dmx_length = 1612;
|
const uint16_t PAGE_settings_dmx_length = 1612;
|
||||||
const uint8_t PAGE_settings_dmx[] PROGMEM = {
|
const uint8_t PAGE_settings_dmx[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x95, 0x57, 0xdb, 0x72, 0xdb, 0x36,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x95, 0x57, 0xdb, 0x72, 0xdb, 0x36,
|
||||||
0x10, 0x7d, 0xd7, 0x57, 0x20, 0x78, 0x88, 0xc9, 0x31, 0x43, 0x4a, 0x4e, 0x95, 0x36, 0x32, 0x49,
|
0x10, 0x7d, 0xd7, 0x57, 0x20, 0x78, 0x88, 0xc9, 0x31, 0x43, 0x4a, 0x4e, 0x95, 0x36, 0x32, 0x49,
|
||||||
0x37, 0x56, 0x5c, 0xdb, 0x1d, 0xdb, 0xf5, 0x44, 0x49, 0xd3, 0x4e, 0xd3, 0xe9, 0x40, 0xe4, 0x4a,
|
0x37, 0x56, 0x5c, 0xdb, 0x1d, 0xdb, 0xf5, 0x44, 0x49, 0xd3, 0x4e, 0xd3, 0xe9, 0x40, 0xe4, 0x4a,
|
||||||
0x44, 0x4c, 0x02, 0x2c, 0x00, 0x4a, 0x76, 0x2e, 0xff, 0xde, 0x05, 0x48, 0x5d, 0xec, 0xd8, 0x69,
|
0x44, 0x4c, 0x02, 0x2c, 0x00, 0x4a, 0x76, 0x2e, 0xff, 0xde, 0x05, 0x48, 0x5d, 0xec, 0xd8, 0x69,
|
||||||
@ -814,7 +848,7 @@ const uint8_t PAGE_settings_dmx[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_ui.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_ui.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_ui_length = 3090;
|
const uint16_t PAGE_settings_ui_length = 3090;
|
||||||
const uint8_t PAGE_settings_ui[] PROGMEM = {
|
const uint8_t PAGE_settings_ui[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x59, 0x6b, 0x73, 0xda, 0x48,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x59, 0x6b, 0x73, 0xda, 0x48,
|
||||||
0x16, 0xfd, 0xce, 0xaf, 0xe8, 0x74, 0x52, 0x1e, 0x54, 0x56, 0x04, 0x4e, 0x66, 0x6b, 0x13, 0x40,
|
0x16, 0xfd, 0xce, 0xaf, 0xe8, 0x74, 0x52, 0x1e, 0x54, 0x56, 0x04, 0x4e, 0x66, 0x6b, 0x13, 0x40,
|
||||||
0x78, 0x63, 0xc7, 0x93, 0x78, 0xca, 0xd9, 0x64, 0x83, 0xbd, 0x99, 0xad, 0xac, 0xcb, 0x23, 0xa4,
|
0x78, 0x63, 0xc7, 0x93, 0x78, 0xca, 0xd9, 0x64, 0x83, 0xbd, 0x99, 0xad, 0xac, 0xcb, 0x23, 0xa4,
|
||||||
0x06, 0x3a, 0x16, 0x92, 0x46, 0xdd, 0x32, 0x66, 0x09, 0xff, 0x7d, 0xcf, 0xed, 0x96, 0x40, 0x60,
|
0x06, 0x3a, 0x16, 0x92, 0x46, 0xdd, 0x32, 0x66, 0x09, 0xff, 0x7d, 0xcf, 0xed, 0x96, 0x40, 0x60,
|
||||||
@ -1014,7 +1048,7 @@ const uint8_t PAGE_settings_ui[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_sync.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_sync.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_sync_length = 3345;
|
const uint16_t PAGE_settings_sync_length = 3345;
|
||||||
const uint8_t PAGE_settings_sync[] PROGMEM = {
|
const uint8_t PAGE_settings_sync[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x5a, 0xeb, 0x73, 0xe2, 0x38,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x5a, 0xeb, 0x73, 0xe2, 0x38,
|
||||||
0x12, 0xff, 0xee, 0xbf, 0x42, 0xe3, 0xad, 0x9a, 0x83, 0x0d, 0x01, 0x13, 0x42, 0x26, 0x93, 0x60,
|
0x12, 0xff, 0xee, 0xbf, 0x42, 0xe3, 0xad, 0x9a, 0x83, 0x0d, 0x01, 0x13, 0x42, 0x26, 0x93, 0x60,
|
||||||
0xcf, 0x85, 0x90, 0x49, 0xb8, 0x9d, 0x24, 0x0c, 0x24, 0xfb, 0xa8, 0xba, 0xaa, 0x2d, 0x61, 0x0b,
|
0xcf, 0x85, 0x90, 0x49, 0xb8, 0x9d, 0x24, 0x0c, 0x24, 0xfb, 0xa8, 0xba, 0xaa, 0x2d, 0x61, 0x0b,
|
||||||
0x70, 0x62, 0x5b, 0x5e, 0x4b, 0xce, 0xa3, 0x66, 0xe7, 0x7f, 0xbf, 0x6e, 0xc9, 0x36, 0xe0, 0xf0,
|
0x70, 0x62, 0x5b, 0x5e, 0x4b, 0xce, 0xa3, 0x66, 0xe7, 0x7f, 0xbf, 0x6e, 0xc9, 0x36, 0xe0, 0xf0,
|
||||||
@ -1230,7 +1264,7 @@ const uint8_t PAGE_settings_sync[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_time.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_time.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_time_length = 3313;
|
const uint16_t PAGE_settings_time_length = 3313;
|
||||||
const uint8_t PAGE_settings_time[] PROGMEM = {
|
const uint8_t PAGE_settings_time[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xd5, 0x1a, 0x6b, 0x57, 0xdb, 0x38,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xd5, 0x1a, 0x6b, 0x57, 0xdb, 0x38,
|
||||||
0xf6, 0x7b, 0x7e, 0x85, 0x50, 0x7b, 0x98, 0x78, 0x70, 0x9e, 0x90, 0x16, 0x92, 0xd8, 0xdd, 0x10,
|
0xf6, 0x7b, 0x7e, 0x85, 0x50, 0x7b, 0x98, 0x78, 0x70, 0x9e, 0x90, 0x16, 0x92, 0xd8, 0xdd, 0x10,
|
||||||
0xd2, 0x42, 0x4b, 0x02, 0x67, 0x92, 0x0e, 0xbb, 0xd3, 0xf6, 0x4c, 0x15, 0x5b, 0x49, 0x0c, 0x8e,
|
0xd2, 0x42, 0x4b, 0x02, 0x67, 0x92, 0x0e, 0xbb, 0xd3, 0xf6, 0x4c, 0x15, 0x5b, 0x49, 0x0c, 0x8e,
|
||||||
0xe4, 0xb5, 0x65, 0x02, 0x4b, 0xf9, 0xef, 0x7b, 0x25, 0x39, 0xce, 0xd3, 0xd0, 0x76, 0x66, 0x3f,
|
0xe4, 0xb5, 0x65, 0x02, 0x4b, 0xf9, 0xef, 0x7b, 0x25, 0x39, 0xce, 0xd3, 0xd0, 0x76, 0x66, 0x3f,
|
||||||
@ -1444,7 +1478,7 @@ const uint8_t PAGE_settings_time[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_sec.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_sec.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_sec_length = 2405;
|
const uint16_t PAGE_settings_sec_length = 2405;
|
||||||
const uint8_t PAGE_settings_sec[] PROGMEM = {
|
const uint8_t PAGE_settings_sec[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xa5, 0x58, 0x6d, 0x53, 0xdb, 0x48,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xa5, 0x58, 0x6d, 0x53, 0xdb, 0x48,
|
||||||
0x12, 0xfe, 0xee, 0x5f, 0x31, 0x4c, 0xaa, 0x58, 0xeb, 0x22, 0x2c, 0x43, 0x72, 0x5b, 0x09, 0x20,
|
0x12, 0xfe, 0xee, 0x5f, 0x31, 0x4c, 0xaa, 0x58, 0xeb, 0x22, 0x2c, 0x43, 0x72, 0x5b, 0x09, 0x20,
|
||||||
0xe7, 0x20, 0x90, 0x0d, 0x57, 0x10, 0x28, 0x6c, 0x36, 0x77, 0x95, 0x4b, 0xa5, 0xc6, 0xd2, 0xd8,
|
0xe7, 0x20, 0x90, 0x0d, 0x57, 0x10, 0x28, 0x6c, 0x36, 0x77, 0x95, 0x4b, 0xa5, 0xc6, 0xd2, 0xd8,
|
||||||
0x9a, 0x58, 0xd6, 0x68, 0x67, 0x46, 0x38, 0xbe, 0xec, 0xfe, 0xf7, 0x7b, 0x7a, 0x24, 0xd9, 0x86,
|
0x9a, 0x58, 0xd6, 0x68, 0x67, 0x46, 0x38, 0xbe, 0xec, 0xfe, 0xf7, 0x7b, 0x7a, 0x24, 0xd9, 0x86,
|
||||||
@ -1599,180 +1633,186 @@ const uint8_t PAGE_settings_sec[] PROGMEM = {
|
|||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/settings_um.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_um.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_um_length = 2640;
|
const uint16_t PAGE_settings_um_length = 2728;
|
||||||
const uint8_t PAGE_settings_um[] PROGMEM = {
|
const uint8_t PAGE_settings_um[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xcd, 0x59, 0xfb, 0x6f, 0xdb, 0x38,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xcd, 0x59, 0xfb, 0x6f, 0xdb, 0x38,
|
||||||
0x12, 0xfe, 0x3d, 0x7f, 0x85, 0xc2, 0x06, 0x89, 0x04, 0x2b, 0xb2, 0xd3, 0xee, 0x02, 0x5d, 0xdb,
|
0x12, 0xfe, 0x3d, 0x7f, 0x85, 0xc2, 0x06, 0x89, 0x04, 0x2b, 0xb2, 0xd3, 0xee, 0x02, 0x5d, 0xdb,
|
||||||
0x74, 0xae, 0x4d, 0xbb, 0x5b, 0x5f, 0x1f, 0x09, 0xe0, 0x7d, 0xe0, 0x90, 0x0b, 0x1a, 0x59, 0xa2,
|
0x54, 0xae, 0x4d, 0xbb, 0x5b, 0x5f, 0x1f, 0x09, 0x90, 0x7d, 0xe0, 0x90, 0x0b, 0x1a, 0xd9, 0xa2,
|
||||||
0x6d, 0x36, 0x32, 0xa9, 0x13, 0xa9, 0x3c, 0xce, 0xf1, 0xff, 0x7e, 0xdf, 0x50, 0x92, 0x1f, 0x69,
|
0x6d, 0x36, 0x32, 0xa9, 0x93, 0xa8, 0x3c, 0xce, 0xf1, 0xff, 0x7e, 0xdf, 0x50, 0x0f, 0xcb, 0xa9,
|
||||||
0x52, 0xec, 0xf6, 0x70, 0xc0, 0xfd, 0x12, 0x4b, 0xe4, 0xcc, 0x68, 0x38, 0x8f, 0x6f, 0x66, 0x98,
|
0x53, 0xec, 0x16, 0x58, 0xe0, 0x7e, 0x89, 0x25, 0x6a, 0x66, 0x38, 0x9c, 0xc7, 0x37, 0x33, 0xcc,
|
||||||
0xfe, 0xee, 0x9b, 0xd3, 0x93, 0x5f, 0xff, 0x71, 0xf6, 0xd6, 0x9b, 0xd9, 0x79, 0x36, 0xe8, 0xd7,
|
0x70, 0xf7, 0xcd, 0xe9, 0xc9, 0xaf, 0xff, 0x3a, 0x7b, 0xeb, 0xcc, 0xcd, 0x22, 0x09, 0x87, 0xd5,
|
||||||
0x7f, 0x45, 0x9c, 0x7a, 0x59, 0xac, 0xa6, 0x9c, 0x09, 0xc5, 0x06, 0xfd, 0xb9, 0xb0, 0xb1, 0x97,
|
0x5f, 0x11, 0xc5, 0x4e, 0x12, 0xa9, 0x19, 0x67, 0x42, 0xb1, 0x70, 0xb8, 0x10, 0x26, 0x72, 0x26,
|
||||||
0xcc, 0xe2, 0xc2, 0x08, 0xcb, 0x59, 0x69, 0x27, 0x87, 0x2f, 0x9b, 0xd5, 0x1d, 0x15, 0xcf, 0x05,
|
0xf3, 0x28, 0xcb, 0x85, 0xe1, 0xac, 0x30, 0xd3, 0xc3, 0x97, 0xf5, 0xea, 0x8e, 0x8a, 0x16, 0x82,
|
||||||
0x67, 0xd7, 0x52, 0xdc, 0xe4, 0xba, 0xb0, 0xcc, 0x4b, 0xb4, 0xb2, 0x42, 0x81, 0xec, 0x46, 0xa6,
|
0xb3, 0x1b, 0x29, 0x6e, 0x53, 0x9d, 0x19, 0xe6, 0x4c, 0xb4, 0x32, 0x42, 0x81, 0xec, 0x56, 0xc6,
|
||||||
0x76, 0xc6, 0x7f, 0xec, 0x74, 0x56, 0xa4, 0x0f, 0xb6, 0x52, 0x71, 0x2d, 0x13, 0x71, 0xe8, 0x5e,
|
0x66, 0xce, 0x7f, 0xec, 0xf5, 0x1a, 0xd2, 0x47, 0x9f, 0x62, 0x71, 0x23, 0x27, 0xe2, 0xd0, 0xbe,
|
||||||
0x42, 0xa9, 0xa4, 0x95, 0x71, 0x76, 0x68, 0x92, 0x38, 0x13, 0xfc, 0x28, 0x9c, 0xc7, 0xb7, 0x72,
|
0xf8, 0x52, 0x49, 0x23, 0xa3, 0xe4, 0x30, 0x9f, 0x44, 0x89, 0xe0, 0x47, 0xfe, 0x22, 0xba, 0x93,
|
||||||
0x5e, 0xce, 0x57, 0xef, 0xa5, 0x11, 0x85, 0x7b, 0x89, 0xc7, 0x78, 0x57, 0x9a, 0x7d, 0xf5, 0xe5,
|
0x8b, 0x62, 0xd1, 0xbc, 0x17, 0xb9, 0xc8, 0xec, 0x4b, 0x34, 0xc6, 0xbb, 0xd2, 0xec, 0xab, 0x9d,
|
||||||
0x41, 0xdf, 0x4a, 0x9b, 0x89, 0xc1, 0x6f, 0xa0, 0x9c, 0xeb, 0xd4, 0x1b, 0x09, 0x6b, 0xa5, 0x9a,
|
0xc3, 0xa1, 0x91, 0x26, 0x11, 0xe1, 0x6f, 0xa0, 0x5c, 0xe8, 0xd8, 0x39, 0x17, 0xc6, 0x48, 0x35,
|
||||||
0x9a, 0x7e, 0xbb, 0x5a, 0xef, 0x9b, 0xa4, 0x90, 0xb9, 0x1d, 0xec, 0x5c, 0xc7, 0x85, 0xa7, 0x6f,
|
0xcb, 0x87, 0xdd, 0x72, 0x7d, 0x98, 0x4f, 0x32, 0x99, 0x9a, 0x70, 0xe7, 0x26, 0xca, 0x1c, 0x7d,
|
||||||
0x94, 0x28, 0xc2, 0x4c, 0x27, 0x32, 0x0f, 0xcb, 0x42, 0xdf, 0x98, 0x30, 0xe5, 0xa9, 0x4e, 0xca,
|
0xab, 0x44, 0xe6, 0x27, 0x7a, 0x22, 0x53, 0xbf, 0xc8, 0xf4, 0x6d, 0xee, 0xc7, 0x3c, 0xd6, 0x93,
|
||||||
0x39, 0xf4, 0x0b, 0xcb, 0xf9, 0xc9, 0x64, 0xca, 0x17, 0xcb, 0x30, 0x97, 0xca, 0xf0, 0xf3, 0x0b,
|
0x62, 0x01, 0xfd, 0xfc, 0x62, 0x71, 0x32, 0x9d, 0xf1, 0xe5, 0xca, 0x4f, 0xa5, 0xca, 0xf9, 0xc5,
|
||||||
0xfa, 0x3d, 0xa5, 0x5f, 0xd0, 0xf3, 0xdd, 0xa3, 0x50, 0x95, 0xf3, 0x8f, 0xbc, 0xd3, 0x9b, 0x94,
|
0x25, 0xfd, 0x9e, 0xd2, 0x2f, 0xe8, 0xf9, 0xee, 0x91, 0xaf, 0x8a, 0xc5, 0x47, 0xde, 0x1b, 0x4c,
|
||||||
0x2a, 0xb1, 0x52, 0x2b, 0x6f, 0x3a, 0x4c, 0x7d, 0x11, 0x2c, 0x0a, 0x61, 0xcb, 0x42, 0x79, 0x69,
|
0x0b, 0x35, 0x31, 0x52, 0x2b, 0x67, 0x36, 0x8a, 0x5d, 0xe1, 0x2d, 0x33, 0x61, 0x8a, 0x4c, 0x39,
|
||||||
0x34, 0x15, 0xf6, 0x6d, 0x26, 0x48, 0xd4, 0xeb, 0x3b, 0xb7, 0xb5, 0x5c, 0x91, 0x4a, 0x73, 0xba,
|
0x71, 0x30, 0x13, 0xe6, 0x6d, 0x22, 0x48, 0xd4, 0xeb, 0x7b, 0xfb, 0x69, 0xd5, 0x90, 0xca, 0xfc,
|
||||||
0x41, 0x2a, 0xf6, 0xf7, 0x99, 0x1e, 0x7f, 0x11, 0x89, 0x65, 0x9c, 0xdb, 0xbb, 0x5c, 0xe8, 0x09,
|
0xb4, 0x45, 0x2a, 0xf6, 0xf7, 0x99, 0x1e, 0x7f, 0x11, 0x13, 0xc3, 0x38, 0x37, 0xf7, 0xa9, 0xd0,
|
||||||
0xad, 0xed, 0xbe, 0x2a, 0x8a, 0xf8, 0x2e, 0x92, 0xc6, 0xfd, 0x6e, 0xf1, 0xbf, 0xf3, 0x83, 0xc5,
|
0x53, 0x5a, 0xdb, 0x7d, 0x95, 0x65, 0xd1, 0x7d, 0x20, 0x73, 0xfb, 0xbb, 0xc1, 0xff, 0xce, 0xf5,
|
||||||
0x8d, 0x54, 0xa9, 0xbe, 0x89, 0x74, 0x2e, 0x94, 0xcf, 0x66, 0xd6, 0xe6, 0xa6, 0xdb, 0x6e, 0x4f,
|
0x96, 0xb7, 0x52, 0xc5, 0xfa, 0x36, 0xd0, 0xa9, 0x50, 0x2e, 0x9b, 0x1b, 0x93, 0xe6, 0xfd, 0x6e,
|
||||||
0xa5, 0x9d, 0x95, 0xe3, 0x28, 0xd1, 0xf3, 0xf6, 0x2b, 0x59, 0x24, 0x5a, 0xeb, 0x2b, 0x29, 0xda,
|
0x77, 0x26, 0xcd, 0xbc, 0x18, 0x07, 0x13, 0xbd, 0xe8, 0xbe, 0x92, 0xd9, 0x44, 0x6b, 0x7d, 0x2d,
|
||||||
0x7f, 0x7c, 0x78, 0xfb, 0xa6, 0x7d, 0x23, 0xaf, 0x64, 0xbb, 0xb1, 0xc6, 0xb3, 0xb2, 0x32, 0xcf,
|
0x45, 0xf7, 0x8f, 0x0f, 0x6f, 0xdf, 0x74, 0x6f, 0xe5, 0xb5, 0xec, 0xd6, 0xd6, 0x78, 0x56, 0x94,
|
||||||
0xa1, 0xa9, 0x17, 0xd8, 0x86, 0xf4, 0xd7, 0x0f, 0xa5, 0xb7, 0x57, 0x54, 0x21, 0xfb, 0x6c, 0x44,
|
0xe6, 0x39, 0xcc, 0xab, 0x05, 0xd6, 0x92, 0xfe, 0xfa, 0xb1, 0xf4, 0x6e, 0x43, 0xe5, 0xb3, 0xcf,
|
||||||
0x36, 0xd9, 0xa4, 0xce, 0x74, 0x9c, 0xfe, 0x7d, 0xe4, 0x8b, 0xd0, 0xf2, 0xdd, 0x4e, 0xb0, 0xc8,
|
0xb9, 0x48, 0xa6, 0x6d, 0xea, 0x44, 0x47, 0xf1, 0x3f, 0xcf, 0x5d, 0xe1, 0x1b, 0xbe, 0xdb, 0xf3,
|
||||||
0x84, 0xf5, 0x14, 0x4f, 0xa3, 0xa4, 0x10, 0xb1, 0x15, 0xb5, 0x01, 0x7c, 0x56, 0x59, 0x9d, 0x05,
|
0x96, 0x89, 0x30, 0x8e, 0xe2, 0x71, 0x30, 0xc9, 0x44, 0x64, 0x44, 0x65, 0x00, 0x97, 0x95, 0x56,
|
||||||
0x3d, 0x15, 0x41, 0xd8, 0x2b, 0x6b, 0x0b, 0x39, 0x2e, 0xad, 0xc0, 0x46, 0x91, 0xb0, 0x50, 0x04,
|
0x67, 0xde, 0x40, 0x05, 0x10, 0xf6, 0xca, 0x98, 0x4c, 0x8e, 0x0b, 0x23, 0xf0, 0x21, 0x9b, 0x30,
|
||||||
0xe1, 0xc3, 0x75, 0xb2, 0x03, 0x3e, 0x67, 0xc5, 0xad, 0x6d, 0x7f, 0x89, 0xaf, 0xe3, 0x46, 0xc0,
|
0x5f, 0x78, 0xfe, 0xe3, 0x75, 0xb2, 0x03, 0xb6, 0x33, 0xe2, 0xce, 0x74, 0xbf, 0x44, 0x37, 0x51,
|
||||||
0x57, 0x84, 0xb1, 0xb9, 0x53, 0x10, 0x61, 0x83, 0x30, 0x8d, 0xc6, 0x3a, 0xbd, 0x8b, 0xe2, 0x1c,
|
0x2d, 0xe0, 0x2b, 0xc2, 0x28, 0xbf, 0x57, 0x10, 0x61, 0x3c, 0x3f, 0x0e, 0xc6, 0x3a, 0xbe, 0x0f,
|
||||||
0x4a, 0xa7, 0x27, 0x33, 0x99, 0xa5, 0xbe, 0x22, 0xfa, 0x38, 0x4d, 0xdf, 0x5e, 0x43, 0x8b, 0x0f,
|
0xa2, 0x14, 0x4a, 0xc7, 0x27, 0x73, 0x99, 0xc4, 0xae, 0x22, 0xfa, 0x28, 0x8e, 0xdf, 0xde, 0x40,
|
||||||
0xd2, 0x20, 0xf0, 0x44, 0xe1, 0x33, 0xd2, 0x99, 0x85, 0x7e, 0xc0, 0x07, 0x8b, 0x34, 0x2a, 0xe7,
|
0x8b, 0x0f, 0x32, 0x47, 0xe0, 0x89, 0xcc, 0x65, 0xa4, 0x33, 0xf3, 0x5d, 0x8f, 0x87, 0xcb, 0x38,
|
||||||
0x9f, 0x73, 0x72, 0x6b, 0x1a, 0x15, 0xe6, 0x3a, 0xad, 0x9f, 0xf4, 0xe7, 0xc6, 0xeb, 0x69, 0x84,
|
0x28, 0x16, 0x9f, 0x53, 0x72, 0x6b, 0x1c, 0x64, 0xf9, 0x4d, 0x5c, 0x3d, 0xe9, 0xcf, 0xb5, 0xd7,
|
||||||
0x20, 0xfc, 0x3c, 0xcd, 0xa5, 0xe6, 0x2f, 0x7e, 0x0a, 0x7f, 0x11, 0xf6, 0x77, 0x3f, 0xe8, 0x4d,
|
0xe3, 0x00, 0x41, 0xf8, 0x79, 0x96, 0x4a, 0xcd, 0x5f, 0xfc, 0xe4, 0xff, 0x22, 0xcc, 0xef, 0xae,
|
||||||
0x74, 0xe1, 0xd3, 0x49, 0x05, 0x02, 0x40, 0xf4, 0x2b, 0xce, 0x28, 0x13, 0x6a, 0x6a, 0x67, 0x3d,
|
0x37, 0x98, 0xea, 0xcc, 0xa5, 0x93, 0x0a, 0x04, 0x80, 0x18, 0x96, 0x9c, 0x41, 0x22, 0xd4, 0xcc,
|
||||||
0xd1, 0x6a, 0x05, 0xc4, 0x1c, 0xe5, 0xa5, 0x99, 0xf9, 0xd5, 0xde, 0xb9, 0xb8, 0x08, 0x5c, 0xfc,
|
0xcc, 0x07, 0xa2, 0xd3, 0xf1, 0x88, 0x39, 0x48, 0x8b, 0x7c, 0xee, 0x96, 0xdf, 0x2e, 0xc4, 0xa5,
|
||||||
0x54, 0x8b, 0x8c, 0xd6, 0x60, 0x8c, 0xc3, 0x23, 0xce, 0x2b, 0x05, 0xce, 0x3b, 0x17, 0xfb, 0xfb,
|
0x67, 0xe3, 0xa7, 0x5c, 0x64, 0xb4, 0x06, 0x63, 0x1c, 0x1e, 0x71, 0x5e, 0x2a, 0x70, 0xd1, 0xbb,
|
||||||
0xd5, 0x63, 0x64, 0x66, 0x72, 0x62, 0x7d, 0x3a, 0xcf, 0x68, 0x12, 0x8d, 0xde, 0xbc, 0x22, 0x05,
|
0xdc, 0xdf, 0x2f, 0x1f, 0x83, 0x7c, 0x2e, 0xa7, 0xc6, 0xa5, 0xf3, 0x9c, 0x4f, 0x83, 0xf3, 0x37,
|
||||||
0xf8, 0x5a, 0x8d, 0x7a, 0xfd, 0xe4, 0xc3, 0xa3, 0xeb, 0x1f, 0x4f, 0x47, 0xc3, 0xa7, 0x18, 0xde,
|
0xaf, 0x48, 0x01, 0xbe, 0x56, 0xa3, 0x5a, 0x3f, 0xf9, 0xb0, 0x75, 0xfd, 0xe3, 0xe9, 0xf9, 0xe8,
|
||||||
0x3f, 0xce, 0x31, 0x1c, 0x9d, 0x3e, 0xd8, 0x58, 0x3e, 0x6e, 0x36, 0x51, 0x14, 0xba, 0x80, 0xb7,
|
0x29, 0x86, 0xf7, 0xdb, 0x39, 0x46, 0xe7, 0xa7, 0x8f, 0x3e, 0xac, 0xb6, 0x9b, 0x4d, 0x64, 0x99,
|
||||||
0x60, 0x36, 0x24, 0xb1, 0xd1, 0x99, 0x88, 0x32, 0x3d, 0xf5, 0xd9, 0x5b, 0x5a, 0xf7, 0xea, 0x58,
|
0xce, 0xe0, 0x2d, 0x98, 0x0d, 0x49, 0x9c, 0xeb, 0x44, 0x04, 0x89, 0x9e, 0xb9, 0xec, 0x2d, 0xad,
|
||||||
0x40, 0x9c, 0x78, 0x13, 0x99, 0x09, 0xe7, 0x55, 0x64, 0x6d, 0x01, 0xef, 0x7f, 0xa8, 0xd7, 0x11,
|
0x3b, 0x55, 0x2c, 0x20, 0x4e, 0x9c, 0xa9, 0x4c, 0x84, 0xf5, 0x2a, 0xb2, 0x36, 0x83, 0xf7, 0x3f,
|
||||||
0xd8, 0x60, 0x9c, 0xc8, 0x69, 0x59, 0xc4, 0x2e, 0x78, 0x2a, 0xaf, 0x7a, 0x93, 0x18, 0x0c, 0x69,
|
0x54, 0xeb, 0x08, 0x6c, 0x30, 0x4e, 0xe5, 0xac, 0xc8, 0x22, 0x1b, 0x3c, 0xa5, 0x57, 0x9d, 0x69,
|
||||||
0xf4, 0x4f, 0x35, 0x54, 0x08, 0xdd, 0x1c, 0x96, 0x15, 0x5e, 0x1e, 0x4f, 0x85, 0x97, 0xc6, 0x36,
|
0x04, 0x86, 0x38, 0xf8, 0xb7, 0x1a, 0x29, 0x84, 0x6e, 0x0a, 0xcb, 0x0a, 0x27, 0x8d, 0x66, 0xc2,
|
||||||
0xde, 0x45, 0xb4, 0x6d, 0xc4, 0xdb, 0x08, 0xd1, 0xc9, 0xe8, 0x03, 0x5d, 0x64, 0x4b, 0x1d, 0xa6,
|
0x89, 0x23, 0x13, 0xed, 0x22, 0xda, 0x5a, 0xf1, 0x76, 0x8e, 0xe8, 0x64, 0xb4, 0x41, 0x1f, 0xd9,
|
||||||
0xc8, 0x48, 0x27, 0x2f, 0xca, 0x0b, 0x6d, 0x75, 0xa2, 0xb3, 0xfd, 0x7d, 0xdf, 0x65, 0x69, 0x27,
|
0x52, 0x85, 0x29, 0x32, 0xd2, 0xca, 0x0b, 0xd2, 0x4c, 0x1b, 0x3d, 0xd1, 0xc9, 0xfe, 0xbe, 0x6b,
|
||||||
0xf4, 0x5d, 0x76, 0x73, 0xa2, 0xc8, 0x46, 0x56, 0x17, 0x90, 0x4a, 0x99, 0x39, 0xb4, 0x62, 0x4e,
|
0xb3, 0xb4, 0xe7, 0xbb, 0x36, 0xbb, 0x39, 0x51, 0x24, 0xe7, 0x46, 0x67, 0x90, 0x4a, 0x99, 0x39,
|
||||||
0x71, 0x90, 0x0c, 0x73, 0x16, 0x04, 0xf7, 0xf7, 0x35, 0x19, 0xf8, 0xe7, 0x39, 0x14, 0xfe, 0x19,
|
0x32, 0x62, 0x41, 0x71, 0x30, 0x19, 0xa5, 0xcc, 0xf3, 0x1e, 0x1e, 0x2a, 0x32, 0xf0, 0x2f, 0x52,
|
||||||
0xf2, 0xbd, 0x8f, 0x3a, 0x15, 0x91, 0x77, 0x96, 0x89, 0xd8, 0x08, 0x0f, 0x86, 0x10, 0x85, 0x47,
|
0x28, 0xfc, 0x33, 0xe4, 0x3b, 0x1f, 0x75, 0x2c, 0x02, 0xe7, 0x2c, 0x11, 0x51, 0x2e, 0x1c, 0x18,
|
||||||
0x99, 0xe4, 0x0d, 0xcf, 0xa0, 0x52, 0xb8, 0x25, 0xd1, 0x6c, 0x4b, 0xac, 0x20, 0x25, 0x08, 0x40,
|
0x42, 0x64, 0x0e, 0x65, 0x92, 0x33, 0x3a, 0x83, 0x4a, 0xfe, 0x86, 0xc4, 0x7c, 0x53, 0x62, 0x09,
|
||||||
0x95, 0x42, 0x5f, 0x07, 0x15, 0xf8, 0x06, 0x21, 0x04, 0x2b, 0xe7, 0x2c, 0x88, 0xa4, 0x82, 0x41,
|
0x29, 0x9e, 0x07, 0xaa, 0x18, 0xfa, 0x5a, 0xa8, 0xc0, 0x1e, 0x84, 0x10, 0xac, 0x58, 0x30, 0x2f,
|
||||||
0xdf, 0xfd, 0xfa, 0xf1, 0x03, 0x67, 0x9f, 0xb4, 0x57, 0x63, 0x95, 0xf1, 0x10, 0x35, 0x36, 0xce,
|
0x90, 0x0a, 0x06, 0x7d, 0xf7, 0xeb, 0xc7, 0x0f, 0x9c, 0x7d, 0xd2, 0x4e, 0x85, 0x55, 0xb9, 0x83,
|
||||||
0xc8, 0x14, 0x6c, 0x0b, 0x2d, 0x7e, 0xde, 0x44, 0x0b, 0xce, 0x79, 0x0b, 0xf0, 0x20, 0x76, 0x39,
|
0xa8, 0x31, 0x51, 0x42, 0xa6, 0x60, 0x1b, 0x68, 0xf1, 0x73, 0x1b, 0x2d, 0x38, 0xe7, 0x1d, 0xc0,
|
||||||
0xf7, 0x3b, 0xf7, 0xdb, 0xb0, 0x32, 0x7c, 0x8c, 0x90, 0x7f, 0x45, 0x98, 0xcc, 0x44, 0x72, 0x45,
|
0x83, 0xd8, 0xe5, 0xdc, 0xed, 0x3d, 0x6c, 0xc2, 0xca, 0x68, 0x1b, 0x21, 0xff, 0x8a, 0x70, 0x32,
|
||||||
0x29, 0x1b, 0x2c, 0x08, 0x06, 0x15, 0x17, 0x11, 0xc1, 0x68, 0x54, 0x88, 0x3c, 0x8b, 0x13, 0x24,
|
0x17, 0x93, 0x6b, 0x4a, 0x59, 0x6f, 0x49, 0x30, 0xa8, 0xb8, 0x08, 0x08, 0x46, 0x83, 0x4c, 0xa4,
|
||||||
0xd5, 0xf9, 0x05, 0x72, 0x0f, 0x7a, 0x9a, 0x72, 0x6c, 0x6c, 0xe1, 0x1f, 0xbe, 0x08, 0x7a, 0x72,
|
0x49, 0x34, 0x41, 0x52, 0x5d, 0x5c, 0x22, 0xf7, 0xa0, 0x67, 0x5e, 0x8c, 0x73, 0x93, 0xb9, 0x87,
|
||||||
0xe2, 0x33, 0x9c, 0x63, 0x2c, 0x0a, 0xd8, 0x5d, 0x44, 0x94, 0x9f, 0xc0, 0x2d, 0xc4, 0x34, 0x5e,
|
0x2f, 0xbc, 0x81, 0x9c, 0xba, 0x0c, 0xe7, 0x18, 0x8b, 0x0c, 0x76, 0x17, 0x01, 0xe5, 0x27, 0x70,
|
||||||
0x55, 0x43, 0xd8, 0x09, 0x5f, 0x04, 0xc1, 0x82, 0xb2, 0x83, 0xe4, 0x4a, 0x64, 0x87, 0xec, 0xbb,
|
0x0b, 0x31, 0x8d, 0x57, 0x55, 0x13, 0xf6, 0xfc, 0x17, 0x9e, 0xb7, 0xa4, 0xec, 0x20, 0xb9, 0x12,
|
||||||
0x5c, 0xa8, 0x73, 0x43, 0x22, 0x37, 0x20, 0xc8, 0xee, 0x72, 0x4a, 0x86, 0x73, 0x79, 0x11, 0x2c,
|
0xd9, 0x21, 0x87, 0x36, 0x17, 0xaa, 0xdc, 0x90, 0xc8, 0x0d, 0x08, 0x32, 0xbb, 0x9c, 0x92, 0xe1,
|
||||||
0xf0, 0x2a, 0xa2, 0xeb, 0x38, 0x2b, 0xa1, 0x27, 0x91, 0x62, 0x11, 0x72, 0xe5, 0x04, 0x62, 0xd7,
|
0x42, 0x5e, 0x7a, 0x4b, 0xbc, 0x8a, 0xe0, 0x26, 0x4a, 0x0a, 0xe8, 0x49, 0xa4, 0x58, 0x84, 0x5c,
|
||||||
0x44, 0xb0, 0xb0, 0xbd, 0x43, 0xb8, 0xc1, 0xb5, 0xba, 0xe0, 0x2c, 0x93, 0x73, 0xc1, 0x7a, 0x63,
|
0x39, 0x85, 0xd8, 0x35, 0x11, 0x2c, 0x6c, 0xee, 0x11, 0x6e, 0x70, 0xad, 0xce, 0x38, 0x4b, 0xe4,
|
||||||
0x40, 0xcc, 0xd5, 0xf2, 0x11, 0xfe, 0xfb, 0xfb, 0x7a, 0xa5, 0x7f, 0x78, 0xb4, 0x7a, 0x1e, 0xac,
|
0x42, 0xb0, 0xc1, 0x18, 0x10, 0x73, 0xbd, 0xda, 0xc2, 0xff, 0xf0, 0x50, 0xad, 0x0c, 0x0f, 0x8f,
|
||||||
0xc3, 0xfb, 0x2b, 0x79, 0x85, 0x48, 0x1b, 0x71, 0xdb, 0x3b, 0x0e, 0x09, 0x88, 0x25, 0x32, 0x7a,
|
0x9a, 0xe7, 0x70, 0x1d, 0xde, 0x5f, 0xc9, 0xcb, 0x44, 0x5c, 0x8b, 0xdb, 0xfc, 0x62, 0x91, 0x80,
|
||||||
0x2e, 0x7c, 0xcb, 0x07, 0x16, 0x5f, 0xa1, 0x0a, 0x38, 0x04, 0xaa, 0xd5, 0x92, 0xc3, 0xa3, 0x4e,
|
0x58, 0x82, 0x5c, 0x2f, 0x84, 0x6b, 0x78, 0x68, 0xb0, 0x0b, 0x55, 0xc0, 0x11, 0x50, 0xad, 0x92,
|
||||||
0x10, 0x1c, 0x33, 0x44, 0x82, 0x9a, 0x0a, 0xd6, 0x65, 0xcf, 0x26, 0x93, 0x09, 0x5b, 0x2e, 0x45,
|
0xec, 0x1f, 0xf5, 0x3c, 0xef, 0x98, 0x21, 0x12, 0xd4, 0x4c, 0xb0, 0x3e, 0x7b, 0x36, 0x9d, 0x4e,
|
||||||
0x66, 0xc4, 0xc2, 0xdc, 0x48, 0x9b, 0xcc, 0xfc, 0xca, 0xbe, 0xc1, 0x22, 0x41, 0x28, 0x31, 0xa4,
|
0xd9, 0x6a, 0x25, 0x92, 0x5c, 0x2c, 0xf3, 0x5b, 0x69, 0x26, 0x73, 0xb7, 0xb4, 0xaf, 0xb7, 0x9c,
|
||||||
0x34, 0xeb, 0x56, 0x4f, 0x27, 0x1f, 0xea, 0x27, 0x4a, 0xdb, 0xf5, 0xe2, 0xfb, 0x66, 0x15, 0xa9,
|
0x20, 0x94, 0x18, 0x52, 0x9a, 0xf5, 0xcb, 0xa7, 0x93, 0x0f, 0xd5, 0x13, 0xa5, 0xed, 0x7a, 0xf1,
|
||||||
0xc9, 0xba, 0x4e, 0xb1, 0x5e, 0x2a, 0x26, 0x71, 0x99, 0xd9, 0x6e, 0xe5, 0xdd, 0x25, 0xd9, 0xf8,
|
0x7d, 0xbd, 0x8a, 0xd4, 0x64, 0x7d, 0xab, 0xd8, 0x20, 0x16, 0xd3, 0xa8, 0x48, 0x4c, 0xbf, 0xf4,
|
||||||
0x71, 0xfb, 0x7e, 0x97, 0x45, 0xad, 0x9e, 0xc7, 0x56, 0xff, 0xdf, 0xdb, 0x74, 0x1d, 0xc2, 0xc8,
|
0xee, 0x8a, 0x6c, 0xbc, 0xdd, 0xbe, 0xdf, 0x65, 0x51, 0xa3, 0x17, 0x91, 0xd1, 0xff, 0xf7, 0x36,
|
||||||
0xe1, 0x33, 0x68, 0x46, 0xf1, 0x0e, 0x6d, 0xab, 0x82, 0x1a, 0x90, 0x51, 0x08, 0x99, 0xec, 0xb9,
|
0x5d, 0x87, 0x30, 0x72, 0xf8, 0x0c, 0x9a, 0x51, 0xbc, 0x43, 0xdb, 0xb2, 0xa0, 0x7a, 0x64, 0x14,
|
||||||
0x0a, 0xe5, 0x05, 0xd0, 0xe6, 0xd4, 0x95, 0xd5, 0x08, 0xc9, 0x5b, 0x48, 0x41, 0xc4, 0x41, 0x4d,
|
0x42, 0x26, 0x73, 0xa1, 0x7c, 0x79, 0x09, 0xb4, 0x39, 0xb5, 0x65, 0x35, 0x40, 0xf2, 0x66, 0x52,
|
||||||
0x2c, 0x83, 0xc0, 0x15, 0x7f, 0xae, 0xc2, 0x46, 0x92, 0x0c, 0x7a, 0xe4, 0x32, 0x8f, 0x02, 0xbd,
|
0x10, 0xb1, 0x57, 0x11, 0x4b, 0xcf, 0xb3, 0xc5, 0x9f, 0x2b, 0xbf, 0x96, 0x24, 0xbd, 0x01, 0xb9,
|
||||||
0x09, 0xeb, 0x6f, 0x24, 0x04, 0x49, 0xda, 0xae, 0xd0, 0xb2, 0x52, 0x80, 0x22, 0xdf, 0xc2, 0x33,
|
0xcc, 0xa1, 0x40, 0xaf, 0xc3, 0xfa, 0x1b, 0x09, 0x41, 0x92, 0x36, 0x2b, 0xb4, 0x2c, 0x15, 0xa0,
|
||||||
0xb6, 0x2f, 0x1b, 0xb7, 0x58, 0x0a, 0xfb, 0x73, 0x7b, 0x31, 0xe0, 0x1d, 0x20, 0xd3, 0xba, 0x38,
|
0xc8, 0x37, 0xf0, 0x8c, 0x19, 0xca, 0xda, 0x2d, 0x86, 0xc2, 0xfe, 0xc2, 0x5c, 0x86, 0xbc, 0x07,
|
||||||
0xd0, 0xda, 0x66, 0x5d, 0x70, 0x2a, 0x05, 0x8d, 0x1e, 0x5f, 0x51, 0x3f, 0x4d, 0xfa, 0x84, 0x2a,
|
0x64, 0x5a, 0x17, 0x07, 0x5a, 0x6b, 0xd7, 0x05, 0xab, 0x92, 0x57, 0xeb, 0xf1, 0x15, 0xf5, 0xd3,
|
||||||
0x8f, 0xa8, 0xb1, 0x3a, 0x2d, 0x7d, 0x7a, 0x6d, 0x4e, 0x80, 0xfd, 0xcf, 0x52, 0xa0, 0x62, 0x02,
|
0xa4, 0x4f, 0xa8, 0xb2, 0x45, 0x8d, 0xe6, 0xb4, 0xb4, 0x75, 0x0b, 0x3a, 0xd0, 0x78, 0x9d, 0x44,
|
||||||
0x14, 0x42, 0x18, 0x0f, 0x0d, 0xce, 0xca, 0xb0, 0x0a, 0x29, 0xed, 0xba, 0xa3, 0x16, 0x3f, 0xe8,
|
0xe9, 0x1a, 0x3e, 0x18, 0x8e, 0x09, 0xc8, 0x66, 0xbb, 0x4d, 0x47, 0x72, 0xcc, 0x58, 0x1f, 0x3e,
|
||||||
0xcf, 0x0a, 0x2f, 0xc9, 0x62, 0x63, 0x38, 0x33, 0xf3, 0x8c, 0x0d, 0x0e, 0x7a, 0x6b, 0x9b, 0xcb,
|
0x44, 0xff, 0xf7, 0xca, 0xb8, 0x3d, 0x2f, 0x30, 0xfa, 0x37, 0x54, 0xda, 0xec, 0x04, 0x81, 0xea,
|
||||||
0xd0, 0x3c, 0x62, 0x73, 0x70, 0xb3, 0x52, 0x5d, 0x29, 0x28, 0x4c, 0x01, 0x68, 0x29, 0x78, 0xa4,
|
0x7a, 0x1d, 0xf8, 0x38, 0x41, 0x1f, 0xe7, 0x1e, 0xb5, 0x84, 0xa2, 0x82, 0xfc, 0x2c, 0x05, 0xca,
|
||||||
0x4a, 0xb2, 0x32, 0xc5, 0x26, 0x3c, 0x1b, 0x1c, 0x6f, 0x7c, 0x1b, 0x22, 0x82, 0xee, 0xfa, 0xbd,
|
0x30, 0x90, 0xc6, 0x87, 0x47, 0xd0, 0x35, 0x35, 0xde, 0x52, 0xc0, 0x09, 0xdb, 0x72, 0x75, 0xf8,
|
||||||
0x85, 0xfd, 0x96, 0x75, 0xab, 0xcb, 0xc7, 0x0f, 0xaa, 0xd6, 0x36, 0x37, 0x38, 0xac, 0xe9, 0xab,
|
0xc1, 0x70, 0x9e, 0x39, 0x93, 0x24, 0xca, 0x73, 0xce, 0xf2, 0x45, 0xc2, 0xc2, 0x03, 0x9f, 0x15,
|
||||||
0xe6, 0xb0, 0x06, 0x87, 0xdd, 0x3e, 0xd5, 0xb9, 0xb9, 0x08, 0xd1, 0xa2, 0x38, 0x93, 0x39, 0xdc,
|
0xea, 0x5a, 0xe1, 0x88, 0x14, 0xb2, 0x86, 0xc2, 0x4d, 0xaa, 0x49, 0x52, 0xc4, 0x70, 0x21, 0x62,
|
||||||
0xd3, 0x61, 0xd1, 0xf4, 0x5b, 0xaa, 0x57, 0x67, 0x6a, 0x51, 0x27, 0xe9, 0x58, 0xa3, 0xbc, 0xc5,
|
0x81, 0xe0, 0xba, 0x62, 0xbd, 0x1a, 0xa6, 0xe1, 0xb0, 0x08, 0xf7, 0x96, 0xb5, 0xfe, 0xc6, 0x5b,
|
||||||
0x8a, 0x75, 0x11, 0xca, 0x0e, 0x2e, 0xc7, 0xfa, 0x96, 0x85, 0x9a, 0x1f, 0x54, 0x69, 0xc1, 0x6c,
|
0x0d, 0xbb, 0x45, 0x38, 0xec, 0xa6, 0xe1, 0x55, 0x59, 0xa6, 0xcb, 0x78, 0x90, 0xbe, 0xde, 0x12,
|
||||||
0x51, 0x0a, 0x76, 0xd0, 0xf2, 0xd5, 0x31, 0xab, 0xe0, 0x14, 0xe1, 0xde, 0x45, 0x84, 0x54, 0x21,
|
0x0f, 0x50, 0xe2, 0xdb, 0x3b, 0x1d, 0xb7, 0x8e, 0x00, 0x11, 0x5e, 0x7f, 0xfd, 0xde, 0xc1, 0xf7,
|
||||||
0xdf, 0x73, 0x32, 0x6a, 0xb8, 0xec, 0x6a, 0x7e, 0x59, 0x73, 0xed, 0x2d, 0xd4, 0x92, 0x5d, 0x86,
|
0x8e, 0xb1, 0xab, 0xab, 0xed, 0x4e, 0x50, 0xeb, 0x78, 0xd0, 0x70, 0x84, 0x1e, 0xaa, 0xda, 0x11,
|
||||||
0x75, 0x7c, 0x71, 0xbb, 0x11, 0x4f, 0xc7, 0xbe, 0x6e, 0xf1, 0x4b, 0x8f, 0x0a, 0x31, 0xc8, 0x36,
|
0x1a, 0x8e, 0xd8, 0x34, 0xce, 0x85, 0xbe, 0xf4, 0xd1, 0x3e, 0x59, 0x77, 0x5a, 0x4c, 0xce, 0xfd,
|
||||||
0x6a, 0x31, 0xf3, 0xe6, 0x52, 0x71, 0x76, 0x78, 0xc4, 0x56, 0x96, 0x87, 0x08, 0xa8, 0x25, 0x15,
|
0xac, 0xb6, 0xbc, 0x1a, 0x54, 0x28, 0x92, 0x55, 0x00, 0x32, 0xd6, 0x28, 0xbd, 0x91, 0x62, 0x7d,
|
||||||
0xfa, 0xa1, 0x2e, 0xb8, 0x0e, 0x3c, 0x54, 0xe8, 0x9c, 0xb3, 0x58, 0xdd, 0xad, 0x68, 0x6e, 0x6f,
|
0xa4, 0x99, 0x85, 0xf2, 0xb1, 0xbe, 0x63, 0x7e, 0xce, 0x0f, 0xca, 0x94, 0x65, 0x26, 0x2b, 0x04,
|
||||||
0x33, 0x76, 0xd0, 0x7b, 0x00, 0x1d, 0xdc, 0xf5, 0x53, 0x74, 0x8c, 0x2d, 0x85, 0x3c, 0x97, 0x9e,
|
0x3b, 0xe8, 0xb8, 0xea, 0x98, 0x95, 0x50, 0x8f, 0x54, 0xec, 0x23, 0x7a, 0xcb, 0x74, 0x1c, 0x58,
|
||||||
0x75, 0x43, 0xde, 0x7d, 0xfe, 0x63, 0x27, 0xbf, 0xed, 0xb1, 0xcb, 0xe5, 0x03, 0x3f, 0x21, 0x16,
|
0x19, 0x15, 0x94, 0xf7, 0x73, 0x7e, 0x55, 0x71, 0xed, 0x2d, 0xd5, 0x8a, 0x5d, 0xf9, 0x55, 0xec,
|
||||||
0xeb, 0x28, 0x10, 0x8d, 0xda, 0x44, 0x91, 0x8a, 0xdb, 0xd3, 0x89, 0x23, 0x68, 0x1d, 0xa1, 0xe0,
|
0x73, 0xd3, 0x8a, 0xf5, 0x63, 0x97, 0x6c, 0xed, 0x50, 0x93, 0x00, 0xb2, 0x56, 0x9f, 0xc0, 0x9c,
|
||||||
0xd5, 0x24, 0x97, 0xde, 0xde, 0xc2, 0x2e, 0xbb, 0x1e, 0xce, 0xba, 0xb2, 0x1e, 0xe7, 0xc5, 0x71,
|
0x85, 0x54, 0x9c, 0x1d, 0x1e, 0xb1, 0xc6, 0x81, 0x10, 0x01, 0xb5, 0xa4, 0x42, 0xaf, 0xd6, 0x27,
|
||||||
0xb3, 0xdd, 0x97, 0x2a, 0x2f, 0xad, 0x47, 0xd6, 0xe7, 0x6c, 0x26, 0xd3, 0x14, 0x13, 0x86, 0x57,
|
0xe7, 0x3a, 0xe8, 0x1e, 0x52, 0xce, 0x22, 0x75, 0xdf, 0xd0, 0xdc, 0xdd, 0x25, 0xec, 0x60, 0xf0,
|
||||||
0xb5, 0xf2, 0x7b, 0x0b, 0xb1, 0xec, 0x12, 0xf7, 0xde, 0x42, 0x1e, 0x53, 0xe2, 0xc1, 0xac, 0xd0,
|
0x08, 0xd6, 0xb8, 0xed, 0xf5, 0xe8, 0x18, 0x1b, 0x0a, 0x39, 0x16, 0x3a, 0xaa, 0x61, 0xa1, 0xff,
|
||||||
0xb1, 0x56, 0x78, 0x12, 0xc3, 0x7b, 0x6c, 0x70, 0xd9, 0x95, 0x28, 0xa8, 0xff, 0xb5, 0xb4, 0xbd,
|
0xfc, 0xc7, 0x5e, 0x7a, 0x37, 0x60, 0x57, 0xab, 0xda, 0xff, 0xce, 0x86, 0xeb, 0x1d, 0xa8, 0xdf,
|
||||||
0x45, 0xb1, 0x84, 0xb0, 0xb5, 0xda, 0x5b, 0x92, 0xf6, 0x16, 0xce, 0xc6, 0x9c, 0x14, 0x5f, 0x39,
|
0x18, 0x84, 0xf3, 0xec, 0xb8, 0x09, 0x13, 0xa9, 0xd2, 0xc2, 0x38, 0x64, 0x50, 0xce, 0xe6, 0x32,
|
||||||
0x13, 0x0c, 0xdf, 0x16, 0xbd, 0xb7, 0xd0, 0x4b, 0x34, 0x43, 0x4e, 0x50, 0x1d, 0x3b, 0xbe, 0x9d,
|
0x8e, 0x31, 0xd0, 0x38, 0xe5, 0xe4, 0xb0, 0xb7, 0x14, 0xab, 0xfe, 0xde, 0xd2, 0xac, 0x20, 0xe9,
|
||||||
0x49, 0x13, 0x1e, 0xec, 0x2d, 0x9e, 0xb6, 0xdc, 0xf2, 0x20, 0xc0, 0xec, 0x32, 0x2e, 0x06, 0x97,
|
0x98, 0xf2, 0x1c, 0x96, 0xc2, 0xb6, 0x95, 0x0e, 0xd3, 0x08, 0x0e, 0x61, 0xe1, 0x55, 0x5f, 0xb6,
|
||||||
0xcb, 0xad, 0xac, 0x7c, 0x53, 0xe8, 0x1c, 0x2d, 0x8e, 0xaa, 0xaa, 0xf5, 0x53, 0xdd, 0xb5, 0xc8,
|
0x83, 0xee, 0x7b, 0xa5, 0xed, 0x2d, 0xb3, 0x15, 0x84, 0x79, 0xfe, 0x56, 0x49, 0x7b, 0x4b, 0x6b,
|
||||||
0x68, 0x7a, 0x08, 0x90, 0xb7, 0x9b, 0x73, 0x87, 0x79, 0x7d, 0xf7, 0x09, 0x9a, 0x36, 0x79, 0x14,
|
0x36, 0x4e, 0x8a, 0x37, 0xfe, 0x01, 0xc3, 0xb7, 0x45, 0xef, 0x2d, 0xf3, 0x15, 0x7a, 0x2f, 0x2b,
|
||||||
0x9c, 0x1f, 0x5d, 0x50, 0x19, 0x97, 0xa8, 0x06, 0xc3, 0x4f, 0x67, 0xbf, 0xfd, 0x4a, 0x27, 0x93,
|
0xa8, 0x0a, 0x07, 0xd7, 0xcc, 0x65, 0xee, 0x1f, 0xec, 0x11, 0x24, 0x97, 0x3e, 0xa4, 0xb0, 0x8e,
|
||||||
0x91, 0x8d, 0xa7, 0x44, 0x05, 0xf7, 0x56, 0xd1, 0x51, 0x2d, 0xc2, 0x00, 0xf7, 0xf7, 0xeb, 0x82,
|
0xc5, 0xdd, 0xe9, 0xd4, 0x46, 0x75, 0x07, 0x49, 0x7a, 0xe0, 0x61, 0x54, 0x1a, 0x67, 0xe1, 0xd5,
|
||||||
0x5f, 0x2f, 0x05, 0x95, 0x0a, 0x02, 0xaf, 0xce, 0x82, 0x3d, 0xe9, 0x0a, 0x5b, 0x6f, 0x3b, 0x07,
|
0x6a, 0x23, 0x5f, 0xdf, 0x64, 0x3a, 0x45, 0x47, 0xa5, 0xca, 0xe6, 0xe0, 0xa9, 0x66, 0x5e, 0x24,
|
||||||
0x65, 0x14, 0x37, 0xfd, 0xf9, 0xaa, 0x32, 0xb5, 0x5a, 0xa6, 0x6a, 0x36, 0x34, 0xdf, 0xdc, 0x46,
|
0x34, 0xac, 0x78, 0xc8, 0xe8, 0xf6, 0x98, 0x93, 0xbf, 0xbe, 0xff, 0x04, 0x4d, 0xeb, 0xd4, 0xf0,
|
||||||
0x4e, 0xf6, 0xaa, 0x5e, 0x7f, 0x97, 0x6b, 0x27, 0x0b, 0xca, 0x39, 0xd1, 0x9b, 0x0b, 0x2e, 0xa6,
|
0x2e, 0x8e, 0x2e, 0xa9, 0x6b, 0x90, 0x28, 0x3e, 0xa3, 0x4f, 0x67, 0xbf, 0xfd, 0x4a, 0x27, 0x93,
|
||||||
0x37, 0x17, 0x5c, 0xc0, 0x6e, 0x2c, 0x3c, 0x18, 0x0a, 0xaa, 0xe5, 0x50, 0x57, 0x4a, 0x06, 0xcb,
|
0x81, 0x89, 0x66, 0x44, 0x05, 0x64, 0x2b, 0x1d, 0x5e, 0x2e, 0xc2, 0x00, 0x0f, 0x0f, 0xeb, 0xfe,
|
||||||
0xba, 0x23, 0x7a, 0x38, 0x3a, 0x50, 0x77, 0x79, 0x08, 0x12, 0xd7, 0xaa, 0xca, 0x08, 0x35, 0x08,
|
0xa2, 0x5a, 0xf2, 0x4a, 0x15, 0x04, 0x5e, 0xad, 0x05, 0x07, 0xd2, 0xd6, 0xd1, 0xc1, 0x66, 0x5a,
|
||||||
0x46, 0xab, 0x6d, 0xd7, 0x40, 0x7f, 0x3d, 0x47, 0x84, 0x00, 0x5f, 0xb5, 0x92, 0x53, 0x66, 0xd9,
|
0xc9, 0x20, 0xaa, 0xc7, 0x81, 0xa6, 0x10, 0x76, 0x3a, 0xba, 0xec, 0x6d, 0x72, 0xde, 0xfe, 0x8c,
|
||||||
0x96, 0x93, 0x4e, 0x73, 0x7a, 0xaa, 0x50, 0xc6, 0xc1, 0x26, 0x51, 0xc0, 0x68, 0x22, 0xa8, 0x38,
|
0x34, 0x1b, 0x94, 0xa3, 0xc5, 0x2e, 0xcf, 0xad, 0x2c, 0x28, 0x67, 0x45, 0xb7, 0x17, 0x6c, 0x98,
|
||||||
0x7a, 0x64, 0x34, 0xf9, 0xb5, 0xdf, 0xb4, 0xe3, 0x03, 0x68, 0xd4, 0xe6, 0x44, 0x35, 0x82, 0x9d,
|
0xb6, 0x17, 0x6c, 0x0c, 0xb6, 0x16, 0x1e, 0xcd, 0x20, 0xe5, 0xb2, 0x9f, 0x97, 0x4a, 0x7a, 0xab,
|
||||||
0xe1, 0x04, 0x6e, 0x43, 0xb1, 0x35, 0xc8, 0xc8, 0xf5, 0xcc, 0x51, 0x81, 0x3a, 0xaa, 0x29, 0x6d,
|
0xaa, 0x01, 0x7b, 0x3c, 0xa9, 0x50, 0x33, 0x7b, 0x08, 0x12, 0xdb, 0x19, 0xcb, 0x00, 0x25, 0x0f,
|
||||||
0x7c, 0x42, 0x8f, 0x6a, 0x36, 0xf1, 0x7d, 0xb1, 0xb9, 0x01, 0x8c, 0x6f, 0xca, 0xb8, 0x88, 0xe8,
|
0x46, 0xab, 0x6c, 0x57, 0x57, 0x9a, 0x6a, 0x6c, 0xf1, 0x81, 0xf5, 0xaa, 0x91, 0x53, 0x24, 0xc9,
|
||||||
0xb4, 0x38, 0x3f, 0x2d, 0xc0, 0xd7, 0xd4, 0xb3, 0x52, 0xd0, 0x88, 0x74, 0x48, 0x81, 0xc8, 0x6d,
|
0x86, 0x93, 0x4e, 0x53, 0x7a, 0x2a, 0x81, 0xc3, 0x02, 0x2a, 0x51, 0xc0, 0x68, 0xc2, 0x2b, 0x39,
|
||||||
0xb0, 0x1d, 0x77, 0x43, 0x35, 0xd1, 0xcd, 0x81, 0x1a, 0xed, 0x1f, 0x89, 0x2c, 0x52, 0xbd, 0xfa,
|
0x06, 0x64, 0x34, 0xf9, 0xb5, 0xdf, 0xb4, 0xe5, 0x03, 0x0e, 0x54, 0xe6, 0x44, 0xf1, 0x83, 0x9d,
|
||||||
0x3a, 0xc5, 0x0f, 0x22, 0x1b, 0x6d, 0xfe, 0x7a, 0x8a, 0xb5, 0xfb, 0xfb, 0x12, 0x93, 0xcd, 0x31,
|
0xe1, 0x04, 0x6e, 0x7c, 0xb1, 0x31, 0x37, 0xc9, 0xf5, 0x88, 0x53, 0xd6, 0x10, 0x02, 0x7e, 0x7c,
|
||||||
0xfd, 0x89, 0x9c, 0x39, 0x67, 0x3a, 0x4b, 0x51, 0x75, 0x6d, 0x97, 0xea, 0x0f, 0xed, 0x42, 0x43,
|
0xf8, 0x84, 0x96, 0x38, 0x6f, 0x97, 0x93, 0x65, 0xfb, 0x03, 0x4a, 0x4a, 0xdd, 0x35, 0x88, 0x80,
|
||||||
0x94, 0x23, 0x4c, 0x09, 0xaf, 0xd2, 0x2f, 0xd8, 0x57, 0x96, 0xba, 0x62, 0x4c, 0x75, 0x13, 0xb4,
|
0x4e, 0x8b, 0xf3, 0xd3, 0x02, 0x7c, 0x4d, 0x2d, 0x32, 0x05, 0x8d, 0x88, 0x47, 0x14, 0x88, 0x1c,
|
||||||
0xdb, 0x38, 0x3d, 0xaa, 0xee, 0xbe, 0x1a, 0x9b, 0xbc, 0xc7, 0x5a, 0x80, 0xfa, 0x8d, 0xa9, 0x93,
|
0xc9, 0xba, 0x71, 0xa4, 0x91, 0x9a, 0xea, 0xa6, 0x4c, 0x00, 0xaa, 0xac, 0xdf, 0xf5, 0xf6, 0xf0,
|
||||||
0xfa, 0xea, 0xc5, 0x44, 0x10, 0x64, 0x53, 0xef, 0x7e, 0xec, 0x46, 0x60, 0x4c, 0xc0, 0xac, 0xe5,
|
0xf2, 0x06, 0xba, 0x52, 0x81, 0x82, 0xa8, 0xaa, 0x53, 0xcd, 0xe4, 0x6c, 0xf6, 0xf7, 0x35, 0xa6,
|
||||||
0x7a, 0x6f, 0x82, 0xe2, 0x16, 0x6b, 0x27, 0x93, 0x69, 0xf4, 0xc5, 0xc0, 0xc4, 0xe1, 0x62, 0x2e,
|
0xa9, 0x63, 0xfa, 0x13, 0x58, 0x9b, 0xce, 0x75, 0x12, 0xa3, 0xd2, 0x9b, 0xbe, 0x86, 0x82, 0xc4,
|
||||||
0xec, 0x4c, 0xa7, 0x5d, 0x86, 0x43, 0xb0, 0x65, 0x10, 0xd9, 0x19, 0x26, 0x5b, 0x4c, 0x32, 0x30,
|
0x02, 0x4f, 0x2a, 0xa2, 0x82, 0xba, 0x28, 0x85, 0x98, 0x50, 0x5e, 0xc5, 0x5f, 0x40, 0xa7, 0x0c,
|
||||||
0x84, 0xbe, 0x6a, 0x7a, 0x73, 0x40, 0x4b, 0x51, 0x50, 0x95, 0x77, 0xed, 0x4a, 0x2a, 0x0d, 0x74,
|
0x75, 0xe4, 0x98, 0x28, 0xa7, 0x68, 0xf5, 0x61, 0x0a, 0x54, 0xfc, 0x7d, 0x35, 0xce, 0xd3, 0x01,
|
||||||
0xbe, 0x23, 0xa0, 0xcd, 0xa4, 0x12, 0x48, 0x2f, 0xe1, 0x84, 0xf9, 0x68, 0xec, 0x57, 0xfc, 0xe4,
|
0xeb, 0x60, 0x8e, 0x24, 0x2e, 0xf9, 0x0d, 0xae, 0xb1, 0x80, 0xc5, 0xc4, 0x58, 0xcc, 0x00, 0x9f,
|
||||||
0xed, 0xea, 0xa6, 0x40, 0x60, 0x7a, 0x0b, 0xd7, 0x6d, 0x49, 0x05, 0x29, 0x9c, 0xb1, 0x90, 0x6a,
|
0xbe, 0xec, 0xd4, 0xac, 0x18, 0x02, 0x5a, 0xb3, 0x32, 0x4d, 0x03, 0xcb, 0xa9, 0x20, 0x30, 0xa7,
|
||||||
0xa8, 0x23, 0xd9, 0x6c, 0x50, 0x60, 0xda, 0x47, 0x8a, 0x65, 0x4d, 0xb6, 0x42, 0xa3, 0x59, 0x31,
|
0x89, 0xe3, 0xd8, 0x0e, 0xee, 0x98, 0xdb, 0x59, 0xc7, 0x4e, 0x0c, 0x04, 0xd2, 0x1d, 0xd6, 0x9d,
|
||||||
0xe8, 0xcf, 0x5e, 0x0c, 0x08, 0x69, 0xfa, 0x6d, 0x3c, 0x5c, 0x86, 0x1b, 0x25, 0x6d, 0x55, 0x56,
|
0x4c, 0x67, 0xc1, 0x97, 0x1c, 0x9e, 0xf2, 0x97, 0x0b, 0x61, 0xe6, 0x3a, 0xee, 0x33, 0x98, 0x81,
|
||||||
0x81, 0x0c, 0x3d, 0x46, 0x49, 0xea, 0xf8, 0x1a, 0x9c, 0xe6, 0x6c, 0x35, 0x57, 0x6c, 0x0f, 0x5d,
|
0xad, 0x50, 0x73, 0xe7, 0x98, 0xc7, 0x31, 0x7f, 0xc1, 0x9e, 0xfa, 0xba, 0x9e, 0x28, 0x80, 0x50,
|
||||||
0x4a, 0x63, 0xe2, 0xd2, 0xa5, 0x4a, 0x23, 0xc2, 0x9b, 0xb3, 0x42, 0x18, 0xe3, 0xf5, 0xe5, 0x60,
|
0x59, 0x46, 0xbd, 0x89, 0x6d, 0xb2, 0x62, 0x99, 0xe3, 0xd4, 0xf7, 0x04, 0xc1, 0x89, 0x54, 0x02,
|
||||||
0x14, 0x5f, 0x8b, 0x7e, 0x5b, 0x0e, 0x3c, 0xab, 0xbd, 0xfa, 0x1e, 0x46, 0xfe, 0x1b, 0x23, 0x58,
|
0x59, 0x2a, 0xac, 0x30, 0x17, 0x9a, 0x34, 0xfc, 0x14, 0x34, 0xe5, 0xfd, 0x86, 0xc0, 0xcc, 0xe9,
|
||||||
0x55, 0x3c, 0x0c, 0x46, 0x92, 0xf0, 0xb1, 0x01, 0xa6, 0xba, 0x37, 0xa9, 0x6f, 0x01, 0xbe, 0xe1,
|
0xaf, 0x9b, 0xa9, 0x12, 0x99, 0xe0, 0x01, 0x9f, 0x8a, 0xb4, 0x25, 0x69, 0xb7, 0x55, 0xf0, 0xd0,
|
||||||
0x8a, 0xe6, 0x0e, 0xa1, 0x6d, 0x60, 0xc4, 0xe3, 0x9c, 0xbf, 0x64, 0x21, 0x7a, 0x0c, 0x78, 0x02,
|
0x96, 0x32, 0x5a, 0x91, 0x35, 0xa0, 0x36, 0xcf, 0xc2, 0xe1, 0xfc, 0x45, 0x48, 0x80, 0x35, 0xec,
|
||||||
0xa3, 0x1b, 0x75, 0xc8, 0x30, 0xe5, 0x9f, 0xf0, 0x41, 0xb8, 0x39, 0x78, 0x8a, 0xad, 0xc1, 0xd0,
|
0xe2, 0xe1, 0xca, 0x6f, 0x15, 0xbb, 0xa6, 0xe0, 0x02, 0x60, 0x06, 0x8c, 0x72, 0xdd, 0xf2, 0xc1,
|
||||||
0x5c, 0x8f, 0xa8, 0x1b, 0x14, 0x18, 0x02, 0x05, 0xcd, 0xad, 0x6f, 0x2a, 0xc5, 0x9b, 0x41, 0xda,
|
0x2f, 0xd5, 0xd6, 0xcd, 0x34, 0xb4, 0x39, 0x2a, 0x2a, 0x8d, 0x39, 0x51, 0x17, 0x2a, 0x0e, 0x08,
|
||||||
0x01, 0xf1, 0xef, 0x38, 0x53, 0x2a, 0xed, 0x9d, 0x1f, 0xd0, 0xb4, 0x8d, 0x55, 0xc0, 0xf1, 0x5c,
|
0xb6, 0xce, 0x32, 0x91, 0xe7, 0xce, 0x50, 0x86, 0xe7, 0xd1, 0x8d, 0x18, 0x76, 0x65, 0xe8, 0x18,
|
||||||
0x82, 0x66, 0xb9, 0xd3, 0x6f, 0xd7, 0x37, 0x43, 0x7d, 0xf7, 0xe5, 0xc1, 0xdf, 0xe4, 0x9c, 0x2e,
|
0xed, 0x54, 0xb7, 0x47, 0xf2, 0xbf, 0x18, 0x1c, 0xcb, 0xb2, 0x92, 0x63, 0x90, 0xf2, 0xb7, 0x8d,
|
||||||
0x94, 0xbc, 0xb2, 0xc8, 0x7c, 0x56, 0xf7, 0xaf, 0x00, 0xa1, 0xa0, 0x07, 0x42, 0x47, 0x00, 0x87,
|
0x5d, 0xe5, 0x6d, 0x4f, 0x75, 0x77, 0xf1, 0x0d, 0x57, 0xd4, 0x37, 0x1f, 0xdd, 0x1c, 0x46, 0x3c,
|
||||||
0x88, 0x38, 0x05, 0x66, 0xeb, 0xf4, 0x0e, 0x78, 0x4f, 0x16, 0xe0, 0x0c, 0x51, 0x09, 0x18, 0x87,
|
0x4e, 0xf9, 0x4b, 0xe6, 0xa3, 0x89, 0x81, 0x27, 0x30, 0x70, 0x52, 0x5f, 0x0f, 0x53, 0xfe, 0x09,
|
||||||
0x9b, 0xe7, 0x3b, 0x9e, 0xc4, 0x3b, 0x3d, 0x7d, 0x36, 0x4d, 0xc5, 0x18, 0x4d, 0x50, 0xcc, 0x5d,
|
0x1f, 0xf8, 0xed, 0x71, 0x59, 0x6c, 0x8c, 0xb3, 0xf9, 0xcd, 0x39, 0x35, 0x5d, 0x02, 0xa3, 0xab,
|
||||||
0x1c, 0x72, 0x96, 0x6b, 0x63, 0x19, 0xf8, 0x2a, 0x0d, 0x50, 0xd4, 0x49, 0x7d, 0xd2, 0x9b, 0x04,
|
0xa0, 0x69, 0xfb, 0x4d, 0xa9, 0x78, 0x3d, 0xfe, 0x5b, 0x3c, 0xff, 0x1d, 0x67, 0x8a, 0xa5, 0xb9,
|
||||||
0xa4, 0xf2, 0xba, 0x29, 0xe4, 0x56, 0x63, 0x28, 0xbd, 0x61, 0x83, 0x9d, 0xcd, 0xc5, 0x99, 0xc8,
|
0x77, 0x3d, 0xba, 0x23, 0xc0, 0x2a, 0x50, 0x7d, 0x21, 0x41, 0xb3, 0xda, 0x19, 0x76, 0xab, 0xfb,
|
||||||
0xf2, 0xd7, 0x54, 0x2f, 0x4a, 0x6b, 0x71, 0xf4, 0xaa, 0x5c, 0x55, 0x2f, 0x24, 0x33, 0xc9, 0x64,
|
0xac, 0xa1, 0xdd, 0x39, 0xfc, 0x87, 0x5c, 0xd0, 0x35, 0x98, 0x53, 0x64, 0x89, 0xcb, 0xaa, 0xae,
|
||||||
0x72, 0xc5, 0xd9, 0x3b, 0x52, 0xe6, 0xb8, 0xdf, 0xae, 0x36, 0xa0, 0x30, 0x24, 0xac, 0x78, 0x76,
|
0x1b, 0x58, 0xe6, 0x0d, 0x40, 0x68, 0x09, 0xe0, 0x10, 0x11, 0xc5, 0x80, 0x7e, 0x1d, 0xdf, 0xa3,
|
||||||
0x9e, 0x60, 0x7a, 0x4d, 0x4c, 0xaf, 0xe3, 0xe4, 0x6a, 0xcd, 0xb7, 0xf5, 0x95, 0x4a, 0x5f, 0x56,
|
0x6c, 0x90, 0x05, 0x38, 0x43, 0x54, 0xa2, 0x1a, 0xc0, 0xcd, 0x8b, 0x1d, 0x47, 0xe2, 0x9d, 0x9e,
|
||||||
0x87, 0xcb, 0x8a, 0xa4, 0x80, 0x82, 0x26, 0x8f, 0x95, 0x3b, 0x75, 0x66, 0x4c, 0x99, 0xac, 0xda,
|
0x3e, 0xe7, 0x75, 0xe1, 0x39, 0x9f, 0xa2, 0xcc, 0xdb, 0x38, 0xe4, 0x2c, 0xd5, 0xb9, 0x61, 0xe0,
|
||||||
0x0a, 0xd7, 0xf6, 0x77, 0xa7, 0x85, 0x10, 0xaa, 0x57, 0xfb, 0xb3, 0xab, 0x34, 0x9c, 0x39, 0xd8,
|
0x2b, 0x35, 0x40, 0xb9, 0x27, 0xf5, 0x49, 0x6f, 0x12, 0x10, 0xcb, 0x9b, 0xba, 0xc4, 0x1b, 0x8d,
|
||||||
0x7f, 0x76, 0xd4, 0xe9, 0x74, 0x7e, 0xe8, 0x79, 0x27, 0xdb, 0xb7, 0x02, 0x10, 0x9d, 0xee, 0x92,
|
0x51, 0xfa, 0x96, 0x85, 0x3b, 0xed, 0xc5, 0xb9, 0x48, 0xd2, 0xd7, 0x54, 0x76, 0x0a, 0x63, 0x70,
|
||||||
0x47, 0x20, 0x70, 0xe0, 0x6d, 0xca, 0xa5, 0xd8, 0xd8, 0x96, 0x8b, 0x39, 0xe3, 0x81, 0xd4, 0x9d,
|
0xf4, 0xb2, 0xea, 0x95, 0x2f, 0x24, 0x73, 0x82, 0x06, 0xf2, 0x9a, 0xb3, 0x77, 0xa4, 0xcc, 0xf1,
|
||||||
0xfd, 0x67, 0x3f, 0xbd, 0x7c, 0xf9, 0x92, 0xa4, 0x96, 0x59, 0xea, 0xc2, 0x9d, 0x9c, 0xb3, 0x9d,
|
0xb0, 0x5b, 0x7e, 0x80, 0xc2, 0x90, 0xd0, 0xf0, 0xec, 0x3c, 0xc1, 0xf4, 0x9a, 0x98, 0x5e, 0x47,
|
||||||
0x05, 0x51, 0x2d, 0xdd, 0xa5, 0x58, 0x65, 0x98, 0xd9, 0xf3, 0xcd, 0x5b, 0xc3, 0x32, 0x87, 0x83,
|
0x93, 0xeb, 0x35, 0xdf, 0xc6, 0x2e, 0xa5, 0xbe, 0xac, 0x0a, 0x97, 0x86, 0x24, 0x83, 0x82, 0x79,
|
||||||
0x9f, 0x0f, 0x76, 0x7e, 0xc9, 0xf4, 0x38, 0xce, 0xbc, 0x61, 0xdf, 0x94, 0xf9, 0xe0, 0x39, 0xb8,
|
0x1a, 0x29, 0x7b, 0xea, 0x24, 0xcf, 0x8b, 0x49, 0xd3, 0x70, 0xd8, 0x61, 0xa5, 0x3f, 0xcb, 0x84,
|
||||||
0xf0, 0x73, 0xe2, 0xfd, 0x72, 0x36, 0x3c, 0x35, 0x9e, 0xff, 0xee, 0x8f, 0x80, 0x8e, 0xde, 0x97,
|
0x50, 0x83, 0xca, 0x9f, 0x7d, 0xa5, 0xe1, 0xcc, 0x70, 0xff, 0xd9, 0x51, 0xaf, 0xd7, 0xfb, 0x61,
|
||||||
0xdb, 0x3a, 0xd5, 0x63, 0xcb, 0x60, 0xc7, 0x47, 0x5c, 0xdc, 0xd1, 0x9d, 0xa9, 0x9a, 0xd2, 0x8d,
|
0xe0, 0x9c, 0x6c, 0xde, 0x65, 0x40, 0x74, 0xbc, 0x4b, 0x1e, 0x81, 0xc0, 0xd0, 0x69, 0xcb, 0xa5,
|
||||||
0x25, 0xdd, 0x91, 0xbc, 0x1d, 0x9d, 0xbd, 0x78, 0x1e, 0x56, 0x6b, 0xc2, 0x2b, 0xc4, 0xbf, 0x4a,
|
0xd8, 0xd8, 0x94, 0x8b, 0xe9, 0xe8, 0x91, 0xd4, 0x9d, 0xfd, 0x67, 0x3f, 0xbd, 0x7c, 0xf9, 0x92,
|
||||||
0x89, 0x0c, 0xc4, 0x03, 0x3a, 0x4e, 0xbb, 0x1b, 0x50, 0x06, 0x92, 0x48, 0x0c, 0x89, 0xdd, 0xba,
|
0xa4, 0x16, 0x49, 0x6c, 0xc3, 0x9d, 0x9c, 0xb3, 0x99, 0x05, 0x41, 0x25, 0xdd, 0xa6, 0x58, 0x69,
|
||||||
0x19, 0xa9, 0x3d, 0x55, 0xd7, 0xe2, 0x75, 0x37, 0xe8, 0x5a, 0xc5, 0x1f, 0x5e, 0xae, 0x82, 0x0b,
|
0x98, 0xf9, 0xf3, 0xf6, 0x5d, 0x67, 0x91, 0xc2, 0xc1, 0xcf, 0xc3, 0x9d, 0x5f, 0x12, 0x3d, 0x8e,
|
||||||
0x63, 0x25, 0xb9, 0xd1, 0x09, 0xe6, 0x07, 0x1b, 0x8d, 0x07, 0xcd, 0x7e, 0xc1, 0x81, 0xb7, 0xb3,
|
0x12, 0x67, 0x34, 0xcc, 0x8b, 0x34, 0x7c, 0x0e, 0x2e, 0xfc, 0x9c, 0x38, 0xbf, 0x9c, 0x8d, 0x4e,
|
||||||
0x6a, 0x1f, 0xbd, 0x4d, 0x2c, 0x76, 0x8c, 0x03, 0x0f, 0x63, 0x67, 0x77, 0xab, 0xfb, 0x79, 0xfa,
|
0x73, 0xc7, 0x7d, 0xf7, 0x87, 0x47, 0x47, 0x1f, 0xca, 0x4d, 0x9d, 0xaa, 0x61, 0x2b, 0xdc, 0x71,
|
||||||
0x7b, 0xf5, 0x9d, 0x2b, 0x4d, 0xaf, 0xdf, 0xfc, 0xe0, 0x53, 0xdf, 0x03, 0x1f, 0xd9, 0x7d, 0xad,
|
0x11, 0x17, 0xf7, 0x74, 0xd3, 0xab, 0x66, 0x74, 0xcf, 0x4a, 0x37, 0x3b, 0x6f, 0xcf, 0xcf, 0x5e,
|
||||||
0x10, 0x4d, 0x12, 0xb5, 0x9d, 0x47, 0x67, 0xc3, 0xff, 0xbd, 0x71, 0x69, 0xda, 0xfe, 0x8b, 0xd6,
|
0x3c, 0xf7, 0xcb, 0x35, 0xe1, 0x64, 0xe2, 0x3f, 0x85, 0x44, 0x06, 0xe2, 0x01, 0xbd, 0xa8, 0xd9,
|
||||||
0x75, 0x03, 0xfa, 0x77, 0x99, 0xd7, 0x71, 0x0e, 0x3c, 0x9a, 0xe5, 0xff, 0xa2, 0x81, 0xdd, 0xf8,
|
0xf5, 0x28, 0x03, 0x49, 0x24, 0x46, 0xdb, 0x7e, 0xd5, 0xd3, 0x54, 0x9e, 0xaa, 0x4a, 0xfa, 0xba,
|
||||||
0xff, 0x3d, 0x16, 0x76, 0x8c, 0xce, 0xa5, 0xef, 0xbb, 0x3b, 0x7f, 0xf2, 0x9b, 0x2b, 0x9f, 0xbe,
|
0x4f, 0xb4, 0x4d, 0xe4, 0x0f, 0x2f, 0x9b, 0xe0, 0xc2, 0x30, 0x4c, 0x6e, 0xb4, 0x82, 0xf9, 0x41,
|
||||||
0xff, 0xce, 0x28, 0x22, 0xce, 0x0a, 0xb9, 0x28, 0x55, 0x51, 0x25, 0x06, 0xcd, 0xb5, 0x5f, 0x03,
|
0xab, 0x7f, 0xa1, 0x89, 0xd5, 0x3b, 0x70, 0x76, 0x9a, 0xc6, 0xd2, 0x69, 0xa3, 0xb9, 0x65, 0x0c,
|
||||||
0xfd, 0x51, 0x14, 0x35, 0xa9, 0x56, 0xfc, 0x6f, 0x70, 0x08, 0x98, 0x41, 0x88, 0x8b, 0x8c, 0x26,
|
0x1d, 0x0c, 0xcb, 0xfd, 0x8d, 0x26, 0xea, 0xe9, 0xfd, 0xaa, 0x9b, 0x62, 0x9a, 0xb9, 0xbf, 0xb9,
|
||||||
0x54, 0x26, 0x88, 0xa6, 0xff, 0x64, 0xfc, 0x07, 0xdc, 0x99, 0xc1, 0xa4, 0xdf, 0x18, 0x00, 0x00
|
0xe1, 0x53, 0xfb, 0x81, 0x8f, 0xec, 0xbe, 0x56, 0x88, 0x46, 0x95, 0xca, 0xce, 0xe7, 0x67, 0xa3,
|
||||||
|
0xbf, 0xdf, 0xb8, 0x74, 0x47, 0xf0, 0x17, 0xad, 0x6b, 0xaf, 0x15, 0xbe, 0xcb, 0xbc, 0x96, 0x33,
|
||||||
|
0x74, 0xe8, 0x06, 0xe2, 0x2f, 0x1a, 0xd8, 0x5e, 0x5a, 0x7c, 0x8f, 0x85, 0x2d, 0xa3, 0x75, 0xe9,
|
||||||
|
0xfb, 0xfe, 0xce, 0x9f, 0xdc, 0xb3, 0xf1, 0xe9, 0xfb, 0xef, 0x8c, 0x22, 0xe2, 0x2c, 0x91, 0x8b,
|
||||||
|
0x52, 0x15, 0x55, 0x22, 0xac, 0x2f, 0x2b, 0x6b, 0xe8, 0x0f, 0x82, 0xa0, 0x4e, 0xb5, 0xec, 0xef,
|
||||||
|
0xc1, 0x21, 0x60, 0x06, 0x21, 0x2e, 0x32, 0x9a, 0x50, 0x99, 0x20, 0x9a, 0xfe, 0xff, 0xf2, 0x3f,
|
||||||
|
0x66, 0x3b, 0x04, 0x72, 0x95, 0x19, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/settings_2D.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_2D.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_2D_length = 1745;
|
const uint16_t PAGE_settings_2D_length = 1745;
|
||||||
const uint8_t PAGE_settings_2D[] PROGMEM = {
|
const uint8_t PAGE_settings_2D[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x95, 0x58, 0x5b, 0x6f, 0xdb, 0x36,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x95, 0x58, 0x5b, 0x6f, 0xdb, 0x36,
|
||||||
0x14, 0x7e, 0xd7, 0xaf, 0x60, 0x88, 0xa2, 0x93, 0x5a, 0x59, 0x8e, 0xbb, 0x0b, 0x8a, 0x58, 0x52,
|
0x14, 0x7e, 0xd7, 0xaf, 0x60, 0x88, 0xa2, 0x93, 0x5a, 0x59, 0x8e, 0xbb, 0x0b, 0x8a, 0x58, 0x52,
|
||||||
0xd6, 0x34, 0xd9, 0x92, 0x21, 0x41, 0x83, 0xba, 0x4b, 0x31, 0xac, 0x43, 0x4b, 0x4b, 0xc7, 0x16,
|
0xd6, 0x34, 0xd9, 0x92, 0x21, 0x41, 0x83, 0xba, 0x4b, 0x31, 0xac, 0x43, 0x4b, 0x4b, 0xc7, 0x16,
|
||||||
0x1b, 0x89, 0x14, 0x48, 0xca, 0x49, 0xe6, 0xe6, 0xbf, 0xef, 0x90, 0x92, 0xaf, 0x71, 0xda, 0xee,
|
0x1b, 0x89, 0x14, 0x48, 0xca, 0x49, 0xe6, 0xe6, 0xbf, 0xef, 0x90, 0x92, 0xaf, 0x71, 0xda, 0xee,
|
||||||
@ -1888,7 +1928,7 @@ const uint8_t PAGE_settings_2D[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_pin.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_pin.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_pin_length = 471;
|
const uint16_t PAGE_settings_pin_length = 471;
|
||||||
const uint8_t PAGE_settings_pin[] PROGMEM = {
|
const uint8_t PAGE_settings_pin[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x5d, 0x52, 0x4d, 0x6f, 0x13, 0x31,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x5d, 0x52, 0x4d, 0x6f, 0x13, 0x31,
|
||||||
0x10, 0xbd, 0xef, 0xaf, 0x30, 0x73, 0x69, 0x82, 0x92, 0x6c, 0xa8, 0xa8, 0x04, 0xaa, 0xbd, 0x42,
|
0x10, 0xbd, 0xef, 0xaf, 0x30, 0x73, 0x69, 0x82, 0x92, 0x6c, 0xa8, 0xa8, 0x04, 0xaa, 0xbd, 0x42,
|
||||||
0x81, 0x1e, 0xb8, 0x94, 0x48, 0xe5, 0x52, 0x55, 0x55, 0xe5, 0xd8, 0xb3, 0x89, 0x55, 0x7f, 0x2c,
|
0x81, 0x1e, 0xb8, 0x94, 0x48, 0xe5, 0x52, 0x55, 0x55, 0xe5, 0xd8, 0xb3, 0x89, 0x55, 0x7f, 0x2c,
|
||||||
0xb6, 0x37, 0x21, 0x54, 0xfc, 0x77, 0xc6, 0xbb, 0xa1, 0xa0, 0x5c, 0xd6, 0x7e, 0x33, 0xe3, 0x37,
|
0xb6, 0x37, 0x21, 0x54, 0xfc, 0x77, 0xc6, 0xbb, 0xa1, 0xa0, 0x5c, 0xd6, 0x7e, 0x33, 0xe3, 0x37,
|
||||||
|
1608
wled00/html_ui.h
1608
wled00/html_ui.h
File diff suppressed because it is too large
Load Diff
@ -110,7 +110,7 @@ void changePalette(uint8_t pal)
|
|||||||
for (uint8_t i = 0; i < strip.getSegmentsNum(); i++) {
|
for (uint8_t i = 0; i < strip.getSegmentsNum(); i++) {
|
||||||
Segment& seg = strip.getSegment(i);
|
Segment& seg = strip.getSegment(i);
|
||||||
if (!seg.isActive() || !seg.isSelected()) continue;
|
if (!seg.isActive() || !seg.isSelected()) continue;
|
||||||
seg.palette = pal;
|
seg.setPalette(pal);
|
||||||
}
|
}
|
||||||
setValuesFromFirstSelectedSeg();
|
setValuesFromFirstSelectedSeg();
|
||||||
} else {
|
} else {
|
||||||
|
@ -2,6 +2,14 @@
|
|||||||
|
|
||||||
#include "palettes.h"
|
#include "palettes.h"
|
||||||
|
|
||||||
|
#define JSON_PATH_STATE 1
|
||||||
|
#define JSON_PATH_INFO 2
|
||||||
|
#define JSON_PATH_STATE_INFO 3
|
||||||
|
#define JSON_PATH_NODES 4
|
||||||
|
#define JSON_PATH_PALETTES 5
|
||||||
|
#define JSON_PATH_FXDATA 6
|
||||||
|
#define JSON_PATH_NETWORKS 7
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* JSON API (De)serialization
|
* JSON API (De)serialization
|
||||||
*/
|
*/
|
||||||
@ -79,8 +87,8 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId)
|
|||||||
uint16_t grp = elem["grp"] | seg.grouping;
|
uint16_t grp = elem["grp"] | seg.grouping;
|
||||||
uint16_t spc = elem[F("spc")] | seg.spacing;
|
uint16_t spc = elem[F("spc")] | seg.spacing;
|
||||||
uint16_t of = seg.offset;
|
uint16_t of = seg.offset;
|
||||||
uint8_t soundSim = elem["ssim"] | seg.soundSim;
|
uint8_t soundSim = elem["si"] | seg.soundSim;
|
||||||
uint8_t map1D2D = elem["mp12"] | seg.map1D2D;
|
uint8_t map1D2D = elem["m12"] | seg.map1D2D;
|
||||||
|
|
||||||
if ((spc>0 && spc!=seg.spacing) || seg.map1D2D!=map1D2D) seg.fill(BLACK); // clear spacing gaps
|
if ((spc>0 && spc!=seg.spacing) || seg.map1D2D!=map1D2D) seg.fill(BLACK); // clear spacing gaps
|
||||||
|
|
||||||
@ -182,7 +190,7 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId)
|
|||||||
getVal(elem["ix"], &seg.intensity);
|
getVal(elem["ix"], &seg.intensity);
|
||||||
|
|
||||||
uint8_t pal = seg.palette;
|
uint8_t pal = seg.palette;
|
||||||
if (getVal(elem["pal"], &pal, 1, strip.getPaletteCount())) seg.setPalette(pal);
|
if (getVal(elem["pal"], &pal)) seg.setPalette(pal);
|
||||||
|
|
||||||
getVal(elem["c1"], &seg.custom1);
|
getVal(elem["c1"], &seg.custom1);
|
||||||
getVal(elem["c2"], &seg.custom2);
|
getVal(elem["c2"], &seg.custom2);
|
||||||
@ -482,8 +490,8 @@ void serializeSegment(JsonObject& root, Segment& seg, byte id, bool forPreset, b
|
|||||||
root["o1"] = seg.check1;
|
root["o1"] = seg.check1;
|
||||||
root["o2"] = seg.check2;
|
root["o2"] = seg.check2;
|
||||||
root["o3"] = seg.check3;
|
root["o3"] = seg.check3;
|
||||||
root["ssim"] = seg.soundSim;
|
root["si"] = seg.soundSim;
|
||||||
root["mp12"] = seg.map1D2D;
|
root["m12"] = seg.map1D2D;
|
||||||
}
|
}
|
||||||
|
|
||||||
void serializeState(JsonObject root, bool forPreset, bool includeBri, bool segmentBounds, bool selectedSegmentsOnly)
|
void serializeState(JsonObject root, bool forPreset, bool includeBri, bool segmentBounds, bool selectedSegmentsOnly)
|
||||||
@ -558,7 +566,6 @@ void serializeInfo(JsonObject root)
|
|||||||
leds[F("maxseg")] = strip.getMaxSegments();
|
leds[F("maxseg")] = strip.getMaxSegments();
|
||||||
//leds[F("actseg")] = strip.getActiveSegmentsNum();
|
//leds[F("actseg")] = strip.getActiveSegmentsNum();
|
||||||
//leds[F("seglock")] = false; //might be used in the future to prevent modifications to segment config
|
//leds[F("seglock")] = false; //might be used in the future to prevent modifications to segment config
|
||||||
leds[F("cpal")] = strip.customPalettes.size(); //number of custom palettes
|
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_2D
|
#ifndef WLED_DISABLE_2D
|
||||||
if (strip.isMatrix) {
|
if (strip.isMatrix) {
|
||||||
@ -628,6 +635,7 @@ void serializeInfo(JsonObject root)
|
|||||||
|
|
||||||
root[F("fxcount")] = strip.getModeCount();
|
root[F("fxcount")] = strip.getModeCount();
|
||||||
root[F("palcount")] = strip.getPaletteCount();
|
root[F("palcount")] = strip.getPaletteCount();
|
||||||
|
root[F("cpalcount")] = strip.customPalettes.size(); //number of custom palettes
|
||||||
|
|
||||||
JsonArray ledmaps = root.createNestedArray(F("maps"));
|
JsonArray ledmaps = root.createNestedArray(F("maps"));
|
||||||
for (size_t i=0; i<10; i++) {
|
for (size_t i=0; i<10; i++) {
|
||||||
@ -872,6 +880,35 @@ void serializePalettes(JsonObject root, AsyncWebServerRequest* request)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void serializeNetworks(JsonObject root)
|
||||||
|
{
|
||||||
|
JsonArray networks = root.createNestedArray(F("networks"));
|
||||||
|
int16_t status = WiFi.scanComplete();
|
||||||
|
|
||||||
|
switch (status) {
|
||||||
|
case WIFI_SCAN_FAILED:
|
||||||
|
WiFi.scanNetworks(true);
|
||||||
|
return;
|
||||||
|
case WIFI_SCAN_RUNNING:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < status; i++) {
|
||||||
|
JsonObject node = networks.createNestedObject();
|
||||||
|
node["ssid"] = WiFi.SSID(i);
|
||||||
|
node["rssi"] = WiFi.RSSI(i);
|
||||||
|
node["bssid"] = WiFi.BSSIDstr(i);
|
||||||
|
node["channel"] = WiFi.channel(i);
|
||||||
|
node["enc"] = WiFi.encryptionType(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
WiFi.scanDelete();
|
||||||
|
|
||||||
|
if (WiFi.scanComplete() == WIFI_SCAN_FAILED) {
|
||||||
|
WiFi.scanNetworks(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void serializeNodes(JsonObject root)
|
void serializeNodes(JsonObject root)
|
||||||
{
|
{
|
||||||
JsonArray nodes = root.createNestedArray("nodes");
|
JsonArray nodes = root.createNestedArray("nodes");
|
||||||
@ -922,12 +959,13 @@ void serveJson(AsyncWebServerRequest* request)
|
|||||||
{
|
{
|
||||||
byte subJson = 0;
|
byte subJson = 0;
|
||||||
const String& url = request->url();
|
const String& url = request->url();
|
||||||
if (url.indexOf("state") > 0) subJson = 1;
|
if (url.indexOf("state") > 0) subJson = JSON_PATH_STATE;
|
||||||
else if (url.indexOf("info") > 0) subJson = 2;
|
else if (url.indexOf("info") > 0) subJson = JSON_PATH_INFO;
|
||||||
else if (url.indexOf("si") > 0) subJson = 3;
|
else if (url.indexOf("si") > 0) subJson = JSON_PATH_STATE_INFO;
|
||||||
else if (url.indexOf("nodes") > 0) subJson = 4;
|
else if (url.indexOf("nodes") > 0) subJson = JSON_PATH_NODES;
|
||||||
else if (url.indexOf("palx") > 0) subJson = 5;
|
else if (url.indexOf("palx") > 0) subJson = JSON_PATH_PALETTES;
|
||||||
else if (url.indexOf("fxda") > 0) subJson = 6;
|
else if (url.indexOf("fxda") > 0) subJson = JSON_PATH_FXDATA;
|
||||||
|
else if (url.indexOf("net") > 0) subJson = JSON_PATH_NETWORKS;
|
||||||
#ifdef WLED_ENABLE_JSONLIVE
|
#ifdef WLED_ENABLE_JSONLIVE
|
||||||
else if (url.indexOf("live") > 0) {
|
else if (url.indexOf("live") > 0) {
|
||||||
serveLiveLeds(request);
|
serveLiveLeds(request);
|
||||||
@ -970,22 +1008,24 @@ void serveJson(AsyncWebServerRequest* request)
|
|||||||
|
|
||||||
switch (subJson)
|
switch (subJson)
|
||||||
{
|
{
|
||||||
case 1: //state
|
case JSON_PATH_STATE:
|
||||||
serializeState(lDoc); break;
|
serializeState(lDoc); break;
|
||||||
case 2: //info
|
case JSON_PATH_INFO:
|
||||||
serializeInfo(lDoc); break;
|
serializeInfo(lDoc); break;
|
||||||
case 4: //node list
|
case JSON_PATH_NODES:
|
||||||
serializeNodes(lDoc); break;
|
serializeNodes(lDoc); break;
|
||||||
case 5: //palettes
|
case JSON_PATH_PALETTES:
|
||||||
serializePalettes(lDoc, request); break;
|
serializePalettes(lDoc, request); break;
|
||||||
case 6: // FX helper data
|
case JSON_PATH_FXDATA:
|
||||||
serializeModeData(lDoc.as<JsonArray>()); break;
|
serializeModeData(lDoc.as<JsonArray>()); break;
|
||||||
|
case JSON_PATH_NETWORKS:
|
||||||
|
serializeNetworks(lDoc); break;
|
||||||
default: //all
|
default: //all
|
||||||
JsonObject state = lDoc.createNestedObject("state");
|
JsonObject state = lDoc.createNestedObject("state");
|
||||||
serializeState(state);
|
serializeState(state);
|
||||||
JsonObject info = lDoc.createNestedObject("info");
|
JsonObject info = lDoc.createNestedObject("info");
|
||||||
serializeInfo(info);
|
serializeInfo(info);
|
||||||
if (subJson != 3)
|
if (subJson != JSON_PATH_STATE_INFO)
|
||||||
{
|
{
|
||||||
JsonArray effects = lDoc.createNestedArray(F("effects"));
|
JsonArray effects = lDoc.createNestedArray(F("effects"));
|
||||||
serializeModeNames(effects); // remove WLED-SR extensions from effect names
|
serializeModeNames(effects); // remove WLED-SR extensions from effect names
|
||||||
|
@ -12,7 +12,7 @@ static volatile byte presetToApply = 0;
|
|||||||
static volatile byte callModeToApply = 0;
|
static volatile byte callModeToApply = 0;
|
||||||
static volatile byte presetToSave = 0;
|
static volatile byte presetToSave = 0;
|
||||||
static volatile int8_t saveLedmap = -1;
|
static volatile int8_t saveLedmap = -1;
|
||||||
static char quickLoad[3];
|
static char quickLoad[9];
|
||||||
static char saveName[33];
|
static char saveName[33];
|
||||||
static bool includeBri = true, segBounds = true, selectedOnly = false, playlistSave = false;;
|
static bool includeBri = true, segBounds = true, selectedOnly = false, playlistSave = false;;
|
||||||
|
|
||||||
@ -199,7 +199,7 @@ void savePreset(byte index, const char* pname, JsonObject sObj)
|
|||||||
|
|
||||||
presetToSave = index;
|
presetToSave = index;
|
||||||
playlistSave = false;
|
playlistSave = false;
|
||||||
if (sObj[F("ql")].is<const char*>()) strlcpy(quickLoad, sObj[F("ql")].as<const char*>(), 3); // only 2 chars for QL
|
if (sObj[F("ql")].is<const char*>()) strlcpy(quickLoad, sObj[F("ql")].as<const char*>(), 9); // client limits QL to 2 chars, buffer for 8 bytes to allow unicode
|
||||||
sObj.remove("v");
|
sObj.remove("v");
|
||||||
sObj.remove("time");
|
sObj.remove("time");
|
||||||
sObj.remove(F("error"));
|
sObj.remove(F("error"));
|
||||||
|
@ -411,10 +411,10 @@ void handleNotifications()
|
|||||||
for (size_t i = 0; i < strip.getSegmentsNum(); i++) {
|
for (size_t i = 0; i < strip.getSegmentsNum(); i++) {
|
||||||
Segment& seg = strip.getSegment(i);
|
Segment& seg = strip.getSegment(i);
|
||||||
if (!seg.isActive() || !seg.isSelected()) continue;
|
if (!seg.isActive() || !seg.isSelected()) continue;
|
||||||
if (udpIn[8] < strip.getModeCount()) strip.setMode(i, udpIn[8]);
|
seg.setMode(udpIn[8]);
|
||||||
seg.speed = udpIn[9];
|
seg.speed = udpIn[9];
|
||||||
if (version > 2) seg.intensity = udpIn[16];
|
if (version > 2) seg.intensity = udpIn[16];
|
||||||
if (version > 4 && udpIn[19] < strip.getPaletteCount()) seg.palette = udpIn[19];
|
if (version > 4) seg.setPalette(udpIn[19]);
|
||||||
}
|
}
|
||||||
stateChanged = true;
|
stateChanged = true;
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// version code in format yymmddb (b = daily build)
|
// version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 2211200
|
#define VERSION 2211250
|
||||||
|
|
||||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||||
//#define WLED_USE_MY_CONFIG
|
//#define WLED_USE_MY_CONFIG
|
||||||
|
Loading…
Reference in New Issue
Block a user