diff --git a/firmware/GyverLamp2_v0.8b/Button.h b/firmware/GyverLamp2/Button.h similarity index 100% rename from firmware/GyverLamp2_v0.8b/Button.h rename to firmware/GyverLamp2/Button.h diff --git a/firmware/GyverLamp2_v0.8b/FFT_C.h b/firmware/GyverLamp2/FFT_C.h similarity index 100% rename from firmware/GyverLamp2_v0.8b/FFT_C.h rename to firmware/GyverLamp2/FFT_C.h diff --git a/firmware/GyverLamp2_v0.8b/FastFilter.h b/firmware/GyverLamp2/FastFilter.h similarity index 100% rename from firmware/GyverLamp2_v0.8b/FastFilter.h rename to firmware/GyverLamp2/FastFilter.h diff --git a/firmware/GyverLamp2_v0.8b/GyverLamp2_v0.8b.ino b/firmware/GyverLamp2/GyverLamp2.ino similarity index 96% rename from firmware/GyverLamp2_v0.8b/GyverLamp2_v0.8b.ino rename to firmware/GyverLamp2/GyverLamp2.ino index cd1d963..d5ec23d 100644 --- a/firmware/GyverLamp2_v0.8b/GyverLamp2_v0.8b.ino +++ b/firmware/GyverLamp2/GyverLamp2.ino @@ -3,7 +3,6 @@ // FastLED 3.4.0+ https://github.com/FastLED/FastLED/releases // ---------- Настройки ----------- -#define MAX_PRESETS 20 // макс количество режимов (не более 30) #define GL_KEY "GL" // ключ сети // ------------ Кнопка ------------- @@ -33,7 +32,7 @@ const char WiFiPassword[] = "12345678"; #define PHOT_VCC D5 // питание фоторезистора #define EE_TOUT 30000 // таймаут сохранения епром после изменения, мс //#define DEBUG_SERIAL // закомментируй чтобы выключить отладку (скорость 115200) -#define EE_KEY 40 // ключ сброса WiFi (измени для сброса всех настроек) +#define EE_KEY 42 // ключ сброса WiFi (измени для сброса всех настроек) #define NTP_UPD_PRD 5 // период обновления времени с NTP сервера, минут // ---------- БИБЛИОТЕКИ ----------- diff --git a/firmware/GyverLamp2_v0.8b/NTPClient-Gyver.cpp b/firmware/GyverLamp2/NTPClient-Gyver.cpp similarity index 100% rename from firmware/GyverLamp2_v0.8b/NTPClient-Gyver.cpp rename to firmware/GyverLamp2/NTPClient-Gyver.cpp diff --git a/firmware/GyverLamp2_v0.8b/NTPClient-Gyver.h b/firmware/GyverLamp2/NTPClient-Gyver.h similarity index 100% rename from firmware/GyverLamp2_v0.8b/NTPClient-Gyver.h rename to firmware/GyverLamp2/NTPClient-Gyver.h diff --git a/firmware/GyverLamp2_v0.8b/Time.h b/firmware/GyverLamp2/Time.h similarity index 100% rename from firmware/GyverLamp2_v0.8b/Time.h rename to firmware/GyverLamp2/Time.h diff --git a/firmware/GyverLamp2_v0.8b/VolAnalyzer.h b/firmware/GyverLamp2/VolAnalyzer.h similarity index 100% rename from firmware/GyverLamp2_v0.8b/VolAnalyzer.h rename to firmware/GyverLamp2/VolAnalyzer.h diff --git a/firmware/GyverLamp2_v0.8b/analog.ino b/firmware/GyverLamp2/analog.ino similarity index 100% rename from firmware/GyverLamp2_v0.8b/analog.ino rename to firmware/GyverLamp2/analog.ino diff --git a/firmware/GyverLamp2_v0.8b/button.ino b/firmware/GyverLamp2/button.ino similarity index 100% rename from firmware/GyverLamp2_v0.8b/button.ino rename to firmware/GyverLamp2/button.ino diff --git a/firmware/GyverLamp2_v0.8b/data.h b/firmware/GyverLamp2/data.h similarity index 89% rename from firmware/GyverLamp2_v0.8b/data.h rename to firmware/GyverLamp2/data.h index 72b4a93..d7db5e6 100644 --- a/firmware/GyverLamp2_v0.8b/data.h +++ b/firmware/GyverLamp2/data.h @@ -15,6 +15,7 @@ #define GL_REACT_LEN 3 #define GL_SLAVE 0 #define GL_MASTER 1 +#define MAX_PRESETS 25 // макс количество режимов // ------------------- МАКРО -------------------- #ifdef DEBUG_SERIAL @@ -62,8 +63,8 @@ struct Config { byte workFrom = 0; // часы работы (0,1.. 23) byte workTo = 0; // часы работы (0,1.. 23) - int length = 100; // длина ленты - int width = 1; // ширина матрицы + int16_t length = 100; // длина ленты + int16_t width = 1; // ширина матрицы byte state = 1; // состояние 0 выкл, 1 вкл byte group = 1; // группа девайса (1-10) @@ -72,10 +73,10 @@ struct Config { byte presetAmount = 1; // количество режимов byte manualOff = 0; // выключали вручную? int8_t curPreset = 0; // текущий режим - int minLight = 0; // мин освещённость - int maxLight = 1023; // макс освещённость - char ssid[16]; // логин wifi - char pass[16]; // пароль wifi + int16_t minLight = 0; // мин освещённость + int16_t maxLight = 1023; // макс освещённость + char ssid[32]; // логин wifi + char pass[32]; // пароль wifi }; #define PRES_SIZE 13 diff --git a/firmware/GyverLamp2_v0.8b/eeprom.ino b/firmware/GyverLamp2/eeprom.ino similarity index 100% rename from firmware/GyverLamp2_v0.8b/eeprom.ino rename to firmware/GyverLamp2/eeprom.ino diff --git a/firmware/GyverLamp2_v0.8b/effects.ino b/firmware/GyverLamp2/effects.ino similarity index 98% rename from firmware/GyverLamp2_v0.8b/effects.ino rename to firmware/GyverLamp2/effects.ino index f6f3135..fec656d 100644 --- a/firmware/GyverLamp2_v0.8b/effects.ino +++ b/firmware/GyverLamp2/effects.ino @@ -1,11 +1,16 @@ void effectsRoutine() { static timerMillis effTmr(30, true); + static byte prevEff = 255; if (cfg.state && effTmr.isReady()) { int thisLength = getLength(); byte thisScale = getScale(); int thisWidth = (cfg.deviceType > 1) ? cfg.width : 1; FastLED.setBrightness(getBright()); + if (prevEff != CUR_PRES.effect) { + FastLED.clear(); + prevEff = CUR_PRES.effect; + } switch (CUR_PRES.effect) { case 1: // =================================== ПЕРЛИН =================================== @@ -134,7 +139,7 @@ void effectsRoutine() { } break; case 7: // ================================== КОНФЕТТИ ================================== - FOR_i(0, thisScale >> 3) { + FOR_i(0, (thisScale >> 3) + 1) { byte x = random(0, cfg.length * cfg.width); if (leds[x] == CRGB(0, 0, 0)) leds[x] = CHSV(CUR_PRES.rnd ? random(0, 255) : CUR_PRES.color, 255, 255); } diff --git a/firmware/GyverLamp2_v0.8b/fastRandom.h b/firmware/GyverLamp2/fastRandom.h similarity index 100% rename from firmware/GyverLamp2_v0.8b/fastRandom.h rename to firmware/GyverLamp2/fastRandom.h diff --git a/firmware/GyverLamp2_v0.8b/fire2D.ino b/firmware/GyverLamp2/fire2D.ino similarity index 100% rename from firmware/GyverLamp2_v0.8b/fire2D.ino rename to firmware/GyverLamp2/fire2D.ino diff --git a/firmware/GyverLamp2_v0.8b/palettes.h b/firmware/GyverLamp2/palettes.h similarity index 100% rename from firmware/GyverLamp2_v0.8b/palettes.h rename to firmware/GyverLamp2/palettes.h diff --git a/firmware/GyverLamp2_v0.8b/parsing.ino b/firmware/GyverLamp2/parsing.ino similarity index 97% rename from firmware/GyverLamp2_v0.8b/parsing.ino rename to firmware/GyverLamp2/parsing.ino index 2e312ee..c8df298 100644 --- a/firmware/GyverLamp2_v0.8b/parsing.ino +++ b/firmware/GyverLamp2/parsing.ino @@ -73,7 +73,9 @@ void parsing() { } cfg.length = data[17] | (data[16] << 8); // склеиваем cfg.width = data[20] | (data[19] << 8); // склеиваем + if (cfg.length > MAX_LEDS) cfg.length = MAX_LEDS; if (cfg.deviceType == GL_TYPE_STRIP) cfg.width = 1; + if (cfg.length * cfg.width > MAX_LEDS) cfg.width = MAX_LEDS / cfg.length; ntp.setTimeOffset((cfg.GMT - 13) * 3600); ntp.setPoolServerName(NTPservers[cfg.NTP - 1]); FastLED.setMaxPowerInVoltsAndMilliamps(STRIP_VOLT, cfg.maxCur * 100); diff --git a/firmware/GyverLamp2_v0.8b/presetManager.ino b/firmware/GyverLamp2/presetManager.ino similarity index 100% rename from firmware/GyverLamp2_v0.8b/presetManager.ino rename to firmware/GyverLamp2/presetManager.ino diff --git a/firmware/GyverLamp2_v0.8b/startup.ino b/firmware/GyverLamp2/startup.ino similarity index 100% rename from firmware/GyverLamp2_v0.8b/startup.ino rename to firmware/GyverLamp2/startup.ino diff --git a/firmware/GyverLamp2_v0.8b/time.ino b/firmware/GyverLamp2/time.ino similarity index 100% rename from firmware/GyverLamp2_v0.8b/time.ino rename to firmware/GyverLamp2/time.ino diff --git a/firmware/GyverLamp2_v0.8b/timeRandom.h b/firmware/GyverLamp2/timeRandom.h similarity index 100% rename from firmware/GyverLamp2_v0.8b/timeRandom.h rename to firmware/GyverLamp2/timeRandom.h diff --git a/firmware/GyverLamp2_v0.8b/timerMillis.h b/firmware/GyverLamp2/timerMillis.h similarity index 100% rename from firmware/GyverLamp2_v0.8b/timerMillis.h rename to firmware/GyverLamp2/timerMillis.h