mirror of
https://github.com/gunner47/GyverLamp.git
synced 2025-08-08 09:20:59 +03:00
Добавлена точная настройка яркости, скорости и масштаба эффектов; Добавлено управление будильниками
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -42,7 +42,11 @@ MainScreen
|
|||||||
BrightnessSliderPositionChanged метод (событие): действия при изменении слайдера яркости
|
BrightnessSliderPositionChanged метод (событие): действия при изменении слайдера яркости
|
||||||
SpeedSliderPositionChanged метод (событие): действия при изменении слайдера скокрости
|
SpeedSliderPositionChanged метод (событие): действия при изменении слайдера скокрости
|
||||||
ScaleSliderPositionChanged метод (событие): действия при изменении слайдера масштаба
|
ScaleSliderPositionChanged метод (событие): действия при изменении слайдера масштаба
|
||||||
|
BrightnessListPickerAfterPicking метод (событие): действия при выборе точного значения яркости из контекстного списка
|
||||||
|
SpeedListPickerAfterPicking метод (событие): действия при выборе точного значения скорости из контекстного списка
|
||||||
|
ScaleListPickerAfterPicking метод (событие): действия при выборе точного значения масштаба из контекстного списка
|
||||||
UpdateControls метод: обновить отображение элементов управления (статусы enabled/disabled) в зависимости от сохранённых свойств (модели данных)
|
UpdateControls метод: обновить отображение элементов управления (статусы enabled/disabled) в зависимости от сохранённых свойств (модели данных)
|
||||||
|
PopulateListPickerElements метод: заполнить контекстный список яркости/скорости/масштаба эффектов значениями, близкими к текущей позиции соответствующего слайдера
|
||||||
SetDebugText метод: установить отладочный текст основной отладочной текстовой метке
|
SetDebugText метод: установить отладочный текст основной отладочной текстовой метке
|
||||||
|
|
||||||
ConnectivityScreen
|
ConnectivityScreen
|
||||||
@@ -71,7 +75,27 @@ FavoritesScreen
|
|||||||
|
|
||||||
AlarmScreen
|
AlarmScreen
|
||||||
Visible свойство: "Видимость экрана устройств"
|
Visible свойство: "Видимость экрана устройств"
|
||||||
|
Initialized свойство: "Экран управления будильниками инициализирован"
|
||||||
|
BlockControlEventsEmitting свойство: "Не генерировать события от элементов управления" (переключателей, тайм пикеров и т.д.); нужно, например, чтобы предотвратить switch.changed при его enable/disable
|
||||||
BaсkButtonClick метод (событие): действия при UI кнопки "Назад" на "экране" будильника
|
BaсkButtonClick метод (событие): действия при UI кнопки "Назад" на "экране" будильника
|
||||||
|
MonSwitchChanged метод (событие): действия при установке/снятии переключателя включения будильника
|
||||||
|
TueSwitchChanged метод (событие): действия при установке/снятии переключателя включения будильника
|
||||||
|
WedSwitchChanged метод (событие): действия при установке/снятии переключателя включения будильника
|
||||||
|
ThuSwitchChanged метод (событие): действия при установке/снятии переключателя включения будильника
|
||||||
|
FriSwitchChanged метод (событие): действия при установке/снятии переключателя включения будильника
|
||||||
|
SatSwitchChanged метод (событие): действия при установке/снятии переключателя включения будильника
|
||||||
|
SunSwitchChanged метод (событие): действия при установке/снятии переключателя включения будильника
|
||||||
|
MonTimePickerAfterTimeSet метод (событие): действия при выборе времени будильника
|
||||||
|
TueTimePickerAfterTimeSet метод (событие): действия при выборе времени будильника
|
||||||
|
FriTimePickerAfterTimeSet метод (событие): действия при выборе времени будильника
|
||||||
|
WedTimePickerAfterTimeSet метод (событие): действия при выборе времени будильника
|
||||||
|
ThuTimePickerAfterTimeSet метод (событие): действия при выборе времени будильника
|
||||||
|
SatTimePickerAfterTimeSet метод (событие): действия при выборе времени будильника
|
||||||
|
SunTimePickerAfterTimeSet метод (событие): действия при выборе времени будильника
|
||||||
|
TimeBeforeAlarmListPickerAfterPicking метод (событие): действия при выборе времени срабатывания будильника перед "рассветом"
|
||||||
|
ResetAlarmState метод: "забыть" состояние будильников в android приложении (перед последующим запросом этого состояния)
|
||||||
|
UpdateScreen метод: обновить все элементы управления на "экране" управления будильниками согласно модели данных
|
||||||
|
UpdateControls метод: обновить отображение элементов управления (статусы enabled/disabled) в зависимости от сохранённых свойств (модели данных)
|
||||||
|
|
||||||
TimerScreen
|
TimerScreen
|
||||||
Visible свойство: "Видимость экрана устройств"
|
Visible свойство: "Видимость экрана устройств"
|
||||||
@@ -82,6 +106,7 @@ DeviceManager
|
|||||||
State свойство: полученное командой GET состояние устройства (CURR...), список (не строка)
|
State свойство: полученное командой GET состояние устройства (CURR...), список (не строка)
|
||||||
Devices свойство: список устройств (хранимое свойство)
|
Devices свойство: список устройств (хранимое свойство)
|
||||||
CurrentDeviceSocket свойство: текущее устройство (хранимое свойство)
|
CurrentDeviceSocket свойство: текущее устройство (хранимое свойство)
|
||||||
|
AlarmState свойство: текущее состояние будильников по дням (вкл/выкл, время каждого, время срабатывания перед "рассветом")
|
||||||
Modes свойство: список доступных режимов, захардкожен одновременно в лампе и в приложении, должен совпадать
|
Modes свойство: список доступных режимов, захардкожен одновременно в лампе и в приложении, должен совпадать
|
||||||
Initialize метод: вычитывание хранимых свойств и инициализация соответствующих переменных
|
Initialize метод: вычитывание хранимых свойств и инициализация соответствующих переменных
|
||||||
ConnectDeviceSocket метод: стартовать таймер (polling timer) с регулярной отправкой команд GET/DEB на устройство
|
ConnectDeviceSocket метод: стартовать таймер (polling timer) с регулярной отправкой команд GET/DEB на устройство
|
||||||
@@ -100,6 +125,15 @@ DeviceManager
|
|||||||
ResetCurrentDevice метод: установить свойство CurrentDeviceSocket в начальное состояние (очистить), соответствует состоянию "устройство не выбрано"
|
ResetCurrentDevice метод: установить свойство CurrentDeviceSocket в начальное состояние (очистить), соответствует состоянию "устройство не выбрано"
|
||||||
ResetCurrentDevices метод: установить свойство Devices в начальное состояние (очистить), соответствует состоянию "профили устройств не заданы"
|
ResetCurrentDevices метод: установить свойство Devices в начальное состояние (очистить), соответствует состоянию "профили устройств не заданы"
|
||||||
ValidateIpPort метод: валидировать переданное в качестве параметра значение IP адреса или порта
|
ValidateIpPort метод: валидировать переданное в качестве параметра значение IP адреса или порта
|
||||||
|
SendUdpCommand метод: отправить команду, приянтую в качестве входного аргумента, на подключенное устройствоС (обобщённый метод)
|
||||||
|
HandleDeviceResponse метод: обработать ответ от подключенного устройства на отправленные команды
|
||||||
|
GetAlarms метод: отправить команду запроса состояния будильников ALM_GET на устройство
|
||||||
|
GetAlarmOnOff метод: получить состояние вкл/выкл будильника для указанного во входном аргументе дня (из свойства AlarmState)
|
||||||
|
GetAlarmTime метод: получить время срабатывания будильника для указанного во входном аргументе дня (из свойства AlarmState)
|
||||||
|
GetTimeBeforeAlarmIndex метод: получить время срабатывания будильника перед "рассветом"
|
||||||
|
SetAlarmOnOff метод: отправить команду вкл/выкл будильника для заданного дня ALM_SET на устройство
|
||||||
|
SetAlarmTime метод: отправить команду установки времени срабатывания будильника для заданного дня ALM_SET на устройство
|
||||||
|
SetTimeBeforeAlarm метод: отправить команду установки времени срабатывания будильника перед "рассветом" DAWN на устройство
|
||||||
|
|
||||||
DiscoverManager
|
DiscoverManager
|
||||||
TimeoutMs свойство: время ожидания ответа от устройств на multicast команду DISCOVER
|
TimeoutMs свойство: время ожидания ответа от устройств на multicast команду DISCOVER
|
||||||
@@ -128,10 +162,10 @@ PollingManager
|
|||||||
SendSetBrightnessCommandToDevice метод: отправить команду установки яркости на подключенное устройство
|
SendSetBrightnessCommandToDevice метод: отправить команду установки яркости на подключенное устройство
|
||||||
SendSetSpeedCommandToDevice метод: отправить команду установки скорости на подключенное устройство
|
SendSetSpeedCommandToDevice метод: отправить команду установки скорости на подключенное устройство
|
||||||
SendSetScaleCommandToDevice метод: отправить команду установки масштаба на подключенное устройство
|
SendSetScaleCommandToDevice метод: отправить команду установки масштаба на подключенное устройство
|
||||||
HandleDeviceResponse метод: обработка ответа от подключенного устройства на отправленные команды
|
|
||||||
SendUdpCommand метод: отправить команду, приянтую в качестве входного аргумента, на подключенное устройствоС (обобщённый метод)
|
|
||||||
|
|
||||||
StringHelper
|
StringHelper
|
||||||
GetIpPortString метод: получить строку формата IP:PORT из входных параметров IP и PORT
|
GetIpPortString метод: получить строку формата IP:PORT из входных параметров IP и PORT
|
||||||
GetIpFromIpPortString метод: получить IP из входного параметра формата IP:PORT
|
GetIpFromIpPortString метод: получить IP из входного параметра формата IP:PORT
|
||||||
GetPortFromIpPortString метод: получить PORT из входного параметра формата IP:PORT
|
GetPortFromIpPortString метод: получить PORT из входного параметра формата IP:PORT
|
||||||
|
GetFormattedTimeFromMinutes метод: получить строку с временем в формате hh:mm из входного аргумента (количество минут)
|
||||||
|
GetMinutesFromFormattedTime метод: получить количество минут из форматированной строки (hh:mm), переданной в качестве входного аргумента
|
||||||
|
@@ -37,6 +37,11 @@
|
|||||||
- Добавлены 2 эффекта: Светлячки со шлейфом и Белый свет
|
- Добавлены 2 эффекта: Светлячки со шлейфом и Белый свет
|
||||||
- При запросе обновления по воздуху (2 четверных касания к кнопке) лампа переключается в режим "Матрица" для визуального подтверждения готовности к прошивке
|
- При запросе обновления по воздуху (2 четверных касания к кнопке) лампа переключается в режим "Матрица" для визуального подтверждения готовности к прошивке
|
||||||
- В android приложение добавлена функция сканирования сети и добавления ламп с помощью multicast пакетов, доработка прошивки под это
|
- В android приложение добавлена функция сканирования сети и добавления ламп с помощью multicast пакетов, доработка прошивки под это
|
||||||
|
--- 03.08.2019
|
||||||
|
- Исправлены ошибки взаимодействия android приложения с лампой, в вывод команды CURR добавлено текущее время (или millis(), если время не синхронизировано)
|
||||||
|
--- 10.08.2019
|
||||||
|
- Добавлена точная настройка яркости, скорости и масштаба эффектов
|
||||||
|
- Добавлено взаимодействие с android приложением по управлению будильниками
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Ссылка для менеджера плат:
|
// Ссылка для менеджера плат:
|
||||||
|
@@ -213,7 +213,7 @@ class OtaManager
|
|||||||
Serial.printf("Для обновления в Arduino IDE выберите пункт меню Инструменты - Порт - '%s at ", espHostName);
|
Serial.printf("Для обновления в Arduino IDE выберите пункт меню Инструменты - Порт - '%s at ", espHostName);
|
||||||
Serial.print(WiFi.localIP());
|
Serial.print(WiFi.localIP());
|
||||||
Serial.println("'");
|
Serial.println("'");
|
||||||
Serial.printf("Затем нажмите кнопку 'Загрузка' в течение %u секунд и по запросу введите пароль '%ы'\n", ESP_CONF_TIMEOUT, AP_PASS);
|
Serial.printf("Затем нажмите кнопку 'Загрузка' в течение %u секунд и по запросу введите пароль '%s'\n", ESP_CONF_TIMEOUT, AP_PASS);
|
||||||
Serial.println("Устройство с Arduino IDE должно быть в одной локальной сети с модулем ESP!");
|
Serial.println("Устройство с Arduino IDE должно быть в одной локальной сети с модулем ESP!");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@@ -4,8 +4,6 @@ void parseUDP()
|
|||||||
|
|
||||||
if (packetSize)
|
if (packetSize)
|
||||||
{
|
{
|
||||||
Serial.print("income");
|
|
||||||
|
|
||||||
int32_t n = Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
|
int32_t n = Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
|
||||||
packetBuffer[n] = 0;
|
packetBuffer[n] = 0;
|
||||||
inputBuffer = packetBuffer;
|
inputBuffer = packetBuffer;
|
||||||
@@ -89,12 +87,12 @@ void parseUDP()
|
|||||||
if (inputBuffer.indexOf("ON") != -1)
|
if (inputBuffer.indexOf("ON") != -1)
|
||||||
{
|
{
|
||||||
alarm[alarmNum].state = true;
|
alarm[alarmNum].state = true;
|
||||||
inputBuffer = "alm #" + String(alarmNum + 1) + " ON";
|
sendAlarms();
|
||||||
}
|
}
|
||||||
else if (inputBuffer.indexOf("OFF") != -1)
|
else if (inputBuffer.indexOf("OFF") != -1)
|
||||||
{
|
{
|
||||||
alarm[alarmNum].state = false;
|
alarm[alarmNum].state = false;
|
||||||
inputBuffer = "alm #" + String(alarmNum + 1) + " OFF";
|
sendAlarms();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -102,9 +100,7 @@ void parseUDP()
|
|||||||
alarm[alarmNum].time = almTime;
|
alarm[alarmNum].time = almTime;
|
||||||
byte hour = floor(almTime / 60);
|
byte hour = floor(almTime / 60);
|
||||||
byte minute = almTime - hour * 60;
|
byte minute = almTime - hour * 60;
|
||||||
inputBuffer = "alm #" + String(alarmNum + 1) +
|
sendAlarms();
|
||||||
" " + String(hour) +
|
|
||||||
":" + String(minute);
|
|
||||||
}
|
}
|
||||||
saveAlarm(alarmNum);
|
saveAlarm(alarmNum);
|
||||||
}
|
}
|
||||||
@@ -118,6 +114,7 @@ void parseUDP()
|
|||||||
{
|
{
|
||||||
dawnMode = inputBuffer.substring(4).toInt() - 1;
|
dawnMode = inputBuffer.substring(4).toInt() - 1;
|
||||||
saveDawnMmode();
|
saveDawnMmode();
|
||||||
|
sendAlarms();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (inputBuffer.startsWith("DISCOVER")) // обнаружение приложением модуля esp в локальной сети
|
else if (inputBuffer.startsWith("DISCOVER")) // обнаружение приложением модуля esp в локальной сети
|
||||||
|
Reference in New Issue
Block a user