Общая информация

В документе описана настройка 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) - см. Рис.1

Параметры, задаваемые в утилите настройки:

  • Папка для сканирования - указывает полный путь к директории, которую 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. Пример рабочего окна программы с отладочной информацией приведен на Рис.2

Пример настройки 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