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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user