mirror of
https://github.com/gunner47/GyverLamp.git
synced 2025-08-08 09:20:59 +03:00
Обновлено android приложение, сканирование сети для добавления лампы, + 2 эффекта, откат к стандартной библиотеке GyverButton
This commit is contained in:
BIN
android/LedLamp.aia
Normal file
BIN
android/LedLamp.aia
Normal file
Binary file not shown.
BIN
android/LedLamp.apk
Normal file
BIN
android/LedLamp.apk
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
131
android/Декомпозиция.txt
Normal file
131
android/Декомпозиция.txt
Normal file
@@ -0,0 +1,131 @@
|
||||
Функциональная декомпозиция, диаграмма "классов"
|
||||
|
||||
UI всё, что связано с отображением
|
||||
1. ScreenManager выор отображаемого экрана
|
||||
2. MainScreen управление UI'ем главного экрана (видимость, enable, цвета, позиции и т.д.)
|
||||
3. ConnectivityScreen управление UI'ем функций главного экрана (видимость, enable, цвета, позиции и т.д.)
|
||||
4. ModesScreen управление UI'ем функций экрана выбора эффектов (видимость, enable, цвета, позиции и т.д.)
|
||||
5. FavoritesScreen управление UI'ем функций экрана избранных эффектов (видимость, enable, цвета, позиции и т.д.)
|
||||
6. AlarmScreen управление UI'ем функций экрана будильника (видимость, enable, цвета, позиции и т.д.)
|
||||
7. TimerScreen управление UI'ем функций экрана таймера (видимость, enable, цвета, позиции и т.д.)
|
||||
|
||||
Backend всё, что связано с логикой
|
||||
8. DeviceManager backend функции, связанных с управлением лампами (состояние, эффекты, подключение и т.д.)
|
||||
9. DiscoverManager
|
||||
10. PollingManager
|
||||
11. StringHelper
|
||||
|
||||
System все системные объекты и функции
|
||||
11. System_DB хранилище
|
||||
12. System_WiFi модуль работы с WiFi
|
||||
|
||||
|
||||
|
||||
Свойства и методы "классов"
|
||||
|
||||
ScreenManager
|
||||
ShowScreen метод: принимает номер "экрана", устанавливает свойство видимости в true для этого экрана и в false для остальных экранов; вызывает перерисовку "экранов"
|
||||
RebuildAllScreens метод: перерисовывает "экраны", делает их блоки видимыми или видимыми в зависимости от выставленных свойств видимости
|
||||
CloseApplication метод: закрывает приложение
|
||||
|
||||
MainScreen
|
||||
Visible свойство: "Видимость главного экрана"
|
||||
BlockControlEventsEmitting свойство: "Не генерировать события от элементов управления" (слайдеров, кнопок и т.д.); нужно, например, чтобы предотвратить slider.setPosition при его enable/disable
|
||||
Initialize метод (событие): действия при инициализации "экрана" (однократно)
|
||||
BackPressed метод (событие): действия при нажатии системной кнопки "Назад" на главном "экране"
|
||||
ConnectivityButtonClick метод (событие): действия при нажатии кнопки перехода на "экран" устройств
|
||||
ModesButtonClick метод (событие): действия при нажатии кнопки перехода на "экран" эффектов
|
||||
FavoritesButtonClick метод (событие): действия при нажатии кнопки перехода на "экран" избранных эффектов
|
||||
AlarmButtonClick метод (событие): действия при нажатии кнопки перехода на "экран" будильника
|
||||
TimerButtonClick метод (событие): действия при нажатии кнопки перехода на "экран" таймера
|
||||
OnOffButtonClick метод (событие): действия при нажатии кнопки Вкл/Выкл
|
||||
BrightnessSliderPositionChanged метод (событие): действия при изменении слайдера яркости
|
||||
SpeedSliderPositionChanged метод (событие): действия при изменении слайдера скокрости
|
||||
ScaleSliderPositionChanged метод (событие): действия при изменении слайдера масштаба
|
||||
UpdateControls метод: обновить отображение элементов управления (статусы enabled/disabled) в зависимости от сохранённых свойств (модели данных)
|
||||
SetDebugText метод: установить отладочный текст основной отладочной текстовой метке
|
||||
SetDebugTimeText метод: установить отладочный текст дополнительной отладочной текстовой метке
|
||||
|
||||
ConnectivityScreen
|
||||
Visible свойство: "Видимость экрана устройств"
|
||||
IpAddressInputLostFocus метод (событие): действия при потери фокуса поля ввода IP адреса
|
||||
PortInputLostFocus метод (событие): действия при потери фокуса поля ввода порта
|
||||
SaveConnectionButtonClick метод (событие): действия при нажатии на кнопку "Добавить"
|
||||
RemoveConnectionButtonClick метод (событие): действия при нажатии на кнопку "Удалить"
|
||||
SaveAllConnectionButtonClick метод (событие): действия при нажатии на кнопку "Сканировать и добавить"
|
||||
DeviceSocketListViewAfterPicking метод (событие): действия при выборе устройства из списка сохранённых и его подключение
|
||||
BaсkButtonClick метод (событие): действия при UI кнопки "Назад" на "экране" устройств
|
||||
UpdateConnectivityStatus метод: обновить статус устройства "Подключен"/"Отключен" на "экране" устройств
|
||||
UpdateCurrentDeviceSocket метод: отобразить текущее устройство (DeviceManager.CurrentDeviceSocket) в полях ввода IP адреса и порта на "экране" устройств
|
||||
UpdateCurrentDevicesSockets метод: отобразить текущий список сохранённых устройств (DeviceManager.Devices) на "экране" устройств
|
||||
ValidateAndAddDeviceSocketToList метод: валидировать значения полей ввода IP адреса и порта и добавть запись в список сохранённых устройств; перерисовать этот список
|
||||
SetConnectionStatus метод: установить статус Подлкючен/Отключен соответствующей текстовой метке на этом экране
|
||||
UpdateScreen метод: обновить все элементы управления на "экране" устройств согласно модели данных
|
||||
|
||||
ModesScreen
|
||||
Visible свойство: "Видимость экрана эффектов"
|
||||
ModesListViewAfterPicking метод (событие): действия при выборе эффекта из списка эффектов
|
||||
BaсkButtonClick метод (событие): действия при UI кнопки "Назад" на "экране" эффектов
|
||||
|
||||
FavoritesScreen
|
||||
Visible свойство: "Видимость экрана устройств"
|
||||
BaсkButtonClick метод (событие): действия при UI кнопки "Назад" на "экране" избранных эффектов
|
||||
|
||||
AlarmScreen
|
||||
Visible свойство: "Видимость экрана устройств"
|
||||
BaсkButtonClick метод (событие): действия при UI кнопки "Назад" на "экране" будильника
|
||||
|
||||
TimerScreen
|
||||
Visible свойство: "Видимость экрана устройств"
|
||||
BaсkButtonClick метод (событие): действия при UI кнопки "Назад" на "экране" таймера
|
||||
|
||||
DeviceManager
|
||||
Connected свойство: подключено ли устройство (лампа)? точнее, был ли получен ответ на последнюю высланную ему команду
|
||||
State свойство: полученное командой GET состояние устройства (CURR...)
|
||||
Devices свойство: список устройств (хранимое свойство)
|
||||
CurrentDeviceSocket свойство: текущее устройство (хранимое свойство)
|
||||
Modes свойство: список доступных режимов, захардкожен одновременно в лампе и в приложении, должен совпадать
|
||||
Initialize метод: вычитывание хранимых свойств и инициализация соответствующих переменных
|
||||
ConnectDeviceSocket метод: стартовать таймер (polling timer) с регулярной отправкой команд GET/DEB на устройство
|
||||
DisconnectDeviceSocket метод: остановить таймер (polling timer) с регулярной отправкой команд GET/DEB на устройство; очистить свойства Connected и State
|
||||
GetCurrentModeId метод: получить номер текущего эффекта из свойства State
|
||||
GetCurrentModeId метод: получить имя текущего эффекта из свойства State
|
||||
GetCurrentBrightness метод: получить значение текущей яркости из свойства State
|
||||
GetCurrentSpeed метод: получить значение текущей скорости из свойства State
|
||||
GetCurrentScale метод: получить значение текущего масштаба из свойства State
|
||||
GetCurrentOn метод: получить значение текущей состояния Вкл/Выкл из свойства State
|
||||
GetCurrentEspMode метод: получить значение текущей состояния ESP_MODE из свойства State
|
||||
GetCurrentUseNtp метод: получить значение текущей состояния USE_NTP из свойства State
|
||||
SaveDeviceSocketSettings метод: сохранить с базу данных приложения хранимые значения (текущее стройство и список устройств)
|
||||
ValidateIpPort метод: валидировать переданное в качестве параметра значение IP адреса или порта
|
||||
|
||||
DiscoverManager
|
||||
TimeoutMs свойство: время ожидания ответа от устройств на multicast команду DISCOVER
|
||||
SendMulticastCommand метод: стартовать UDP сервер (для отправки multicast команды DISCOVER на адрес широковещательных сообщений сети и получения ответа)
|
||||
UdpServerStarted метод (событие): отправить multicast команду DISCOVER на адрес широковещательных сообщений сети; стартовать таймер завершения работы сервера
|
||||
UdpServerDataRecieved метод (событие): получить и обработать ответы от устройств на multicast команду DISCOVER
|
||||
TimerTimerNow метод (событие): завершить работу UDP сервера и таймера (при первом срабатывании события таймера)
|
||||
GetBroacdastIP метод: получить адрес широковещательных сообщений мобильного устройства, используя текущий IP адрес WiFi подключения
|
||||
|
||||
PollingManager
|
||||
Timeout свойство: время ожидания ответа от устройств на команды управления
|
||||
UdpPort свойство: номер UDP порта
|
||||
TimerIntervalMs свойство: время работы таймера (ограничение используемого компонента), по его истечении таймер постоянно перезапускается для непрерывной работы
|
||||
TimerTickMs свойство: интервал времени, через который будет сгенерировано событие таймера
|
||||
TimerTickCounter свойство: счётчик срабатываний таймера, нужен чтобы вызывать команды управления/запроса состяния устройств по очереди x из n - одна команда (GET), y из n - другая (DEB)
|
||||
StartTimer метод: старт polling таймера
|
||||
TimerTimerNow метод (событие): действия при срабатывании события polling таймера (отправка команд и перезапуск таймера)
|
||||
UdpClientRecieved метод (событие): действия при получении ответа на отправленные команды от подключенного устройства
|
||||
SendUdpCommand метод: отправить команду, принятую в качестве входного параметра на подключенное устройство
|
||||
SendGetDebCommandToDevice метод: отправить команды GET или DEB (в зависимости от входного параметра) на подключенное устройство
|
||||
SendPowerOnOffCommandToDevice метод: отправить команды On/Off (в зависимости от входного параметра) на подключенное устройство
|
||||
SendSetModeCommandToDevice метод: отправить команду смены эффекта на подключенное устройство
|
||||
SendSetBrightnessCommandToDevice метод: отправить команду установки яркости на подключенное устройство
|
||||
SendSetSpeedCommandToDevice метод: отправить команду установки скорости на подключенное устройство
|
||||
SendSetScaleCommandToDevice метод: отправить команду установки масштаба на подключенное устройство
|
||||
HandleDeviceResponse метод: обработка ответа от подключенного устройства на отправленные команды
|
||||
|
||||
StringHelper
|
||||
GetIpPortString метод: получить строку формата IP:PORT из входных параметров IP и PORT
|
||||
GetIpFromIpPortString метод: получить IP из входного параметра формата IP:PORT
|
||||
GgetPortFromIpPortString метод: получить PORT из входного параметра формата IP:PORT
|
Reference in New Issue
Block a user