Usb-preset

Материал из SmartPlayer

Преднастройка устройства с USB-носителя (USB Preset)

USB Preset — механизм Samsung для первичной настройки устройств Samsung Color E-Paper без мобильного приложения «Samsung E-Paper». На USB-носитель кладётся конфигурационный файл config.xml, устройство считывает его и выполняет первичную настройку: подключение к сети, принятие условий использования, установку PIN-кода и запуск источника контента (в нашем случае — установку приложения SmartPlayer по URL).

В дистрибутиве SmartPlayer для E-Paper уже лежит готовая структура папок SAMSUNG_E-Paper/preset/config.xml с преднастроенным шаблоном (см. раздел Специфика дистрибутива SmartPlayer).

Важно: преднастройка с USB работает только на начальном экране устройства — когда устройство находится в первоначальном состоянии и на экране отображается QR-код (экран первичной настройки, OOBE). На уже настроенном устройстве вставка USB-носителя с пресетом ничего не запустит. Чтобы применить пресет повторно, устройство нужно сбросить к заводским настройкам.

Порядок использования

  1. Взять из дистрибутива SmartPlayer папку SAMSUNG_E-Paper (внутри — preset/config.xml) и скопировать её в корень USB-носителя. Пресет считывается только из пути SAMSUNG_E-Paper/preset/config.xml от корня флешки.
  2. Открыть config.xml текстовым редактором и заполнить значения параметров (в первую очередь — данные Wi-Fi-сети и PIN-код). Правила заполнения — ниже.
  3. Убедиться, что устройство находится на начальном экране (отображается QR-код).
  4. Вставить USB-носитель в USB-порт устройства.
  5. Во время копирования настроек будет мигать зелёный светодиодный индикатор. При успехе устройство перейдёт на целевой экран (для источника Custom App — начнётся установка приложения). При неудаче на экране появится сообщение с причиной ошибки (см. Возможные ошибки).

Правила заполнения config.xml

Файл состоит из секций <ConfigItem>, каждая секция имеет категорию:

  • mandatory — обязательная секция. Её нельзя удалять, а значения нельзя оставлять пустыми: они должны быть заполнены корректными данными.
  • normal — необязательная секция. Её можно пропустить, но для этого нужно удалить весь блок секции целиком, включая открывающий и закрывающий теги <ConfigItem>…</ConfigItem>. В этом случае применится значение по умолчанию. Оставлять секцию с пустым значением нельзя — это приведёт к ошибке.

Прочие правила:

  • Редактировать можно только значения атрибута value. Любые изменения структуры файла (имена параметров, теги) приводят к ошибке «Unsupported file format».
  • Файл должен оставаться корректным XML и сохраняться именно как config.xml.
  • Часть параметров условно-обязательные: они нужны только при определённом значении другого параметра (например, поля EAP — только при EAP=true). Если условие не выполняется, их значения игнорируются.

Перечень секций

Секция (ConfigItem) Назначение Категория
NetworkSetting Данные для подключения к сети. mandatory
TermsAndConditions Согласие с условиями использования (Terms & Conditions). Можно отказаться, но часть функций будет ограничена. Текст условий: https://smarthub.termsnprivacy.com/smartsignage/main.html mandatory
DateTime Установка времени устройства вручную или через NTP. normal
LowPowerWiFi Сеть для модуля Low Power Wi-Fi, используемого в режиме сна. Сеть должна поддерживать частоту 2,4 ГГц. Если секцию пропустить, удалённое пробуждение устройства из режима сна работать не будет. normal
ContentSource Источник контента: Mobile / USB / VXT / CustomApp. normal
CustomAppURLInput URL приложения (Custom App). Обязателен только при источнике контента CustomApp. normal
Timeout Сколько секунд ждать загрузки Custom App по URL; при превышении — ошибка сети. Только для источника CustomApp. normal
ScreenOrientation Ориентация экрана (Portrait / Landscape). normal
SetPIN 6-значный PIN-код для сопряжения с мобильным устройством. mandatory
DeviceName Имя устройства. normal
ScreenProtectionTime Время показа защитного экрана. Защитный экран показывается в заданное время раз в 3 дня, если контент не менялся. normal
SleepMode Режим сна и таймер бездействия. normal

Параметры и допустимые значения

Обозначения: — значение по умолчанию (применяется, если секция удалена или у необязательного параметра нет значения).

NetworkSetting (mandatory) — основная сеть

Параметр Значения Примечание
NetworkType Wireless — беспроводная сеть, Wired — проводная, POE+ — сеть POE+
SSID Текст — имя Wi-Fi-сети Только для NetworkType=Wireless
Password Текст — пароль Wi-Fi-сети Только для NetworkType=Wireless
EAP true — подключение с протоколом безопасности EAP, false — без EAP
ID Идентификатор в сети Только при EAP=true
AnonymousID Анонимный идентификатор в сети Только при EAP=true
EAPType PEAP / TLS / TTLS Только при EAP=true
PHASE2Type None / PAP / MSCHAPV2 / GTC Только при EAP=true
CA_Cert Имя файла CA-сертификата Только при EAP=true, см. Сертификаты для EAP
Client_Cert Имя файла клиентского сертификата Только при EAP=true
DHCP true — включён, false — выключен
AutoIP off — автоназначение IP выключено; type1 — каждому следующему устройству назначается IP текущего устройства +1 (максимум x.x.x.254); type2 — IP назначаются последовательно из списка AutoIPTable Только при DHCP=false
AutoIPTable Список IP-адресов через запятую: XXX.XXX.XXX.XXX,…,ZZZ.ZZZ.ZZZ.ZZZ Только при AutoIP=type2 (поле IP при этом не используется)
IP Статический IP-адрес Только при DHCP=false
Subnet Маска подсети Только при DHCP=false
DNS Адрес DNS-сервера Только при DHCP=false
Gateway Адрес шлюза Только при DHCP=false

TermsAndConditions (mandatory)

Параметр Значения Примечание
AgreementStatus agree — принять условия, decline — не принимать При decline часть функций будет ограничена; источники контента CustomApp и VXT работать не будут (см. Возможные ошибки)

DateTime (normal)

Параметр Значения Примечание
SetDate Дата в формате YYYY-MM-DD : не задано
SetTime Время в формате HH:MM:SS (24-часовой формат) : не задано
NTP_Mode true — синхронизация времени по NTP включена, false — выключена При включённом NTP устройство перезагрузится после применения пресета
NTP_URL Адрес NTP-сервера Только при NTP_Mode=true
NTP_Timezone Название часового пояса Только при NTP_Mode=true. Названия — из файла «Timezone_List» вендора
DST_Mode true — переход на летнее время (DST) включён, false — выключен
DST_StartDate Начало летнего времени в формате Месяц-Неделя-День-Час-Минута Только при DST_Mode=true. Месяц: 0 (январь) — 11 (декабрь); неделя: 0 (первая) — 3 (четвёртая), 4 (последняя); день: 0 (понедельник) — 6 (воскресенье); час: 0—23; минута: 0—59. Пример: 3-0-1-12-0 — первый вторник апреля, 12:00
DST_EndDate Конец летнего времени, формат тот же Только при DST_Mode=true. Пример: 9-4-3-12-0 — последний четверг октября, 12:00
DST_Offset 0 — сдвиг 1 час, 1 — сдвиг 2 часа Только при DST_Mode=true

LowPowerWiFi (normal) — сеть для режима сна

Отдельная сеть, к которой подключается модуль Low Power Wi-Fi во время сна устройства — через неё устройство можно разбудить удалённо. Сеть должна работать на частоте 2,4 ГГц. Набор параметров полностью повторяет NetworkSetting (кроме NetworkType): SSID : не задано, Password : не задано, EAP ( false) с полями ID / AnonymousID / EAPType / PHASE2Type / CA_Cert / Client_Cert, DHCP ( true), AutoIP / AutoIPTable, IP / Subnet / DNS / Gateway — значения и условия те же, что в таблице NetworkSetting.

ContentSource (normal)

Параметр Значения Примечание
ContentSource USB — загрузка контента файлами изображений с USB; Mobile — загрузка через мобильное приложение «Samsung E-Paper»; VXT — загрузка через Samsung VXT; CustomApp — установка стороннего приложения по URL В дистрибутиве SmartPlayer уже выставлено CustomAPP — менять не нужно

CustomAppURLInput (normal)

Параметр Значения Примечание
URL URL-адрес приложения Обязателен при ContentSource=CustomApp. Если секцию удалить или не заполнить при источнике CustomApp — ошибка на этапе установки приложения. В дистрибутиве SmartPlayer заполняется автоматически при сборке

Timeout (normal)

Параметр Значения Примечание
Timeout Число секунд от 30 до 300, кратное 30 Только при ContentSource=CustomApp. Сколько ждать загрузки приложения по URL; если не успело — сообщение об ошибке сети. Если секцию удалить при источнике CustomApp — ошибка на этапе установки приложения

ScreenOrientation (normal)

Параметр Значения Примечание
Orientation Portrait — портретная, Landscape — альбомная

SetPIN (mandatory)

Параметр Значения Примечание
SetPIN Ровно 6 цифр PIN-код для сопряжения с мобильным устройством

DeviceName (normal)

Параметр Значения Примечание
DeviceName Текст до 32 символов : номер модели устройства

ScreenProtectionTime (normal)

Параметр Значения Примечание
ScreenProtectionTime Время в формате HH:MM (24-часовой формат) : 01:00. Защитный экран показывается в заданное время раз в 3 дня, если контент за это время не менялся

SleepMode (normal)

Параметр Значения Примечание
SleepMode Off — устройство не засыпает: доступны смена контента, настройки, обновление прошивки и т.д.; Sleep — сон: активен только модуль Wi-Fi, устройство можно разбудить удалённо через сеть Low Power Wi-Fi; DeepSleep — глубокий сон: Wi-Fi-модуль отключён, разбудить можно только физической кнопкой на устройстве
Timer Число минут от 5 до 1439 (от 5 минут до 23 ч 59 мин) : 20. Через сколько минут бездействия уходить в сон. При SleepMode=Off значение игнорируется

Сертификаты для EAP

Если сеть использует протокол EAP, файлы сертификатов нужно положить на тот же USB-носитель в следующие папки (имена файлов указываются в параметрах CA_Cert / Client_Cert):

Сертификат Путь на USB-носителе
CA-сертификат (основная сеть) SAMSUNG_E-Paper/preset/rootCA/
Клиентский сертификат (основная сеть) SAMSUNG_E-Paper/preset/clientCert/
CA-сертификат (Low Power Wi-Fi) SAMSUNG_E-Paper/preset/rootCA_LowPower/
Клиентский сертификат (Low Power Wi-Fi) SAMSUNG_E-Paper/preset/clientCert_LowPower/

Контроль результата

После вставки USB-носителя зелёный светодиод начинает мигать — идёт копирование настроек. При успешном применении устройство переходит на целевой экран (для CustomApp — начинается установка приложения SmartPlayer). При ошибке на экране появляется сообщение с причиной — нужно исправить файл пресета согласно таблице ниже и повторить.

Возможные ошибки

Сообщение на экране Причина
Unsupported file format. Check the file and try again. В файле изменено что-то кроме значений value (структура, имена параметров), либо файл сохранён не в формате XML.
Network connection failed. Check your network settings and try again later. Неверный SSID или пароль в секции NetworkSetting.
PIN Code, Terms & Conditions and Network Information must be set correctly to continue. You don't have to agree to Terms & Conditions, but some features may be limited. Некорректный формат или текст в значении обязательного (mandatory) параметра; какое-то значение оставлено пустым; изменена структура обязательной секции. Напоминание: чтобы пропустить необязательную секцию, нужно удалить её целиком, а не оставлять пустое значение.
Some settings weren't imported. Check the list of failed items below and try again later. Некорректный формат или текст в значении необязательного (normal) параметра.
To start <Samsung VXT Player / Custom App>, you need to agree to the Terms & Conditions. В AgreementStatus указано decline, при этом источник контента — CustomApp или VXT.

Также: если при источнике контента CustomApp удалить или не заполнить секции CustomAppURLInput и Timeout, ошибка появится на этапе установки приложения.

Специфика дистрибутива SmartPlayer

В zip-дистрибутиве SmartPlayer для E-Paper папка SAMSUNG_E-Paper/preset/config.xml уже сформирована при сборке:

  • ContentSource выставлен в CustomAPP;
  • URL в секции CustomAppURLInput подставлен автоматически на этапе сборки из переменной окружения APP_PRESET_CUSTOM_APP_URL (сборки dev и prod различаются только этим значением);
  • комментарии-подсказки в XML сохранены.

Вручную перед записью на флешку нужно заполнить в основном сетевые параметры (SSID/Password основной сети, при необходимости — Low Power Wi-Fi) и PIN-код (SetPIN).

Для массовой установки через Samsung VXT у вендора есть функция Multiscreen Enrollment (регистрация устройств по CSV со списком серийных номеров) — в нашем сценарии с CustomApp она не используется, подробности в гайде вендора «USB Preset Manual V1.3».

Конфигурация приложения SmartPlayer (значения по умолчанию)

Наше ПО при сборке дистрибутива (окружения prod/dev) формирует конфигурационный файл приложения SmartPlayer со следующими параметрами по умолчанию:

Параметр конфигурационного файла Значение по умолчанию Доступные значения За что отвечает
networkStandby ON ON — включено, OFF — выключено Специальный режим сна, при котором сетевой контроллер принимает magic-пакет для просыпания устройства. Рекомендуется всегда включать: тогда устройство можно пробудить в локальной сети по технологии Wake-on-WLAN (WoWLAN).
batteryWarningIconDisplay ON ON — включено, OFF — выключено Отображать или нет иконку разряда батареи в правом верхнем углу устройства (аналогично мобильным устройствам). По наблюдениям, система включает отображение поверх приложения SmartPlayer при заряде батареи 15% и ниже. Контент при этом показывается, приложение SmartPlayer работает в штатном режиме — это лишь уведомление о низком уровне заряда.
refreshScreenAfterWakeupMS 300000 Продолжительность в миллисекундах. Минимум: 240000, рекомендовано: 300000, максимум: неизвестно Через сколько после просыпания из режима сна принудительно обновить дисплей, чтобы убрать остаточное изображение (гостинг) предыдущей картинки. Минимальное значение — 4 минуты (по документации Samsung), рекомендованное — 5 минут: экран будет принудительно перерисован новым или текущим контентом через 5 минут после просыпания.
autoSleepTimeAppLevelApi OFF ON — включено, OFF — выключено Автоматическое засыпание устройства после периода бездействия, заданного параметром goSleepAfterMS. Период бездействия отсчитывается от последней отрисовки контента: если контент перерисовывается чаще, чем значение goSleepAfterMS, сон не наступит никогда.
autoSleepTimeTizenOSLevelApi OFF OFF, 3MIN, 5MIN, 10MIN, 20MIN, 30MIN, 60MIN Аналог autoSleepTimeAppLevelApi, реализованный Samsung на уровне их API. В текущей версии включать не рекомендуется: наш режим реализован на уровне приложения SmartPlayer, что даёт больше гибкости в настройке, отладке и надёжности.
goSleepAfterMS 600000 Продолжительность в миллисекундах. Минимум: 60000, рекомендовано: 600000, максимум: неизвестно Через какой период бездействия уходить в режим сна. Зависит от autoSleepTimeAppLevelApi: если тот выключен, параметр игнорируется. Рекомендованное значение — 10 минут (600000 мс): если контент был отрисован и не менялся на экране 10 минут, устройство уйдёт в сон.
timeWakeUpEveryDay 9:00 Любое время от 00:01 до 23:59 В какое время ежедневно пробуждать устройство для обновления контента. Если приложение запущено после указанного времени, пробуждение планируется на следующий день; если до — на текущий. После пробуждения по расписанию устройство обновит контент, отрисует его и запустит новый таймер бездействия. Повторное засыпание в течение дня планирует пробуждение уже на следующий календарный день.
screenRefreshTimeEveryDay 7:00 Любое время от 00:01 до 23:59 Ежедневное обновление экрана для защиты от «выгорания пикселей» (рекомендация производителя — раз в сутки): в указанное время изображение очищается и перерисовывается. Если в это время устройство спит, ничего не произойдёт — после просыпания устройство выполнит эту операцию, выждав значение refreshScreenAfterWakeupMS. Параметр имеет смысл, когда устройство работает 24/7 и не засыпает, т.е. autoSleepTimeAppLevelApi = OFF.