diff --git a/android/LedLamp.aia b/android/LedLamp.aia index 8ea2582..c7f628d 100644 Binary files a/android/LedLamp.aia and b/android/LedLamp.aia differ diff --git a/android/LedLamp.apk b/android/LedLamp.apk index 5de91c8..879e090 100644 Binary files a/android/LedLamp.apk and b/android/LedLamp.apk differ diff --git a/android/Декомпозиция.txt b/android/Декомпозиция.txt index 053dd5e..b17e95b 100644 --- a/android/Декомпозиция.txt +++ b/android/Декомпозиция.txt @@ -8,16 +8,17 @@ UI всё, что связано с отображением 5. FavoritesScreen управление UI'ем экрана избранных эффектов (видимость, enable, цвета, позиции и т.д.) 6. AlarmScreen управление UI'ем экрана будильника (видимость, enable, цвета, позиции и т.д.) 7. TimerScreen управление UI'ем экрана таймера (видимость, enable, цвета, позиции и т.д.) +8. SettingsScreen управление UI'ем экрана настроек (OTA) Backend всё, что связано с логикой -8. DeviceManager backend функции, связанных с управлением лампами (состояние, эффекты, подключение и т.д.) -9. DiscoverManager функции обнаружения ламп в локальной WiFi сети -10. PollingManager функции регулярного опроса ламп по таймеру для получения актуальных настроек -11. StringHelper разные вспомогательные функции для работы со строками +9. DeviceManager backend функции, связанных с управлением лампами (состояние, эффекты, подключение и т.д.) +10. DiscoverManager функции обнаружения ламп в локальной WiFi сети +11. PollingManager функции регулярного опроса ламп по таймеру для получения актуальных настроек +12. StringHelper разные вспомогательные функции для работы со строками System все системные объекты и функции -11. System_DB хранилище -12. System_WiFi модуль работы с WiFi +13. System_DB хранилище +14. System_WiFi модуль работы с WiFi @@ -71,6 +72,7 @@ ConnectivityScreen UpdateCurrentDevicesSockets метод: отобразить текущий список сохранённых устройств (DeviceManager.Devices) на "экране" устройств ValidateAndAddDeviceSocketToList метод: валидировать значения полей ввода IP адреса и порта и добавть запись в список сохранённых устройств; перерисовать этот список UpdateScreen метод: обновить все элементы управления на "экране" устройств согласно модели данных + SettingsButtonClick метод: отобразить экран настроек ModesScreen Visible свойство: "Видимость экрана эффектов" @@ -135,6 +137,11 @@ TimerScreen AnimationTimerTimerNow метод: действия при срабатывании события таймера, управляющий анимацией функции таймера лампы (показать/скрыть иконку, обновить текст оставшегося времени) StopAnimationTimer метод: остановить таймер, управляющий анимацией функции таймера лампы, сбросить его сохранённое состояние в исходное (модель данных) +SettingsScreen + Visible свойство: "Видимость экрана настроек" + BaсkButtonClick метод (событие): действия при нажатии кнопки "Назад" на "экране" настроек + OtaButtonClick метод (событие): действия при нажатии кнопки "Режим обновления" на "экране" настроек + DeviceManager Connected свойство: подключено ли устройство (лампа)? точнее, был ли получен ответ на последнюю высланную ему команду State свойство: полученное командой GET состояние устройства (CURR...), список (не строка) diff --git a/firmware/GyverLamp_v1.4/parsing.ino b/firmware/GyverLamp_v1.4/parsing.ino index 3f6fc6c..38c9ec0 100644 --- a/firmware/GyverLamp_v1.4/parsing.ino +++ b/firmware/GyverLamp_v1.4/parsing.ino @@ -160,6 +160,18 @@ void parseUDP() eepromTimer = millis(); } + else if (inputBuffer.startsWith("OTA")) + { + #ifdef OTA + otaManager.RequestOtaUpdate(); + delay(50); + otaManager.RequestOtaUpdate(); + currentMode = 16; // принудительное включение режима "Матрица" для индикации перехода в режим обновления по воздуху + FastLED.clear(); + delay(1); + #endif + } + else { inputBuffer = "";