Добавлена функция таймера отключения; исправлены ошибки

This commit is contained in:
gunner47
2019-08-14 00:18:36 +03:00
parent 754dde2f96
commit b2d0110a63
8 changed files with 106 additions and 17 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -24,6 +24,7 @@ System все системные объекты и функции
Свойства и методы "классов"
ScreenManager
CurrentScreenId свойство: "Текущий отображаемый 'экран'"
ShowScreen метод: принимает номер "экрана", устанавливает свойство видимости в true для этого экрана и в false для остальных экранов; вызывает перерисовку "экранов"
RebuildAllScreens метод: перерисовывает "экраны", делает их блоки видимыми или видимыми в зависимости от выставленных свойств видимости
CloseApplication метод: закрывает приложение
@@ -95,12 +96,24 @@ AlarmScreen
SatTimePickerAfterTimeSet метод (событие): действия при выборе времени будильника
SunTimePickerAfterTimeSet метод (событие): действия при выборе времени будильника
TimeBeforeAlarmListPickerAfterPicking метод (событие): действия при выборе времени срабатывания будильника перед "рассветом"
ResetAlarmState метод: "забыть" состояние будильников в android приложении (перед последующим запросом этого состояния)
UpdateScreen метод: обновить все элементы управления на "экране" управления будильниками согласно модели данных
UpdateControls метод: обновить отображение элементов управления (статусы enabled/disabled) в зависимости от сохранённых свойств (модели данных)
TimerScreen
Visible свойство: "Видимость экрана устройств"
Initialized свойство: "Экран управления таймером инициализирован"
BlockControlEventsEmitting свойство: "Не генерировать события от элементов управления" (лист пикера); нужно, например, чтобы предотвратить listpicker.afterpicking при его enable/disable
AnimationTimerOn свойство: "таймер, управляющий анимацией функции таймера лампы, включен"
RemainingSeconds свойство: "время до срабатывания таймера лампы" и одновремнно "время до окончания работы таймера, управляющего анимацией функции таймера лампы"
TimerTickMs свойство: "шаг таймера, управляющего анимацией функции таймера лампы"
TimeListPickerAfterPicking метод (событие): действия при выборе пользователем времени до срабатывания таймера лампы (отправка команды модулю)
UpdateControls метод: обновить отображение элементов управления (статусы enabled/disabled) в зависимости от сохранённых свойств (модели данных)
UpdateScreen метод: обновить все элементы управления на "экране" управления таймером согласно модели данных
GetRemainingLabelText метод: получить текст для вывода на метке оставшегося до срабатывания таймера времени
GetTimerSecondsToFire метод: получить количество секунд до срабатывания таймера из полученного в качестве аргумента значения TimeListPicker (выбранной пользователем опции)
HandleAnimation метод: обработать таймер, управляющий анимацией функции таймера лампы (запуск, если не запущен, принудительная остановка, если нужно)
AnimationTimerTimerNow метод: действия при срабатывании события таймера, управляющий анимацией функции таймера лампы (показать/скрыть иконку, обновить текст оставшегося времени)
StopAnimationTimer метод: остановить таймер, управляющий анимацией функции таймера лампы, сбросить его сохранённое состояние в исходное (модель данных)
BaсkButtonClick метод (событие): действия при UI кнопки "Назад" на "экране" таймера
DeviceManager
@@ -109,19 +122,21 @@ DeviceManager
Devices свойство: список устройств (хранимое свойство)
CurrentDeviceSocket свойство: текущее устройство (хранимое свойство)
AlarmState свойство: текущее состояние будильников по дням (вкл/выкл, время каждого, время срабатывания перед "рассветом")
TimerState свойство: текущее состояние таймера (ответ команды TMR_GET)
Modes свойство: список доступных режимов, захардкожен одновременно в лампе и в приложении, должен совпадать
Initialize метод: вычитывание хранимых свойств и инициализация соответствующих переменных
ConnectDeviceSocket метод: стартовать таймер (polling timer) с регулярной отправкой команд GET/DEB на устройство
DisconnectDeviceSocket метод: остановить таймер (polling timer) с регулярной отправкой команд GET/DEB на устройство; очистить свойства Connected и State
GetCurrentModeId метод: получить номер текущего эффекта из свойства State
GetCurrentModeName метод: получить имя текущего эффекта из свойства State
GetCurrentBrightness метод: получить значение текущей яркости из свойства State
GetCurrentSpeed метод: получить значение текущей скорости из свойства State
GetCurrentScale метод: получить значение текущего масштаба из свойства State
GetCurrentOn метод: получить значение текущего состояния Вкл/Выкл из свойства State
GetCurrentEspMode метод: получить значение текущего состояния ESP_MODE из свойства State
GetCurrentUseNtp метод: получить значение текущего состояния USE_NTP из свойства State
GetCurrentUseTime метод: получить значение текущего времени на устройстве из свойства State
GetCurrentModeId метод: получить номер текущего эффекта (из свойства State)
GetCurrentModeName метод: получить имя текущего эффекта (из свойства State)
GetCurrentBrightness метод: получить значение текущей яркости (из свойства State)
GetCurrentSpeed метод: получить значение текущей скорости (из свойства State)
GetCurrentScale метод: получить значение текущего масштаба (из свойства State)
GetCurrentOn метод: получить значение текущего состояния Вкл/Выкл (из свойства State)
GetCurrentEspMode метод: получить значение текущего состояния ESP_MODE (из свойства State)
GetCurrentUseNtp метод: получить значение текущего состояния USE_NTP 9из свойства State)
GetTimerOnOffFromState метод: получить значение текущего состояния таймера (из свойства State)
GetCurrentTime метод: получить значение текущего времени на устройстве (из свойства State)
SaveDeviceSocketSettings метод: сохранить с базу данных приложения хранимые значения (текущее стройство и список устройств)
SetDeviceOffline метод: установить свойства Connected и State в начальное состояние (очистить), соответствует состоянию "устройство не подключено"
ResetCurrentDevice метод: установить свойство CurrentDeviceSocket в начальное состояние (очистить), соответствует состоянию "устройство не выбрано"
@@ -129,13 +144,20 @@ DeviceManager
ValidateIpPort метод: валидировать переданное в качестве параметра значение IP адреса или порта
SendUdpCommand метод: отправить команду, приянтую в качестве входного аргумента, на подключенное устройствоС (обобщённый метод)
HandleDeviceResponse метод: обработать ответ от подключенного устройства на отправленные команды
GetAlarms метод: отправить команду запроса состояния будильников ALM_GET на устройство
ResetAlarmState метод: "забыть" состояние будильников в android приложении (перед последующим запросом этого состояния)
GetAlarmsSettings метод: отправить команду запроса состояния будильников ALM_GET на устройство
GetAlarmOnOff метод: получить состояние вкл/выкл будильника для указанного во входном аргументе дня (из свойства AlarmState)
GetAlarmTime метод: получить время срабатывания будильника для указанного во входном аргументе дня (из свойства AlarmState)
GetTimeBeforeAlarmIndex метод: получить время срабатывания будильника перед "рассветом"
SetAlarmOnOff метод: отправить команду вкл/выкл будильника для заданного дня ALM_SET на устройство
SetAlarmTime метод: отправить команду установки времени срабатывания будильника для заданного дня ALM_SET на устройство
SetTimeBeforeAlarm метод: отправить команду установки времени срабатывания будильника перед "рассветом" DAWN на устройство
ResetTimerState метод: "забыть" состояние таймера в android приложении (перед последующим запросом этого состояния)
GetTimerSettings метод: отправить команду запроса состояния таймера TMR_GET на устройство
GetTimerOnOff метод: получить значение текущего состояния таймера (из свойства TimerState)
GetTimerTimeOption метод: получить выбранное пользователем значение предуст ановки времени таймера (из свойства TimerState)
GetTimerRemainingSeconds метод: получить оставшееся до срабатывания таймера время (из свойства TimerState)
SetTimerSettings метод: отправить команду установки таймера TMR_SET
DiscoverManager
TimeoutMs свойство: время ожидания ответа от устройств на multicast команду DISCOVER
@@ -171,3 +193,4 @@ StringHelper
GetPortFromIpPortString метод: получить PORT из входного параметра формата IP:PORT
GetFormattedTimeFromMinutes метод: получить строку с временем в формате hh:mm из входного аргумента (количество минут)
GetMinutesFromFormattedTime метод: получить количество минут из форматированной строки (hh:mm), переданной в качестве входного аргумента