Mediadisplay 2: JSON Описание темы
JSON структура темы медиадисплея
Тема медиадисплея представляет собой файл формата .json
Состоит из свободно расположенных блоков которые имеют описание типа, расположения, дизайна, контента и стиля
{ "Name": "Example", "Configuration": { "Name": "Пример", "Description": "Тема для примера", "Author": "RB-Soft", "Version": "V2", "IsCustom": true, "Structure": "POS", "RecommendedAspectRatio": "16:9", "PreviewPath": [] }, "Data": [], "Designs": [], "Blocks": [], "Styles": [], "Contents": [] }
Тема Default
Ниже приведен пример темы Default. Далее будут рассмотрены описание элементов оформления этой темы.
Описание основного класса
- Name – программное имя темы
- Data – список элементов с описанием типов блоков
- Blocks – список элементов с описанием расположения блоков
- Designs – список элементов с описанием параметров блоков
- Styles – список элементов с описанием стилей блоков
- Contents – список элементов с описанием контента блоков
- Configuration – параметры темы
- ToFullScreen – описание параметров для вывода блока на весь экран
Новый блок
Для добавления блока нужно:
- Объявить его в коллекции Data
- Установить параметры в Designs
- Задать расположение в Blocks
- Задать стиль содержимого в Styles
- Задать содержимое блока в Contents
Пример добавления блока Background
{ "Name": "Example", "Configuration": { "Name": "Пример", "Description": "Тема для примера", "Author": "RB-Soft", "Version": "V2", "IsCustom": true, "Structure": "POS", "RecommendedAspectRatio": "16:9", "PreviewPath": [] }, "Data": [ { "Name": "Background", "Type": 1 } ], "Designs": [ { "Name": "Background" } ], "Blocks": [ { "Name": "Background", "Layer": 5, "X": 0, "Y": 0, "H": 1, "W": 1 } ], "Styles": [ { "Name": "Background", "Color": "#FFFFFFFF" } ], "Contents": [ { "Name": "Background", "Element": { "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\Example\\Background.jpg", "CheckSum": "d16046f6058f64847871edfb7d0b061e" } } ] }
Описание Configuration
{ "Name": "Пример", "Description": "Тема для примера", "Author": "RB-Soft", "Version": "V2", "IsCustom": true, "Structure": "POS", "RecommendedAspectRatio": "16:9", "PreviewPath": [] }
- Name – отображаемое имя обложки
- Version – версия API сервера (для тем текущая версия 2 «V2»)
- Author – автор темы
- Description – описание темы
- RecommendedAspectRatio – рекомендуемый формат монитора
- Structure – структура данных
- PreviewPath – список путей к файлам пред просмотра
- IsCustom – является ли тема пользовательской
Описание элемента Data
"Data": [ { "Name": "Background", "Type": 1 } ]
- Name – имя блока
- Type – тип блока
- Типы блоков
- 0 или не обозначен = Text (текстовый, используется и для таблицы)
- 1 = Image (изображение)
- 2 = Video (видео)
- 3 = Combined (комбинированный из изображений и видео)
Описание элемента Blocks
{ "Name": "Background", "Layer": 5, "X": 0, "Y": 0, "H": 1, "W": 1 }
- Name – имя блока
- X – позиция по оси x (от 0 до 1)
- Y – позиция по оси y (от 0 до 1)
- W – ширина блока (от 0 до 1)
- H – высота блока (от 0 до 1)
- Layer – слой блока (от 1 до 99)
Описание элемента Designs
{ "Name": "Table", "Type": 1, "Parameters": { "ColumnNames": ["Id", "Name", "Price", "Count", "Sum"], "Columns": 5, "Rows": 9, "Height": 50, "SpecialStyles": ["ActiveRow"], "Width": [40, 300, 150, 150, 150] } }
- Name – имя блока
- Type – способ отображения
- 0 = Статичный
- 1 = Таблица
- 2 = Список воспроизведения
- Parameters – параметры (необходимы для таблицы)
- Rows – количество строк
- Columns – количество столбцов
- Width – список с шириной столбцов
- Height – высота строк
- ColumnNames – имена столбцов
- RowNames – имена строк
- SpecialStyles – список специальных стилей (Стиль выделенной строки)
- SpecialRow – список стилей строк
Описание элемента ToFullScreen
"ToFullScreen": { "BlockName": "FullScreenImage", "TimeOut": 60, "IsOn": true, "X": 0, "Y": 0.35, "W": 1, "H": 0.65 }
- BlockName — имя блока для установки на весь экран
- TimeOut — время через которое произойдет установка области в режим ожидания
- IsOn — включен ли режим ожидания
- X — начало координат по оси x (отчет от левого нижнего угла)
- Y — начало координат по оси y (отчет от левого нижнего угла)
- W — ширина блока
- H — высота блока
Описание элемента Styles
- Name – имя блока
- Font – используемый шрифт
- Color – основной цвет
- TextColor – цвет текста
- Alignment – выравнивание текста
- FontStyle – стиль текста
- UpperLineColor – цвет верхней линии
- BottomLineColor – цвет нижней линии
- BackgroundColor – цвет заднего фона
- BackgroundImage – изображение заднего фона
- BestFit – изменение размера текста по размеру окна
- UpperLine – показывать верхнюю линию
- BottomLine – показывать нижнюю линию
- Speed – скорость анимации
- TextSize – размер текста
- PaddingTop – отступ сверху
- PaddingLeft – отступ слева
- PaddingRight – отступ справа
- PaddingBottom – отступ снизу
- UpperLineSize – размер верхней линии
- BottomLineSize – размер нижней линии
- UseRowImageOnEmpty – используется ли изображения на пустых строках
- RowImage – изображение строки
- Spacing – интервал между столбцов
- Ticker — бегущая строка (только для текста)
- Volume – громкость видео
- Blur – эффект размытия
- Glow- эффект свечения (только для текста)
- GlowColor – цвет свечения
- Glowensity – интенсивность свечения
- GlowBlinking – мерцание свечения
- GlowBlinkingensity – интенсивность мерцания свечения
- IsDateTime – использовать форматирование времени (только для текста)
- DiagramParameters – параметры диаграммы
- WithoutAnimation — без анимации (только для списка воспроизведения)
Описание для обозначения цвета
- Черный — #000000FF
- Белый — #FFFFFFFF
- Красный — #FF0000FF
- Зеленый — #00FF00FF
- Синий — #0000FFFF
- Полупрозрачный белый — #FFFFFF7F
- Полупрозрачный черный — #0000007F
- Полностью прозрачный — #00000000
Описание для «IsDateTime»
{ "Name": "DateTime", "TextColor": "#FFFFFFFF", "TextSize": 20, "IsDateTime": true }
Без связки (Пример: «d»)
- d — 12.07.2019
- f — 12 июля 2019 г. 16:18
- F — 12 июля 2019 г. 16:20:00
- g — 12.07.2019 16:23
- h — 16:24:26
- m — 12 июля
- s — 2019-07-12T16:30:56
- y — июль 2019
- z — 17:01:23
В связке (Пример: «Сегодня MMM\nd-й день, dddd\nyyyy год\nh часов m минут s секунд\nчасовой пояс z»)
- d — День месяца, в диапазоне от 1 до 31. (Пример: 12)
- dd — День месяца, в диапазоне от 01 до 31. (Пример: 12)
- ddd — Сокращенное название дня недели. (Пример: пт)
- dddd — Полное название дня недели. (Пример: пятница )
- f — Десятые доли секунды в значении даты и времени. (Пример: 7)
- ff или fffffff — Сотые/Десятимиллионныедоли секунды в значении даты и времени. (Пример: 4834)
- F — Если ненулевое значение, то десятые доли секунды в значении даты и времени. (Пример: 8)
- FF или FFFFFFF — Если ненулевое значение, то сотые/десятимиллионные доли секунды в значении даты и времени. (Пример: 78634)
- g или gg — Период или эра. (Пример: A.D.)
- h — Час в 12-часовом формате от 1 до 12. (Пример: 4)
- hh — Час в 12-часовом формате от 01 до 12. (Пример: 04)
- H — Час в 24-часовом формате от 0 до 23. (Пример: 16)
- HH — Час в 24-часовом формате от 00 до 23. (Пример: 16)
- K — Данные о часовом поясе. (Пример: +08:00)
- m — Минуты, в диапазоне от 0 до 59. (Пример: 9)
- mm — Минуты, в диапазоне от 00 до 59. (Пример: 09)
- M — Месяц, в диапазоне от 1 до 12. (Пример: 7)
- MM — Месяц, в диапазоне от 01 до 12. (Пример: 07)
- MMM — Сокращенное название месяца. (Пример: июль)
- MMMM — Полное название месяца. (Пример: июля)
- s — Секунды, в диапазоне от 0 до 59. (Пример: 5)
- ss — Секунды, в диапазоне от 00 до 59. (Пример: 05)
- t — Первый символ указателя AM/PM (до полудня/после полудня). (Пример: П)
- tt — Указатель AM/PM (до полудня/после полудня). (Пример: ПП)
- y — Год, в диапазоне от 0 до 99. (Пример: 19)
- yy — Год, в диапазоне от 00 до 99. (Пример: 19)
- yyy — Год в виде как минимум трех цифр. (Пример: 2019)
- yyyy — Год в виде четырехзначного числа. (Пример: 2019)
- yyyyy — Год в виде пятизначного числа. (Пример: 02019)
- z — Часовой сдвиг от времени в формате UTC (универсального времени), без нулей в начале. (Пример: +8)
- zz — Часовой сдвиг от времени в формате UTC (универсального времени) с нулями в начале для значений из одной цифры. (Пример: +08)
- zzz — Сдвиг в часах и минутах от времени в формате UTC (универсального времени). (Пример: +08:00)
«IsDateTime» : true
Параметр свечение
{ "Name": "TwoString", "Font": "Jura-Light", "Color": "#7FFF00FF", "TextColor": "#FFFFFFFF", "FontStyle": "UpperCenter", "BackgroundColor": "#A52A2AFF", "BestFit": true, "TextSize": 70, "Blur": true, "Glow": true, "GlowColor": "#00FFFFFF", "GlowIntensity": 1.0, }
Параметр шрифт
Доступные шрифты:
Название шрифта | Шрифт |
---|---|
Arial | |
BebasNeue Bold | |
BebasNeue Regular | |
Caveat-Bold | |
Caveat-Regular | |
Comfortaa-Bold | |
Comfortaa-Light | |
Comfortaa-Regular | |
Constantine | |
CormorantSC-Bold | |
CormorantSC-Light | |
CormorantSC-Medium | |
CormorantSC-Regular | |
CormorantSC-SemiBold | |
DS Eraser Cyr | |
ds_moster | |
Electronic Highway | |
Exo2-Black | |
Exo2-BlackItalic | |
Exo2-Bold | |
Exo2-BoldItalic | |
Exo2-ExtraBold | |
Exo2-ExtraBoldItalic | |
Exo2-ExtraLight | |
Exo2-ExtraLightItalic | |
Exo2-Italic | |
Exo2-Light | |
Exo2-LightItalic | |
Exo2-Medium | |
Exo2-MediumItalic | |
Exo2-Regular | |
Exo2-SemiBold | |
Exo2-SemiBoldItalic | |
Exo2-Thin | |
Exo2-ThinItalic | |
Helvetica | |
Jura-Bold | |
Jura-Light | |
Jura-Medium | |
Jura-Regular | |
Jura-SemiBold | |
K22 Xanthus | |
LCDDisplayCapsSSK | |
Metropolis 1920 | |
okolaksBold | |
okolaksBoldItalic | |
okolaksRegular | |
okolaksRegularItalic | |
PoiretOne-Regular | |
Resphekt-Regular | |
Silverfake | |
troika |
{ "Name": "TwoString", "Font": "Jura-Light", "TextColor": "#FFFFFFFF", "TextSize": 70, }
Параметр бегущая строка
{ "Name": "AdditionalText", "Font": "Jura-Light", "TextColor": "#FFFFFFFF", "Alignment": "Left", "Speed": 4.0, "TextSize": 45, "Ticker": true },
Описание элемента Contents
Параметры для блока изображения и видео
Name — имя блока
Item — Путь относительно корня. Тэг {RB_SOFT} указывает на каталог «C:\RB-Soft\»
CheckSum — хэш-сумма для защиты от замены контента на клиентском устройстве. Дисплей при первом старте сохраняет у себя все видео и изображения с сервера, в каталог «C:\RB-Soft\DisplaySource» в дальнейшем использует скачанные файлы сверяя хэш-сумму если она не совпадает дисплей повторно скачивает файл с сервера
{ "Name": "Background", "Element": { "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\Example\\Background.jpg", "CheckSum": "d16046f6058f64847871edfb7d0b061e" } }
Параметры для текстового блока
{ "Name": "Header", "Element": { "Item": "Добро пожаловать" } }
Name — имя блока
Item — текст содержимого
Параметры для блока таблицы
{ "Name": "FooterLabel", "Array": [ [ { "Item": "Итого:" } ], [ { "Item": "Скидка:" } ] ] }
Name — имя блока
Item — текст содержимого
параметры для списка воспроизведения
{ "Name": "Combined", "Catalog": [ { "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\Example\\vid(1).mp4", "CheckSum": "d8cf3728f602f65bba5587375f966aaf", "Volume": 100, "Size": 5124.4 }, { "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\Example\\img(1).jpg", "CheckSum": "325ccd2922a458dfab1c18f61f044b67", "Duration": 7, "Size": 351.1 }, { "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\Example\\img(2).jpg", "CheckSum": "099e14d4b825afe371913714896dcbdb", "Duration": 5, "Size": 457.2 }, { "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\Example\\vid(2).mp4", "CheckSum": "20b5602f2cf61bb57e68cddca2e8bf03", "Volume": 50, "Size": 6474.8 } ] }
- Item – Относительный путь до файла
- CheckSum – хэш сумма (контрольная сумма) – это массив байт фиксированный длинный полученный при помощи специальных хеш-функций, являющийся уникальным для входящих данных.
- Duration – длительность (секунд)
- Volume – громкость (минимальное 0, максимальное 100)
- Size – размер (KB)