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>
This commit is contained in:
Administrator
2025-12-31 18:10:54 +01:00
commit 14893e62a5
4189 changed files with 1395076 additions and 0 deletions

View File

@@ -0,0 +1,308 @@
# Installation_GscStreamer_en
> Converted from `GeViScope/Additional documentation/Installation_GscStreamer_en.pdf` using `pdftotext -layout`.
Installation GscStreamer / preliminary version
Important information
The present documentation is only a preliminary version and should only facilitate the installation of
“GscStreamer” for evaluation purposes.
Mode of operation
The “GscStreamer” supports simple integration of GeViScope video streams (actually only live video
footage is supported!) in third-party systems based on the http protocol.
Four independent video streams are available. Accessing the streams is similar to accessing video
data from Axis IP cameras. To realize this parts of the “VAPIX, http API Specification” are
implemented by “GscStreamer”.
The four different streams can be accessed by using different port numbers. Controlling the streams
is done by actions that have to be sent to the GeViScope server independent from “GscStreamer”.
This is possible by using the TACI interface of GeViScope for example.
Custom device
Video footage via
Actions via TACI
HTTP GET
Actions + Video
GeViScope/re_porter
GscStreamer
Server
Figure 1: System overview
Configuring the “GscStreamer”
The “GscStreamer” consists of three files. “GscStreamer.EXE” is the windows service application and
“GscStreamerSetup.EXE” is the configuration tool for this service. Additional the file
“GscJPEGEncoder.DLL” is needed.
The files have to be copied into the GeViScope root folder:
C:\Program Files\GEVISCOPE
At first the service has to be installed and started. The following commands should be called at the
command prompt:
C:\Program Files\GEVISCOPE\GscStreamer.exe /install
C:\Program Files\GEVISCOPE\GscStreamer.exe /start
In case of a successful installation in the future the service will start automatically during the boot up
of the windows OS.
To configure “GscStreamer” the setup user interface “GscStreamerSetup.EXE” has to be started.
Figure 2: Setup user interface of "GscStreamer"
To ensure that a connection to GeViScope can be established, connection parameters have to be
specified. The according settings have to be assigned in the section “GEVISCOPE server” of category
“Connections”.
Figure 3: Connection settings
The default settings belong to a local server connection.
Settings for the individual streams are done in the section “Channel X” of the category “Channels”.
Figure 4: Stream settings
The relevant settings are the port number and the viewer ID. The port number defines the TCP/IP
port that is used to provide the stream and the viewer ID is a system global number that is used to
control the stream by GeViScope actions. If possible the default settings should be used.
The third-party system has to use the defined port number to access the video footage instead of
port 80 that is used for normal IP cameras.
The viewer ID should be a unique global number in the whole system. Then live footage of a
GeViScope camera can be streamed by a ViewerConnectLive action using the global viewer ID.
After changing the settings the function “Send setup to service” has to be activated to apply the
changes.
Configuring the third-party system
To access the streams of “GscStreamer” the third-party system has to be able to display video
footage of Axis IP cameras by using the Axis http protocol.
“GscStreamer” offers the following http requests:
Single picture request: http://<ip>:<port>/jpg/image.jpg
MJPEG request: http://<ip>:<port>/mjpg/video.mjpg
Function test
To ensure “GscStreamer” delivering video streams the function should be proofed via a standard web
browser.
At first a camera should be switched on a streaming output channel of the “GscStreamer”. This can
be realized by using the GeViScope tool “GscPLCSimulator.EXE” to send an action to the GeViScope
server:
ViewerConnectLive (1, 1)
Afterwards single pictures should be requested by sending the following command out of a standard
browser:
http://localhost:12015/jpg/image.jpg
List of supported URLs
The following URLs are supported in the browser to display the video streams:
 http://host
Home page in web interface mode
 http://host:port/image.html
Simple HTML page with image play back
 http://host:port/jpg/image.jpg
Single JPEG picture
 http://host:port/mjpg/video.mjpg
M-JPEG video stream
The following “VAPIX® HTTP API” URLs are supported:
 http://host:port/axis-cgi/param.cgi
§ 5.1.1 Add, update, remove and list parameters and their values
Query of the GscStreamer parameters (only the parameters “action=list” and “group” are
supported)
 http://host:port/axis-cgi/date.cgi
§ 5.1.9 System date and time
Query of the system date and time (only the parameter “action=list” is supported)
 http://host:port/axis-cgi/imagesize.cgi
§ 5.2.1 Image size
Query of the image size (resolution)
 http://host:port/jpg/image.jpg
http://host:port/axis-cgi/jpg/image.cgi
§ 5.2.4 JPEG/MJPG (part 1 JPEG)
Transfer of a single picture
 http://host:port/mjpg/video.mjpg
http://host:port/axis-cgi/mjpg/video.cgi
§ 5.2.4 JPEG/MJPG (part 2 MJPG)
Transfer of a M-JPEG video stream
 http://host:port/axis-cgi/com/ptz.cgi
§ 5.3.3 PTZ control
The following PTZ parameters are supported:
Command Description
auxiliary=<string> User-defined GeViScope actions. Please consider the URL
code. You can use 0 as a place holder for the current camera
and viewer number.
whoami Query of the GscStreamer version
pan=<float>&tilt<float> Go to an absolute position
rpan=<float>&rtilt<float> Go to a relative position
riris=<int> Open iris (parameter value > 0)
Close iris (parameter value < 0)
Stop iris (parameter value = 0)
autofocus=<string> Turn on or off the auto focus with the parameter values “on”
or “off”.
autoiris=<string> Turn on or off the auto iris with the parameter values “on” or
“off”.
continuouspantiltmove=<int>,<int> Pan/tilt movement
continuouszoommove=<int> Zoom movement
continuousfocusmove=<int> Focus movement
move=home Go to default (home) position
gotoserverpresetno=<int> Go to preset position
home=yes Save the default position
setserverpresetno=<int> Save a preset position, 0 default position
removeserverpresetno=<int> Remove a preset position, 0 default position
 http://host:port/axis-cgi/com/ptzconfig.cgi
§ 5.3.4 PTZ configuration
The following PTZ parameters are supported:
Command Description
home=yes Save the default position
setserverpresetno=<no> Save a preset position, 0 default position
removeserverpresetno=<no> Remove a preset position, 0 default position
 http://host:port/axis-cgi/videocontrol.cgi
§ 5.9 AXIS 292 Network Video Decoder in specification version 2
Herewith the switching of the cameras to the channel was implemented. The following
parameters are supported: “action=goto” and “sourcename=<no>” (with <no> is the camera
number)
Show camera on viewer
http://<host>:<port>/axis-cgi/videocontrol.cgi?action=goto&sourcename=<camera number>
Database display starting at time t
http://<host>:<port>/axis-cgi/com/ptz.cgi?auxiliary=ViewerPlayFromTime(0,<channel>,<play
mode>,"2010/12/08 14:19:43,720 GMT+01:00")
http://<host>:<port>/axis-cgi/com/ptz.cgi?auxiliary=ViewerSetPlayMode(0,<play mode>,<play
speed>)
Play mode Value
play stop 1
play forward 2
play backward 3
fast forward 4
fast backward 5
step forward 6
step backward 7
play BOD 8
play EOD 9
live 11
next event 12
prev event 13
peek live picture 14
Supported viewer actions that can be sent via URL
 ViewerConnectLive()
 ViewerConnect()
 ViewerClear()
 VCShowViewerText()
 ViewerJumpByTime()
 ViewerPlayFromTime()
 ViewerSetPlayMode()
 ViewerClearTextOutput()
 ViewerTextOutput()
Switch resolution
http://<host>:<port>/mjpg/video.mjpg?width=720&height=576
Parameter Value range
width 32-2048
height 23-2048
quality 0-100 (JPEG compression quality)