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>
340 lines
14 KiB
HTML
340 lines
14 KiB
HTML
<!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="">
|
|
<!-- saved from url=(0014)about:internet -->
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>MCS Documentation</title>
|
|
<link href="Resources/TableStyles/Rows.css" rel="stylesheet" />
|
|
<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>
|
|
<h2><b>MCS Documentation</b>
|
|
</h2>
|
|
<h3><b>1. General</b>
|
|
</h3>
|
|
<p>MCS (Media Channel Simulator) is part of the GEUTEBRÜCK GSCSDK. It
|
|
serves for 2 purposes:
|
|
</p>
|
|
<p> </p>
|
|
<ul>
|
|
<li value="1">In binary form it is
|
|
part of the GeViScope SDK installation. The plugin resides within the directory
|
|
mediaplugins of the GeViScope software installation. The GeViScope server loads
|
|
the plugins of that directory on start. The MCS plugin simulates important
|
|
properties and functions of GeViScope media channels for the developer who
|
|
wants to use the GEUTEBRÜCK SDKs. This offers the comfortable possibility to
|
|
develop external software for the GeViScope DVR without having any DVSP4
|
|
compression hardware or physical image sources like IP cameras.
|
|
</li>
|
|
<li value="2">In source format the
|
|
MCS serves as a programming sample for the most important aspects of the GEUTEBRÜCK
|
|
GSCRecPluginSDK. This part of the GSCSDK may be used to integrate external
|
|
image sources like IP cameras, grabber boards or TV cards into the GeViScope
|
|
environment.
|
|
</li>
|
|
</ul>
|
|
<h3><b>2. MCS as media simulator for the GEUTEBRÜCK GSCSDK</b>
|
|
</h3>
|
|
<p>The GSCSDK installs the following 4 components which belong to the MCS
|
|
plugin:
|
|
</p>
|
|
<p> </p>
|
|
<ul>
|
|
<li value="1">The plugin itself
|
|
(MCS.DLL). It resides in the directory MEDIAPLUGINS
|
|
</li>
|
|
<li value="2">A GeViScope setup
|
|
file MCSDefaultSetup.set. You may upload that setup to the GeViScope server to
|
|
have basic operation of the simulated GeViScope environment directly available.
|
|
So there is no need to deal with the details of the complex parametrization
|
|
possibilities of GeViScope at least in the very beginning.
|
|
</li>
|
|
<li value="3">Some JPEG sample
|
|
image directories in the directory MCSIMAGES. The MCSDefaultSetup defines that
|
|
the first 4 channels of the 16 MCS channels get their images from these
|
|
directories. The other channels simulate images.
|
|
</li>
|
|
<li value="4">The source code of
|
|
the MCS sample as Borland C++ Builder version 6.0 project.
|
|
</li>
|
|
</ul>
|
|
<p> </p>
|
|
<p>MCS simulates:
|
|
</p>
|
|
<p> </p>
|
|
<ul>
|
|
<li value="1">The operation of 16
|
|
video channels. It may either generate simulated images or read images from
|
|
directory sources.
|
|
</li>
|
|
<li value="2">The generation of
|
|
actions which simulate video motion detections
|
|
</li>
|
|
<li value="3">The control of the 16
|
|
simulated video channels with certain commands like camera off / on or the simulation
|
|
of an alarm driven text overlay
|
|
</li>
|
|
<li value="4">The automatic quality
|
|
/ resolution changeover because of event driven recordings or for the GeViScope
|
|
feature dynamic live streaming (DLS)
|
|
</li>
|
|
</ul>
|
|
<p> </p>
|
|
<p>The MCSDefaultSetup of the GeViScope server realizes the following basic
|
|
functions:
|
|
</p>
|
|
<p> </p>
|
|
<ul>
|
|
<li value="1">Live access for all 16 MCS channels </li>
|
|
<li value="2">Event recording for
|
|
all 16 MCS channels. This is controled either by the internally simulated video
|
|
motion detection simulation or for testing with digital input contact simulations.
|
|
</li>
|
|
</ul>
|
|
<p> </p>
|
|
<p>The following image shows the display of the 16 MCS
|
|
channels within GSCView based on the MCSDefaultSetup.set file of the SDK.
|
|
</p>
|
|
<p>
|
|
<img src="Images/211image003_600x434.jpg" alt="MCS.JPG" class="padding600" style="width: 600;height: 434;" />
|
|
</p>
|
|
<h4><b>2.1 MCS parameters in GSCSetup</b>
|
|
</h4>
|
|
<p>The MCS plugin sample is controlled in the hardware configuration dialog
|
|
of GSCSetup. You may change the following global (for the complete virtual MCS
|
|
device) and individual channel parameters.
|
|
</p>
|
|
<p> </p>
|
|
<p><b>Global parameters:</b>
|
|
</p>
|
|
<p xmlns=""> </p>
|
|
<table style="caption-side: top;mc-table-style: url('Resources/TableStyles/Rows.css');" class="TableStyle_Rows" cellspacing="0">
|
|
<col style="width: 120px;" />
|
|
<col style="width: 120px;" />
|
|
<col style="width: 220px;" />
|
|
<thead xmlns="">
|
|
<tr>
|
|
<th class="TableStyle_Rows_Head_0_0_RowSep_ColSep">Parameter
|
|
</th>
|
|
<th class="TableStyle_Rows_Head_0_0_RowSep_ColSep">Default value
|
|
</th>
|
|
<th class="TableStyle_Rows_Head_0_0_RowSep_ColEnd">Meaning
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody xmlns="">
|
|
<tr>
|
|
<td valign="top" class="TableStyle_Rows_Body_0_0_RowSep_ColSep">ImageDirectory
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_0_0_RowSep_ColSep">MCSIMAGES
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_0_0_RowSep_ColEnd">The directory
|
|
which is used to fetch JPEG images as sources for the 16 MCS channels. Below
|
|
that root directory you may have 16 directories Ch0..Ch15. The MCS channels
|
|
read the JPEG images within these directories cyclically if the channel
|
|
dependent option SimulateImages is false.
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" class="TableStyle_Rows_Body_1_0_RowEnd_ColSep">UseDefault
|
|
|
|
|
|
ImageDirectory
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_1_0_RowEnd_ColSep">true
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_1_0_RowEnd_ColEnd">If
|
|
true the parameter ImageDirectory is ignored. Images are always read from the
|
|
path “GeViScope-Server directory”\MCSIMAGES
|
|
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p> </p>
|
|
<p><b>Local channel parameters</b>
|
|
</p>
|
|
<p xmlns=""> </p>
|
|
<table style="caption-side: top;mc-table-style: url('Resources/TableStyles/Rows.css');" class="TableStyle_Rows" cellspacing="0">
|
|
<col style="width: 120px;" />
|
|
<col style="width: 120px;" />
|
|
<col style="width: 220px;" />
|
|
<thead>
|
|
<tr>
|
|
<th class="TableStyle_Rows_Head_0_0_RowSep_ColSep">Parameter</th>
|
|
<th class="TableStyle_Rows_Head_0_0_RowSep_ColSep">Default value</th>
|
|
<th class="TableStyle_Rows_Head_0_0_RowSep_ColEnd">Meaning</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td valign="top" class="TableStyle_Rows_Body_0_0_RowSep_ColSep">ActivityFrequency
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_0_0_RowSep_ColSep">1
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_0_0_RowSep_ColEnd">average
|
|
number of simulated VideoSensorAlarm actions per second per channel
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" class="TableStyle_Rows_Body_1_0_RowSep_ColSep">RandomActivities
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_1_0_RowSep_ColSep">true
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_1_0_RowSep_ColEnd">simulated
|
|
activities are created randomly
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" class="TableStyle_Rows_Body_0_0_RowSep_ColSep">ShowImageInfo
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_0_0_RowSep_ColSep">true
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_0_0_RowSep_ColEnd">the created
|
|
simulated images show image info like compression method or image counters.
|
|
Ignored if images are read from an image directory
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" class="TableStyle_Rows_Body_1_0_RowSep_ColSep">ShowTicker
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_1_0_RowSep_ColSep">true
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_1_0_RowSep_ColEnd">turns
|
|
on/off the embedded live ticker of the produced simulated images. Ignored if
|
|
images are read from an image directory
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" class="TableStyle_Rows_Body_0_0_RowSep_ColSep">SimulateActivity
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_0_0_RowSep_ColSep">true
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_0_0_RowSep_ColEnd">turns
|
|
VideoSensorAlarm simulation on/off
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" class="TableStyle_Rows_Body_1_0_RowEnd_ColSep">SimulateImages
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_1_0_RowEnd_ColSep">true
|
|
|
|
</td>
|
|
<td valign="top" class="TableStyle_Rows_Body_1_0_RowEnd_ColEnd">images
|
|
are either simulated or read from an image directory.
|
|
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h4><b>2.2 Simulation of channel control with GeViScope
|
|
actions</b>
|
|
</h4>
|
|
<p>The MCS plugin
|
|
simulates some behaviour of real world video devices in relation to GeViScope
|
|
commands. The following 2 functions are supported for test purposes:
|
|
</p>
|
|
<p> </p>
|
|
<ul>
|
|
<li value="1">Camera off/on. If MCS
|
|
receives these commands from GeViScope it will simulate the turn on/off of a
|
|
real camera by producing black images
|
|
</li>
|
|
<li value="2">OSD text. By
|
|
receiving that command MCS will overlay the received text to the simulated
|
|
images it produces. This function is ignored in case of JPEG images which are
|
|
read from an image directory.
|
|
</li>
|
|
</ul>
|
|
<p> </p>
|
|
<p>You may explore that
|
|
behavior by using the GeViScope client tool GSCPlcSimulator which is part of
|
|
the GeViScope installation. It allows to simulate any command which is
|
|
understood by GeViScope. For the functions above you need for example the following
|
|
actions (for channel 1 of the plugin):
|
|
</p>
|
|
<p> </p>
|
|
<ul>
|
|
<li value="1">CameraOn (1)
|
|
</li>
|
|
<li value="2">CameraOff(1)
|
|
</li>
|
|
<li value="3">CameraRAWOutput (1,
|
|
"Hello world")
|
|
</li>
|
|
</ul>
|
|
<p> </p>
|
|
<p>You should see the result in GSCView directly.
|
|
</p>
|
|
<h4><b>3. MCS source code</b>
|
|
</h4>
|
|
<p>By analyzing the MCS
|
|
source code you may explore the implementation principles for the following
|
|
base tasks which are supported by the plugin SDK interface:
|
|
</p>
|
|
<p> </p>
|
|
<ul>
|
|
<li value="1">Registration of media
|
|
channels within the GeViScope environment
|
|
</li>
|
|
<li value="2">Streaming images from
|
|
a media source to the GeViScope server
|
|
</li>
|
|
<li value="3">Using the high speed
|
|
MJPEG encoder of the plugin SDK to compress bitmap images
|
|
</li>
|
|
<li value="4">Receiving stream
|
|
control information depending on internal events of the GeViScope system. These
|
|
notifications may be used to change video resolution, quality or image rates
|
|
inside the plugin.
|
|
</li>
|
|
<li value="5">Sending messages from
|
|
the plugin to the GeViScope server
|
|
</li>
|
|
<li value="6">Getting notifications
|
|
about GeViScope actions which may control the behaviour of the plugin
|
|
</li>
|
|
<li value="7">Getting access to the
|
|
GeViScope setup. The MCS demonstrates how plugins may embed their setup
|
|
parameters into the setup environment of GeViScope
|
|
</li>
|
|
</ul>
|
|
<p> </p>
|
|
<p>The GSCSDK installs the complete source code of the
|
|
MCS sample as Borland C++ 6.0 project.
|
|
</p>
|
|
</body>
|
|
</html> |