# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Overview This repository contains SDK documentation and installation files for GeViScope and GeViSoft, which are video surveillance and security management systems. The codebase consists primarily of SDK installers and comprehensive documentation for integrating with these systems. ## Repository Structure ``` SOURCES/ ├── GeViScope_SDK_7.9.975.68/ # Video surveillance SDK │ ├── GeViScope_SDK.pdf # Main SDK documentation │ ├── GeViScope_SDK.chm # SDK help file │ ├── ActionDoc/ # Action documentation (HTML) │ └── GeViScope SDK/ # SDK installer (MSI) └── GeViSoft/ # GeViSoft SDK and documentation ├── GeViSoft_SDK_Documentation.pdf ├── GeViSoft_SDK_Setup_*.exe └── Handbuch_GeViControl_GeViSoft_EN.pdf ``` ## System Components ### GeViScope SDK - **Purpose**: Video management and surveillance system SDK - **Version**: 7.9.975.68 - **Core Capabilities**: - Video stream control and management - Multi-channel video recording - Event-driven action system - Video content analysis (VCA) - Camera control and PTZ operations - Database recording and playback ### GeViSoft SDK - **Purpose**: Security management software platform SDK - **Version**: 6.0.1.5 - **Integration**: Works with GeViScope for comprehensive security solutions ## Action-Based Architecture The GeViScope SDK uses an action-based event system organized into categories: - **SystemActions**: System lifecycle, events, user authentication, database operations - **VideoActions**: Video control, camera management, VCA (Video Content Analysis) - **DeviceActions**: Hardware device integration - **ViewerActions**: Video viewer and display control - **AudioActions**: Audio stream management - **CameraControlActions**: PTZ and camera parameter control - **DigitalContactsActions**: Digital I/O operations - **ATMActions**: ATM integration for banking surveillance - **POSActions**: Point-of-Sale integration for retail - **BackupActions**: Data backup and export - **RemoteExportActions**: Remote video export capabilities ### Key Action Categories **Video Analytics**: - VMD (Video Motion Detection) - NPR (Number Plate Recognition) - OBTRACK (Object tracking and people counting) - G-Tect/VMX (Perimeter protection and fence detection) - CPA (Camera Position Analysis) **Event Management**: - Event-driven architecture with start/stop/kill operations - Support for event types, instance IDs, and foreign keys - Recording triggers and alarm management ## Key Technical Concepts ### Channel-Based Architecture Video inputs are organized by channels. Most video operations require a `Channel` parameter to specify which video source to operate on. ### Event System - Events have TypeID (event type) and EventID (instance ID) - Events can be started, stopped, or killed - Support for alarm recording and pre/post-alarm recording - ForeignKey support for linking events to external systems ### Time-Based Operations - All video operations include timestamp support - Database ring buffer architecture for continuous recording - Recording depth measured in hours - Support for time ranges and scheduled operations ### Integration Points - SMTP mail notifications (via GSCMail) - External system activation - IP camera control via raw HTTP commands - Digital contacts for I/O operations - Support for redundancy and failover ## Working with SDK Documentation ### Primary Documentation Files 1. `GeViScope_SDK.pdf` - Complete SDK reference 2. `GeViSoft_SDK_Documentation.pdf` - GeViSoft integration guide 3. `ActionDoc/*.htm` - Detailed action reference by category 4. `Handbuch_GeViControl_GeViSoft_EN.pdf` - Control handbook ### Action Documentation Format Each action in ActionDoc/ follows this structure: - Action name with parameters (e.g., `StartEvent(TypeID, ForeignKey)`) - Action category (logical, notification, command) - Parameter descriptions with types - Usage context and side effects ## Installation ### GeViScope SDK Installation ```cmd cd SOURCES\GeViScope_SDK_7.9.975.68\GeViScope_SDK_7.9.975.68\GeViScope SDK setup.exe ``` Or directly: ```cmd msiexec /i GeViScopeSDK.msi ``` ### GeViSoft SDK Installation ```cmd cd SOURCES\GeViSoft\GeViSoft GeViSoft_SDK_Setup_6.0.1.5_gsc-7.8.975.55_gng-3.1.2.367.exe ``` ## Development Notes ### When Implementing Video Operations - Always specify the Channel parameter - Include SensorType when working with video analytics - Use TimeStamp parameters for time-based queries - Handle both sync/contrast detected and failed states ### Event Handling Best Practices - Events should be stopped or killed explicitly - Use EventID for instance-specific operations - Use TypeID for type-based operations (affects all instances) - ForeignKey allows correlation with external systems ### Database and Recording - Database uses ring buffer architecture per channel - Monitor recording depth and capacity via DatabaseRecordingInfo actions - Handle NoVideoRecording/NoAudioRecording states - WriteWaitTimesPercent indicates storage bottlenecks ### Error Handling - Monitor SystemError, SystemWarning, SystemInfo actions - Channel-specific errors via ChannelError/ChannelWarning - Windows error codes provided when available - XMLInfo parameter contains extended error details ## Platform Notes - **Target Platform**: Windows (native Windows SDK) - **Installation Format**: MSI (GeViScope), EXE (GeViSoft) - **Documentation Format**: PDF, CHM (Compiled HTML Help), HTML - **Communication**: Action-based message passing system