feat: GeViScope SDK integration with C# Bridge and Flutter app

- Add GeViScope Bridge (C# .NET 8.0) on port 7720
  - Full SDK wrapper for camera control, PTZ, actions/events
  - 17 REST API endpoints for GeViScope server interaction
  - Support for MCS (Media Channel Simulator) with 16 test channels
  - Real-time action/event streaming via PLC callbacks

- Add GeViServer Bridge (C# .NET 8.0) on port 7710
  - Integration with GeViSoft orchestration layer
  - Input/output control and event management

- Update Python API with new routers
  - /api/geviscope/* - Proxy to GeViScope Bridge
  - /api/geviserver/* - Proxy to GeViServer Bridge
  - /api/excel/* - Excel import functionality

- Add Flutter app GeViScope integration
  - GeViScopeRemoteDataSource with 17 API methods
  - GeViScopeBloc for state management
  - GeViScopeScreen with PTZ controls
  - App drawer navigation to GeViScope

- Add SDK documentation (extracted from PDFs)
  - GeViScope SDK docs (7 parts + action reference)
  - GeViSoft SDK docs (12 chunks)

- Add .mcp.json for Claude Code MCP server config

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Administrator
2026-01-19 08:14:17 +01:00
parent c9e83e4277
commit a92b909539
76 changed files with 62101 additions and 176 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,362 @@
================================================================================
GeViScope SDK Documentation - Pages 1 to 20
================================================================================
============================================================
PAGE 1
============================================================
GeViScope SDK
D ok u m e n t at i on | D oc u m e n t at i on | D oc u m e n t at i on | D oc u m e n t a t i ón
Version 04.2013
============================================================
PAGE 2
============================================================
GeViScope Software Development Kit (SDK)
Introduction
The GeViScope SDK consists of a collection of free software interfaces for the
GEUTEBRÜCK DVRs GeViScope and RePorter. It can be used to integrate these devices
in custom applications and although for linking not yet supported peripherals.
The interfaces are based on native Win32 DLLs. So they can be used with various devel-
opment platforms of the Windows OS.
To support the .NET technology the SDK examples contain wrapper classes based on
C++/CLI. These wrapper examples can be freely used, modified and extended by the SDK
users. The C# examples included in the SDK demonstrate, how the wrappers can be used
by custom applications.
Contents
Files and directory structure of the SDK
Setting up a virtual test environment
Remote control GSCView
Overview of the interfaces in the SDK
Supported development platforms
Guidelines and hints
GSCView data filter plugins
Examples overview
Action documentation
Documentation-History Version 3.9 / PME
Files and directory structure of the SDK
During the installation of the SDK the environment variable %GSCSDKPATH% which
points to the root directory of the SDK is set. This reference path is used in all examples.
%GSCSDKPATH%\Bin
Contains all dynamic link libraries and is the target directory for the
compiled examples
%GSCSDKPATH%\include Contains all Delphi import units, C++ header and cppfiles
%GSCSDKPATH%\lib
Contains all lib files for Borland C++ Builder and Microsoft Visual C++
The matching interface units between C++ and Delphi have the same name but compiler
specific file extensions.
============================================================
PAGE 3
============================================================
Setting up a virtual test environment
Introduction
All required components for setting up a virtual GeViScope device are included in the SDK.
So an independent development of custom solutions can be achieved without any special
hardware required.
After starting up the GeViScopeserver (part of the virtual GeViScope device) GeViScope
software can be used with full function for two hours. After that time the functionality is lim-
ited. After stop and restart of the server full functionality is offered for two hours again.
Step by step
After the successful installation of the SDK all necessary files exist in the installation folder
(normally “%HOMEPATH%\My Documents\GeViScopeSDK”).
Ste p 1: As s i gn l oc al pol i c y “Loc k pa ge s i n m e m or y ”
To run GeViScopeserver on your local machine, a local policy needs to be assigned to the
user account under which GeViScope server should work.
Please open the “Local Security Policy” dialog in the control panel Administrative Tools.
With “Security Settings / Local Policies / User Rights Assignment” the privilege “Lock
pages in memory” has to be assigned to the user account under which GeViScope server
should run.
The user has to be a member of the local Administrators group.
The user has to logout and login again to let the setting take effect.
============================================================
PAGE 4
============================================================
Ste p 2: unpac k the te s t f i l e s
Unpack the file “\BIN\GeViScope.Database.zip” to the root directory of your system drive
(normally “C:”). Afterwards the file “C:\GeViScope.Database” should exist. Please note that
the file is not seen in the windows explorer if hidden files and folders are masked out.
Unpack the file “\BIN\DatabaseBackup.zip” to the sub folder “\BIN” of the GeViScope SDK
base directory (normally “%HOMEPATH%\My Documents\GeViScopeSDK”). After that
the file “\BIN\DatabaseBackup.gpf“, which contains a test backup file in GBF format
(“GEUTEBRÜCK Backup File”) should exist.
Ste p 3: s tar t the Ge Vi Sc ope s e r v e r
Start the server by double clicking on file “\BIN\GSCServer.exe“. Now a console application
should start.
Ste p 4: i m por t the te s t s e tup
Start the GSCSetupsoftware (file “\BIN\GSCSetup.exe“ ) and establish a connection to the
local server. Use the following login information:
Username = sysadmin
Password = masterkey
Send the setup once to the server by using the menu entry “Send setup to server“.
The test setup “\BIN\GeViScopeSDKSetup.set“ can be imported into the server with the help
of the menu entry “Import setup from file“. Afterwards it should be send to the server once
again.
Ste p 5: v i e w l i v e v i de o and ba c k up v i de o i n GSCVi e w
Now the correct setup of the test environment should be tested. For that purpose the
GSCViewsoftware (file “\BIN\GSCView.exe”) can be started and again a connection to the
local server should be established. After a successful connection media channels are avail-
able and can be viewed. Simply drag the media channels on the viewers of GSCView.
============================================================
PAGE 5
============================================================
The menu entry “Open backup file…” allows opening the test backup file “\BIN\Data-
baseBackup.gpf“, which also contains media channels that can be displayed. Please check
the correct function of the backup by play back the video material.
Ste p 6: U s e of tool “\BI N \ GSCPLCSi m ul a tor . e x e ”
The software “\BIN\ GSCPLCSimulator.exe” serves as a monitoring tool for all messages
(actions) and events that are transported inside the complete system. Furthermore actions
can be triggered and events can be started and stopped.
After building up a connection to the local server all action traffic is displayed in a list.
This tool is extremely helpful for testing of custom applications based on the SDK and for
analyzing message flow in the complete system.
Background information
To provide a test environment with full functionality the GeViScope media plugin“MCS”
(Media Channel Simulator) is used. It simulates real video media channels by channeling
test pictures into the GeViScopeserver. 16 media channels can be used as live channels or
can be recorded into the test database. Furthermore the channels create messages
(actions) that allow using them as base for developing video analysis software.
The media plugin“MCS” is part of the SDK including source code (development platform Bor-
land C++ Builder 6) and documentation (please see topic “Examples overview” for more
information).
Overview of the interfaces in the SDK
Introduction
This document gives a short overview of the different interfaces that belong to the SDK.
Please note, that all interfaces include class declarations to access the exported functions
of the dynamic link libraries. To use them in C++, the matching cpp files and the lib files cor-
responding to the DLLs have to be added to the custom project.
============================================================
PAGE 6
============================================================
Building blocks of functionality
DBI
l Low level server and database interface
l Connection handling, GBF access, raw database access (no video display!), media
export functionality, backup functions, access to raw live media (no video display!),
setup data access
l Supports basic functionality for building blocks “PLC” and “MediaPlayer”
l Main binary file: GSCDBI.DLL
l Main include files (C++): GSCDBI.h, GSCDBI.cpp
l Main include files (Pascal): GSCDBI.pas
PLC
l Complex notification, action and event processing
l Listen to, dispatch, create and send actions
l Listen to events and system notifications
l Allows controlling and monitoring the system
l Main binary file: GSCActions.DLL
l Main include files (C++): GSCActions.h
l Main include files (Pascal): GSCActions.pas
TACI
l Telnet Action Command Interface
l Simple ASCII-Format communication based on Telnet
l Allows controlling and monitoring the system
l Received actions need to be parsed
============================================================
PAGE 7
============================================================
l To use that interface, the media plugin “GSCTelnetActionCommand” needs to be
installed
Me di aPl ay e r
l High level server and database interface including media presentation
l Display video, play audio (live and backup)
l Integrated export functionality (GBF, MPEG, Video-DVD, Single picture)
l Search media data by time or corresponding to event data
l Main binary file: GSCMediaPlayer.DLL
l Main include files (C++): GSCMediaPlayer.h, GSCMediaPlayer.cpp
l Main include files (Pascal): GSCMediaPlayer.pas
Of f s c r e e nVi e w e r
l Part of building block “MediaPlayer”
l Same functionality as MediaPlayer, but: no rendering, only decompressing
l Class TGSCOffscreenViewer can be used analogous to TGSCViewer
Me di a pl ugi n (Ge Vi Sc ope s e r v e r pl ugi ns )
l GeViScope server plugins allow integrating custom peripherals in GeViScope sys-
tems
l Channeling of video and/or audio media into the server
l Including full access to PLC
l Plugins run as In-Process-DLLs in GeViScope server software
GSCVi e w data f i l te r pl ugi n
l GSCView plugins allow integrating custom data filter frontends in GSCView soft-
ware
l Plugins run as In-Process-DLLs in GSCView software
GSCVi e w data pr e s e ntati on pl ugi n
l GSCView plugins allow customized presentation of event data in GSCView soft-
ware, especially of event data presented in viewed pictures
l Plugins run as In-Process-DLLs in GSCView software
Remote control GSCView by actions
Introduction
The simplest approach to view and browse live and recorded video of one or more GeViS-
copes is to remote control GSCView out of custom solutions.
GSCView can be used in a special mode so that it can be controlled by actions that are sent
from a GeViScope server. The actions can be channeled into the system using the SDK
(GSCDBI.DLL and GSCActions.DLL) in custom applications. As an alternative the actions
can be sent to the TACI interface of the GeViScope server. The TACI interface is a media
plugin of the GeViScope server, which can receive actions as ASCII text commands similar
to a TELNET communication. The TACI plugin has to be licensed.
============================================================
PAGE 8
============================================================
Step by step
The following step by step instructions show how to configure a simple system to demon-
strate remote controlling GSCView. The virtual test environment included in the SDK should
be successfully installed and set up before following these instructions (see topic Setting up
a virtual test environment).
Ste p 1: s tar t the Ge Vi Sc ope s e r v e r
Start the server by double clicking on file “\BIN\GSCServer.exe“. Now a console application
should start.
============================================================
PAGE 9
============================================================
Ste p 2: s tar t GSCVi e w
Start the GSCView software (file “\BIN\GSCView.exe”).
Ste p 3: s tar t the pr of i l e m anage r
The menu entry “Options Profile manager…” starts the internal profile manager of
GSCView. The profil manager allows configuring all GSCView settings.
============================================================
PAGE 10
============================================================
Ste p 4: de c l ar e l oc al c onne c ti on as “c onne c t autom a ti c a l l y ”
By selecting “Connections” in the section “Resources” the local connection can be declared
as a connection that is automatically built up after starting GSCView. Additional the option
“Reconnect automatically” should be activated.
============================================================
PAGE 11
============================================================
If the connection is open in GSCView or GSCSetup, the settings of the connection cannot
be changed. Close all local connections at first to be able to change the connection settings.
Ste p 5: c onf i gur e GSCVi e w to be abl e to r e m ote c ontr ol i t by
a c ti ons
The entry “Options profile” in the section “Profiles” shows a tab control with a lot of different
GSCView settings. To be able to remote control GSCView the option “Remote control” on
the “Actions” tab has to be set.
============================================================
PAGE 12
============================================================
The “Viewer client number” should be set to a arbitrary global number that is unique in the
whole system. This global “Viewer client number” identifies this special instance of
GSCView in the whole network. The number is used in different actions to remote control
GSCView.
By contrast the “global number” of a viewer in a custom scene identifies a special viewer in
a user defined scene. Details about user defined scenes will be topic of the next step.
Ste p 6: us e r de f i ne d s c e ne s
To define user defined scenes in GSCView the entry “Scenes” in section “Resources”
should be selected. By right clicking on one of the predefined scenes new user defined
scenes can be created. For this step by step example two new scenes with the names
“MyStartScene” and “MyScene” have to be added. With the button “Edit scene” the global
numbers of the viewers of the scene and the video channels that should be displayed can be
set.
The “MyStartScene” should be based on the “Matrix 4x4”. The viewers should have the
global numbers 1001 to 1016. Each viewer should display live pictures of a video channel of
the local connection. The video channels can be set via drag & drop while editing the scene.
============================================================
PAGE 13
============================================================
The “MyScene” should be based on the “Matrix 2x2” and the viewers should have the global
numbers 1101 to 1104. The viewers should not automatically display any video channel.
They will be used by special actions to display video channels.
============================================================
PAGE 14
============================================================
Ste p 7: m odi f y the appe ar anc e of GSCVi e w
The appearance of GSCView can be controlled by different settings in the entry “Options pro-
file” of the section “Profiles”. For this test scenario, GSCView should appear as a stupid
video wall without any user controls directly visible in the GSCView application window. To
achieve this, the following options on the “Application” tab have to be set:
============================================================
PAGE 15
============================================================
Please keep in mind, that if the option “Sensitive area enabled” is not set and if all “Hide…”
options are set, the main menu of GSCView only can be accessed by pressing F10!
Ste p 8: s av e al l s e tti ngs
All settings should be saved by selecting the menu entry “File Save”.
Ste p 9: te s t the s y s te m w i th GSCPLCSi m ul a tor
After restarting GSCView it should appear in full mode with 16 viewers displaying live pic-
tures of the video channels of the local connection.
============================================================
PAGE 16
============================================================
Now start the software “\BIN\ GSCPLCSimulator.exe” to test the system. The
GSCPLCSimulator serves as a monitoring tool for all messages (actions) and events that
are transported inside the complete system. Furthermore actions can be triggered and
events can be started and stopped.
After its start the connection to the local server should be build up automatically and all
action traffic is displayed in a list.
============================================================
PAGE 17
============================================================
With the button “Dialog” an action can be selected and with the button “Send” this action can
be send to the GeViScope server. For testing the system first select the action “VC change
scene by name” in the category “Viewer actions” to display “MyScene” on the GSCView
with the global “Viewer client number” 1000.
============================================================
PAGE 18
============================================================
After sending the action, GSCView should display an “empty” “MyScene”.
============================================================
PAGE 19
============================================================
To display video channels in the viewers of “MyScene” the action “Viewer connect live” can
be used. The parameter “viewer” now means the global number of a viewer of “MyScene”,
e.g. 1102. The parameter “channel” should be set to the global number of the video channel
that should be displayed, e.g. 2.
============================================================
PAGE 20
============================================================
After sending the action, GSCView displays live video of the video channel 2 on the upper
left viewer in GSCView.

View File

@@ -0,0 +1,848 @@
================================================================================
GeViScope SDK Documentation - Pages 21 to 40
================================================================================
============================================================
PAGE 21
============================================================
Background information
In GeViScope systems actions are used to communicate between the GeViScope server
and any client application. All available actions can be divided into three groups:
Notification actions (for example “User Login”), command actions (for example “Viewer con-
nect live”) and logical actions (these actions are not directly created by the GeViScope
server and they dont directly result in any reaction in the GeViScope server, for example
“Custom action”).
All actions are grouped in different categories. The category “Viewer actions” contains all
actions that are relevant for remote controlling GSCView.
To get notifications about GSCView activities, one of the options “Send notification actions”
in the profile manager of GSCView has to be set. All possible notification actions are col-
lected in the action category “Viewer notifications”.
============================================================
PAGE 22
============================================================
More detailed information about all available actions can be found in the topic “Action doc-
umentation” (especially Viewer actions and Viewer notifications).
Please be aware of the fact that GSCView is working in an asynchronous mode. If a custom
application sends an action, that depends on the result of the previous sent action there may
be the need for inserting a pause time before sending the second action (e.g. send action
“Viewer connect live”, wait one second, send action “Viewer print picture”). GSCView does
not have an input queue for remote control actions.
Supported development platforms
The SDK is designed and tested to be used with the following development environments:
l CodeGear C++ Builder 6 ©
l CodeGear C++ Builder 2009 ©
l CodeGear Delphi 7 ©
l CodeGear Delphi 2005 ©
l CodeGear Delphi 2009 ©
l Microsoft Visual Studio 2005, C++, MFC ©
l Microsoft Visual Studio 2008, C++, MFC ©
l Microsoft Visual Studio 2005, C++/CLI ©
l Microsoft .NET © (wrapper classes are contained in the “Examples” folder)
============================================================
PAGE 23
============================================================
Guidelines and hints
Introduction
It is recommended to be familiar with the GeViScope system and the possibilities of modern
video surveillance systems and video management systems. Before starting programming
your custom GeViScope client you should know basics of video formats, video com-
pression, GeViScope events, GeViScope actions and the principles of a client - server net-
work communication.
The following sections support you with some suggestions and hints about using the SDK
interfaces.
General hints
If your application needs to listen to events and actions please use the application PLCSim-
ulator.exe that you can find on Your GeViScope device. This software allows you to start
actions and events which might be used by your program.
You should work and do some tests with a real GeViScope device or with the virtual test
environment belonging to the SDK. Create some events and actions, start them with
PLCSimulator.exe.
Starting the setup software GSCSetup.exe with the command line parameter /utilities will
offer you the possibility to open DBITest to discover the database structure and to evaluate
and test select statements against the database. Additionally this tool offers you the pos-
sibility to start the registry editor to evaluate the internal structure of the GeViScope setup.
Make sure to delete all objects that are created inside of DLLs. The objects
themselves should always offer a Destroy() or Free() method for that.
Callback functions, which are called out of the SDK DLLs, are called from threads, which
were created inside the DLLs. Variables and pointers that are passed as arguments of the
callback may not be used outside the callback context. They are only valid for the duration
of the callback call.
Structures that are used as arguments for SDK functions should always be initialized by the
function memset(). After setting all the structure elements to zero, the size or structsize ele-
ment has to be initialized with the sizeof() function.
MPEG-2 files that were created by SDK functions can possibly not be played with the win-
dows media player. The reason is a missing MPEG-2 decoder. We recommend using DVD
player software like PowerDVD or the VCL Media Player software.
Working with handles and instances
Integral part of the SDK are units that give the user a comfortable access to the plain func-
tions of the DLL, e.g. GSCDBI.h/.cpp/.pas. In these units classes encapsulate access to
instances of objects which are created inside the DLL. To have access from outside the
DLL (custom application) to the inside residing instances, handles are used. The units have
to be added to the project respectively to the solution to avoid linker errors.
============================================================
PAGE 24
============================================================
After work with instances is finished, the instances have to be deleted by calling their des-
troy() or free() method. Otherwise there will be memory leaks left.
Using the plain exported functions of the DLL is not recommended. To get access to full
functionality you should use the units instead (pas files or h/cpp files).
The following example (in pseudo code) should illustrate the above facts:
 // define a handle to a server object
 HGscServer MyServer;
// create a server object instance inside the DLL and
 // get a handle to it
 MyServer = DBICreateRemoteserver();
 ...
// work with the object instance with the help of the handle
 MyServer->Connect();
 ...
 // define a handle to a PLC object
 HGscPLC PLC;
  // create a PLC object instance inside the DLL and
 // get a handle to it
 PLC = MyServer.CreatePLC();
 ...
// work with the object instance with the help of the handle
 PLC->OpenPushCallback(...);
 ...
// destroy PLC object
 PLC->Destroy();
 ...
 // destroy server object
 MyServer->Destroy();
Interaction between DBI and MediaPlayer
The DBI interface gives access to GeViScope server functionality. After creating an
instance with the function DBICreateRemoteserver() a connection to the server can be
established by calling the method Connect() of the server object instance.
The following methods of a server object instance can be called to get access to different
kinds of functions (not a complete list):
============================================================
PAGE 25
============================================================
Method
Function
CreateDataSet(),
CreateDataPacket()
Fetch data from server database
CreateLiveStream()
Fetch live data from server
CreateRegistry()
Fetch setup data from server (media channel information, event
information, …)
CreatePLC()
Listen to, create and send actions
The example (in pseudo code) of the previous chapter should illustrate the above facts.
The MediaPlayer interface offers simple to use objects to display live and recorded video in
windows controls. A viewer object instance needs to be created by calling
GMPCreateViewer(). The viewer needs a handle to a windows control and a handle to a
server object instance. It handles fetching data, decompressing data and displaying video in
the linked windows control by itself.
The following methods of a viewer object instance can be called to get access to different
kinds of functions (not a complete list):
Method
Function
ConnectDB()
Fetch video data from the database and display it in any play mode required.
Filter and search criteria can optionally be defined.
SetPlayMode
(pmPlayNextEvent)
Display the next available event pictures
The following example (in pseudo code) shows how to create a viewer and use it after-
wards:
// define a handle to a viewer object
 HGscViewer MyViewer;
// create a viewer object instance inside the DLL and
// get a handle to it
 MyViewer = GMPCreateViewer(WindowHandle, ...);
// define a structure with data needed to link
// the viewer to a media channel in the server
 TMPConnectData MyViewerConnectData;
  // handle to the server object instance
 MyViewerConnectData.Connection = MyServer;
 MyViewerConnectData.ServerType = ctGSCServer;
 MyViewerConnectData.MediaType = mtServer;
 // ID of the media channel that should be displayed
 MyViewerConnectData.MediaChID = ...
// link the viewer to a media channel and display live data
 MyViewer->ConnectDB(MyViewerConnectData, pmPlayStream, ...);
 // destroy viewer object
  MyViewer->Destroy();
Beside the viewer object class there is another class in the MediaPlayer interface: The off-
screen viewer object class. If you want to decompress media, which should not be
============================================================
PAGE 26
============================================================
displayed with the help of the viewer object, you can use the offscreen viewer object. An
instance can be created with the function GMPCreateOffscreenViewer(). The offscreen
viewer object instance provides nearly the same functionality as the viewer object class
does. The video footage is not rendered in a window, it is decompressed in a special Decom-
pBuffer object instance. After the decompression is done inside the offscreen viewer, the
hosting application can be notified with the help of a callback function. Inside the callback
the decompressed image can be accessed.
The DecompBuffer class encapsulates special functions for effective decompressing. So it
is recommend to use it. Creating an instance of the buffer can be reached by calling the func-
tion GMPCreateDecompBuffer(). The instance can be used for as many decompressions
as needed. The method GetBufPointer() gives access to the raw picture data inside the buf-
fer.
Here is a short example (in pseudo code) how to work with an offscreen viewer object:
 // define a handle to a DecompBuffer object
 HGscDecompBuffer MyDecompBuffer;
 // create a DecompBuffer object instance inside the DLL and
 // get a handle to it
 MyDecompBuffer = GMPCreateDecompBuffer();
 // define a handle to a offscreen viewer object
 HGscViewer MyOffscreenViewer;
 // create an offscreen viewer object instance inside the DLL and
 // get a handle to it
 MyOffscreenViewer = GMPCreateOffscreenViewer(MyDecompBuffer);
 // set callback of the offscreen viewer object
 MyOffscreenViewer.SetNewOffscreenImageCallBack(NewOff-
screenImageCallback);
 // define a structure with data needed to link
 // the offscreen viewer to a media channel in the server
 TMPConnectData MyOffscreenViewerConnectData;
// handle to the server object instance
 MyOffscreenViewerConnectData.Connection = MyServer;
 MyOffscreenViewerConnectData.ServerType = ctGSCServer;
 MyOffscreenViewerConnectData.MediaType = mtServer;
 // ID of the media channel that should be decompressed
 MyOffscreenViewerConnectData.MediaChID = ...
// link the offscreen viewer to a media channel and decompress live data
 MyOffscreenViewer->ConnectDB(MyOffscreenViewerConnectData, pmPlayStream,
...);
 ...
 // destroy offscreen viewer object
 MyOffscreenViewer->Destroy();
 // destroy DecompBuffer object
============================================================
PAGE 27
============================================================
 MyDecompBuffer->Destroy();
 ...
 // callback function, that is called after images have been decompressed
 ...
 // get a raw pointer to the picture in the DecompBuffer
 // object
 MyDecompBuffer->GetBufPointer(BufferPointer, ...);
 // copy the picture into a windows bitmap resource
 // for example
 SetDIBits(..., BitmapHandle, ..., BufferPointer, ..., DIB_RGB_COLORS);
 ...
Enumeration of setup data
GeViScope Server resources can be enumerated by custom applications. The setup object,
which can be instantiated by calling the server method CreateRegistry(), offers functionality
for this.
Enumeration of resources normally is done in four steps:
1. Define an array of type GSCSetupReadRequest with the only element “/”. This
causes the method ReadNodes() to transfer the whole setup from the server to the
custom application.
2. Call the method ReadNodes() of the setup object to get the whole setup from the
server.
3. Call one of the Get…() methods of the setup object to get an array of GUIDs rep-
resenting the list of resources. There are different Get…() methods, e. g. GetMe-
diaChannels() or GetEvents().
4. Use the GUID array to receive the resources data by calling Get…Settings() meth-
ods, e. g. GetMediaChannelSettings() or GetEventSettings().
Here is an example (in pseudo code), that shows how to enumerate the media channels:
 ...
// connect to the server
 MyServer->Connect();
 ...
// define a handle to a setup object
 HGscRegistry MySetup;
 // create a setup object instance inside the DLL and
 // get a handle to it
 MySetup = MyServer->CreateRegistry();
// define a array for the setup read request
 GscSetupReadRequest SetupReadRequest[1];
 SetupReadRequest[0].NodeName = "/";
============================================================
PAGE 28
============================================================
// read the setup data from the server
 MySetup->ReadNodes(&SetupReadRequest, ...);
 // define a GUID array for the GUIDs of the
 // existing media channels
 GuidDynArray MediaChannels;
// get the GUID array out of the setup data
 MySetup->GetMediaChannels(MediaChannels);
// get the data of each single media channel
for each MediaChannelGUID in MediaChannels
 MySetup->GetMediaChannelSettings(MediaChannelGUID,
 MediaChannelID,
  GlobalNumber,
 ...);
 ...
// destroy setup object
 MySetup->Destroy();
// destroy server object
 MyServer->Destroy();
  ...
Please note that especially the media channels can be enumerated by using the global func-
tion GMPQueryMediaChannelList() of the MediaPlayer interface as well.
PLC, actions and events
The PLC (Prcess Logic Control) object supports you with functionality for handling noti-
fications, actions and events. The method CreatePLC() of the server object class creates a
handle to a PLC object inside the DBI DLL.
The following methods of a PLC object instance can be called to get access to different
kinds of functions (not a complete list):
Method
Function
SendAction()
Send an action to the connected server
StartEvent()
Start an event of the connected server
SubscribeActions()
Subscribe a list of actions that should be notified by a registered callback
function
OpenPushCallback
()
Register a callback function, that is called if an notification arrives or a
event starts/stops or if one of the subscribed actions arrives
To receive Notifications and actions a callback function can be registered with the method
OpenPushCallback(). After receiving an action, the action should be decoded and dis-
patched by the an instance of the class GSCActionDispatcher. The action dispatcher gives
you a simple way to react on specific actions. Here is a short example (in pseudo code):
============================================================
PAGE 29
============================================================
 // initialization code:
 ...
 // connect to the server
 MyServer->Connect();
 ...
// define a handle to a PLC object
 HGSCPLC PLC;
 // create a PLC object instance inside the DLL and
 // get a handle to it
 PLC = MyServer.CreatePLC();
  ...
 // link your callback function for a custom action
 // to the action dispatcher, so that the callback function
 // is called automatically if a cutsom action arrives
 ActionDispatcher->OnCustomAction = this->MyCustomActionHandler;
 // register a callback function for notifications,
 // events and actions (this callback function dispatches
 // all received actions with the help of the
 // GSCActionDispatcher)
 PLC->OpenPushCallback(...);
 ...
// destroy PLC object
 PLC->Destroy();
 ...
// destroy server object
 MyServer->Destroy();
 // callback function for all notifications, events and
 // subscribed actions:
 ...
 // dispatch the received action to the linked
 // callback functions
 ActionDispatcher->Dispatch(ActionHandle);
 ...
Media channel IDs
The existing media channels can be displayed by the viewer objects of the MediaPlayer
interface. Normally this is done with the method ConnectDB(). This method needs the
============================================================
PAGE 30
============================================================
media channel ID to identify the media channel (camera) that should be displayed.
The media channel IDs are generated automatically by the GeViScope server. Every cre-
ated media channel gets an ID that is always unique. So if you remove media channels from
the setup and add them again, they will sure receive some new IDs.
For that reason media channels should not be accessed by constant IDs. It is recommend
using global numbers instead, because they can be changed in the setup. To find the fitting
media channel ID for a given global number, the media channels should be enumerated from
the server setup. Please refer to chapter “Enumeration of setup data” in this document to
see how this is done.
There is a similar difficulty with events, digital inputs and outputs. Events dont have global
numbers. Here the event name should be used instead.
Handling connection collapses
The callback OpenPushCallback() of the PLC object enables to listen to different kinds of
notifications from the PLC object. One is the “plcnPushCallbackLost” notification. It is fired
if a connection is internally detected as collapsed. As a reaction on this event you should
destroy or free all objects that were created inside the DLLs and start a phase of reconnect
tries. The reconnect tries should start every 30 seconds for example. Additionally your
application can listen to UDP broadcasts that are sent by the GeViScope server. After your
application received this broadcast it can directly try to reconnect to the server. Please be
aware of the fact, that broadcasts only work in LAN routers normally block broadcasts.
Using MediaPlayer with GeViScope and MULTISCOPE III
servers
Generally the MediaPlayer interface can be used with GeViScope as well as MULTISCOPE
III servers. To link the server connection to the viewer object, the connection data structure
has to be defined. The type of the structure is “TMPConnectData”. The element “Server-
Type” identifies the kind of server whose media should be displayed in the viewer.
Please have a look on the example (in pseudo code) in the chapter “Interaction between DBI
and MediaPlayer” in this document.
For creating different kind of connections, different DLLs have to be used. For GeViScope
the DLL “GSCDBI.DLL” and for MULTISCOPE III the DLL “MscDBI.DLL” has to be
included in the project or solution of the custom application. They can coexist.
Handling a connection to a MULTISCOPE III server is similar to GeViScope. Details can be
found in the MULTISCOPE III SDK documentation.
Using the SDK with .NET
To make the usage of the native Win32 DLLs easier in .NET languages like C# or VB.NET,
the SDK contains some wrapper assemblies around the plain SDK DLLs.
============================================================
PAGE 31
============================================================
These wrapper assemblies are developed in C++/CLI and published with the SDK. The
assemblies can be found in the GeViScope SDK binary folder “GeViScopeSDK\BIN”.
The SDK provides wrapper assemblies for the .NET-Frameworks versions 2.0 and 4.0
which are named as follows:
.NET-Framework 2.0
• GscExceptionsNET_2_0.dll
• GscActionsNET_2_0.dll
• GscMediaPlayerNET_2_0.dll
• GscDBINET_2_0.dll
.NET-Framework 4.0
• GscExceptionsNET_4_0.dll
• GscActionsNET_4_0.dll
• GscMediaPlayerNET_4_0.dll
• GscDBINET_4_0.dll
These wrapper assemblies can be used together with our native SDK DLLs (GscAc-
tions.DLL, GscDBI.DLL, GscHelper.DLL, GscMediaPlayer.DLL, MscDBI.DLL) to create
custom applications under any .NET language on a windows platform. The assemblies
need to be referenced by the .NET project and all the files (assemblies and native DLLs)
have to reside in the application folder.
============================================================
PAGE 32
============================================================
Deploying a custom solution based on the .NET wrapper
To successfully deploy a custom application that uses the .NET wrapper contained in the
SDK, the following prerequisites have to be fulfilled:
a ) Mi c r os of t Vi s ual C+ + Re di s tr i buta bl e Pa c k age ha s to be
i ns tal l e d
The wrapper assemblies are developed in C++/CLI. So for executing them on a none devel-
opment machine, the Microsoft Visual C++ Redistributable Package is needed. This pack-
age exists in a debug or in a release version. On productive machines the release version
needs to be installed.
For applications using the .NET-Framework 2.0 the Visual C++ 2008 Redistributable Pack-
age is needed. In case that the application is developed using the .NET-Framework 4.0 you
need to install the Visual C++ 2010 Redistributable Package.
b) . N ET F r am e w or k Ve r s i on 2. 0 SP 1 or ne w e r ha s to be
i ns tal l e d
If updating the .NET Framework on a GEUTEBRÜCK device (GeViScope or re_porter)
fails, a special Microsoft tool Windows Installer CleanUp Utility (MSICUU2.exe) can
improve the situation. After executing this tool, updating the Framework should be possible.
c ) Wr appe r as s e m bl i e s AN D na ti v e SDK DLLs ar e ne e de d
Beside the custom application also the wrapper assemblies and the native SDK DLLs (lis-
ted above) are needed in the same folder as in which the custom application resides.
If the application uses the .NET-Framework 4.0 you need to reference the GeViScope wrap-
per DLLs with the extension _4_0 otherwise please use the wrapper assemblies with the
extension _2_0 (see above).
GeViScope REGISTRY
Using the GscRegistry with .NET
Introduction
By using the GeViScope registry (GSCREGISTRY) it is possible to modify GeViScope/Re_
porter settings programmatically. The GscRegistry is a proprietary registry format
developed by GEUTEBRÜCK. This registry format is similar to the Microsoft Windows
registry.
============================================================
PAGE 33
============================================================
All needed GeViScope server settings are stored in the GscRegistry database. The creation
of own registry databases based on files is also possible.
The GEUTEBRÜCK GEVISCOPE SDK provides several classes and methods to allow a
comfortable access to the GscRegistry.
Requirements
The following requirements are needed to create a .NET application that uses the GscRe-
gistry functionality:
• .NET-Framework 2.0 SP1 or newer
- .NET-Framework 2.0 SP1 Wrapper-Assemblies:
GscExceptionsNET_2_0.dll
GscDBINET_2_0.dll
- .NET-Framework 4.0 Wrapper-Assemblies:
GscExceptionsNET_4_0.dll
GscDBINET_4_0.dll
• Native Win32-DLLs, used by the .NET-Wrapper:
- GscActions.dll
- GscDBI.dll
- GscMediaPlayer.dll
- GscHelper.dll
- MscDBI.dll
• Microsoft Visual C++ Redistributable Package
Using the registry
In the following, the usage of the GscRegistry with .NET is explained in detail. It discusses
the following steps:
l Open the registry
l Read values out of nodes
l Create a node
l Add values to a node
l Save the registry
All necessary classes and methods for using the GscRegistry are available in the GscDBI
namespace. To include this namespace the following using-statement is needed:
using GEUTEBRUECK.GeViScope.Wrapper.DBI;
Ope n the r e gi s tr y
To read or modify GeViScope/Re_porter settings it is necessary to establish a connection
to the preferred GeViScope/Re_porter server before. After this is done you need to create a
new object of the class GscRegistry and initialize it by using the CreateRegistry() method
which is contained in the GscServer object.
C#-Code: Open the registry
if (_GscServer != null)
{
// create an object instance of the server registry
GscRegistry GscRegistry = _GscServer.CreateRegistry();
if (GscRegistry != null)
{
// define an array for the setup read request (registry node paths
to read)
============================================================
PAGE 34
============================================================
GscRegistryReadRequest[] ReadRequests = new GscRegistryReadRequest
[1];
ReadRequests[0] = new GscRegistryReadRequest("/", 0);
// read the nodes (setup data) out of the server registry
GscRegistry.ReadNodes(ReadRequests);
}
}
The method ReadNodes() of the GscRegistry object expects an array of the type GscRe-
gistryReadRequest which contains all node paths to be read out of the registry. In the
source code snippet above, the array simply contains one element which represents the
root node (“/”). By reading the root node the entire registry will be read out.
Re a d v al ue s of node s
The following source code snippet shows how to read values out of nodes:
C#-Code: Read values out of nodes
if (GscRegistry != null)
{
GscRegNode RegNode = GscRegistry.FindNode("/System/MediaChannels/");
for (int i = 0; i < RegNode.SubNodeCount; ++i)
{
// find the GeViScope registry node of the parent node by means of
the index
GscRegNode SubRegNode = RegNode.SubNodeByIndex(i);
GscRegVariant RegVariant = new GscRegVariant();
// Get the value "Name" out of the sub registry type and store the
value and
// value type in the GscRegVariant class
SubRegNode.GetValueInfoByName("Name", ref RegVariant);
if (RegVariant != null && RegVariant.ValueType ==
GscNodeType.ntWideString)
Console.WriteLine(RegVariant.Value.WideStringValue);
}
}
To read a specific node out of the registry the GscRegistry class provides the method
FindNode().
For that the path to the preferred node has to be committed to the method and it you will get
back an object of the type of GscRegNode. This object contains all sub nodes and values of
the found node.
To access a sub node of the parent node the method SubNodeByIndex() provided by the
class GscRegNode can be used or use the SubNodeByName() method if the name of the
sub node is already known.
The method GetValueInfoByName() can be used to access a specific value of a node. This
method expects the name of the specific value as well as a reference to an object of type of
GscRegVariant. The GscRegVariant object will be filled with the type of the value
(ValueType) as well as the value itself (Value).
Cr e ate a node
============================================================
PAGE 35
============================================================
To create a new node in a parent node the method CreateSubNode() which is provided by
the class GscRegNode needs to be called. The method expects the name of the new node.
C#-Code: Create a node
if (_GscRegistry != null)
{
GscRegNode RegNode = _GscRegistry.FindNode("/System/MediaChannels/0000");
// create a new sub node in NodePath
if (RegNode != null)
RegNode.CreateSubNode("NewNode");
}
Add v al ue s to a node
There are several methods in the class GscRegNode to add values to a node. Depending on
the type of the value it is needed to call the right method for writing this type into the registry.
For example if you would like to write an Int32 value into the registry you need to use the
method WriteInt32().
C#-Code: Add values to node
public void AddValue(string NodePath, string ValueName, GscNodeType ValueType,
object Value)
{
GscRegNode RegNode = _GscRegistry.FindNode(NodePath);
if (RegNode != null)
{
switch (ValueType)
{
case GscNodeType.ntWideString:
{
RegNode.WriteWideString(ValueName, Value.ToString());
break;
}
case GscNodeType.ntInt32:
{
RegNode.WriteInt32(ValueName, Convert.ToInt32(Value));
break;
}
}
}
}
Sa v e the r e gi s tr y
After the GscRegistry object was modified (e.g. new nodes/new values), the server also
needs to know about the changes made. For this the GscRegistry class provides the
method WriteNodes().
C#-Code: Add values to node
// define an array for the setup write request
============================================================
PAGE 36
============================================================
GscRegistryWriteRequest[] WriteRequests = new GscRegistryWriteRequest[1];
WriteRequests[0] = new GscRegistryWriteRequest("/", 0);
GscRegistry.WriteNodes(WriteRequests, true);
The WriteNodes() method expects an array containing objects of the type of GscRe-
gistryWriteRequest. Each GscRegistryWriteRequest contains a path to a node that has to
be saved.
 NOTICE
It is recommended to only add one element to this array which contains the root path (“/”).
This results in saving the entire registry structure.
Structure of GSCRegistry
The GEVISCOPE SDK offers two possibilities to browse the structure of the GscRegistry.
By means of the application GscRegEdit that is delivered with the SDK, it is possible to
browse or modify the registry similar to Microsofts Windows registry.
In addition to GscRegEdit you can also use the registry editor which is integrated in
GSCSetup. To activate this feature the key combination STRG+ALT+U needs to be actu-
ated. The entry Registry editor in the section Utilities in the navigation bar on the left will
now be shown.
Examples
To get a better idea of how to use the GscRegistry, the GEVISCOPE SDK provides further
.NET example applications.
The examples can be found in the folder „Examples“ folder in the GeViScopeSDK main
folder:
l C:\Program Files (x86)\GeViScopeSDK\Examples\VS2008NET\VS2008NET_
GscRegEdit
Simple registry editor, GUI application (Visual Studio 2008)
l C:\Program Files (x86)\GeViScopeSDK\Examples\VS2008NET\VS2010NET_
GscRegEdit
Simple registry editor, GUI application (Visual Studio 2010)
l C:\Program Files (x86)\GeViScopeSDK\Examples\VS2008NET\VS2008NET_
GscRegistryBasics
Console application (Visual Studio 2008)
l C:\Program Files (x86)\GeViScopeSDK\Examples\VS2010NET\VS2010NET_
GscRegistryBasics
Console application (Visual Studio 2010)
GSCView data filter plugins
Introduction
GSCView offers the possibility to integrate customized data filter dialogs. Data filter dialogs
are used to search and filter video footage by additional event data. They can be customized
to the different business environments in which GeViScope is used.
============================================================
PAGE 37
============================================================
The following sections support you with some suggestions and hints about creating cus-
tomized data filter plugins.
General hints
Custom data filters are hosted in flat windows 32Bit dynamic link libraries. Differing from nor-
mal DLLs the data filter DLLs have the extension “.GPI”. All data filter DLLs existing in the
same folder as GSCView are integrated in GSCView automatically.
The customized data filter DLL interface
Each DLL has to export the function GSCPluginRegisterSearchFilter() that is called by
GSCView to use the customized dialogs. The exact definition of this function and some
additional type definitions can be found in the unit “GSCGPIFilter.pas/.h”.
Inside the function GSCPluginRegisterSearchFilter() one or even more data filter dialogs
have to be registered by calling the function Callbacks.RegisterFilter().
The following example (in pseudo code) shows how this is done:
if(Callbacks.RegisterFilter == NULL)
============================================================
PAGE 38
============================================================
return FALSE;
TPluginFilterDefinition def;
def = SimpleFilter.GetFilterDefinition();
Callbacks.RegisterFilter(Callbacks.HostHandle, def);
The structure TPluginFilterDefinition defines some informational data and all the callback
functions needed for a single dialog. GSCView uses the definition to call the different call-
back functions during its execution.
Name of callback
function
Function
InitFilter()
Can be used to initialize the data filter dialog. To integrate the dialog in
GSCView, the function has to return true.
ShowFilter()
Inside this function the dialog should be displayed as a stand-alone
(modal) dialog. GSCView calls the function after the user activates the
 button.
DeinitFilter()
Can be used to deinitialize the data filter dialog. The function has to return
true, even if it is not used.
GetFilterGuid()
The function should provide a global unique identifier (GUID) that is used
inside GSCView to identify the dialog. The GUID can be defined as a static
constant value.
As an alternative to the modal display of the data filter dialog, the dialog can be displayed
nested in the GSCView main window or GSCView event list. But at the moment this feature
is only supported by custom filter dialogs created with Borland Delphi ©.
To achieve the nested display, the additional callback functions of the structure TPlu-
ginFilterDefinition have to be implemented. The Borland Delphi © example
“GSCViewDataFilter” demonstrates the details.
Creating the filter criteria
If the custom data filter is applied, GSCView does a query against the tables “events” and
“eventdata” of the internal GeViScope database. For this query a filter criteria is needed. The
============================================================
PAGE 39
============================================================
custom data filter delivers the criteria and gives it back to GSCView in the ShowFilter() call-
back function.
To build up meaningful filter criteria some background knowledge of the GeViScope data-
base is needed.
The table “events” contains all the events recorded in the database (only event information,
not the samples; the samples are linked to the events).
The table “eventdata” contains additional data belonging to the events. Inside the table the
different parameters of actions are saved. If for example an event is started by the Cus-
tomAction(4711, “Hello world”), the value 4711 is saved in the row “Int64_A” and the value
“Hello world” is saved in the row “String_A”. Because the event is started by a Cus-
tomAction, the value 8 is saved in the row “EventDataKind”. Each action has an individual
mapping of action parameters to rows in the table “eventdata”.
For different business environments special actions can be created by GEUTEBRÜCK.
There already exist some special actions like:
Action name
Business environment
ATMTransaction()
Automated teller machines
ACSAccessGranted()
Access control systems
SafebagOpen()
Cash management systems
POSData()
Point of sale systems
The action internally defines the mapping of action parameters to rows in the table “event-
data”. The code of an action (for a CustomAction the code is 8) is stored in the row
“EventDataKind”. The codes of actions are listed in the action reference documentation
“GSCActionsReference_EN.pdf”.
To evaluate the mapping of action parameters to database rows, GSCSetup can be used.
By pressing STRG+ALT+U in GSCSetup the special utility “DBI test” gets available.
With “DBI test” the structure and content of the GeViScope database can be analyzed. The
following SQL queries can be helpful:
SQL query
Function
select * from events
Fetches records from the table “events”
select * from eventdata
Fetches records from the table “eventdata”
select * from samples
Fetches records from the table “samples”
The following table should demonstrate how to build up filter criteria depending on para-
meters given in the custom data filter dialog (here the CustomAction() is used to start the
events):
============================================================
PAGE 40
============================================================
Action
para-
meter
INT
Action
para-
meter
STRING
Fil-
terCriteria.SQLstatement
SQL query
Nothing
Nothing
EventData.EventDataKind = 8 select * from EventData left join Events on
EventData.EventID = Events.EventID with
EventData.EventDataKind = 8
Nothing
Hello
world
EventData.EventString_A =
"Hello world" and
EventData.EventDataKind = 8
select * from EventData left join Events on
EventData.EventID = Events.EventID with
EventData.EventString_A = "Hello world"
and EventData.EventDataKind = 8
4711
Nothing
EventData.EventInt64_A =
4711 and
EventData.EventDataKind = 8
select * from EventData left join Events on
EventData.EventID = Events.EventID with
EventData.EventInt64_A = 4711 and
EventData.EventDataKind = 8
4711
Hello
world
EventData.EventInt64_A =
4711 and
EventData.EventString_A =
"Hello world" and
EventData.EventDataKind = 8
select * from EventData left join Events on
EventData.EventID = Events.EventID with
EventData.EventInt64_A = 4711 and
EventData.EventString_A = "Hello world"
and EventData.EventDataKind = 8
Nothing
Hello*
EventData.EventString_A =
"Hello*" and
EventData.EventDataKind = 8
select * from EventData left join Events on
EventData.EventID = Events.EventID with
EventData.EventDataKind = 8 where
EventData.EventString_A LIKE "Hello*"
During testing the custom data filter dialog in the GSCView event list a double click on the
status bar of the event list delivers the SQL query that is executed in the GeViScope server.
Examples overview
The examples overview is organized in two different views on all examples including the
GeViScopeSDK:
Examples grouped by programming tasks
Examples grouped by development platforms

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,467 @@
================================================================================
GeViScope SDK Documentation - Pages 121 to 127
================================================================================
============================================================
PAGE 121
============================================================
Parameter
Function
client account
ClientAccount
Windows user account
under that GSCView is run-
ning
VC scene changed
Action name:VCSceneChanged(Viewer, Scene)
Action category: notification
The active scene of the GSCView with the transmitted viewer client number has been
changed.
GSCView has fired this notification because its active scene has been changed via a
VCChangeSceneByName or ViewerChangeScene action while GSCView is remote con-
trolled or because the user has manually changed the active scene in GSCView.
Parameter
Function
viewer
Viewer
Global viewer client number, identifies the GSCView that fired
this notification
scene
Scene
The name of the scene that is displayed after the change
Viewer cleared
Action name:ViewerCleared(Viewer, ClientHost, ClientType, ClientAccount)
Action category: notification
The viewer with the transmitted global number on some GSCView in the network has been
cleared.
GSCView has fired this notification because one of its viewers has been cleared via a View-
erClear action while GSCView is remote controlled or because the user has manually
cleared the viewer in GSCView.
Parameter
Function
viewer
Viewer
Global number of a viewer on some GSCView in the network
client host
ClientHost
Host name of the PC where GSCView is running
client type
ClientType
1 = GSCView
All other values are for future use!
client account
ClientAccount
Windows user account under that GSCView is running
Viewer connected
Action name:ViewerConnected(Viewer, Channel, PlayMode, ClientHost, ClientType, Cli-
entAccount)
Action category: notification
The viewer with the transmitted global number on some GSCView in the network has been
connected.
GSCView has fired this notification because one of its viewers has been connected via a
ViewerConnect or ViewerConnectLive action while GSCView is remote controlled or
because the user has manually connected the viewer in GSCView.
The parameter "play mode" defines in which mode the pictures are presented (live, forward,
backward, .).
============================================================
PAGE 122
============================================================
Parameter
Function
viewer
Viewer
Global number of a
viewer on some
GSCView in the network
channel
Channel
Global number of the
media channel
play mode
PlayMode
play stop = if the viewer
is already displaying pic-
tures from that channel,
it is stopped; if not the
newest picture in the
database is displayed
play forward = if the
viewer is already dis-
playing pictures from
that channel, it is dis-
playing pictures in nor-
mal speed forward from
the actual position; if
not display of pictures
with normal speed
starts at the beginning
of the database
play backward = if the
viewer is already dis-
playing pictures from
that channel, it is dis-
playing pictures in nor-
mal speed backward
from the actual position;
if not display of pictures
with normal speed
starts at the end of the
database
fast forward = like "play
forward" but with high
speed
fast backward = like
"play backward" but
with high speed
step forward = like
"play forward" but only
one picture
step backward = like
"play backward" but
only one picture
play BOD = display the
first (the oldest) picture
in the database
play EOD = display the
last (the newest) pic-
ture in the database
live = display live pic-
tures
next event = like "play
forward" but only pic-
tures that belong to
event recordings
prev event = like "play
============================================================
PAGE 123
============================================================
Parameter
Function
backward" but only pic-
tures that belong to
event recordings
peek live picture = dis-
play only one actual live
picture
next detected motion =
like "play forward" but
only pictures with
motion in it (if no MOS
search area is defined in
GscView the whole pic-
ture size is used for it)
are displayed; the dis-
play stops after motion
is detected
prev detected motion =
like "play backward" but
only pictures with
motion in it (if no MOS
search area is defined in
GscView the whole pic-
ture size is used for it)
are displayed; the dis-
play stops after motion
is detected
client host
ClientHost
Host name of the PC
where GSCView is run-
ning
client type
ClientType
1 = GSCView
All other values are for
future use!
client account
ClientAccount
Windows user account
under that GSCView is
running
Viewer play mode changed
Action name:ViewerPlayModeChanged(Viewer, Channel, PlayMode, ChannelTime, Cli-
entHost, ClientType, ClientAccount)
Action category: notification
The playmode of the viewer with the transmitted global number on some GSCView in the
network has been changed.
GSCView has fired this notification because the playmode of one of its viewers has been
changed via a ViewerConnect, ViewerConnectLive, ViewerSetPlayMode, View-
erPlayFromTime, ViewerJumpByTime or one of the ViewerShowAlarmBy. actions while
GSCView is remote controlled or because the user has manually changed the playmode of
the viewer in GSCView.
Parameter
Function
viewer
Viewer
Global number of a
viewer on some
GSCView in the network
channel
Channel
Global number of the
media channel, dis-
played in the viewer
============================================================
PAGE 124
============================================================
Parameter
Function
play mode
PlayMode
play stop = if the viewer
is already displaying pic-
tures from that channel,
it is stopped; if not the
newest picture in the
database is displayed
play forward = if the
viewer is already dis-
playing pictures from
that channel, it is dis-
playing pictures in nor-
mal speed forward from
the actual position; if
not display of pictures
with normal speed
starts at the beginning
of the database
play backward = if the
viewer is already dis-
playing pictures from
that channel, it is dis-
playing pictures in nor-
mal speed backward
from the actual position;
if not display of pictures
with normal speed
starts at the end of the
database
fast forward = like "play
forward" but with high
speed
fast backward = like
"play backward" but
with high speed
step forward = like
"play forward" but only
one picture
step backward = like
"play backward" but
only one picture
play BOD = display the
first (the oldest) picture
in the database
play EOD = display the
last (the newest) pic-
ture in the database
live = display live pic-
tures
next event = like "play
forward" but only pic-
tures that belong to
event recordings
prev event = like "play
backward" but only pic-
tures that belong to
event recordings
peek live picture = dis-
play only one actual live
picture
============================================================
PAGE 125
============================================================
Parameter
Function
next detected motion =
like "play forward" but
only pictures with
motion in it (if no MOS
search area is defined in
GscView the whole pic-
ture size is used for it)
are displayed; the dis-
play stops after motion
is detected
prev detected motion =
like "play backward" but
only pictures with
motion in it (if no MOS
search area is defined in
GscView the whole pic-
ture size is used for it)
are displayed; the dis-
play stops after motion
is detected
channel time
ChannelTime
Timestamp belonging to
the picture presented in
the viewer directly after
the plamode had
changed. The para-
meter is transmitted in
the following format:
"2009/05/06
14:47:48,359
GMT+02:00"
client host
ClientHost
Host name of the PC
where GSCView is run-
ning
client type
ClientType
1 = GSCView
All other values are for
future use!
client account
ClientAccount
Windows user account
under that GSCView is
running
Viewer selection changed
Action name:ViewerSelectionChanged(Viewer, Channel, PlayMode, ClientHost, Cli-
entType, ClientAccount)
Action category: notification
The active viewer on some GSCView in the network has been changed.
GSCView has fired this notification because the user has selected one of its viewers by
mouse click or by dragging a camera onto one of its viewers.
GSCView only fires the notification, if a camera is displayed on the selected viewer.
Parameter
Function
viewer
Viewer
Global number of a
viewer on some
GSCView in the network
channel
Channel
Global number of the
media channel, dis-
played in the viewer
============================================================
PAGE 126
============================================================
Parameter
Function
play mode
PlayMode
play stop = if the viewer
is already displaying pic-
tures from that channel,
it is stopped; if not the
newest picture in the
database is displayed
play forward = if the
viewer is already dis-
playing pictures from
that channel, it is dis-
playing pictures in nor-
mal speed forward from
the actual position; if
not display of pictures
with normal speed
starts at the beginning
of the database
play backward = if the
viewer is already dis-
playing pictures from
that channel, it is dis-
playing pictures in nor-
mal speed backward
from the actual position;
if not display of pictures
with normal speed
starts at the end of the
database
fast forward = like "play
forward" but with high
speed
fast backward = like
"play backward" but
with high speed
step forward = like
"play forward" but only
one picture
step backward = like
"play backward" but
only one picture
play BOD = display the
first (the oldest) picture
in the database
play EOD = display the
last (the newest) pic-
ture in the database
live = display live pic-
tures
next event = like "play
forward" but only pic-
tures that belong to
event recordings
prev event = like "play
backward" but only pic-
tures that belong to
event recordings
peek live picture = dis-
play only one actual live
picture
============================================================
PAGE 127
============================================================
Parameter
Function
next detected motion =
like "play forward" but
only pictures with
motion in it (if no MOS
search area is defined in
GscView the whole pic-
ture size is used for it)
are displayed; the dis-
play stops after motion
is detected
prev detected motion =
like "play backward" but
only pictures with
motion in it (if no MOS
search area is defined in
GscView the whole pic-
ture size is used for it)
are displayed; the dis-
play stops after motion
is detected
client host
ClientHost
Host name of the PC
where GSCView is run-
ning
client type
ClientType
1 = GSCView
All other values are for
future use!
client account
ClientAccount
Windows user account
under that GSCView is
running

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,85 @@
Plugin: TACI - Telnet Action Command
Interface
Konzept | Concept | Projet | Concepto
GeViScope provides an internal optional to send and receive actions system-wide. The normal method
of externally sending and receiving actions is provided by the GeViScope SDK. However, in a number
of situations it is not possible to use the Win32-based SDK. TACI (Telnet Action Command Interface)
thus provides an option for sending and receiving actions in ASCII format. TACI converts these ASCII
actions into normal GeViScope actions, or conversely converts GeViScope actions into ASCII format
for transmission over a Telnet port.
G u t z u w i s s e n | G o o d t o k n o w | B o n à s a v o i r | C o n v i e n e s a b e r
Your software must be capable of sending and receiving text in ASCII format.
Use the description of the actions in the SDK to become familiar with the actions and their parameters.
The GSCPLC Simulator helps you to find the GeViScope directory.
Prozedur | Procedur | Procédure | Procedimiento
How to configure TACI
Ensure that the file GscTelnetActionCommandInterface.dll has been copied to the directory
GeViScope/Mediaplugins. Copy the file to this location if it is not already there.
In GSCSetup, open the Hardware Selection menu.
Click with the right mouse button in the list view and select Add in the popup menu.
Select the plugin GscTelnetActionCommandPlugin (in our example, Plugin 004) by marking it and
clicking on Add.
The TACI plugin is now entered as a hardware resource in the hardware module list. If you click on it,
you can set the required parameters.
The following describes the parameters:
ADVICE
UDP is not currently implemented.
ActionFilterIn/ ActionFilterOut
Regular Expression to filter incoming or outgoing
messages. * means pass all.
CommandTerminationChars
Chars defining the end of a command
FormatASCIIReply
Format string of the reply from TACI {0}: Return value
3: Error(No action 4: OK) {1}: Position of echo {2}:
Send termination signal at the end (CR/ LF)
FormatBinaryReply
Obsolete
FormatReceivedActions
{0} Position of Action in the received string
MaxTCPVonnections
Maximum number of allowed TACI connections for one
server
SendAllActions
Forward all actions from GeviScope to Telnet
TCPBinaryIntelByteOrder
Obsolete
TCPBinaryRepyDownwardsCompatible Obsolete
TCPEnabled
Obsolete
TCPPort
Number of TCP Port for the telnet connection
Number of TCP Port for the telnet
connection
If set tot true you will receive an echo of your
command
Hello World!
After you have configured TACI as described above, simply open a Telnet connection using the
Windows Telnet program. To do this, open the CMD, tip in telnet and press enter.
Then type o [hostname] 12007 .
You can now send a simple user action, for instance CustomAction (1,"HelloWorld"). In the
PLCSimulator, you see the actions that you have sent and you can send actions from the
PLCSimulator to the Telnet clients.