1. General information


System was created to work with inexpensive IP-cameras and  integrate video results to standard RK6 Reports module. 

The picture below  shows the diagram of the system: 

Structure of the system

System consists of software, developed by UCS Company, and hardware from other suppliers.

Hardware

UCS Video control system can use standard  IP cameras.  D-Link DCS-2102 was tested , but it is possible to use other D-Link cameras with similar API. Later the supported cameras list will be updated.

Main requirements for cameras:

  • support SMB-protocol (possibility to operate as Samba-client) - it is required for recording video files in network resource
  • support of FTP protocol for storing snapshots
  • possibility to record video fragments 1 minute long. File names must indicate date and time *
  • support of NTP-protocol (or SNTP) for time synchronization
  • support DNS (direct and opposit) **
  • support DDNS-client, if cameras use dynamic IP addresses

*  - currently date and time format must correspond with format used by D-Link cameras
** -  it is a specialty of D-Link DCS-2102 model for time synchronizing by NTP protocol

  It is recommended to use  external data storage to make system be more reliable and self-inclusive.  For example, use D-Link DNS-313  (HDD 3,5" must be purchased separately). In general video files can be stored on any network resource - but further description presumes that network resources are connected and available on drive Z:\


2. Software


2.1. Software set

  • Database management system FireBird version 2.1 and higher
  • Set of codecs to be able to view video record  (as a rule, it is supplied together with cameras, but regular codec packs, such as K-Lite codec pack, can be used)
  • Online video controlling module  VideoCamera.exe
  • Utility ScanVideo.exe for scanning for video fragments and creating records about them in database
  • RKeeper V6 terminals from version 6.95 and higher 
  • Module "Reports" version 6.90 9 (and higher) to view corresponding video files directly from viewing receipt (or  list of receipts).

2.2. Software set is stored on UCS FTP at: ../dealers/VideoControl/ folder.


3. Licensing


    it is required to purchase license to operate the video control system . After the payment is transferred, UCS Company provides program key,  which is registered in group of settings of  VideoControl.exe application. Program key is linked to a restaurant's code, so license has to be purchased for each restaurant separately.

Note: In present the amount of  installed cameras is irrelevant for purchasing the license, but later on this approach will change and it will depend on the amount of  cameras installed.

Important: The license number is not just digits, it can be also other symbols. Please pay attention when copying license number from email.
 


4. System installation and configuration


Time synchronizing

  This part is one of the most important parts for correct work of  the whole system. To make data, received from cameras, correspond with cash operations,  it is necessary to  synchronize time in the following modules:

  • video cameras
  • data storage (if several is used, then synchronize all of them)
  • database server
  • PC with application  AppUdpVideoSrv.exe running

    Also recommended to synchronize time on all computers, working with  Video Control system. 

Note: As it is written in time synchronization requirements, it is not necessary to synchronize time on cash station.The reason for this is that the time marks on tags are set by AppUdpVideoSrv.exe and thus integrity of information is kept, regardless of date and time set on cash station.

The easiest  way to synchronize time is to  use time server. An external (global) or local resource can act as such server . In the  Internet there is a  lot of information on  how to set time synchronizing servers, for example an article about setting such server in Windows XP on Microsoft site (http://support.microsoft.com/kb/314054)

Setting third-party components

For correct work of  the system it is necessary to install additional components. To do that go to \InstallPlugins distribution kit and run Install.bat.

  Note: for installing this component administrator rights are required.
 

FireBird database management system installation

Before installing other applications, FireBird database management system must be installed. To do that  download from website http://www.firebirdsql.org/  current version (at the moment of writing this article it is 2.1.2) and set server in the desired configuration. Further description implies that FireBird is installed and operates properly.

In latest versions client library gds.32.dll was renamed into fbclient.dll. For applications compatibility  copy the library  fbclient.dll in directory SYSTEM32 (for 32-bit operating system) and rename it into gds.32.dll

Setting connection to database

All applications of  VideoControl system are attached to database management system with the help of dbexpint.dll, which is used by configuration file sqlconn.pms  in order to receive connection parameters.
Basic parameters  of sqlconn.pms are given below,  other parameters should not be changed without necessity:

DriverName=Interbase
Database=127.0.0.1:c:\ucs\videocontrol\data\videostorage.fdb - pathname  to the  database,  it can be local or network
.................
User_Name=sysdba - user name (default SYSDBA)
Password=masterkey - password (default masterkey)
.................   SQLDialect=3 - important, do not change! 

.................
 

Important: Adjusted file sqlconn.pms must be copied into each work directory, from which separate system modules are launched

Setting UDP-server 

The application AppUdpVideoSrv.exe is meant for processing of  UDP-packets, that come from cash account system, and for forming work information in accumulative database. Also this module transfers information about  cash account operations in application-hosts (so called titles).
 

Important: for each separate restaurant (having different codes in SYSTEM.DB) the copy of running service AppUdpVideoSrv.exe is required.

Application can be adjusted  either by manual editing  of configuration files or with the help of graphic interface. 

If configuration files were not adjusted beforehand, in the time of first start of AppUdpVideoSrv.exe the window will be shown, where the following parameters must be entered.
 

  •  "Key" - license key;
  • "Port" - port for incoming connections;
  •  "Pathname" - path to the directory, where xml files and tags, received from cash account system, are formed; Important: put slash (\) to the end of the path.
  •  "DB" - path to the accumulative database, in which all the work information is kept;
  • "User" и "Password" - user and password for connecting to the database;
  • in the lower text field host value must be entered, to which information about cash account operations (titles) will be sent. Value for each host must be entered separately , the format is described lower in the manual section  hosts.txt.

Important: If application opens the setting screen everytime you press OK, it means that there is problema and information about it can be checked in the log files. they have name like - log_30_03_2010_09_26_06_2541265.log where name keeps info about date and time when it was created.

Note: In the accumulative database video files are not kept , video files references only!

 Manual setting consists of  editing of 3 files:  AppUdpVideoSrv.ini, hosts.txt и sqlconn.pms

AppUdpVideoSrv.ini:

[Main]
KeyID=600966724 - license key 
Path=z:\xml\ - path to the directory to form  xml-files and tags                  XML files will be recorded only if AppUdpVideoSrv.exe cannot write TAGs directly to database. Then these files will written to database by VideoScan.exe
Port=19123 - incoming port to receive data from cash account system
 
hosts.txt:

 

In the file  hosts.txt  hosts are specified, on which AppUdpVideoSrv will send work information  (titles). Each entry line of the file must  have information in the following form:

<IP-address>:<port> (for example, 198.154.196.169:19223) 

where

<IP-address> - is computer address with application-host running (in this case application-host is VideoControl.exe and/or RealVideoControl.exe)

<port> - is port for incoming connections of application-host (see description RealVideoControl.ini)

In such a way in the file hosts.txt  there must be a number of  entry lines , which must correspond the number of different copies of running application-hosts (VideoControl.exe, RealVideoControl.exe, etc.). In this case copies of application are considered to be different, if the combination  <IP-address>+<port> is unique.

sqlconn.pms:

The file of connection parameters is described above.
 

Setting the application  VideoControl.exe

The module is designed to manage the data book of the system, watching video in real time mode and having access to the video archive files.

Note: Working with video archive is based on work information from accumulative database VIDEOSTORAGE.FDB

Access to the application is protected with password  - in clean default database there is only one user  USER that has got  password  1234567890 and administrator's rights.
 

Setting groups

The notion "Group" is designed for logic integrity of stations and cameras within one restaurant  (within the limits of one restaurant's code).
To add new group or editing of existing group, go to menu "Video control" -> "Groups".

Note: to add or delete an element of system dictionary buttons "+" or "-" on the toolbar are used.

 To create a group, set its name  (it can be random) and enter basic parameters:

 
  In the field  "Key" enter license key of the given restaurant (restaurant code), in the field  "Code" - the full restaurant code (don't use separator . in the midle of code). "Main group" option specifies the status "Main" for the group and allows to indicate this group as active in all watching modes.

Important: license key and restaurant code, specified in group settings,  must agree with real restaurant code, denoted in SYSTEM.DB of cash station server. VideoControl application does not check the code and the key, but when they do not match packets from cash stations will not be decoded. Decoding key is attached to the restaurant's code and is purchased for each restaurant separately!
 
 
To keep filling in group parameters, it is necessary to fill in data books "Stations" and "Cameras" beforehand.
 

Setting stations  

 To add and set stations, select "Video control" -> "Stations" in the menu.

 To add a new station, enter its name and specify code. Code is the numeric identifier of the station, which corresponds with number of the stations, denoted in R-Keeper system.
 

Important: If station's code in  R-Keeper has value less than 10 (01, 02 .... 09), value in the field "Code" must be indicated without 0 (1, 2 ... 9)!

 

 

 

VideoCamera setting 

To add and set video camera, select "Video control" -> "Video cameras".

To add a new camera, enter its name and other parameters:
 
 
 

  •  "Pathname " - complete path to the directory, where video files of the given camera  are kept.
  • "Login" - user name  for remote camera access (is set in a certain camera settings)
  • "Password"  - user password
  • "IP"  -camera  IP-address      (is set in a certain IP camera settings)
  • "Port"  - port for remote camera access (is set in a certain IP camera settings)
  • "URL"  - special address for watching RTSP video from camera

Final setting of groups

After the data books of stations and cameras are completed, final adjustments of groups can be made. For doing that go to  "Video control" -> "Groups".
  
Next, in the right lower corner select stations, that exist in the system, and specify their corresponding cameras:

 
 

 

Video files scanner VideoScan.exe setting

VideoScan.exe  has service function  -  it scans specified path to check video files exist and records information in database. Also XML files if there are any.

To install the program copy directory VideoScan on disk, for example in C:\UCS\VideoControl\VideoScan

VideoScan directory content:
 

- dbexpint.dll - Borland driver to work with Interbase/Firebird
- VideoScan.exe - basic application 
- VideoScan.ini - configuration file of the application   - sqlconn.pms - connection to database information 

 
 
 File videoscan.ini settings:

[Main]
FreeCriticalSize = 20 - the percent of emty space in storage, after reaching this value system will start to dlete old files
IntervalForScan = 1200 - interval to run scanning
ScanAllDate = 0 - scan all files located in the folder (Basically used if need to scan all files again).  

It is enough to scan files several times a day, or right before closing the cash station day, since the information for watching videoSetting  is required for "Reports" module.
System will not be able to shutdown when VideoScan.exe is running

Setting cash station 

To transfer data from cash station, copy library VIDEOUDP.DLL in root  RKCLIENT , and in RKEEPER6.INI enter client parameter VideoIP  with specified IP-address of the computer, on which utility AppUdpVideoSrv.exe is running  (or VideoCamera.exe - see below):
 

VideoIP=192.168.0.1 

Important: Cash station part of  R-Keeper v6 transfers work data like this: tags are created and transmitted by the cash station server , and XML-packets are transmitted by cash station client. So, when selected NT-server is used, VideoIP parameter must be entered in configuration file RKEEPER6.INI of the server!
 

Note: In present only network client with Novell TCP/IPi support can be used for passing data - later on support of MS TCP/IP stack will be realized.

Module  "Reports" setting

The possibility to watch video files connected with receipt operations is realized in "Reports" module of version 6.90. 

Important: To watch video reports in "Reports" module, user needs a specific right - to set this right, configuration must be changed with the help of DealRK.exe, and then in  "Dispatcher" the right must be given to appropriate users.

To set report module, files from distribution kit \Offline: must be copied in directory RK6: 
 

- borlndmm.dll
- dbexpint.dll
- getvideoview.dll
- getvideoview.ini
- midas.dll
- sqlconn.pms
- VideoArchive.exe
- vlcax.exe
- vlcax.ini

1. File sqlconn.pms setting was described above
 

2. Content of file getvideoview.ini:

[Main]
Position=-5 - defines time shift (in seconds) for the video fragment shown in reports.
Mode=0 - adjustment mode (1 - yes, 0 - no)
ExtVideo=1 - use exterior module  (1 - yes, 0 - no)

Adjustment mode (Mode = 1) allows to show some service information, when information about video fragment is requested from "Reports" module.

ExtVideo parameter dictates how video file will be shown - either with the help of getvideoview.dll or external application VideoArchive.exe

Note: VideoArchive.exe module can not be started as an independent application.

 

Setting RealVideoControl.exe (archive) application 

This application is designed for watching video from cameras in real time mode, and for showing information about current cash station operations in text mode.

Note: Later the development of this application will depend on user's needs  - today this module is not updated, because all its functions are realized in VideoControl.exe.

To install the application copy directory RealVideo in disk, for example C:\UCS\VideoControl\RealVideo

Content of folder RealVideo:

- config.ini - basic configuration file for different restaurants' parameters
- cconf1.ini
  .................   - configuration files of particular restaurants 
- cconfN.ini
- dbexpint.dll - Borland driver to work with Interbase/Firebird base
- DcsCliCtrl.dll - the library of third-party designer for working with IP-cameras
- DcsSensor.dll - the library of third-party designer for working with IP-cameras
- defclass.dll - secondary library for script processing (Script.pp)
- getvideoview.dll - secondary library for watching videos from external applications 
- install.bat - package file for component registration
- midas.dll - Borland MIDAS Component Package
- RealVideoControl.exe - basic application
- RealVideoControl.ini - configuring file of the application
- Script.pp - pattern-script for text information about cash station operations output (titles)
- sqlconn.pms - special configuration file for database connection, used by dbexpint.dll library
- start.bat -  package file for starting VideoCamera.exe in a particular mode 
- VideoViewDD.exe - special application for watching video from external programmes
- vvconfig.ini - configuration file of VideoViewDD.exe application

1. First,  components od third-party designers must be registered - run package file install.bat for that :

regsvr32 DcsCliCtrl.dll
regsvr32 DcsSensor.dll
regsvr32 midas.dll

Note: Administrator rights are required for component registration.

2. Next set file sqlconn.pms for database connection (only basic parameters are denoted, do not change others without a necessity):

DriverName=Interbase

Database=198.154.196.169:c:\ucs\videocontrol\db\videostorage.fdb - database pathname, it can be local or network .................
User_Name=sysdba - database user name
Password=masterkey - database user password
.................
SQLDialect=3 - important, do not change! ................. 

3. Next set the configuration of each particular restaurant.

Configuration file names can be random, as an example they are named like cconfN.ini. 

In the file cconfN.ini there must be as many sections [CameraX], as there are physical cameras, installed in a resturant:

[Camera1] ...........
[Camera10]
...........

Parameters of section [CameraX]:

[Camera1]
RemoteHost = "192.168.0.20" -camera address
RemotePort = 80 - port for remote camera access   
Username = admin - user name for camera access (is assigned in camera settings)
Password = "ucs" - password for camera access (is assigned in camera access)
Num=1 - the number of cash station (UNIT), that camera corresponds with 
 Note: If the parameter Num is not assigned  (or assigned wrong), RealVideoControl.exe application will not process data  4. Next basic configuration file config.ini is set   In the config.ini there must be as many sections [RestoranX], as there are physical restaurants, in which VideoControl system operates.  [Restoran1] ............ [Restoran10] .......... 

Parameters of section [RestoranX]:

[Restoran1]
RCode="199999999" - restaurant code
Name="Restoran1" - restaurant name (for showing in application window)
Path=".\cconf1.ini" - path to restaurant configuration file (look above) - it can be absolute or relative
KeyID=600966724 - key for data decoding. It is provided after license purchase - see below for details

Important: Key for decoding is connected with restaurant code and is generated separately for each restaurant.