Как сделать информационный киоск

Открываем информационный киоск

Создание встраиваемого приложения для специализированных устройств

В современных информационных инфраструктурных решениях все чаще начинают использоваться специализированные устройства. Это автоматизированные рабочие станции, размещаемые в общественных местах информационные киоски, предоставляющие клиентам банков различные терминалы, сервисы и т. д. При разработке подобных систем одной из основных задач является снижение совокупной стоимости владения, которая, как известно, включает в себя как стоимость разработки продукта, так и стоимость его поддержки в течение жизненного цикла. Для реализации подобных решений было бы целесообразно использовать существующую информационную и сервисную инфраструктуру, а также знания разработчиков. Такую возможность нам предоставляет встраиваемая операционная система от компании Microsoft — Windows XP Embedded со знакомым разработчикам API. Встраиваемая версия Windows базируется на хорошо зарекомендовавшей себя операционной системе Windows XP Professional, оснащенной разнообразным и доступным инструментарием. Но помимо этого, разработчику встраиваемого решения предоставляется возможность выбирать и добавлять в конечный образ создаваемой им операционной системы только те функции, которые необходимы для конкретного решения. Это достигается путем разбиения операционной системы XP Embedded на компоненты, содержащие сведения о зависимостях от других компонентов, что позволяет разрешать зависимости и добавлять в образ необходимые компоненты в автоматическом режиме.

Кроме того, учитывая тот факт, что встраиваемая версия предназначена для формирования встраиваемых решений, была добавлена уникальная функциональность, изначально отсутствовавшая в базовой версии: поддержка загрузки и работы с носителей только для чтения (CD-ROM); загрузки по сети; поддержка автономных устройств; поддержка режима HORM (Hibernate Once Resume Many), когда состояние системы многократно восстанавливается из первоначально созданного файла hiberfil.sys; технологии EFW (Enhanced Write Filter), обеспечивающей защиту носителей от записи и загрузку с носителей только для чтения; функции обновления устройства с Web-сайта, общей сетевой или локальной папки DUA (Device Update Agent).

Таким образом, можно считать, что Microsoft Windows XP Embedded представляет собой компонентную версию Windows XP Professional с дополнительными возможностями для встраивания. Пробная версия Microsoft Windows XP Embedded c SP2 доступна для загрузки на сайте Microsoft.

Разработка образа

Создание образа встраиваемой системы начинается с использования Microsoft Windows Embedded Studio, удобного инструмента для разработки встраиваемых решений на основе Windows XP Embedded, который включает в себя следующие модули: Target Analyzer, Component Designer, Component Database Manager, Target Designer.

Target Analyzer состоит из двух утилит — 16-разрядной ta.exe и 32-разрядной tap.exe. Он предназначен для определения состава выбранной аппаратной платформы. Component Designer — утилита для разработки собственных компонентов для XPe. Component Database Manager — инструмент управления базой компонентов (импорт, удаление и т. д.), а Target Designer отвечает за создание образов операционной системы для встраиваемого решения.

Разработка образа встраиваемой операционной системы включает следующие этапы:

Создаем информационный киоск

Возможность вовремя получать нужную информацию просто необходима в современной жизни. Интерактивные автоматизированные справочные киоски окружают нас повсюду: автоматическая справка по расписанию и стоимости билетов на железнодорожном вокзале, справочные терминалы в метро, расписание рейсов и другая полезная информация в аэропорту, терминал для доступа к сервисам банка рядом с банкоматом и т. д. Все это разновидности информационных киосков.

Рассмотрим последовательно этапы создания информационного киоска на основе Microsoft Windows XP Embedded c SP2. Первый этап — постановка задачи: необходимо разработать информационный киоск, который будет обеспечивать доступ пользователей к оперативным услугам банка. Услуги банка реализуются через стандартное Web-приложение, что обусловливает использование в качестве оболочки операционной системы приложения Internet Explorer в режиме киоска; наш киоск будет получать доступ к серверам банка через Internet. Чтобы максимально защитить наш образ от модификаций, в качестве носителя образа и источника загрузки будем использовать компакт-диск: простая перезагрузка системы возвращает ее в исходное состояние, вне зависимости от того, какие изменения выполнял пользователь. Обновление системы происходит путем замены компакт-диска в приводе CD-ROM. Будем считать, что наш предполагаемый заказчик уже выбрал целевую аппаратную платформу, и вся разработка будет вестись именно для нее. При этом BIOS целевой платформы должен поддерживать загрузку с привода CD-ROM.

Знакомимся с «железом»

Подключим жесткий диск на нашей целевой аппаратной платформе к первичному каналу IDE в качестве главного, на нем образ будет проходить FBA, а привод CD-ROM подключим ко вторичному каналу IDE, также в качестве главного. Для удобства разработки и тестирования подключим нашу платформу к сети c DHCP-сервером.

Теперь компонент Kiosk — Hardware Config доступен в Target Designer (см. экран 2).

Как сделать информационный киоск
Экран 2. Компонент Kiosk — Hardware Config в программе Component Desigener

Создание конфигурации

Формирование конфигурации операционной системы с названием InfoKiosk начинается в программе Target Designer: в ней добавляем в конфигурацию созданный ранее компонент Kiosk — Hardware Config, а также компонент поддержки загрузки с компакт-диска — El Torito CD Support. Запускаем проверку зависимостей. Далее создаем компонент оболочки операционной системы, как было указано ранее, это будет Internet Explorer в режиме киоска, открывающийся на главной странице соответствующего сайта. Компонент будет называться Internet Explorer Custom Shell (вопрос создания этого компонента выходит за рамки статьи, но вы можете сами создать компонент-оболочку, используя статью «How to. » из документации Windows Embedded Studio). Следующий шаг — выбор компонентов операционной системы. После окончания проверки зависимостей остается три неразрешенных зависимости: поддерживаемые системой языки (выбираем English и Russian Language Support); Session Manager (выбираем Windows Logon); поддерживаемые файловые системы (выбираем FAT). Опять запускаем проверку зависимостей и выбираем компоненты операционной системы. После окончания проверки останется одна неразрешенная зависимость: используемая оболочка операционной системы (выбираем Internet Explorer Custom Shell; см. экран 3).

Как сделать информационный киоск
Экран 3. Выбор оболочки операционной системы в программе Target Designer

Приступим к настройке компонента Enhanced Write Filter. EWF поддерживает два типа работы с оверлеем: на носителе и в памяти (EWF RAM). В свою очередь, EWF RAM может работать, храня конфигурацию на специальном служебном разделе или только в реестре (EWF RAM (Reg)). Ввиду того что компонент поддержки загрузки с компакт-диска, в нашем случае El Torito, поддерживает только режим EWF RAM (Reg), в настройках компонента Enhanced Write Filter необходимо отменить режим Start EWF Enabled. Запускаем проверку зависимостей и добавляем дополнительные компоненты.

После завершения предыдущего этапа можно строить и разворачивать образ операционной системы, однако, чтобы выполнить окончательную настройку образа, понадобится редактор реестра и интерпретатор командной строки, запускающийся при загрузке системы. Добавим перечисленные компоненты в образ. Запустим проверку зависимостей и приступим к настройке образа.

Для обеспечения запуска CMD.exe при каждом старте системы добавим в свойство Extra Resources конфигурации соответствующий параметр RunOnce Request. Также укажем предполагаемый размер раздела, на котором будет развернута система. В настройках образа в разделе настроек целевого устройства (Target Device Settings) необходимо выставить значение параметра для размера загрузочного раздела Boot partition size (Mb) в 300. Запускаем проверку зависимостей — и можно приступать к построению образа (см. экран 4).

Как сделать информационный киоск
Экран 4. Построение образа операционной системы в программе Designer

Подготовка и прохождение FBA

Подготовка к FBA предполагает выполнение двух задач: подготовка носителя на целевой платформе для прохождения FBA и создание El Torito CD-ROM, который должен находиться в приводе CD-ROM в процессе прохождения FBA. El Torito представляет собой устройство plug-and-play, поэтому при инициализации PnP-устройств и установке драйверов в процессе FBA требуется присутствие El Torito-устройства.

Решение первой из обозначенных задач предполагает:

Для решения второй из поставленных задач:

El Torito СD-ROM для прохождения FBA готов. Далее вставляем подготовленный El Torito СD-ROM в привод компакт-дисков целевой платформы и проверяем, настроен ли BIOS на загрузку с жесткого диска. Затем перегружаем целевую платформу, и запускается процесс FBA.

После FBA

После прохождения FBA необходимо проверить правильность установки и подготовить образ к загрузке с CD-ROM. Для решения этих задач используем интерпретатор командной строки, стартующий при каждом запуске, и редактор реестра.

Первая из указанных задач предполагает проверку настроек EWF. Запускаем из командной строки ewfmgr. Отобразится текущий статус EWF:

Ewf Volume Configuration
Volume Size 681574400
Segments 8192
Segment Size 249856
Free segments 8192
Max Levels 1
Max Protected Volumes 1
Protected Volumes 1
Overlay volume percent full 0.00

Protected volumes
Arc Path «DeviceHarddiskVolume1»

Проверяем, правильно ли настроен EWF: верно ли отображается путь к защищенному тому, нет ли ошибок. Набираем в командной строке

Отобразится текущий статус EWF, относящийся к диску C:

Protected Volume Configuration
Type RAM
State DISABLED
Boot Command NO_CMD
Param1 0
Param2 0
Persistent Data «»
Volume ID D2 02 96 49 00 0E 59 96 02 00 00 00 00 00 00 00
Device Name «DeviceHarddiskVolume1»
Max Levels 1
Clump Size 512
Current Level 1
Disk space used for data 0 bytes
Disk space used for mapping 0 bytes
Memory used for mapping 0 bytes

Как сделать информационный киоск
Экран 5. Установка PnP-устройств при прохождении FBA

Проверяем, правильно ли настроен EWF: верно ли отображается путь к защищенному тому, нет ли ошибок и находится ли он в выключенном состоянии (State: DISABLED). После проверки можно провести дополнительную настройку образа и/или установить необходимые программы. Для решения второй из обозначенных выше задач следует удалить из раздела автозапуска интерпретатор командой строки, используя редактор реестра, и запустить утилиту etprep c ключом /all, завершая подготовку образа к загрузке с CD-ROM:

В результате выполнения этой команды система перезагрузится.

После выполнения данной операции не следует загружать систему: исполнение команды Etprep поменяло местами букву привода CD-ROM и диска C: в настройках системы.

Последний шаг

Процесс создания образа компакт-диска аналогичен данному этапу при подготовке диска El Torito для прохождения FBA. Полученный образ компакт-диска записываем на подходящий носитель. Создав загрузочный компакт-диск, необходимо проверить его функциональность. Для этого:

На экране 6 представлен вид загруженной системы, где в качестве стартовой страницы выбрана страница http://www.microsoft.com/rus/.

Заключение

Как сделать информационный киоск
Экран 6. Внешний вид экрана устройства после загрузки

Поддерживая современные технологии и предоставляя мощный инструментарий, платформа Windows Embedded позволяет создавать специализированные встраиваемые решения широкого профиля. Знакомая архитектура и бесшовная интеграция в информационную инфраструктуру минимизируют затраты разработчика, позволяя ему сосредоточиться на создании системы и не расходовать лишних ресурсов.

Системный аналитик в компании «Кварта Технологии», дистрибьюторе встраиваемых систем Microsoft. Имеет сертификат тренера по Windows CE и Windows XP Embedded

Поделитесь материалом с коллегами и друзьями

Источник

KioskBrowser — бесплатный браузер для киосков с большой кириллической клавиатурой

Киоск — это компьютер с открытым на весь экран браузером.

Как сделать информационный киоск

Банкоматы, терминалы оплаты, информационные киоски, рекламные панели — всё это компьютеры с браузером во весь экран. И когда вам надо сделать что-то подобное, возникает вопрос какой браузер поставить на киоск.

Те, кто пытались использовать универсальные браузеры в режиме киоска, скорее всего столкнутся с проблемами:

Если перевести в режим киоска обычный браузер (Chrome, Firefox), добавив ему плагинов, все перечисленные проблемы разом с помощью плагинов решить не получится и надо ориентироваться на специализированный браузер.

Из специализированных браузеров есть платные отечественные, есть иностранные бесплатные и платные, есть даже специализированный дистрибутив Portues Kiosk (он без кириллической клавиатуры), но среди бесплатных выбирать в России долго было не из чего, пока не появился KioskBrowser.

KioskBrowser умеет все вышеперечисленное и дополнительно удаленное управление, защиту от выгорания экрана, блокировку печати PDF, большую полосу прокрутки и настраиваемый внешний вид.

Как это сделано

Браузер сделан на NW.js, а значит используется движок из Chromium. Панель управления и клавиатура написаны на HTML5.

Когда человек перемещает фокус на элемент input или textarea в webview, происходит открытие клавиатуры и ввод с клавиатуры инжектируется в webview и меняет значение выделенного элемента.

Основной функционал также работает через перехват событий webview, функционал NW.js или инъекцию кода в webview.

Выбор NW.js не принципиален, похожее можно сделать и на Electron.

Функционал

Опишу некоторый функционал KioskBrowser, а после установку и настройку.

/.KioskBrowser/config.js в Linux). В файле задается переменная config, которая и содержит в виде JS-объекта все настройки.

Клавиатура

Один из досадных недостатков использования универсальных браузеров в режиме киоска — это как сделать виртуальную клавиатуру с кириллицей. Виртуальная клавиатура Windows 10 позволяет переключать окна (т.к. имеет клавиши Ctrl, Alt, Del). Есть плагин в браузер встраивающий виртуальную клавиатуру через JS, но эта гугловая открытая клавиатура слишком маленькая, попадать на ее клавиши пальцами сложно.

KioskBrowser имеет собственную виртуальную клавиатуру, включенную по умолчанию и переключающуюся между кириллицей и латиницей.

Стилизация

Обычно браузерам для киосков нужна кнопка «назад» и кнопка «домой», а размещаются они на панели управления браузером. В данном случае панель сверху, имеет настраиваемое заглавие и может менять свой цвет или можно полностью панель скрыть (например для рекламных щитов).

За это в config.js отвечают параметры: title, chromeColor, textColor, gui.isHeaderHidden, gui.isBackHidden, gui.isHomeHidden.

Также бывает из-за неточной юстировки экрана надо увеличить ширину полосы прокрутки, чтобы в полосу прокрутки было проще попасть, сделать это можно через параметр gui.scrollbarWidth.

Печать

В некоторых случаях в киосках надо запрещать печать, в некоторых автоматически печатать документы на предопределенном принтере (чтобы не выводить окно выбора принтера и печати в файл).

Здесь KioskBrowser не имеет функций по автоматической печати на заранее выбранном принтере (у автора не возникало нужды в этом), но зато при просмотре PDF-файла, открытого через плагин Chrome, можно скрыть кнопку печати через параметр isPrinterBlocked, тогда PDF можно на киоске смотреть, но нельзя распечатать.

Adobe Flash

Сейчас Adobe Flash на новых киосках не используют, но если у вас он от старых разработок остался, то KioskBrowser сможет Flash-контент воспроизвести не задавая лишних вопросов как в Chrome. Сам браузер не имеет в себе встроенный Flash Player, но в Windows подхватит установленный стандартным установщиком. Если вы не хотите, чтобы браузер запускал Flash-содержимое, удалите плагин Adobe Flash средствами системы. Под Linux нахождение плагина Adobe Flash может не работать.

Удаленный контроль

Бывает возникает ситуация, что на киоске надо удаленно открыть какой-то URL. В KioskBrowser для этого встроен веб-сервер и отправив специальный запрос с URL сайта он откроется в браузере.

Кроме того, этот способ можно использовать при интеграции браузера с внешним оборудованием, например RFID-считывателями (об этом ниже).

Веб-сервер по умолчанию выключен и чтобы можно было отправлять команды, надо его включить.

Пример конфигурации config.js:

Теперь можно удаленно задавать (открывать) новый URL в браузере. Для этого надо отправить запрос на необходимый порт:

Здесь key — опциональный параметр, равный httpServer.secret в config.js. Чтобы веб-сервер в браузере работал не только на 127.0.0.1, введите нужный IP-адрес в httpServer.hostname.

Интеграция

Веб-сервер можно использовать для интеграции со сторонним железом в браузер. Например для интеграции с RFID-считывателями.

В случае с RFID обычно что надо сделать? надо по коду RFID показать пользователю какую-то веб-страницу, на которой пользователя по коду в RFID авторизует и что-то предложит сделать. Тогда можно создать сайт https://example.com?rfid=XXXXXX, где вместо XXXXXX передавать код RFID и делать что-нибудь полезное.

Дальше для RFID пишется программа чтения кодов из считывателя и когда приходит новый код делается запрос на встроенный в KioskBrowser веб-сервер на подобие:

Защита от выгорания пикселей

Для специализированного под киоски железа защита от выгорания обычно не нужна (экраны не выгорают), а вот если у вас обычные телевизоры, моноблоки или мониторы, то стоит иметь включенную защиту.

Защиты две: есть черная рамка с отступами, которая двигается по экрану на 1 пиксель и за счет этого предотвращается выгорание. Минус — теряется часть места, но этим местом можно управлять antiBornPixels.padding. Эта защита включена по умолчанию.

Вторая защита — бегающий по экрану «черный пиксель», который появляется в случайных местах экрана через antiBornPixels.flickerPixelInterval. Но «бегающий пиксель» заставляет через заданный интервал перерисовывать экран, что создает довольно большую нагрузку на видеокарту, причем чем меньше интервал, тем больше нагрузка. Опыт показывает, что смещение отступами вполне хватает для предотвращения выгорания и «бегающий пиксель» не нужен, поэтому по умолчанию он выключен (antiBornPixels.flickerPixelInterval = 0).

Ограничения

Браузер не имеет встроенного кодека H.264 по лицензионным причинам. Под Windows 10 можно попробовать поставить кодек из Microsoft Store и он может подхватиться браузером (а может нет). Видео в VP9, AV1 будет работать.

Windows 10 Pro имеет режим запуска приложения в режиме киоска (без Explorer), но работать будет он только для файлов из Microsoft Store. Чтобы запускать exe-файл, нужна Windows IoT. Увы, опубликовать KioskBrowser в Microsoft Store не удалось т.к. политика Microsoft запрещает приложения, имеющие собственный браузерный движок (разрешено использовать только встроенный в Windows ms-webview на базе первого Edge).

Впрочем браузер умеет сам выводиться поверх всех окон в полноэкранном режиме, поэтому если у вас не Windows IoT, добавьте браузер в автозагрузку и он перекроет собой остальные окна.

Еще одно ограничение: логотип в правом верхнем углу не скрывается отдельно, его можно скрыть только со всей панелью управления браузером.

Установка

Установить KioskBrowser можно на Windows 7+ или современный Linux с архитектурой x86/x86_64. ОЗУ: 2-4ГБ, на 1ГБ ОЗУ тоже работать будет, но впритык.

Установка не автоматизирована, перед началом надо создать пользователя с ограниченными правами и автовходом, для чего есть множество статей. Если вам нужен отечественный браузер на отечественной ОС бесплатно, можно установить KioskBrowser на Calculate Linux и по инструкции настроить Linux для работы киоском. Для Windows 10 лучше использовать Windows 10 IoT т.к. там есть возможность указать какую программу запускать вместо Explorer в режиме киоска.

Установка в Windows

Под гостевым пользователем скачайте дистрибутив под архитектуру x86 и установите через установщик.

Создайте папку для хранения конфигурации %userprofile%/.KioskBrowser

Создайте текстовый конфигурационный файл по пути %userprofile%/.KioskBrowser/config.js в UTF-8.

Добавьте в файл следующие строки, заменив homeUrl на ваш:

Вся настройка браузера осуществляется через этот файл конфигурации.

Попробуйте запустить браузер, но учтите, что для выключения браузера потребуется аппаратная клавиатура.

Установка в Linux

Войдите под гостевым пользователем и создайте папку для размещения дистрибутива (в примере /opt/KioskBrowser):

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *