You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SwiftUI-приложение для iPhone под BLE DFU обновление ESP32 (Legacy DFU профиль).
3
+
SwiftUIiPhone application for BLE DFU firmware updates of ESP32 devices using the Legacy DFU profile.
4
4
5
-
## Что реализовано
5
+
## Implemented
6
6
7
-
- Выбор BLE-устройства
8
-
- Выбор файла прошивки (`firmware.bin`)
9
-
- Индикатор прогресса
10
-
- Таймлайн стадий прошивки:
11
-
- Поиск устройства
12
-
- Подключение
13
-
- Загрузка загрузчика DFU
14
-
- Инициализация пакета
15
-
- Загрузка firmware
16
-
- Проверка пакета
17
-
- Активация и перезапуск
18
-
- Экран настроек (кнопка сверху справа)
19
-
- Современный UI: градиентный фон, карточки, SF Symbols
7
+
- BLE device discovery and selection
8
+
- Firmware file selection (binary image)
9
+
- DFU progress tracking
10
+
- Stage timeline for the update pipeline
11
+
- Cancellation and retry behavior
12
+
- Localization and settings screen
20
13
21
-
## Структура
14
+
## Main Stack
22
15
23
-
-`ESP32-DFU/App` — точка входа приложения
24
-
-`ESP32-DFU/Models` — модели устройства и этапов DFU
25
-
-`ESP32-DFU/Services` — BLE сканер и менеджер DFU с состояниями
26
-
-`ESP32-DFU/Views` — UI-экраны
27
-
-`ESP32-DFU/Resources` — ассеты и `Info.plist`
16
+
- SwiftUI (UI)
17
+
- CoreBluetooth (BLE transport)
18
+
- Background restoration for more resilient sessions
28
19
29
-
## Важно
20
+
## Typical Flow
30
21
31
-
Текущая версия содержит полный UX-флоу и состояние DFU. Транспортный слой можно подключить в `DFUSessionManager` в месте, отмеченном комментарием, для фактической отправки пакетов в характеристики Legacy DFU ESP32.
22
+
1. Scan and select target ESP32 DFU device.
23
+
2. Select firmware binary file.
24
+
3. Start DFU session.
25
+
4. Wait for transfer, validation, and activation.
26
+
5. Observe completion or error diagnostics.
27
+
28
+
## Notes
29
+
30
+
This app is intended as a companion client for the firmware project in the repository root.
31
+
For production releases, publish mobile client and firmware as separate versioned artifacts.
0 commit comments