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,215 @@
Installation Gsc Streamer / preliminary version
Important information
The present documentation is only a preliminary version and should only facilitate the installation of
“GscStreamer” for evaluation purposes.
Mod e of operation
The “GscStreamer ” support s 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
GeViScope/re_porter
ServerGscStreamerActions + VideoActions via TACI
Video footage via
HTTP GET
Figure 1: System overview
--- Page 1 ---
Configuring the “GscStreamer ”
The “GscStreamer ” consists of three files. “Gsc Streamer .EXE” is the windows service application and
“Gsc Streamer Setup.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 fold er:
C:\Program Files \GEVISCOPE
At first the service has to b e installed and started. The following commands should be called at the
command prompt:
C:\Program Files \GEVISCOPE \GscStreamer .exe /install
C:\Progr am Files \GEVISCOPE \GscStreamer .exe /start
In cas e of a successful installation in the future the service will start automatically during the boot up
of the windows OS.
To configure “Gsc Streamer ” the set up user interface “GscStreamer Setup.EXE” has to be started.
Figure 2: Setup user interface of "Gsc Streamer "
To en sure 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” .
--- Page 2 ---
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
--- Page 3 ---
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 possib le 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 viewe r ID should be a unique global number in the whole system. Then li ve 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 acc ess 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.
“Gsc Streamer ” 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 stan dard web
browser.
At first a camera should be switched on a streaming output channel of the “Gsc Streamer ”. 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 follow ing command out of a standard
browser:
http://localhost:12015/jpg/image.jpg
--- Page 4 ---
List of supported URLs
The following URLs are supported in the bro wser 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 Ima ge 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)
Trans fer 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:
--- Page 5 ---
Command Description
auxiliary=<string> User -defined GeViScope actions. Please cons ider 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 value s “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 po sition, 0 default position
--- Page 6 ---
 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 imp lemented. 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
--- Page 7 ---
Supported viewer actions that can be sent via URL
 Viewer ConnectLive()
 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)
--- Page 8 ---

View File

@@ -0,0 +1,81 @@
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 is s e n | G o o d to k no w | B o n à s av o i r | C o nv ie ne s ab 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 t he list view and select Add in the popup menu.
--- Page 1 ---
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 clic k 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
--- Page 2 ---
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 instan ce 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.
--- Page 3 ---

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff