Введение

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

Используя привычный интерфейс системы R-Keeper, пользователь имеет возможность в on-line режиме просматривать видеоизображение рабочей зоны, сопровождаемое титрами – информацией об операциях, производимых в этот момент на кассовом терминале, включая:

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

Особенности системы видеоконтроля Surveillance:

  • получение, обработку и запись данных с камер осуществляет собственный модуль  VideoRegistrator
  • формат записи данных -  Motion JPEG   (MJPEG) через HTTP
  • онлайн-данные с кассы (титры) хранятся в графическом виде в одном файле с видеоматериалом
  • для просмотра видео (как в онлайн, так и в оффлайн режимах) используется любой браузер с поддержкой JavaScript и HTML5 (для IE необходима установка ActiveX-компонента)

Для РК6: поддержка библиотеки VIDEOUDP.DLL стабильная, начиная с версии 6.103.2.
Для РК7: поддерживает видеонаблюдение с версии 7.5.4.ххх.

Состав системы

В состав системы входят следующие приложения:

  • VideoRegistrator  - сервер видеорегистрации, управляет получением и записью MJPEG-потока с видеокамер (или источников, эмулирующих работу видеокамер)
  • VideoMessages  - сервер сообщений, управляет служебными данными (тегами), поступающими от клиентов системы видеоконтроля (кассовый сервер, кассовая станция и т.д.)
  • VideoManager - приложение для управления конфигурацией системы
  • HTTPServer  - HTTP-сервер  для управления веб-интерфейсом системы видеоконтроля
  • Набор скриптов (HTML+JavaScript) для генерации веб-интерфейса

Примечание: В качестве web-сервера может использоваться практически любой http-сервер, например Apache HTTP, если есть проксирование к модулю  HTTPServer

Для работы системы требуются следующие сторонние приложения:

  • Firebird - сервер управления базой данных видеонаблюдения
  • Microsoft .NET Framework 4 -  пакет для поддержки программной платформы .NET Framework
  • AXIS Media Control  - компонент ActiveX, обеспечивающий просмотр видеопотоков в форматах Motion JPEG непосредственно в браузере

Дистрибутив системы

Ссылка для загрузки дистрибутива ПО Surveillance с FTP-сервера ftp://ftp.ucs.ru/Surveillance/install/Bin.

Для развертывания системы Surveillance в среде Linux (Ubuntu) можно взять готовый образ на FTP-сервере ftp://ftp.ucs.ru/Surveillance/Linux_ISO

Важно: При развертывании образа Linux используйте имя пользователя root c паролем MasterUcs1

Лицензирование приложения

В лицензировании используется следующая схема:

  • лицензионный код используется как для RK6, так и для RK7,  выдается по запросу через отдел продаж
  • для RK7 требуется дополнительное лицензирование интерфейса «UCS Video Surveillance Interface» - подробности см. в Справочнике RK7
  • запрос и получение лицензии для интерфейса RK7 выполняется через сервер лицензирования  http://l.ucs.ru

Технические требования

Требования к конфигурации ЛВС и сетевому оборудованию:

  • локальная сеть на базе витой пары категории  CAT5e  и выше
  • для работы системы Surveillance рекомендуется использовать отдельную физическую (LAN) или виртуальную (VLAN) сеть
  • требования к пропускной способности сети определяются кол-вом камер и параметрами видео (разрешение, кол-во кадров)
    • например, при использовании 3-х камер с разрешением 1024х768 и частотой 15 кадров/сек, теоретическая пропускная способность сети должна составлять не менее 3 * 1024 * 768 * 15 = 35389440 байт/сек или (35389440 / 8 / 1024/ 1024 ) = 4,21 Мбит/с

Примечание: Реальный размер видеоданных также зависит от места установки камеры и освещенности - чем больше подвижных объектов и чем выше освещенность, тем больше размер кадра.

Требования к серверному оборудованию:

  • Процессор: Intel i5 и выше
  • ОЗУ: от 8Гб
  • HDD: от 4ТБ HDD,  рекомендуемый режим RAID 5, так как видеонаблюдение должно работать 24/7, то рекомендуется использовать жесткие диски WD RED;
  • ОС: Windows 7 SP1/2003 Server и выше

Требования к персональным компьютерам:

  • Процессор: Intel i3 и выше
  • ОЗУ: от 2Гб 
  • ОС: Windows 7 SP1
  • Браузер: Google Chrome (рекомендуется)

Требование к видеокамерам:

  • поддержка трансляции видео в формате  MJPEG  через HTTP-протокол,  рекомендуемая модель  D-Link DCS-2103

Установка СУБД Firebird

Для установки необходимо загрузить дистрибутив актуальной версии  Firebird 2.5.х  с оф. сайта  www.firebirdsql.org/en/downloads/  и выполнить стандартную установку - дополнительная настройка не требуется.

Важно: Необходимо использовать 32-х битную версию сервера Firebird

Установка Microsoft .NET Framework 4

Важно: Для установки Microsoft .NET Framework 4 требуется версия ОС не ниже Windows XP с установленным SP3

Данный пакет необходим для запуска основных приложений Surveillance.

Загрузить пакет можно либо c FTP-сервера  ftp://ftp.ucs.ru/Surveillance/install/Bin/FrameWork/dotNetFx40_Full_x86_x64.exe  либо с оф. сайта Microsoft http://www.microsoft.com/ru-ru/download/details.aspx?id=17718.  

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

Установка и настройка приложений

Важно: При редактирование конфигурационных файлов (*.xml) необходимо использовать кодировку Unicode (UTF-8)

HTTP-сервер

Приложение HTTPServerConsole.exe  используется в качестве http-сервера для генерации веб-интерфейса и обеспечения взаимодействия с другими приложениями системы.

С версии HTTPServerConsole.exe 2.0.3.39 параметры камер видеонаблюдения сервер получает напрямую из базы данных, не используя файл VideoRegistrator.xml -  это накладывается ограничение на использование в составе системы только собственного http-сервера HTTPServerConsole.exe  (ранее можно было использовать любой http-сервер, например Apache).

Конфигурация http-сервера  HTTPServerConsole.exe хранится в файле HTTPServerConsole.exe.config.

Каждый параметр определяется 2-я тегами:

  • ​<setting name="..." serializeAs="String">   - имя параметра
  • <value>...</value>  - значение параметра

Теги с параметрами могут находиться в нескольких блоках: <applicationSettings> ... </applicationSettings> и <userSettings> ... </userSettings>

Пример блока с параметрами:

  
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
....
   <applicationSettings>
        <HTTPServerConsole.Properties.Settings>
            <setting name="httdocs" serializeAs="String">
                <value>./httdocs</value>
            </setting>
            <setting name="username" serializeAs="String">
                <value>admin</value>
            </setting>
            <setting name="password" serializeAs="String">
                <value>admin</value>
            </setting>
            <setting name="uri" serializeAs="Xml">
                <value>
                    <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                        <string>http://127.0.0.1:8080/</string>
                        <string>http://127.0.0.1:8085/</string>
                        <string>http://127.0.0.1:8015/</string>
                    </ArrayOfString>
                </value>
            </setting>
            <setting name="async" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="cntStr" serializeAs="String">
                <value>Database=C:\Surveillance\DB\SURVEILLANCE.FDB; User=SYSDBA; Password=masterkey;  Dialect=3; Server=localhost</value>
            </setting>
<setting name="bufSize" serializeAs="String">
                <value>8196</value>
            </setting>

            <setting name="countFilesInCache" serializeAs="String">
                <value>1000</value>
            </setting>
</HTTPServerConsole.Properties.Settings> </applicationSettings> </configuration>
XML

где

  • httdocs - директория хранения файлов для web-интерфейса системы (html, скрипты и т.д.)
  • username  - имя пользователя для доступа к web-интерфейсу системы
  • password - пароль для доступа к web-интерфейсу системы
  • uri -  IP-адрес и порт, которые будет использовать http-сервер для входящих подключений (должен заканчиваться "/")
  • cntStr - строка подключения к базе данных Surveillance
  • bufSize  - размер буфера для передачи данных по сети, минимум 8196  (с версии HTTPServerConsole.exe и HTTPServer.dll 2.0.3.37)
  • countFilesInCache  - кол-во файлов в кеше, если 0 - кеш не используется  (с версии HTTPServerConsole.exe и HTTPServer.dll 2.0.3.37, с версии 2.0.3.39 кешируются только файлы, размер которых <= 1МБ)
Важно: С версии HTTPServerConsole.exe и HTTPServer.dll 2.0.3.39 параметры камер видеонаблюдения сервер получает напрямую из базы данных, не используя файл VideoRegistrator.xml (ранее экспортировался из приложения VideoManager.exe в директорию HTTPServer/httdocs)
Примечание: Директория, указанная в параметре httdocs, является корневой директорией, из которой HTTP-сервер обрабатывает скрипты. Если необходимо запускать скрипты из разных директорий (например, для запуска с разными параметрами), следует создать соотв. структуру внутри httdocs, например  httdocs\videocontrol1, httdocs\videocontrol2 и т.д., и разместить в них скрипты. При обращении к HTTP-серверу необходимо в URI указывать соотв. директорию , например http://192.168.0.1:8015/videocontrol1/ или http://192.168.0.1:8015/videocontrol2/

Использование NGINX 

Для того, чтобы запускать httdocs в NGINX, необходимо указать в настройках NGINX обработку .dll

location ~ \.dll  {
 proxy_set_header Connection keep-alive;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_pass http://127.0.0.1:8085;
}

Где http://127.0.0.1:8085 -- путь работающего сервера HTTPServer
Таким образом, все запросу к .dll будут передаваться в HTTPServer и там будут обработаны.

Установка и настройка скриптов

Для установки необходимо скопировать скрипты (содержимое директории httdocs) в соотв. директорию HTTP-сервера,

Пример содержимого директории httdocs:

- httdocs

 -- eng
 -- img
 -- js
 -- 1.html
 ........... 
 -- index.html 

или

- httdocs

 -- videocontrol1
  --- eng
  --- img
  --- js
  --- 1.html
  ........... 
  --- index.html
  ........... 

 -- videocontrol2
  --- eng
  --- img
  --- js
  --- 1.html
  ...........
  --- index.html
  ........... 

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

Сервер сообщений (VideoMessages)

Приложение  VideoMessagesConsole.exe отвечает за прием, декодирование и регистрацию служебных данных (тегов) от клиентов системы видеонаблюдения (кассового сервера, касс, другого ПО). 

Конфигурация сервера сообщений хранятся в конфигурационном файле VideoMessagesConsole.exe.config:

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="VideoMessagesConsole.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
        </sectionGroup>
    </configSections>
    <applicationSettings>
        <VideoMessagesConsole.Properties.Settings>
            <setting name="TCPPort" serializeAs="String">
                <value>9050</value>
            </setting>
            <setting name="UDPPort" serializeAs="String">
                <value>19123</value>
            </setting>
            <setting name="keyID" serializeAs="String">
                <value>123456789</value>
            </setting>
            <setting name="codePage" serializeAs="String">
                <value>utf-8</value>
            </setting>
            <setting name="cntStr" serializeAs="String">
                <value>Database=С:\UCS\Surveillance\DB\SURVEILLANCE.FDB; User=SYSDBA; Password=masterkey;  Dialect=3; Server=localhost</value>
            </setting>
<setting name="lengthUDPBuffer" serializeAs="String">
                <value>10000</value>
            </setting>
          
<setting name="logLevel" serializeAs="String">
                <value>0</value>
            </setting>
</VideoMessagesConsole.Properties.Settings> </applicationSettings> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> </configuration>
XML

где

  • TCPPort - входящий TCP-порт для подключения модуля видеорегистратора
  • UDPPort - входящий UDP-порт  для приема служебных данных (тегов) от клиентов системы видеоконтроля
  • keyID -   лицензионный код
  • codePage  кодировка служебных данных , для RK6 используется значение cp866, для RK7 - utf-8
  • cntStr - строка подключения к базе данных Surveillance
  • lengthUDPBuffer  - размер буфера для UDP-пакетов с титрами
  • logLevel  - уровень логирования, может принимать значение  1 - логирование детальной информация по XML пакетам от станций R-Keeper) и  0 - логирование отсутствует  (с версии VideoMessageConsole.exe 2.0.3.6 и Log.dll 2.0.4.5)
Важно: Лицензионный код выдается на объект и привязан к полному коду ресторана (<Код предприятия>.<Код ресторана>). Значение лицензионного кода может быть в виде отрицательного числа и в конфигурационном файле необходимого указывать также, например -1234567890. Если код некорректный или не указан, сервер сообщений не сможет декодировать служебные данные и в результате будут отсутствовать титры и синхронизация данных с кассовой системой!

Сервер видеорегистрации (VideoRegistrator)

Приложение VideoRegistratorConsole.exe отвечает за получение, обработку  и хранение видеоданных, полученных от камер видеонаблюдения или других устройств/программ, эмулирующих работу IP-камер. Следует отметить, что "Выходной URI" в настройках модуля VideoManager -- это URI видеопотока с наложенными титрами (титры от модуля VideoMessages) и обработанного модулем VideoRegistrator. Таким образом, IP адрес этого URI  это IP адрес сервера видеорегистрации VideoRegistrator.

Имя файла архива создается в виде: "yyyyMMdd_HHmmss_Count.mjpg", где yyyy -- год архива, MM -- месяц, dd -- день месяца, HH -- час (24-часовой формат времени), mm -- минута архива, ss -- секунда, Count -- количество кадров. Полный путь к файлу архива (с учетом вышеописанных условных обозначений: yyyy, MM, dd, HH, mm, ss) имеет вид: "{Корневая директория архива, которая задается в модуле VideoManager.exe для камеры}\yyyy\MM\dd\yyyyMMdd_HHmmss__Count.mjpg".  Начиная с версии 2.1.5.22 VideoRegistratorConsole.exe (версия тестируется) время кодируется в UTC. Для чего в UTC архив пишется? Ответ: чтобы при переходе с зимнего времени на летнее и обратно архивные файлы не перезаписывались.

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

На данный момент обрабатываются следующие события:

  • невозможность записать файл видеоданных (недостаточное дисковое пространство, недоступный раздел диска и т.д.)
  • обрыв связи с камерой видеонаблюдения, конфигурация которой хранится в системе
  • запуск и остановка сервера видеорегистрации ( с версии VideoRegistratorConsole.exe 2.0.4.26 )
Важно: Параметры камер видеонаблюдения хранятся в БД Surveillance (SURVEILLANCE.FDB) - приложение VideoRegistrator для подключения к камерам также считывает параметры из БД

Параметры сервера видеорегистрации хранятся в конфигурационном файле  VideoRegistratorConsole.exe.config :

<?xml version="1.0"?>

<configuration>
 
 <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
        <section name="VideoRegistratorConsole.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>

 </configSections>

 <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>

   <applicationSettings>

        <VideoRegistratorConsole.Properties.Settings>

            <setting name="cntStr" serializeAs="String">
                <value>Database=C:\Surveillance\DB\SURVEILLANCE.FDB; User=SYSDBA; Password=masterkey;  Dialect=3; Server=localhost</value>
            </setting>

            <setting name="enableImageMagick" serializeAs="String">
                <value>False</value>
            </setting>

            <setting name="fontName" serializeAs="String">
                <value>Arial</value>
            </setting>

            <setting name="fontSize" serializeAs="String">
                <value>9</value>

            </setting>

            <setting name="lengthBuffer" serializeAs="String">
                <value>7</value>
            </setting>

            <setting name="ffmpeg" serializeAs="String">
                <value>c:\Surveillance\ffmpeg\ffmpeg.exe</value>
            </setting>

            <setting name="tmpFS" serializeAs="String">
                <value>c:\Surveillance\Bin\HTTPServer\httdocs\converted\</value>
            </setting>

            <setting name="SmtpServer" serializeAs="String">
                <value />
            </setting>

            <setting name="SmtpFrom" serializeAs="String">
                <value />
            </setting>

            <setting name="SmtpLogin" serializeAs="String">
                <value />
            </setting>

            <setting name="SmtpPassword" serializeAs="String">
                <value />
            </setting>

            <setting name="SmtpMailTo" serializeAs="String">
                <value />
            </setting>

            <setting name="SmtpSubject" serializeAs="String">
                <value>Surveillance</value>
            </setting>

            <setting name="SmtpCameraMessage" serializeAs="String">
                <value>Camera error</value>
            </setting>

            <setting name="SmtpFileMessage" serializeAs="String">
                <value>Write error</value>
            </setting>

            <setting name="SmtpPort" serializeAs="String">
                <value>25</value>
            </setting>

            <setting name="alarmTime" serializeAs="String">
                <value>30</value>
            </setting>

<setting name="SmtpStartMessage" serializeAs="String">
                <value>VideoRegistrator is starting</value>
            </setting>

            <setting name="SmtpStopMessage" serializeAs="String">
                <value>VideoRegistrator is stoping</value>
            </setting>

</VideoRegistratorConsole.Properties.Settings> </applicationSettings> </configuration>
CODE

где:

  • cntStr  -- строка подключения к БД
  • enableImageMagick  -- использовать или нет пакет программ для пакетной обработки графических файлов ImageMagick. Рекомендуется при запуске сервера под Linux, для Windows установить значение False
  • fontName -  название шрифта, используемого в титрах
  • fontSize  - размер шрифта, используемого в титрах
  • lengthBuffer - размер буфера приема видеопотока, рекомендуется задавать в соответствии скорости реального потока MJPEG из камеры, например при скорости 7 кадров в секунду -- задается не более 7 и не менее 1
  • ffmpeg - путь к утилите ffmpeg.exe для конвертирования видео из формата MJPEG в MPEG (в дистрибутиве директория \Bin\FFMpeg\.. )
  • tmpFS  - временный каталог, используемый в процессе преобразования видеоданных из формата MJPEG в MPEG (в том числе при запросе видеоархива из веб-интерфейса системы). Необходимо добавить папку converted в httdocs и прописать (абсолютный) полный путь до папки converted
  • SmtpServer - адрес SMTP-сервера для отправки уведомлений по e-mail, например smtp.yandex.ru
  • SmtpPort - порт SMTP-сервера
  • SmtpFrom - e-mail адрес отправителя уведомлений
  • SmtpLogin - имя пользователя для авторизации на SMTP-сервере
  • SmtpPassword - пароль для авторизации на SMTP-сервере
  • SmtpMailTo - e-mail адрес получателя уведомлений
  • SmtpSubject  - заголовок уведомления
  • SmtpCameraMessage  - текст уведомления для события, наступающего в результате обрыва связи с видеокамерой
  • SmtpFileMessage  - текст уведомления для события, наступающего в случае проблем с записью файлов видеоданных
  • alarmTime  -- время повторного уведомления по e-mail в секундах
  • SmtpStartMessage  - заголовок уведомления для события при старте сервера ( с версии VideoRegistratorConsole.exe 2.0.4.26 )
  • SmtpStopMessage  - заголовок уведомления для события при остановке сервера ( с версии VideoRegistratorConsole.exe 2.0.4.26 )
Важно: Для отправки уведомлений по электронной почте требуется поддержка SSL-протокола со стороны SMTP-сервера.

Менеджер конфигурации (VideoManager)

Приложение  VideoManager.exe  предназначено для визуального редактирования и сохранения параметров системы в базе данных.

Дополнительно модуль позволяет:

  • экспортировать готовый конфигурационный файл VideoRegistrator.xml с параметрами камер (для версий HTTPServerConsole.exe ниже 2.0.3.39)
  • конвертировать видеоданные из архива в формат MPEG

Конфигурация приложения хранится в файле VideoManager.exe.config:

<?xml version="1.0"?>
<configuration>
<configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <section name="VideoManager.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
</configSections>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup><applicationSettings>
        <VideoManager.Properties.Settings>
            <setting name="ffmpeg" serializeAs="String">
                <value>c:\Program Files\ffmpeg\bin\ffmpeg.exe</value>
            </setting>
            <setting name="cntStr" serializeAs="String">
                <value>Database=C:\Surveillance\DB\SURVEILLANCE.FDB; User=SYSDBA; Password=masterkey;  Dialect=3; Server=localhost</value>
            </setting>
        </VideoManager.Properties.Settings>       
    </applicationSettings>
</configuration>

где

  • ffmpeg - путь к утилите для конвертирования видеоданных
  • cntStr -- строка подключения к БД Surveillance

Примечание: по умолчанию, для входа в приложение VideoManager используется пользователь root с паролем admin

Операции, которые предоставляет модуль VideoManager:

  • "Видеонаблюдение" \ "Пользователи"  - управление пользователями (на данный момент учетные записи пользователей используются только для входа в модуль VideoManager)
  • "Видеонаблюдение" \ "Группы камер"  - создание групп камер с указанием используемой схемы отображения видеоданных (изображение с 1-й камеры, со 2-й, 4-й и т.д.)
  • "Видеонаблюдение" \ "Камеры"  - создание конфигурации IP-камер, задействованных в системе видеонаблюдения (см. ниже)
  • "Видеонаблюдение" \ "Схемы"  - создание схем. В схеме происходит привязка камеры или камер к группам, определенным в словаре "Группы камер"
  • "Видеонаблюдение" \ "Выгрузка для WWW"  - экспорт настроек системы в конфигурационный файл VideoRegistrator.xml, который используется скриптами для отображения web-интерфейса
  • "Видеонаблюдение" \ "Конвертировать"  - экспорт видеоданных из архива в формат MPEG (например, для просмотра в сторонней программе или передачи видеофайла третьей стороне).

Примечание: Операция конвертирования при поиске необходимого видеофайла(ов) использует путь, указанный в свойствах выбранной камеры (параметр "Директория"). Если для камеры в данном параметре указан относительный путь (например, ./Camera1/Video/), модуль VideoManager не сможет корректно выполнить операцию экспорта.

Параметры камеры

Для камеры видеонаблюдения в системе определены следующие параметры

  • Код  - уникальный код (шифр) камеры,  создается автоматически при добавлении новой камеры
  • Имя  - произвольное имя камеры видеонаблюдения
Примечание: Если в параметре "Выходной URI" не указано имя потока (например, http://127.0.0.1:9891/camera_name.mjpg), для формирования будет использоваться имя кассы - в таком случае следует заполнять имя только латиницей.
Важно: В случае отсутствия титров при просмотре онлайн-видео следует проверить в свойствах камеры параметр "Станция"  - по этому параметру система определяет соответствие служебных тегов (титров) с кассовой станции и камеры видеонаблюдения. 
  • Станция  - код кассовой станции, которая будет связана с данной камерой

Примечание: При проверке, данный код кассовой станции должен соответствовать значению параметра "UnitNum" (атрибут в XML) в файле VideoMessages.log.

Примечание: Если в качестве кассовой системы используется R-Keeper v6 и номер станции имеет значение в диапазоне 1...9, параметр "Станция" необходимо указывать с ведущим нулем, например 01, 02 ... 09.

  • Входной URI  - иса, по которому сервер видеорегистрации получает  входной  MJPEG-поток с видеокамеры (или устройства, эмулирующего камеру),  определяется настройками конкретной камеры
  • Выходной URI - идентификатор ресурса, по которому  сервер видеорегистрации (VideoRegistrator)  предоставляет (транслирует)  выходной  обработанный MJPEG-поток (включая титры)
  • Вых. вн. URI - идентификатор ресурса, по которому  сервер видеорегистрации (VideoRegistrator)  предоставляет (транслирует)  выходной  обработанный MJPEG-поток (включая титры),  если используется переброс портов на роутере для подключения к вебинтерфейсу за пределами NAT (доступ на порт по внешнему ip адресу)
  • Сообщения URI  - идентификатор ресурса, по которому сервер видеорегистрации получает информацию о титрах
  • Директория  - абсолютный путь к директории хранения архива видеофайлов для данной камеры, не должно быть дублирования
  • Продолжительность сек  - ограничение продолжительности записи отдельного видеофайла (в архиве будут хранится файлы с указанной длительностью видео)
  • Дни  - ограничение периода хранения архива видеофайлов для данной камеры
  • Лимит GB  - ограничение размера архива видеофайлов для данной камеры
  • Ширина  - ширина области в пикселях, выделяемая для титров
  • К-во строк  - кол-во одновременно выводимых строк титров, при превышении указанного кол-ва титры автоматически скролируются

Далее рассмотрены более детально некоторые параметры камеры.

Входной URI

Как отмечалось выше, параметр "Входной URI" (inUri) определяет ресурс, по которому сервер видеорегистрации получает входной MJPEG-поток с видеокамеры (или устройства, эмулирующего камеру).

Формат параметра зависит от конкретной модели камеры - как правило, такая информация доступна в документации для разработчика.

Если самостоятельно не удалось найти информацию, как формируется выходной URI для используемой камеры, можно создать запрос для службы поддержки на трекере http://tracker.ucs.ru:8080

Далее рассмотрены примеры для некоторых известных IP-камер.


D-Link DCS-2103

Для данной камеры формат параметра URI следующий:

http://<ИмяПользователя>:<Пароль>@<IP-адрес камеры>:<HTTP-порт камеры>/<ИмяПотокаДляПрофиляВидео>

где

<ИмяПользователя>, <Пароль>  - имя пользователя и пароль для подключения к камере, задаются в настройках камеры:

 


<IP-адрес камеры><HTTP-порт камеры> - IP-адрес камеры и HTTP-порт для входящего подключения. Если используется стандартный порт 80, в URI можно не указывать значение

<ИмяПотокаДляПрофиляВидео> - имя потока, задаваемое в свойствах камеры для каждого профиля. В настройках камеры D-Link  DCS-2103 могут быть определены два профиля "VIDEO PROFILE 1" и "VIDEO PROFILE 2", для доступа к которым используются имена по умолчанию video1.mjpg и video2.mjpg соотв. 

Настройка видео-профилей камеры

Имеется прямая зависимость размера архива видео и нагрузки на сеть от параметров камеры FrameSize, Maximum frame rate и  Video quality.

Настройка имени потока для профиля

Для получения MJPEG URI других камер: обратитесь к поставщику камер или воспользуйтесь сниффером:
Вам потребуется Windows с установленными браузером Internet Explorer (далее – IE) и анализатором сетевого трафика Wireshark https://www.wireshark.org/#download.
Зайдите IE в “родной“ интерфейс ip-камеры и в настройках включите поддержку нужных протоколов и кодеков (MJPEG).
Закройте браузер и запустите программу Wireshark и в ней захват сетевых потоков с нужного сетевого интерфейса.
Зайдите браузером IE в “родной” интерфейс ip-камеры на страницу просмотра в реальном времени. Если настройки просмотра (протоколы и кодеки) не сохранились, то включите нужные протоколы и кодеки снова.
После 5-10 секунд просмотра видео закройте браузер IE.
В программе Wireshark остановите захват с сетевого интерфейса и сохраните dump-файл сетевого трафика, который проанализируйте самостоятельно.

Выходной URI

Параметр "Выходной URI" (outUri) определяет ресурс, по которому будет доступен выходной обработанный сервером Surveillance (модуль VideoRegistrator) MJPEG-поток (включая титры). Данный поток используется веб-интерфейсом для отображения видео. Поток в "Выходной URI" (outUri) генерирует модуль VideoRegistrator.
Важно: В параметре "Выходной URI"  необходимо указывать с именем потока, например http://ip_address:port/camera1/camera1.mjpg , где  ip_address -- адрес, где запущен модуль VideoRegistrator,  camera1.mjpg -- имя потока, outUri должен быть уникальным в рамке одной системы!  Если в параметре не указано имя потока (на скриншоте выше "camera311.mjpg' ), для формирования будет использовано имя кассы - в таком случае следует заполнять имя только латиницей!

Директория

Параметр "Директория определяет ресурс, где будет храниться архив необработанных видеоданных по данной камере.

Примечание: Значение параметра "Директория" используется модулем VideoManager для доступа к архиву при операции конвертирования - если указать относительный путь, модуль VideoManager не сможет найти данные в архиве. В рабочей конфигурации рекомендуется всегда использовать только абсолютные пути!

Важно:  Для хранения архива рекомендуется использовать отдельный жесткий диск или RAID-массив и не устанавливать на этот диск ПО  Surveillance  

Запуск приложений

HTTP-сервер (HTTPServerConsole.exe), сервер сообщений (VideoMessagesConsole.exe) и сервер видеорегистрации  (VideoRegistratorConsole.exe) могут быть запущены как в качестве приложения, так и в качестве системного сервиса.

Менеджер конфигурации (VideoManager.exe) может быть запущен только в виде приложения.

Для проверки работоспособности системы после запуска приложений, можно открыть в браузере ссылку, соотв. одному из значений параметра  URI  в конфигурационном файла HTTP-сервера (HTTPServerConsole.exe.config) и залогиниться учетной записью пользователя, заданной в том же конфигурационном файле.

Запуск в качестве приложения

Для запуска серверов в качестве приложения используется универсальная утилита ExecuteProcess.exe, параметры которой передаются в командной строке:

  ExecuteProcess.exe "ИмяИсполняемогоФайла" "ПараметрыИсполняемогоФайла" "ПризнакСкрытияОкнаПриложения" "ИмяСообщенияНаЗакрытиеПриложения"

где

"ИмяИсполняемогоФайлаСервера"  (1-й параметр) - имя исполняемого файла
"ПараметрыИсполняемогоФайлаСервера"  (2-й параметр)  - параметры исполняемого файла, передаваемые в командной строке (может быть пустым)
"ПризнакСкрытияОкнаПриложения"  (3-й параметр) - указывает, скрывать ("hide") или нет ("") окно исполняемого приложения
"ИмяСообщенияНаЗакрытиеПриложения" (4-ый параметр) - имя сообщения (event) на закрытие приложение (сервисный параметр, необходим для корректного завершения приложения)

Например:

ExecuteProcess.exe "VideoMessagesConsole.exe" "" "hide" "VideoMessagesEvent"

ExecuteProcess.exe "VideoMessagesConsole.exe" "--close" "hide" "VideoMessagesEvent"  так можно завершить уже запущенное приложение

ExecuteProcess.exe "VideoRegistratorConsole.exe" "" "hide" "VideoRegistratorEvent"

Важно: Параметр "ИмяСообщенияНаЗакрытиеПриложения", установленный для запуска сервера сообщений и сервера видеорегистарции, нельзя изменять.

Примечание: Для запуска в качестве приложений рекомендуется использовать готовые файлы \HTTPServer\StartHTTPServer.js для запуска HTTP сервера, \VideoRegistrator\StartVideoRegistrator.js для запуска сервера регистрации видео и наложения титров и \VideoMessages\StartVideoMessages.js для запуска сервера сообщения и синхронизации. Для остановки использовать соотв.  \HTTPServer\StopHTTPServer.js, \VideoRegistrator\StopVideoRegistrator.js,  \VideoMessages\StopVideoMessages.js

Важно: В Windows 7 приложения необходимо запускать от имени административной учетной записи!​

Запуск в качестве сервиса

Для установки приложений в качестве сервиса используется универсальная утилита ExecuteProcessesService.exe, параметры которой задаются в файле ExecuteProcessesService.exe.config, секция  <ExecuteProcessesService.Properties.Settings> ... </ExecuteProcessesService.Properties.Settings>:

<configuration>
...........................

        <ExecuteProcessesService.Properties.Settings>
            <setting name="Files" serializeAs="Xml">
                <value>
                    <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                         <string>..\HTTPServer\HTTPServerConsole.exe</string>
                        <string>..\VideoMessages\VideoMessagesConsole.exe</string>                       
                        <string>..\VideoRegistrator\VideoRegistratorConsole.exe</string>
                    </ArrayOfString>
                </value>
            </setting>
            <setting name="Events" serializeAs="Xml">
                <value>
                    <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                        <string>HTTPServerEvent</string>
                        <string>VideoMessagesEvent</string>
                        <string>VideoRegistratorEvent</string>
                    </ArrayOfString>
                </value>
            </setting>
            <setting name="Sleep" serializeAs="String">
                <value>1000</value>
            </setting>
            <setting name="HardClose" serializeAs="String">
                <value>False</value>
            </setting>
        </ExecuteProcessesService.Properties.Settings
............................
</configuration>

Настройка кассовой системы

R-Keeper v6

Важно : В R-Keeper v6 часть служебной информации формирует и передает кассовый сервер, часть - кассовый клиент (титры). Таким образом, при использовании выделенного NT-сервера необходимо прописать параметр VideoIP в конфигурационном файле RKEEPER6.INI сервера!

Для передачи служебных данных (титров) с кассы, необходимо скопировать в корень RKCLIENT библиотеку   VIDEOUDP.DLL   (/Surveillance/RK6/DOS/VIDEOUDP.DLL)  и в RKEEPER6.INI прописать параметр  VideoIP  с указанием IP-адреса компьютера, на котором запущен  сервер сообщений VideoMessages:

VideoIP = 192.168.0.1

Примечание: Для RK6WIN библиотеку брать из директории /Surveillance/RK6/WIN/VIDEOUDP.DLL, настройки аналогичны DOS-станции

Если используется выделенный кассовый сервер (NT), параметр VideoIP необходимо также прописать в RKEEPER6.INI кассового сервера.

Также в RKEEPER6.INI кассового клиента необходимо прописать параметр  VideoKey,  отвечающий за лицензионный код:

VideoKey = <лицензионный код>

Примечание: Лицензионный ключ может быть в виде отрицательного числа, например "-1234567890"!

Примечание Для передачи данных с кассового клиента на DOS-станции должен быть установлен сетевой клиент с поддержкой Novell TCP/IP  или  MS TCP/IP.

Важно: В случае использования на кассовой станции сетевого протокола MS TCP/IP необходимо обеспечить поддержку сокетов (прописать запуск sockets.exе в автозагрузке)

R-Keeper v7

Информация по настройке см. в соотв. разделе Cправочника RK7

Настройка отчетов (оффлайн-режим)

Для возможности просмотра из отчетов R-Keeper видеоматериала, связанного с кассовыми операциями, необходимо скопировать все файлы из директории \Surveillance\Reports в корень рабочей директории менеджерской RK7 или редактора RK6 и настроить конфигурационный файл getvideoview.ini:

[Main]
BrowserName = "FindVideo.exe"
EnableDebug = 0

где

  • BrowserName  - имя утилиты для отображение диалога выбора кассовых операций и дальнейшей связи модуля отчетов с архивом видео
  • EnableDebug - включение (1) или отключение (0) отладочного режима. В данном режиме на экране будут отображаться все служебные запросы при любой операции в отчетах, связанной с получением видеоданных

Схема взаимодействия модуля отчетов и системы видеоконтроля примерно следующая:

  • модуль отчетов передает в библиотеку связи getvideoview.dll служебный тег, связанный с кассовой операцией
  • getvideoview.dll вызывает утилиту FindVideo.exe, которая по служебному тегу находит в БД  Surveillance дату и время операции и отображает эту данные в диалоговом окне:
  • далее FindVideo.exe формирует URL-ссылку и вызывает браузер, который отображает готовую станицу архива с установленной датой и временем:

Конфигурация утилиты FindVideo.exe хранится в файле FindVideo.exe.config:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

    <configSections>

        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >

            <section name="FindVideo.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />

        </sectionGroup>

    </configSections>

    <applicationSettings>

        <FindVideo.Properties.Settings>

            <setting name="cntStr" serializeAs="String">

                <value>Database=C:\UCS\Surveillance\DB\SURVEILLANCE.FDB; User=SYSDBA; Password=masterkey;  Dialect=3; Server=localhost</value>

            </setting>

            <setting name="URI" serializeAs="String">

                <value>http://127.0.0.1:8085/archive.html</value>

            </setting>

            <setting name="Browser" serializeAs="String">

                <value>"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"</value>

            </setting>

        </FindVideo.Properties.Settings>

    </applicationSettings>

</configuration>
XML
  где
  • cntStr  - строка подключения к БД ​Surveillance
  • URI - адрес ресурса для доступа к видеоархиву. Значения IP-адреса и порта в данном ресурсе должны соотв. настройкам HTTP-сервера
  • Browser  - полный путь к исполняемому файлу браузера, который используется для отображения страницы доступа к архиву видеоданных

Обновление системы

Информация по изменениям в модулях системы Surveillance содержится в файле ftp://ftp.ucs.ru/Surveillance/install/Bin/History.txt

Для обновления ПО Surveillance необходимо:

  • загрузить с FTP-сервера ftp://ftp.ucs.ru/Surveillance/install/Bin  дистрибутив актуальной версии ПО
  • остановить запущенные приложения и/или сервисы Surveillance
  • выполнить резервное копирование текущей рабочей директории Surveillance
  • заменить файлы в текущей рабочей директории Surveillance файлами из загруженного дистрибутива,  исключая замену базы данных (SURVEILLANCE.FDB) и конфигурационных файлов (файлы с расширением *.config и .xml)
  • обновить базу данных путем последовательного выполнения скриптов из директории  \Bin\DB\ - последовательность выполнения определяется датой и порядковым номеров в названии скрипта
  • дополнительная информация по изменения в

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

Локализация системы

Локализация модулей и приложений

Приложения и модули системы, которые поддерживают локализацию (перевод на другой язык), содержат дополнительный файл с расширением .local.

Структура файла локализации простая - это обычный текстовый файл, где в каждой отдельной строке указана пара  <ИмяРесурса> = <ЗначениеРесурса>

Пример файла локализации ConversionXML.dll.local для модуля ConversionXML.dll:

RestCode = РК:
UnitNum = Касса
LoginPerson = Пользователь
Discount = ---------------Скидка----------------
Card = Карта
Pay = ---------------Оплата----------------
PrePay = ------------Предоплата-------------

...

Start = Старт
Cashier = Кассир
Barman = Бармен
Drawer = Денежный ящик

Локализация web-интерфейса

С версии веб-интерфейса (httdocs) 2.0.18 реализована поддержка локализации веб-скриптов - ресурсы для локализации находятся в файле \Bin\HTTPServer\httdocs\js\lang.js

Язык по умолчанию устанавливается с помощью параметра  DEFAULT_LANG  файла lang.js:

var DEFAULT_LANG = 'ru' ;

Примечание: До версии 2.0.18 веб-интерфейс системы имеел поддержку 2-х языков - русского и английского.

Просмотр видео через Интернет

Если необходимо просматривать видео с удаленного компьютера через глобальную сеть,  рекомендуется использовать VPN-подключение .

Если VPN-подключение невозможно по каким-либо причинам, можно использовать статичный (глобальный) IP-адрес и следующую конфигурацию:

  • если публичный IP-адрес прописан на роутере, настраиваем "проброс" портов с роутера на локальный компьютер с установленной системой видеоконтроля
  • в приложении VideoManager.exe в свойствах камеры устанавливаем параметр "Вых. вн. URI" в соотв. с ресурсом, по которому должно быть доступно видео из глобальной сети
  • в конфигурационном файле VideoRegistratorConsole.exe.config приложения VideoRegistrator указываем  локальные  IP-адреса 
  • в конфигурационном файле HTTPServerConsole.exe.config HTTP-сервера указываем  глобальные  IP-адреса

Детальное обсуждение можно посмотреть в трекере https://tracker.ucs.ru/issues/20974

Примечание: Если возникли проблемы при просмотре видео из внешней сети, то необходимо запустить запрос из внешней сети: http://IPADDRESS:PORT/net_dir/GetSchemas.dll и проверить результат, сравнить его с настройками камер в VideoManager.exe

Представление рабочего стола в виде камеры MJPEG

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

В качестве приложения для трансляции событий используется стандартный HTTP-сервер (HTTPServerConsole.exe) из дистрибутива Surveillance и библиотека MJPEGScreen.dll

Библиотека MJPEGScreen.dll должна размещаться в подкаталоге  \httdocs  (можно использовать как общий каталог для веб-интерфейса, так и создать отдельный экземпляр HTTP-сервера со своей копией  \httdocs)


Важно: HTTPServer должен запускаться как приложение от имени администратора, а не как сервис, так как сервис не имеет доступ к рабочему столу Windows.

Для настройки необходимо в приложении VideoManager добавить новую камеру и в свойствах камеры прописать параметр "Входной URI" следующего вида:

  http://логин_http_сервера:пароль_http_сервера@IP_ПК_где_запущен_http_сервер:порт_http_сервера/MJPEGScreen.dll?cursor=цвет_курсора(Green)&speed=скорость&x=смещение_по_X&y=смещение_по_Y&width=ширина&height=высота  

например:

  http://admin:admin@172.22.10.39:8080/MJPEGScreen.dll?speed=100&width=640&height=480

Важно: В строке подключения после наименования библиотеки обязательно должен быть указан символ "знак вопросв" ("?"), далее параметры перечисляются через символ "&".

Остальные параметры камеры заполняются стандартным образом.

Значения параметров по умолчанию (используются, если параметр не указан явно в строке подключения):

  • cursor=Red
  • speed=0 (скриншот)
  • x=0
  • y=0
  • width=640
  • height=480
  • задержка между кадрами вычисляется в мс = 1000/speed

Разблокировка MJPEGScreen.dll

В некоторых случаях, например при скачивании с FTP-сервера через браузер, библиотека MJPEGScreen.dll может быть заблокирована системой безопастности Windows.

При попытке запустить HTTPServerConsole.exe  в логе будет след. сообщение:

...

Message = An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. 
This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. 
If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.;

....

Для разблокировки MJPEGScreen.dll необходимо по правому клику мыши вызвать свойства библиотеки и выбрать операцию  "Unblock"  ("Разблокировать"):

Такое решение распространяется и для других файлов *.dll, *.exe.

Конвертирование видео в формат mp4

Данное ПО позволяет производить конвертирование видео в файлы формата mp4. 

Конвертировать возможно как через приложение VideoManager.exe, так и через веб-интерфейс.

При использовании веб-интерфейса конвертированное видео будет хранится в поддиректории  converted , которая должна быть создана в директории  ..\Surveillance\Bin\HTTPServer\httdocs\

В параметре tmpFS конфигурационного файла VideoRegistratorConsole.exe.config необходимо прописать абсолютный (полный) путь к директории converted:

<setting name="tmpFS" serializeAs="String">
                <value>c:\Surveillance\Bin\HTTPServer\httdocs\converted\</value>
            </setting>

В последних версиях реализована возможность загружать сконвертированное видео как через FTP, так и через HTTP.

Описание кассовых операций (теги XML)

Со стороны кассовой систему формируются и передаются следующие операции:

  • OpenOrder - открытие заказа
  • NewOrder  - создание нового заказа
  • Drawer  - открытие денежного ящика
  • CloseCheck  - закрытие чека
  • Start  - старт заказа для фастфуда
  • StartCheck  - старт чека не для фастфуда
  • RemoveOrder  - удаление заказа
  • Precheck  - пречек
  • LogIn  - регистрация
  • LogOut  - отмена регистрации
  • SuperLogout  - отключение менеджера
  • ScreenCheck  - показать чек
  • DeletePrecheck  - удаление пречека
  • DeleteCheck  - удаление чека
  • Print  - печать отчета
  • Discount  - скидка
  • QuitOrder  - выход из заказа без сохранения
  • StoreCheck  - сохранение заказа
  • Pay  - оплата
  • Report  - показать отчет
  • Superlogin  - спец. регистрация
  • Transfer  - перенос блюда
  • OrderTransfer  - перенос заказа
  • Videotag  - закладка временная

Примеры сформированных XML-пакетов

XML-данные можно посмотреть в логе сервера сообщений VideoMessages.log -  ниже приведены примеры сформированных данных.

Тег OpenOrder

  <OpenOrder Table="25.1" SerialNumber="35049" DateOpen="01.07.2012" TimeOpen="14:29" Guests="0" >
<Sysparams RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 14:34" >
<LoginPerson Name="Рыбакова Татьяна" Code = "4001" Ptype="W" />
</Sysparams>
<Waiter Name="Рыбакова Татьяна" Code = "4001" Ptype="W" />
<CheckLines >
<CheckLine Name="Морковный сок свеж" Code = "2952" Print = "2" Price = "80.00" Qnt = "1.000" Store = "True" />
<CheckLine Name="Шоколадное суфле" Code = "1613" Print = "1" Price = "190.00" Qnt = "1.000" Store = "True" />
</CheckLines>
<discounts >
<discount Name="Акция на открытие" Code = "50" Sum= "-27.00" />
</discounts>
</OpenOrder>

Тег NewOrder

  <NewOrder RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 14:21" Table="25" >
<LoginPerson Name="Рыбакова Татьяна" Code = "4001" Ptype="W" />
</NewOrder>

Тег Drawer

  <DRAWER RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 13:51" >
<LoginPerson Name="Ирина Маслова" Code = "4002" Ptype="M" />
</DRAWER>​

Тег CloseCheck

  <CloseCheck Number="2" Table="25.1" SerialNumber="35049" DateOpen="01.07.2012" TimeOpen="14:29" Guests="0" Precheck="True" >
<Sysparams RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 15:10" >
<LoginPerson Name="Подольская Анастасия" Code = "2001" Ptype="K" />
</Sysparams>
<Waiter Name="Рыбакова Татьяна" Code = "4001" Ptype="W" />
<Cashier Name="Подольская Анастасия" Code = "2001" Ptype="K" />
<CheckLines >
<CheckLine Name="Морковный сок свеж" Code = "2952" Print = "2" Price = "80.00" Qnt = "1.000" Store = "True" />
<CheckLine Name="Шоколадное суфле" Code = "1613" Print = "1" Price = "190.00" Qnt = "1.000" Store = "True" />
<CheckLine Name="Виноград" Code = "4314" Print = "2" Price = "120.00" Qnt = "1.000" Store = "True" />
</CheckLines>
<discounts >
<discount Name="Акция на открытие" Code = "50" Sum= "-39.00" />
</discounts>
<paylines >
<pay Name="Рубли" Code = "RUB" Sum= "351.00" />
</paylines>
</CloseCheck>

Тег StartCheck

  <StartCheck RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 14:29" Table="25.1" >
<LoginPerson Name="Рыбакова Татьяна" Code = "4001" Ptype="W" />
</StartCheck>

Тег Precheck

2014.06.05.14:58:22:465::<?xml version="1.0" encoding="IBM866"?>
<Precheck Table="25.1" SerialNumber="35049" DateOpen="01.07.2012" TimeOpen="14:29" Guests="0" >
<Sysparams RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 14:58" >
<LoginPerson Name="Подольская Анастасия" Code = "2001" Ptype="K" />
</Sysparams>
<Waiter Name="Рыбакова Татьяна" Code = "4001" Ptype="W" />
<CheckLines >
<CheckLine Name="Морковный сок свеж" Code = "2952" Print = "2" Price = "80.00" Qnt = "1.000" Store = "True" />
<CheckLine Name="Шоколадное суфле" Code = "1613" Print = "1" Price = "190.00" Qnt = "1.000" Store = "True" />
<CheckLine Name="Виноград" Code = "4314" Print = "2" Price = "120.00" Qnt = "1.000" Store = "True" />
</CheckLines>
<discounts >
<discount Name="Акция на открытие" Code = "50" Sum= "-39.00" />
</discounts>
</Precheck>

Тег LogIn

2014.06.05.15:31:02:337::<?xml version="1.0" encoding="IBM866"?>
<LogIn RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 15:31" >
<LoginPerson Name="Подольская Анастасия" Code = "2001" Ptype="K" />
</LogIn>

Тег LogOut

2014.06.05.13:51:35:694::<?xml version="1.0" encoding="IBM866"?>
<LogOut RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 13:51" />

Тег ScreenCheck

  <ScreenCheck Table="25" SerialNumber="35048" DateOpen="01.07.2012" TimeOpen="14:21" Guests="0" >
<Sysparams RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 14:29" >
<LoginPerson Name="Рыбакова Татьяна" Code = "4001" Ptype="W" />
</Sysparams>
<Superlogin Name="Злобный менеджер" Code = "1001" Ptype="M" />
<Waiter Name="Рыбакова Татьяна" Code = "4001" Ptype="W" />
<CheckLines >
<CheckLine Name="Салат &quot;Томато Моццарелла&quot;" Code = "1107" Print = "1" Price = "240.00" Qnt = "1.000" Store = "True" />
<CheckLine Name="Французский луковый суп" Code = "1203" Print = "3" Price = "120.00" Qnt = "1.000" Store = "True" />
<CheckLine Name="Филе ягненка" Code = "1506" Print = "3" Price = "600.00" Qnt = "1.000" Store = "True" >
<Modifiers >
<Modifier Name="средняя прожарка" Code = "41" />
</Modifiers>
</CheckLine>
<CheckLine Name="Морковный сок свеж" Code = "2952" Print = "2" Price = "80.00" Qnt = "0.000" Changed="2" Store = "True" Void="     1.000" />
</CheckLines>
<discounts >
<discount Name="Акция на открытие" Code = "50" Sum= "-96.00" />
</discounts>
</ScreenCheck>

Тег DeletePrecheck

  <DeletePrecheck Table="25.1" SerialNumber="35049" DateOpen="01.07.2012" TimeOpen="14:29" Guests="0" >
<Sysparams RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 14:58" >
<LoginPerson Name="Подольская Анастасия" Code = "2001" Ptype="K" />
</Sysparams>
<Superlogin Name="Ирина Маслова" Code = "4002" Ptype="M" />
<Waiter Name="Рыбакова Татьяна" Code = "4001" Ptype="W" />
<CheckLines >
<CheckLine Name="Морковный сок свеж" Code = "2952" Print = "2" Price = "80.00" Qnt = "1.000" Store = "True" />
<CheckLine Name="Шоколадное суфле" Code = "1613" Print = "1" Price = "190.00" Qnt = "1.000" Store = "True" />
<CheckLine Name="Манго" Code = "4009" Print = "2" Price = "70.00" Qnt = "1.000" Store = "True" />
<CheckLine Name="Виноград" Code = "4314" Print = "2" Price = "120.00" Qnt = "1.000" Store = "True" />
</CheckLines>
<discounts >
<discount Name="Акция на открытие" Code = "50" Sum= "-46.00" />
</discounts>
</DeletePrecheck>

Тег Discount

<discounts >
<discount Name="Акция на открытие" Code = "50" Sum= "-39.00" />
</discounts>

Тег StoreCheck

  <StoreCheck Table="25.1" SerialNumber="35049" DateOpen="01.07.2012" TimeOpen="14:29" Guests="0" >
<Sysparams RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 14:58" >
<LoginPerson Name="Подольская Анастасия" Code = "2001" Ptype="K" />
</Sysparams>
<Waiter Name="Рыбакова Татьяна" Code = "4001" Ptype="W" />
<CheckLines >
<CheckLine Name="Морковный сок свеж" Code = "2952" Print = "2" Price = "80.00" Qnt = "1.000" Store = "True" />
<CheckLine Name="Шоколадное суфле" Code = "1613" Print = "1" Price = "190.00" Qnt = "1.000" Store = "True" />
<CheckLine Name="Виноград" Code = "4314" Print = "2" Price = "120.00" Qnt = "1.000" Store = "True" />
</CheckLines>
<discounts >
<discount Name="Акция на открытие" Code = "50" Sum= "-39.00" />
</discounts>
</StoreCheck>

Тег Pay

<paylines>
<pay Name="Рубли" Code = "RUB" Sum= "864.00" />
</paylines>

Тег Report

  <Report RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 14:20" >
<LoginPerson Name="Злобный менеджер" Code = "1001" Ptype="M" />
Просмотр чеков
</Report>
  <Report RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 15:31" >
<LoginPerson Name="Ирина Маслова" Code = "4002" Ptype="M" />
Закрытие дня
</Report>

Тег Transfer

  <Transfer FromTable="25" ToTable="25.1" >
<Sysparams RKVersion="6106" RestCode = "199999999" RKServer="RQSERV" UnitNum="89" Time="05/06/2014 14:30" >
<LoginPerson Name="Рыбакова Татьяна" Code = "4001" Ptype="W" />
</Sysparams>
<CheckLine Name="Морковный сок свеж" Code = "2952" Print = "2" Price = "80.00" Qnt = "1.000" Store = "True" Void="     1.000" />
</Transfer>

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

Отключение режима гибернации

На компьютере, где планируется установка и работа ПО Surveillance, рекомендуется отключить  режим гибернации  (т.н. "спящий режим")

Режим гибернации автоматически включен после установки Windows, о чем свидетельствует скрытый системный файл  hiberfil.sys, который располагается в корневой папке системного диска. Размер файла примерно равен размеру оперативной памяти, установленной на компьютере.

Для отключения режима гибернации необходимо в командной строке Windows (cmd) выполнить следующую команду:

  powercfg.exe /hibernate off

Полная информация по работе с режимом гибернации приведена на оф. сайте Microsoft  https://support.microsoft.com/ru-ru/kb/920730

Архивные настройки

HTTP-сервер Apache

Для установки можно использовать последнюю версию сервера Apache HTTP,  доступную на момент развертывания системы видеоконтроля - скачать дистрибутив можно с сайта проекта http://httpd.apache.org/

В процессе установки Apache HTTP создаются базовые параметры в файле конфигуации \conf\httpd.conf :

................
ServerRoot "C:/Apache2" - корневая директоирия сервера Apache HTTP
................
Listen 192.168.0.1:8015 - привязка IP-адреса и порта
................
DocumentRoot "c:/www" - корневая директория размещения скриптов
................

Для размещения набора скриптов web-интерфейса  необходимо в основном конфигурационном файле \conf\httpd.conf прописать следующие параметры:

#Права доступа к директории
<Directory "c:/www/videocontrol">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order Allow,Deny
    Allow from All
</Directory>
..............
#Параметры виртульного хоста
<VirtualHost 192.168.0.1:8015>

      ServerName videocontrol.company.com

      DocumentRoot "c:/www/videoсontrol"

  </VirtualHost>