Project

General

Profile

Provisioning 2.0

Провижионинг состоит из набора процедур и конфигурационного файла json.
Расположение конфигурационного файла по-умолчанию находится по адресу - http://wrtech.local/update/WR-330/config.json

  • Набор процедур:
    • обновление прошивки или bootstrap - wrtImageUpdate()
    • обновление logo, отображаемое при запуске приставки - wrtLogoUpdate()
    • обновление приложений (services), находящихся в внутреннем портале - wrtServiceListUpdate()

Три способа реализации provisioning'а:

Files:

autoconfig_1_json_in_sync.js
autoconfig_2_json_out_async.js - является также и 3 вариантом, различие в расположении js файла.
config.json

  • 1 Сценарий provisioning'а и конфигурационный файл расположены на странице самого портала или странице "предзагрузки" (адрес портала по-умолчанию http://wrtech.local).
    js script и json config на портале.

index.html - Пример готовой страницы.

  • 2 Сценарий provisioning'а находится в составе портала или странице "предзагрузки", конфигурационный файл загружается с сервера дополнительным запросом (периодически).
    js script на портале, json config ассинхронно с сервера.

  • 3 Сценарий provisioning'а находится в составе прошивки, конфигурационный файл загружается с сервера запросом (периодически).
    js script в прошивке, json config ассинхронно с сервера.

    в прошивке требуется наличие опций

Конфигурационный файл провижионинга:

Для второго и третьего варианта реализации, т.к. в первом варианте идет в составе самого скрипта.

Механизм обновления логотипа


Алгоритм:
1. если отсутствует значение у переменной logo.md5 в конфигурации, то отдельным асинхронным запросом реализуется получение ETag.
2. если нет ETag не поддерживается используется опция Last-Modified.

Примечание: 1. при первом запуске устанвливается лого автоматически и запоминается ETag/Last-Modified, при повторном, 
               обновляется по изменению ETag/Last-Modified.
            2. опция HTTP-HEAD с ответом ETag работает на новых сервернах (Last-Modified поддерживается безусловно).

Переменные обновления

updatePeriod          -  период запроса конфигурационного файла, config.js
reloadPortalOnChange  -  переоткрыть портал, если он был открыт и изменился
logo.url              -  ссылка на сервер c новым лого, формат логотипа: 1920x1080, RGB565, bmp.gz
logo.md5              -  md5 файла логотипа. опциональный параметр: если не указан, то используется ETag/Last-Modify
updateIfNotContains   -  если не содержится строка, обновить без условия даты
askImageUpdate        -  запросит у пользователя подтверждение на обновление прошивки
askBootstrapUpdate    -  запросит у пользователя подтверждение на обновление bootstrap
redirect              -  только для первого сценария, октрытие портал после применения всех настроек
serviceList           -  список устанавливаемых приложений в внутреннем портале
iptvPlaylist          -  список каналов для приложения внутреннего портала IPTV-каналы 

Переменные среды приставки изменяемые через autoconfig.js:

portal1          -  адрес портала по-умолчанию (автоматически загружаемый при запуске)
update_url       -  адрес для обновления прошивки
bootstrap_url    -  адрес для обновления bootstrap
TZ               -  временная зона, формат написания: Часть света/Город, Asia/Yekaterinburg
ntpurl           -  адрес ntp сервер
stb_key_settings_enabled  -  включить/выключить переход в настройки по нажатию кнопки п.д.у. settings
stb_key_home_enabled      -  включить/выключить переход в настройки по нажатию кнопки п.д.у. TV

config.json (2.05 KB) Булат Латыпов, 05/17/2019 09:26 AM

autoconfig_1_json_in_sync.js (8.73 KB) Владимир Матвеев, 06/04/2020 02:31 PM

autoconfig_2_json_out_async.js (7.66 KB) Владимир Матвеев, 06/04/2020 02:32 PM

index.html Magnifier (7.02 KB) Владимир Матвеев, 06/04/2020 02:35 PM