- Add GeViScope Bridge (C# .NET 8.0) on port 7720 - Full SDK wrapper for camera control, PTZ, actions/events - 17 REST API endpoints for GeViScope server interaction - Support for MCS (Media Channel Simulator) with 16 test channels - Real-time action/event streaming via PLC callbacks - Add GeViServer Bridge (C# .NET 8.0) on port 7710 - Integration with GeViSoft orchestration layer - Input/output control and event management - Update Python API with new routers - /api/geviscope/* - Proxy to GeViScope Bridge - /api/geviserver/* - Proxy to GeViServer Bridge - /api/excel/* - Excel import functionality - Add Flutter app GeViScope integration - GeViScopeRemoteDataSource with 17 API methods - GeViScopeBloc for state management - GeViScopeScreen with PTZ controls - App drawer navigation to GeViScope - Add SDK documentation (extracted from PDFs) - GeViScope SDK docs (7 parts + action reference) - GeViSoft SDK docs (12 chunks) - Add .mcp.json for Claude Code MCP server config Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
140 lines
3.9 KiB
Markdown
140 lines
3.9 KiB
Markdown
# GeViScope SDK Analysis
|
|
|
|
## Overview
|
|
|
|
GeViScope is Geutebruck's DVR (Digital Video Recorder) system that handles:
|
|
- Video recording and playback
|
|
- Camera management (PTZ control)
|
|
- Event handling
|
|
- Action-based communication
|
|
|
|
## SDK Components
|
|
|
|
### Native Win32 DLLs (32-bit)
|
|
| DLL | Purpose |
|
|
|-----|---------|
|
|
| GscDBI.dll | Database interface - connection, registry, data access |
|
|
| GscActions.dll | PLC (Process Logic Control) - action/event handling |
|
|
| GscMediaPlayer.dll | Video display and playback |
|
|
| GscHelper.dll | Helper functions |
|
|
|
|
### .NET Wrapper DLLs (.NET 4.0)
|
|
| DLL | Purpose |
|
|
|-----|---------|
|
|
| GscExceptionsNET_4_0.dll | Exception handling |
|
|
| GscDBINET_4_0.dll | Database interface wrapper |
|
|
| GscActionsNET_4_0.dll | Actions/PLC wrapper |
|
|
| GscMediaPlayerNET_4_0.dll | Media player wrapper |
|
|
|
|
## Key Namespaces
|
|
|
|
```csharp
|
|
using GEUTEBRUECK.GeViScope.Wrapper.DBI;
|
|
using GEUTEBRUECK.GeViScope.Wrapper.Actions;
|
|
using GEUTEBRUECK.GeViScope.Wrapper.Actions.SystemActions;
|
|
using GEUTEBRUECK.GeViScope.Wrapper.Actions.DigitalContactsActions;
|
|
using GEUTEBRUECK.GeViScope.Wrapper.Actions.ActionDispatcher;
|
|
using GEUTEBRUECK.GeViScope.Wrapper.MediaPlayer;
|
|
```
|
|
|
|
## Connection Flow
|
|
|
|
1. Create GscServer instance
|
|
2. Encode password: `DBIHelperFunctions.EncodePassword(password)`
|
|
3. Set connection parameters: `GscServerConnectParams`
|
|
4. Connect: `GscServer.Connect()`
|
|
5. Create PLC: `GscServer.CreatePLC()`
|
|
6. Subscribe to actions/events
|
|
7. Register action dispatcher callbacks
|
|
|
|
## Key Classes
|
|
|
|
### GscServer
|
|
- Main connection class
|
|
- Methods: `Connect()`, `Disconnect()`, `CreatePLC()`, `CreateRegistry()`
|
|
|
|
### GscPLCWrapper
|
|
- Process Logic Control for actions/events
|
|
- Methods: `OpenPushCallback()`, `SendAction()`, `StartEvent()`, `StopEvent()`
|
|
- Methods: `SubscribeActionsAll()`, `SubscribeEventsAll()`
|
|
|
|
### GscActionDispatcher
|
|
- Dispatches received actions to handlers
|
|
- Events: `OnCustomAction`, `OnDigitalInput`, `OnCrossSwitch`, etc.
|
|
|
|
### GscViewer
|
|
- Video viewer for live/recorded media
|
|
- Methods: `ConnectDB()`, `SetPlayMode()`, `Refresh()`
|
|
|
|
## Action Categories
|
|
|
|
1. **ATM/ACS** - Banking/Access control
|
|
2. **Audio Control** - ABC (Audio Back Channel)
|
|
3. **Backup Actions** - Auto/event backups
|
|
4. **Camera Control** - PTZ, focus, iris, presets
|
|
5. **Digital Contacts** - Digital I/O
|
|
6. **Switch Control** - CrossSwitch (video routing)
|
|
7. **Viewer Actions** - Remote control GSCView
|
|
8. **System Actions** - Login, shutdown, events
|
|
|
|
## Sample Actions
|
|
|
|
```csharp
|
|
// Custom Action
|
|
GscAction action = new GscAct_CustomAction(1, "Hello world!");
|
|
plc.SendAction(action);
|
|
|
|
// CrossSwitch
|
|
GscAction crossSwitch = GscAction.Decode("CrossSwitch(1, 2, 0)");
|
|
plc.SendAction(crossSwitch);
|
|
|
|
// PTZ Control
|
|
GscAction ptzAction = GscAction.Decode("CameraPanLeft(1, 50)");
|
|
plc.SendAction(ptzAction);
|
|
```
|
|
|
|
## TACI - Telnet Action Command Interface
|
|
|
|
Alternative method for sending/receiving actions via Telnet (ASCII format):
|
|
- Default port: 12007
|
|
- Requires GscTelnetActionCommandInterface.dll plugin
|
|
- Format: Action text commands like `CustomAction(1,"HelloWorld")`
|
|
|
|
## Default Credentials
|
|
|
|
- Username: `sysadmin`
|
|
- Password: `masterkey`
|
|
|
|
## Demo Mode
|
|
|
|
- Full functionality for 2 hours
|
|
- After timeout, restart GeViScope server for another 2 hours
|
|
|
|
## Integration Approach
|
|
|
|
Similar to GeViServer, create a C# Bridge service that:
|
|
1. References the .NET wrapper DLLs
|
|
2. Exposes REST API endpoints
|
|
3. Handles connection lifecycle
|
|
4. Forwards actions/events
|
|
|
|
### Proposed Endpoints
|
|
|
|
```
|
|
POST /geviscope/connect
|
|
POST /geviscope/disconnect
|
|
GET /geviscope/status
|
|
GET /geviscope/channels
|
|
POST /geviscope/action
|
|
POST /geviscope/event/start
|
|
POST /geviscope/event/stop
|
|
POST /geviscope/camera/ptz
|
|
```
|
|
|
|
## File Locations
|
|
|
|
- SDK: `C:\Program Files (x86)\GeViScopeSDK\`
|
|
- BIN: `C:\Program Files (x86)\GeViScopeSDK\BIN\`
|
|
- Examples: `C:\Program Files (x86)\GeViScopeSDK\Examples\`
|
|
- Documentation: `C:\Program Files (x86)\GeViScopeSDK\Documentation\`
|