Интеграция с сиcтемой видеонаблюдения ITV POS-Интеллект - Кассовая часть 6.87 и выше
Общая информация
В документе описана настройка R-Keeper v6 для связи с системой видеонаблюдения ITV POS-Интеллект.
Система видеонаблюдения ITV POS-Интеллект представляет комплекс программ для организации видеоконтроля на предприятии. Взаимодействие R-Keeper v6 с системой происходит на уровне кассовых операций - кассовый сервер формирует данные, которые отправляются на видеосервер для дальнейшей обработки (титрования). Поддерживаются следующие кассовые операции: операции с картами ПДС в режиме скидки и оплаты, оплата чека, сервис-печать (с кассовой версии 6.87).
Состав приложения
Дистрибутив приложения можно взять на фтп в директории /dealers/r-keeper/VideoIntellect/
Модули, поставляемые компанией UCS
- стандартная версия кассовой программы R-Keeper v6 версии 6.87 и выше
- ITV_File_Scanner.exe - программа для отправки XML-файлов, сформированных кассовым сервером
- ITV_File_Scanner_SVC.exe - аналогично ITV_File_Scanner.exe, но для запуска приложения в качестве службы
- ITV_FS_Settings.exe - утилита для настройки ITV_FS_Settings.exe
- ITV_FS_Scanner.xml - файл, в котором сохраняются настройки, указанные в утилите ITV_FS_Settings.exe (изначально может отсутствовать)
- ITV_Data.key - программный ключ защиты приложения ITV_File_Scanner.exe. В ближайшее время защита приложения ITV File Scanner будет убрана, т.к. защита перенесена в кассовый сервер. На данный момент наличие файла ITV_Data.key обязательно для корректной работы программы (в дистрибутиве доступен ITV_Data.key, применимый для всех объектов, не зависимо от кода ресторана и других условий)
Модули, поставляемые компанией ITV
- TcpWrp.dll - интерфейсная библиотека для интеграции кассового ПО с системой POS-Интеллект
- Ncr_Forward.exe - промежуточный модуль для пересылки данных в систему POS-Интеллект. Использование этого модуля связано с некторыми особенностями реализации приложения ITV File Scanner - возможно в будущих версиях использование Ncr_Forward.exe больше не потребуется.
Для вывода в системе POS-Интеллект титров необходимого вида используется файл настроек (шаблон) xml_titles.txt - его можно настроить самостоятельно (см. описание в файле xml_protocol.pdf) либо воспользоваться готовым шаблоном из дистрибутива.
Настройка кассы RK6 (Dos-rkclient)
Примечание: начиная с версии кассового ПО 6.87 и выше.
Для настройки кассовой части необходимо прописать несколько параметров для клиента и сервера в файле RKEEPER6.INI.
Кассовый сервер
В rkeeper6.ini:
VideoPath = <полный путь к каталогу формирования XML-файлов> VideoKey = <специальный разблокирущий ключ>
В случае, если используется кассовый сервер под NT, настройки для сервера прописываются в файле RKEEPER6.INI, который должен находится в той же директории, откуда запускается сервер.
Важно! Разблокуриющий ключ (код) "привязан" к коду ресторана и предоставляется компанией UCS после приобретения лицензии на интеграцию.
Примечание: Если указан некоректный разблокирущий код (ключ), кассовый сервер будет формировать файлы со случайным расширением. Кроме этого, значение полей в XML-файле будут "нечитаемы".
Кассовый клиент
В rkeeper6.ini:
VideoInterface = <тип формируемых XML-файлов>
Параметр VideoInterface может принимать следующие значения:
- 1 - формировать XML только для чеков оплаты
- 2 - формировать XML только для сервис-чеков
- 3 - формировать XML для чеков оплаты и сервис-чеков
Для формирования XML-файлов никаких дополнительних действий на станции произвоить не требуется - все происходит без участия пользователя. В процессе работы кассовый сервер будет формировать файлы в виде N.MM, где N - номер задания (внутренний параметр кассового сервера), MM - номер станции, который определяется двумя последними цифрами сетевого имени станции (например, для станции UNIT89 номер станции будет 89)
Сформированные XML-файлы необходимо передать на сервер ITV - для этого предназначено приложение ITV File Scanner (ITV_File_Scanner.exe)
Настройка приложения ITV File Scanner
Приложение ITV File Scanner предназначено для отправки на видеосервер ITV сформированных кассовым сервером XML-файлов. Для настройки приложения используется утилита ITV File Scanner Settings (ITV_FS_Settings.exe)
Параметры, задаваемые в утилите настройки:
- Папка для сканирования - указывает полный путь к директории, которую ITV File Scanner будет просматривать на наличие XML-файлов для дальнейшей обоработки. Значения этого параметра должно соответствовать значению параметра VideoPath, указанного в настройках кассового сервера
- Время "старения" (сек) - определяет "время жизни" XML-файла. "Время жизни" будет рассчитываться исходя из времени создания файла + значение, указанное в данном параметре. Например, если время "старения" указано 30 сек., то через 31 секунду после создания файла, он уже будет считаться "устаревшим".
Примечание: "устаревшие" файлы не обрабатываются приложением ITV File Scanner, а сразу удаляются.
- Интервал сканирования (мсек) - определяет интервал, с которым приложение будет сканировать директорию на наличие в ней XML-файлов. Значение параметра указывается в миллисекундах - 1000 мс соответствует 1 секунде.
- Задержка цикла отсылки (мсек) - определяет интервал задержки перед отправкой пакета на видеосервер. Рекомендуется изменять значение этого параметрв только в случае возникновения проблем в работе. Значение по умолчанию - 1000 миллисекунд (1 секунда).
- Адрес сервера - возможно два варианта: либо указывается IP-адрес компьютера, на котором установлено приложение NCR_FORWARD.EXE (промежуточный модуль от компании ITV), либо указывается IP-адрес компьютера, на котором установлена система POS-Интеллект.
- Порт - также возможно два варианта, в зависимости от того, что указано в параметре "Адрес сервера " - если указан IP-адрес для приложения NCR_FORWARD.EXE, то необходимо указать порт для входящих соединение приложения NCR_FORWARD.EXE - см. ниже, иначе данный параметр не используется, а порт для входящих соединений указывается в настройках конктретного терминала - см .ниже.
В окне "POS терминалы" определяются все станции, с которых необходимо обрабатывать и передавать XML-файлы. Для добавления новой станции (терминала) необходимо нажать на кнпоку "Добавить" и заполнить следующие параметры:
- Название - указать произвольное название для терминала. Данный параметр не выполняет никаких функций и используется только для визуального отображения в утилите настройки.
- Расширение файла - важный параметр, который определяет файлы с каким расширением относятся к данной станции -см. выше
Важно! Все файлы (с любым расширением и именем), которые не соотв. ни одной из станций, указанных в настройках ITV File Scanner, будут удалены в процессе обработки.
- Порт - возможно два варианта: если используется промежуточный модуль NCR_FORWARD.EXE, то данный параметр не используется, иначе должен быть указан порт, определенный для данного POS-терминала в программе Интеллект.
Если необходимо добавить новую станцию (терминал), нажмите кнопку "Добавить" и укажите необходимые параметры. Для изменения параметров сущесвующей станции, выберите ее в списке и нажмите кнопку "Изменить"
Для сохранения ВСЕХ введенных параметров необходимо нажать кнопку "Сохранить".
Установка в качестве сервиса
Для запуска приложения в качестве сервиса необходимо запустить файл ITV_File_Scanner_SVC.exe с ключем /install :
ITV_File_Scanner_SVC.exe /install
Для удаления сервиса используется ключ /uninstall :
ITV_File_Scanner_SVC.exe /install
После установки будет добавлен новый сервис "UCS file scanner for ITV" с автоматичесуким типом запуска.
Настройка модуля NCR_FORWARD
Промежуточный модуль NCR_FORWARD.EXE предназначен для пересылки данных, получаемых по одному порту (TCP/IP), на уникальные порты системы POS-Интеллект для обеспечения работы ее с более чем одной кассовой станцией. В нашем случае использование NCR_FORWARD обусловлено некоторыми особенностями реализации приложения ITV File Scanner и в общем случае не является обязательным.
Все настройки программы хранятся в файле NCR_FORWARD.INI :
[SERVER] local_port = <порт, к которому будут подключаться кассовые клиенты> - в нашем случае это входящий порт для приложения ITV File Scanner max_in_connects = < максимальное количество одновременно принимаемых входящих соединений> [FORWARD] <номер кассовой станции>, <IP-адрес системы POS-Интеллект>, <порт POS-терминала, указанный в системе POS-Интеллект для данной кассовой станции>
В разделе [FORWARD] должны быть прописаны параметры для каждой кассовой станции (терминала), для которого необходимо передавать XML-файлы.
Важно! Если сетевое имя станции имеет номер, меньший 10, например UNIT01 или UNIT02, то номер станции необходимо указывать без ведущего нуля - в нашем примере это будет 1 и 2 соотв.
Примечание: номер станции приложение NCR_FORWARD "извлекает" из переданного XML-пакета - он передается в теге <TerminalId>...</TerminalId> и формируется кассовым сервером.
После запуска программы NCR_FORWARD.EXE появится значок в системном трее. Для отображения в окне программы отладочной информации необходимо создать в разделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\ITV\Intellect\ параметр Debug (типа DWORD) и указать значение 3. Пример рабочего окна программы с отладочной информацией приведен на
Пример настройки NCR_FORWARD.INI
Допустим, у нас есть кассовая станция UNIT89, для которой в системе POS-Интеллект создан POS-терминал с портом 2234. Система POS-Интеллект установлена на компьютере с адресом 192.168.0.1. Также мы определяем, что модуль NCR_FORWARD будет "слушать" входящие соединения на порту 4455. Тогда наш NCR_FORWARD.INI будет выглядить так:
[SERVER] local_port = 4455 max_in_connects = 100 [FORWARD] 89, 192.168.0.1, 2234
В данном примере указано, что данные с кассы 89 будут переданы на POS-терминал с портом 2234.
Работа с файлом настроек (шаблоном) xml_titles.txt
Файл настроек xml_titles.txt используется системой POS-Интеллект для формирования титров из полученных XML-пакетов. Как отмечалось выше, вы можете использовать готовый файл настроек, либо отредактировать его по вашему усмотрению. В документе xml_protocol.pdf достаточно подробно описан формат файла настроек и приведены примеры по работе с ним. Файл настроек xml_titles.txt должен находится в поддиректории \Modules\POS установленной системы POS-Интеллект.
Примечание: После изменения настроек в файле xml_titles.txt необходимо перезагрузить систему POS-Интеллект.
В кассовой версии 6.87 и выше была добавлена возможность отправки в систему видеонаблюдения информации по сервис-печати. Для разделения потоков сервис-печати используются различные номера функций при формировании XML-файла (более подробно о фукнциях см. в файле xml_protocol.pdf ) - при этом применяются следующие правила:
- для основных блюд номер функции формируется по формуле: 100 + <шифр группы сервис-печати из таблицы STREAMS.DB>
- для модификаторов номер фунции формируется по формуле: 200 + <шифр группы сервис-печати из таблицы STREAMS.DB>
Есть еще несколько правил, используемых при формировании XML-файла кассовым сервером:
- функция начала чека всегда имеет номер [1]
- функция для передачи основных блюд чека (финального) всегда имеет номер [2]
- функция для передачи модификаторов чека (финального) всегда имеет номер [3]
- функция для передачи информации о скидке по чеку всегда имеет номер [4]
- функция для передачи информации по карте ПДС (если она была применена) всегда имеет номер [5]
- функция для передачи "метки" об окончании печати финального чека всегда имеет номер [10]
- функция начала сервис-печати всегда имеет номер 100
- функция для передачи "метки" об окончании печати сервис-чека всегда имеет номер [10]
Рассмотрим на примере:
Допустим, у нас есть три группы сервис-печати (значение шифров см. в таблице STREAMS.DB в поле Sifr): "Холодный цех" с шифром 1, "Бар" с шифром 2 и "Горячий цех" с шифром 3. Тогда для сервис-печати основных блюд будут формироваться функции с номерами 101, 102 и 103 соответственно; для модификаторов будут формироваться функции с номерами 201, 202 и 203 соответственно.
Ниже приведено содержание файла xml_titles.txt для нашего примера:
[1] ----------- НАЧАЛО ЧЕКА Чек №<check_number> <RealDate> <TransactionTime> Кассовая дата: <LogicDate> Стол №<customer_number>, Официант: <cashier_number> Кассир: <cashier_name> ----------------- ВСЕГО: <total> ----------------- [4] ---------------- Скидка: <item_name> <item_total> ---------------- [5] Карта №<item_code> Владелец: <item_name> ---------------- [2] <item_code> <item_name> x <item_count> <item_total> [3] <item_name> [100] -------------------- НАЧАЛО СЕРВИС-ПЕЧАТИ Стол №<customer_number> <RealDate> <TransactionTime> (<LogicDate>) Официант: <cashier_number> <cashier_name> [101] ХОЛОДНЫЙ ЦЕХ <item_code> <item_name> х <item_count> [201] <item_name> [102] БАР <item_code> <item_name> х <item_count> [202] <item_name> [103] ГОРЯЧИЙ ЦЕХ <item_code> <item_name> х <item_count> [203] <item_name> [10] КОНЕЦ ЧЕКА ----------- [11] КОНЕЦ СЕРВИС-ПЕЧАТИ -------------------- [TRANSFORM] RealDate=TransactionDate [PARAM_TEXT_FORMAT] ItemName=17,left ItemNumber=3,right ItemQuantity=3,right ItemPrice=5,right item_code=4,left item_name=26,left item_count=7,left [PROLOG] 1 [BODY] 2 3 [EPILOG] 10