OTA-обновления
OTA (Over-the-Air) обновляет прошивку устройства через сеть без физического подключения к компьютеру. Перед обновлением обеспечьте стабильное питание и не отключайте устройство от сети до завершения операции.
Сначала подключите устройство к сети через Wi-Fi или Ethernet. Например:
net.wf.setup(net.wf.mode.STA, "ssid", "password")
net.wf.start()
Затем укажите путь обработчика обновлений. Если сервер задан в конфигурации прошивки, первый аргумент можно передать как nil:
net.ota(nil, "firmware")
Путь обязателен: вызов net.ota() без него некорректен. Начальный /
необязателен: модуль корректно обрабатывает оба варианта.
Если устройство поддерживает заводской раздел прошивки, функция os.factoryreset() стирает данные о выбранном OTA-разделе и перезагружает устройство с заводской прошивкой:
os.factoryreset()
net.ota([server], path [, project, reboot, verify, ssl, ask])
Запрашивает прошивку у OTA-сервера и, если сервер вернул новый образ, записывает его в следующий OTA-раздел.
Аргументы:
server— имя сервера без схемы и пути. Если передатьnil, используется сервер из конфигурации прошивки;path— путь обработчика на сервере; начальный/необязателен, значения по умолчанию нет;project— необязательное имя проекта, передаваемое серверу;reboot— перезагрузить устройство после успешной установки; по умолчаниюtrue;verify— проверить записанный образ перед выбором загрузочного раздела; по умолчаниюtrue;ssl— использовать HTTPS на порту 443; еслиfalse, используется HTTP на порту 80. По умолчаниюtrue;ask— только выполнить запрос и вернуть HTTP-код, не скачивая и не устанавливая образ. По умолчаниюfalse.
При ask = true функция возвращает HTTP-код ответа сервера. В режиме установки
функция ничего не возвращает. Код 471 означает, что новой прошивки нет, и не
считается ошибкой. Ошибки сети, записи, проверки образа, код 470 и остальные
неожиданные HTTP-коды вызывают исключение.
-- Проверить и установить обновление с пользовательского сервера.
net.ota("update.example.com", "firmware", "myproject")
-- Только запросить HTTP-код, не устанавливая образ.
local code = net.ota(
"update.example.com",
"firmware",
"myproject",
false,
true,
true,
true
)
print(code)