Files
geutebruck/SOURCES/CODEX/GeViScope/GeViScopeSDK_HTML5/Content/014Remote_Control_GscView.htm
Administrator 14893e62a5 feat: Geutebruck GeViScope/GeViSoft Action Mapping System - MVP
This MVP release provides a complete full-stack solution for managing action mappings
in Geutebruck's GeViScope and GeViSoft video surveillance systems.

## Features

### Flutter Web Application (Port 8081)
- Modern, responsive UI for managing action mappings
- Action picker dialog with full parameter configuration
- Support for both GSC (GeViScope) and G-Core server actions
- Consistent UI for input and output actions with edit/delete capabilities
- Real-time action mapping creation, editing, and deletion
- Server categorization (GSC: prefix for GeViScope, G-Core: prefix for G-Core servers)

### FastAPI REST Backend (Port 8000)
- RESTful API for action mapping CRUD operations
- Action template service with comprehensive action catalog (247 actions)
- Server management (G-Core and GeViScope servers)
- Configuration tree reading and writing
- JWT authentication with role-based access control
- PostgreSQL database integration

### C# SDK Bridge (gRPC, Port 50051)
- Native integration with GeViSoft SDK (GeViProcAPINET_4_0.dll)
- Action mapping creation with correct binary format
- Support for GSC and G-Core action types
- Proper Camera parameter inclusion in action strings (fixes CrossSwitch bug)
- Action ID lookup table with server-specific action IDs
- Configuration reading/writing via SetupClient

## Bug Fixes
- **CrossSwitch Bug**: GSC and G-Core actions now correctly display camera/PTZ head parameters in GeViSet
- Action strings now include Camera parameter: `@ PanLeft (Comment: "", Camera: 101028)`
- Proper filter flags and VideoInput=0 for action mappings
- Correct action ID assignment (4198 for GSC, 9294 for G-Core PanLeft)

## Technical Stack
- **Frontend**: Flutter Web, Dart, Dio HTTP client
- **Backend**: Python FastAPI, PostgreSQL, Redis
- **SDK Bridge**: C# .NET 8.0, gRPC, GeViSoft SDK
- **Authentication**: JWT tokens
- **Configuration**: GeViSoft .set files (binary format)

## Credentials
- GeViSoft/GeViScope: username=sysadmin, password=masterkey
- Default admin: username=admin, password=admin123

## Deployment
All services run on localhost:
- Flutter Web: http://localhost:8081
- FastAPI: http://localhost:8000
- SDK Bridge gRPC: localhost:50051
- GeViServer: localhost (default port)

Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 18:10:54 +01:00

266 lines
17 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="en" xml:lang="en" data-mc-search-type="Stem" data-mc-help-system-file-name="index.xml" data-mc-path-to-help-system="../" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="GeViScope SDK|GeViScope Software Development Kit (SDK)">
<!-- saved from url=(0014)about:internet -->
<head>
<meta charset="utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Remote control GSCView by actions
</title>
<link href="../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" />
<link href="../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" />
<link href="Resources/Stylesheets/Styles.css" rel="stylesheet" />
<script src="../Resources/Scripts/jquery.min.js">
</script>
<script src="../Resources/Scripts/plugins.min.js">
</script>
<script src="../Resources/Scripts/require.min.js">
</script>
<script src="../Resources/Scripts/require.config.js">
</script>
<script src="../Resources/Scripts/MadCapAll.js">
</script>
</head>
<body>
<div class="MCBreadcrumbsBox_0"><span class="MCBreadcrumbsPrefix">| </span><a class="MCBreadcrumbsLink" href="Titel.htm">GeViScope SDK</a><span class="MCBreadcrumbsDivider"> &gt; </span><a class="MCBreadcrumbsLink" href="010GeViScope_SDK.htm">GeViScope Software Development Kit (SDK)</a><span class="MCBreadcrumbsDivider"> &gt; </span><span class="MCBreadcrumbs">Remote control GscView</span>
</div>
<h2 xmlns="http://www.w3.org/TR/REC-html40">Remote control GSCView by actions
</h2>
<h3 xmlns="http://www.w3.org/TR/REC-html40">Introduction
</h3>
<p xmlns="http://www.w3.org/TR/REC-html40">The simplest approach to view and browse
live and recorded video of one or more GeViScopes is to remote control GSCView
out of custom solutions. </p>
<p xmlns="http://www.w3.org/TR/REC-html40">
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image002_600x435.jpg" alt="Overview.jpg" class="padding600" style="width: 600;height: 435;" />
</p>
<h3 xmlns="http://www.w3.org/TR/REC-html40">Step by step
</h3>
<p xmlns="http://www.w3.org/TR/REC-html40">The following step by step instructions
show how to configure a simple system to demonstrate remote controlling
GSCView. The virtual test environment included in the SDK should be
successfully installed and set up before following these instructions (see topic
<a href="012Setting_Up_Virtual_Test_Environment.htm">Setting up a virtual test
environment</a>).
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p class="GutZuWissenHeader" xmlns="http://www.w3.org/TR/REC-html40">Step 1: start the GeViScope server
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p xmlns="http://www.w3.org/TR/REC-html40">Start the server by double clicking on file
“\BIN\GSCServer.exe“. Now a console application should start.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image001_600x300.jpg" alt="GSCServer.JPG" class="padding600" style="width: 600;height: 300;" />
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p class="GutZuWissenHeader" xmlns="http://www.w3.org/TR/REC-html40">Step 2: start GSCView
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p xmlns="http://www.w3.org/TR/REC-html40">Start the GSCView software (file
“\BIN\GSCView.exe”).
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p class="GutZuWissenHeader" xmlns="http://www.w3.org/TR/REC-html40">Step 3: start the profile manager
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p xmlns="http://www.w3.org/TR/REC-html40">The menu entry “Options Profile manager…”
starts the internal profile manager of GSCView. The profil manager allows
configuring all GSCView settings.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image003_600x447.jpg" alt="ProfileManager.jpg" class="padding600" style="width: 600;height: 447;" />
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p class="GutZuWissenHeader" xmlns="http://www.w3.org/TR/REC-html40">Step 4: declare local connection as “connect
automatically”
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image004_600x447.jpg" alt="LocalConnectionAutomatic.jpg" class="padding600" style="width: 600;height: 447;" />
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p class="GutZuWissenHeader" xmlns="http://www.w3.org/TR/REC-html40">Step 5: configure GSCView to be able to remote control it
by actions
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image005_600x447.jpg" alt="RemoteControlGSCViewOption.jpg" class="padding600" style="width: 600;height: 447;" />
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p class="GutZuWissenHeader" xmlns="http://www.w3.org/TR/REC-html40">Step 6: user defined scenes
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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 &amp; drop while editing the scene.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image016_600x438.jpg" alt="MyStartSceneDefinition.jpg" class="padding600" style="width: 600;height: 438;" />
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image007_600x431.jpg" alt="MySceneDefinition.jpg" class="padding600" style="width: 600;height: 431;" />
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p class="GutZuWissenHeader" xmlns="http://www.w3.org/TR/REC-html40">Step 7: modify the appearance of GSCView
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p xmlns="http://www.w3.org/TR/REC-html40">The appearance of GSCView can be controlled
by different settings in the entry “Options profile” 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:
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image008_600x447.jpg" alt="GSCViewAppearanceSettings.jpg" class="padding600" style="width: 600;height: 447;" />
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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!
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p class="GutZuWissenHeader" xmlns="http://www.w3.org/TR/REC-html40">Step 8: save all settings
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p xmlns="http://www.w3.org/TR/REC-html40">All settings should be saved by selecting
the menu entry “File Save”.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p class="GutZuWissenHeader" xmlns="http://www.w3.org/TR/REC-html40">Step 9: test the system with GSCPLCSimulator
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p xmlns="http://www.w3.org/TR/REC-html40">After restarting GSCView it should appear
in full mode with 16 viewers displaying live pictures of the video channels of
the local connection.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image009_600x467.jpg" alt="GSCViewAfterStartUp.jpg" class="padding600" style="width: 600;height: 467;" />
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">After its start the connection to the local
server should be build up automatically and all action traffic is displayed in
a list.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image010_600x497.jpg" alt="GSCPLCSimulatorAfterStartUp.jpg" class="padding600" style="width: 600;height: 497;" />
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image011.jpg" alt="DisplayMyScene.jpg" class="padding600" />
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">After sending the action, GSCView should
display an “empty” “MyScene”.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image012_600x467.jpg" alt="EmptyMyScene.jpg" class="padding600" style="width: 600;height: 467;" />
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image013.jpg" alt="DisplayVideoChannel.jpg" class="padding600" />
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">After sending the action, GSCView displays
live video of the video channel 2 on the upper left viewer in GSCView.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image014_600x467.jpg" alt="GSCViewWithDisplayedVideoChannel.jpg" class="padding600" style="width: 600;height: 467;" />
</p>
<h3 xmlns="http://www.w3.org/TR/REC-html40">Background information
</h3>
<p xmlns="http://www.w3.org/TR/REC-html40">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:
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p xmlns="http://www.w3.org/TR/REC-html40">Notification actions (for example “User
Login”), command actions (for example “Viewer connect 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”).
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p xmlns="http://www.w3.org/TR/REC-html40">All actions are grouped in different
categories. The category “Viewer actions” contains all actions that are
relevant for remote controlling GSCView.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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
collected in the action category “Viewer notifications”.
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">
<img src="Images/014image015_600x447.jpg" alt="GSCViewNotifications.jpg" class="padding600" style="width: 600;height: 447;" />
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">More detailed information about all available
actions can be found in the topic “Action documentation” (especially <a href="ActionDoku/VideoActions.htm">Viewer actions</a> and <a href="ActionDoku/ViewerNotificationActions.htm">Viewer notifications</a>).
</p>
<p xmlns="http://www.w3.org/TR/REC-html40">&#160;</p>
<p xmlns="http://www.w3.org/TR/REC-html40">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.
</p>
</body>
</html>