|
|
# Репозиторий проекта
|
|
|
Приложение GyverHub может работать с GitHub репозиторием вашего проекта, оформленного по особым правилам. Это взаимодействие позволяет:
|
|
|
- Обновлять прошивку устройства "по воздуху" файлом из репозитория при выходе новых версий
|
|
|
- Прошивать устройство по USB файлом из репозитория
|
|
|
- Добавить свой проект в публичную базу проектов на основе GyverHub (вкладка **Проекты** снизу в приложении)
|
|
|
|
|
|
Нужно зарегистрироваться на GitHub, создать репозиторий и загрузить в него файлы (см. гугл). GyverHub требует наличия файла информации `project.json`. [Пример оформления проекта](https://github.com/GyverLibs/GyverHub-example).
|
|
|
|
|
|
## project.json
|
|
|
Файл содержит информацию о проекте и пути к файлам скомпилированной прошивки для разных платформ:
|
|
|
```json
|
|
|
{
|
|
|
"name": "Название проекта",
|
|
|
"about": "Краткое описание проекта",
|
|
|
"version": "1.0",
|
|
|
"notes": "Комментарии к обновлению",
|
|
|
"builds": [
|
|
|
{
|
|
|
"chipFamily": "ESP8266",
|
|
|
"parts": [
|
|
|
{
|
|
|
"path": "https://raw.githubusercontent.com/GyverLibs/GyverHub-example/main/bin/firmware.bin",
|
|
|
"offset": 0
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
```
|
|
|
|
|
|
### Массив builds
|
|
|
Если проект может быть запущен на разных ESP-шках - можно приложить отдельный бинарник для каждой и указать пути к ним. Полный пример со всем семейством ESP можно посмотреть [тут](https://raw.githubusercontent.com/GyverLibs/GyverHub-example/main/project.json).
|
|
|
|
|
|
### Параметр chipFamily
|
|
|
Поддерживаемые платформы и значения параметра `chipFamily`:
|
|
|
- `ESP8266`
|
|
|
- `ESP32`
|
|
|
- `ESP32-C3`
|
|
|
- `ESP32-S2`
|
|
|
- `ESP32-S3`
|
|
|
|
|
|
### Путь path
|
|
|
Путь должен вести к скомпилированному файлу прошивки. Его можно разместить как в самом репозитории, так и в релизах:
|
|
|
|
|
|
#### В репозитории
|
|
|
```
|
|
|
https://raw.githubusercontent.com/<аккаунт>/<проект>/main/<путь от корня репозитория>
|
|
|
```
|
|
|
Примеры:
|
|
|
- bin
|
|
|
- firmware.bin
|
|
|
- esp8266
|
|
|
- firmware.bin
|
|
|
- esp32
|
|
|
- firmware.bin
|
|
|
```
|
|
|
https://raw.githubusercontent.com/GyverLibs/GyverHub-example/main/bin/firmware.bin
|
|
|
https://raw.githubusercontent.com/GyverLibs/GyverHub-example/main/bin/esp8266/firmware.bin
|
|
|
https://raw.githubusercontent.com/GyverLibs/GyverHub-example/main/bin/esp32/firmware.bin
|
|
|
```
|
|
|
|
|
|
#### В релизах
|
|
|
```
|
|
|
https://github.com/<аккаунт>/<проект>/releases/latest/download/<файл>
|
|
|
```
|
|
|
Пример:
|
|
|
```
|
|
|
https://github.com/GyverLibs/GyverHub-example/releases/latest/download/firmware.bin
|
|
|
```
|
|
|
|
|
|
## Добавление проекта в базу
|
|
|
### Публично
|
|
|
Чтобы проект был доступен всем - [читай инструкцию](https://github.com/GyverLibs/GyverHub-projects/)
|
|
|
|
|
|
### Индивидуально
|
|
|
TODO
|
|
|
|
|
|
## Прошивка через USB
|
|
|
Если проект отображается на вкладке **Проекты** - его можно загрузить в устройство по USB. Это можно сделать с HTTPS версии сайта, нужно кликнуть на значок загрузки около названия проекта и следовать инструкциям.
|
|
|
|
|
|
## OTA обновление
|
|
|
### Указание версии
|
|
|
Чтобы приложение знало, что для устройства нужно искать обновление, нужно установить текущую версию проекта в прошивке при помощи функции `setVersion()` следующим образом: `hub.setVersion("аккаунт/репозиторий@версия")`, например `"AlexGyver/TachoLED@1.0"`
|
|
|
|
|
|
### Обновление репо
|
|
|
- Обновить код версии в `.setVersion()` в прошивке
|
|
|
- Скомпилировать и загрузить в репозиторий свежий бинарник
|
|
|
- Обновить код версии в `project.json`
|
|
|
|
|
|
### Запуск OTA
|
|
|
При входе на устройство в приложении автоматически проверяются обновления. Если доступна новая версия - появится всплывающее окно с предложением обновиться. Отключить автоматические обновления можно в настройках приложения. |