Добавлен режим автоматического переключения избранных эффектов; Реорганизован код, исправлены ошибки

This commit is contained in:
gunner47
2019-08-26 14:35:37 +03:00
parent b2d0110a63
commit 5012ee3141
17 changed files with 704 additions and 236 deletions

View File

@@ -28,6 +28,11 @@ ScreenManager
ShowScreen метод: принимает номер "экрана", устанавливает свойство видимости в true для этого экрана и в false для остальных экранов; вызывает перерисовку "экранов"
RebuildAllScreens метод: перерисовывает "экраны", делает их блоки видимыми или видимыми в зависимости от выставленных свойств видимости
CloseApplication метод: закрывает приложение
Color_DarkGrey свойство (константа): код цвета "тёмно-серый"
Color_LightGrey свойство (константа): код цвета "светло-серый"
Color_LightLightGrey свойство (константа): код цвета "светло-светло-серый"
Color_LightGreyBackground свойство (константа): код цвета "светло-серый" для фона
Color_Red свойство (константа): код цвета "красный"
MainScreen
Visible свойство: "Видимость главного экрана"
@@ -60,7 +65,7 @@ ConnectivityScreen
RemoveConnectionButtonClick метод (событие): действия при нажатии на кнопку "Удалить"
SaveAllConnectionButtonClick метод (событие): действия при нажатии на кнопку "Сканировать и добавить"
DeviceSocketListViewAfterPicking метод (событие): действия при выборе устройства из списка сохранённых и его подключение
BaсkButtonClick метод (событие): действия при UI кнопки "Назад" на "экране" устройств
BaсkButtonClick метод (событие): действия при нажатии кнопки "Назад" на "экране" устройств
UpdateConnectivityStatus метод: обновить статус устройства "Подключен"/"Отключен" на "экране" устройств
UpdateCurrentDeviceSocket метод: отобразить текущее устройство (DeviceManager.CurrentDeviceSocket) в полях ввода IP адреса и порта на "экране" устройств
UpdateCurrentDevicesSockets метод: отобразить текущий список сохранённых устройств (DeviceManager.Devices) на "экране" устройств
@@ -70,17 +75,31 @@ ConnectivityScreen
ModesScreen
Visible свойство: "Видимость экрана эффектов"
ModesListViewAfterPicking метод (событие): действия при выборе эффекта из списка эффектов
BaсkButtonClick метод (событие): действия при UI кнопки "Назад" на "экране" эффектов
BaсkButtonClick метод (событие): действия при нажатии кнопки "Назад" на "экране" эффектов
FavoritesScreen
Visible свойство: "Видимость экрана устройств"
BaсkButtonClick метод (событие): действия при UI кнопки "Назад" на "экране" избранных эффектов
Initialized свойство: "Экран автоматического переключения избранных эффектов инициализирован"
BlockControlEventsEmitting свойство: "Не генерировать события от элементов управления" (переключателей, лист пикеров и т.д.)
BaсkButtonClick метод (событие): действия при нажатии кнопки "Назад" на "экране" избранных эффектов
OnOffSwitchChanged метод (событие): действия при установке/снятии переключателя включения режима избранных эффектов
IntervalListPickerAfterPicking метод (событие): действия при выборе интервала времени (статической состявляющей) между автоматическими переключениями избранных эффектов
DispersionListPickerAfterPicking метод (событие): действия при выборе разброса времени (случайной состявляющей) между автоматическими переключениями избранных эффектов
ListViewIconClick метод (событие): действия при добавлении/удалении эффекта в/из список избранных
ListViewelementTouchUp метод (событие): служебный метод, необходимый для корректной отрисовки фона элемента в списке избранных эффектов
Initialize метод: настраивает и заполняющий специфический (кастомный) компонент ListViewer
MarkListItemAsFavorite метод: устанавливает признак включения/исключения эффекта в избранные в свойстве "состояние режима избранных эффектов"
UpdateScreen метод: обновить все элементы управления на "экране" избранных эффектов согласно модели данных
UpdateControls метод: обновить отображение элементов управления (статусы enabled/disabled) в зависимости от сохранённых свойств (модели данных)
SetFavoriteSettings метод: меняет состояние "экрана" избранных эффектов (устанавливает недоступность элементов управления и отображает анимацию) и вызывает DeviceManager.SetFavoriteSettings
SetIntervalListPicker метод: иниицализирует значение поля выбора интервала времени автоматической смены избранных эффектов согласно модели данных
SetDispersionListPicker метод: иниицализирует значение поля выбора разброса времени автоматической смены избранных эффектов согласно модели данных
AlarmScreen
Visible свойство: "Видимость экрана устройств"
Initialized свойство: "Экран управления будильниками инициализирован"
BlockControlEventsEmitting свойство: "Не генерировать события от элементов управления" (переключателей, тайм пикеров и т.д.); нужно, например, чтобы предотвратить switch.changed при его enable/disable
BaсkButtonClick метод (событие): действия при UI кнопки "Назад" на "экране" будильника
BaсkButtonClick метод (событие): действия при нажатии кнопки "Назад" на "экране" будильника
MonSwitchChanged метод (событие): действия при установке/снятии переключателя включения будильника
TueSwitchChanged метод (событие): действия при установке/снятии переключателя включения будильника
WedSwitchChanged метод (событие): действия при установке/снятии переключателя включения будильника
@@ -106,6 +125,7 @@ TimerScreen
AnimationTimerOn свойство: "таймер, управляющий анимацией функции таймера лампы, включен"
RemainingSeconds свойство: "время до срабатывания таймера лампы" и одновремнно "время до окончания работы таймера, управляющего анимацией функции таймера лампы"
TimerTickMs свойство: "шаг таймера, управляющего анимацией функции таймера лампы"
BaсkButtonClick метод (событие): действия при нажатии кнопки "Назад" на "экране" таймера
TimeListPickerAfterPicking метод (событие): действия при выборе пользователем времени до срабатывания таймера лампы (отправка команды модулю)
UpdateControls метод: обновить отображение элементов управления (статусы enabled/disabled) в зависимости от сохранённых свойств (модели данных)
UpdateScreen метод: обновить все элементы управления на "экране" управления таймером согласно модели данных
@@ -114,13 +134,13 @@ TimerScreen
HandleAnimation метод: обработать таймер, управляющий анимацией функции таймера лампы (запуск, если не запущен, принудительная остановка, если нужно)
AnimationTimerTimerNow метод: действия при срабатывании события таймера, управляющий анимацией функции таймера лампы (показать/скрыть иконку, обновить текст оставшегося времени)
StopAnimationTimer метод: остановить таймер, управляющий анимацией функции таймера лампы, сбросить его сохранённое состояние в исходное (модель данных)
BaсkButtonClick метод (событие): действия при UI кнопки "Назад" на "экране" таймера
DeviceManager
Connected свойство: подключено ли устройство (лампа)? точнее, был ли получен ответ на последнюю высланную ему команду
State свойство: полученное командой GET состояние устройства (CURR...), список (не строка)
Devices свойство: список устройств (хранимое свойство)
CurrentDeviceSocket свойство: текущее устройство (хранимое свойство)
FavoritesState свойство: текущее состояние избранных эффектов (вкл/выкл, интервал, разброс, список эффектов)
AlarmState свойство: текущее состояние будильников по дням (вкл/выкл, время каждого, время срабатывания перед "рассветом")
TimerState свойство: текущее состояние таймера (ответ команды TMR_GET)
Modes свойство: список доступных режимов, захардкожен одновременно в лампе и в приложении, должен совпадать
@@ -158,6 +178,14 @@ DeviceManager
GetTimerTimeOption метод: получить выбранное пользователем значение предуст ановки времени таймера (из свойства TimerState)
GetTimerRemainingSeconds метод: получить оставшееся до срабатывания таймера время (из свойства TimerState)
SetTimerSettings метод: отправить команду установки таймера TMR_SET
GetFavoriteSettings метод: отправить команду запроса состояния избранных эффектов FAV_GET на устройство
SetFavoriteSettings метод: отправить команду установки состояния избранных эффектов FAV_SET
GeFavoritesModeOnOff метод: получить состояние (включен/исключён в избранные) для заданного эффекта (из свойства FavoritesState)
SeFavoritesModeOnOff метод: установить состояние (включен/исключён в избранные) для заданного эффекта (из свойства FavoritesState)
GeFavoritesOnOff метод: получить состояние вкл/выкл режима избранных эффектов (из свойства FavoritesState)
GeFavoritesInterval метод: получить интервал времени смены избранных эффектов (из свойства FavoritesState)
GeFavoritesDispersion метод: получить разброс времени смены избранных эффектов (из свойства FavoritesState)
GeFavoritesModesList метод: получить список эффектов с указанным состояние (включен/исключён в избранные) для каждого из них
DiscoverManager
TimeoutMs свойство: время ожидания ответа от устройств на multicast команду DISCOVER