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 — без анимации (только для списка воспроизведения)

Описание для обозначения цвета

Описание цвета по hex коду
  • Черный — #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
«Сегодня MMM\nd-й день, dddd\nyyyy год\nh часов m минут s секунд\nчасовой пояс z»

Параметр свечение

    {
      "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,
    }
Свечение (Glow)

Параметр шрифт

Доступные шрифты:

Название шрифтаШрифт
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,
    }

Параметр бегущая строка

Бегущая строка (Ticker)
    {
      "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)

Авторизация
*
*

семнадцать + девять =

Регистрация
*
*
*

пять × два =

Генерация пароля

восемнадцать − 16 =