- 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>
6.9 KiB
6.9 KiB
PowerShell Scripts Updated for C# Bridge
Date: 2026-01-12 Status: ✅ Complete
Summary
Updated all PowerShell service management scripts to include the C# GeViServer Bridge service.
Files Modified
1. start-services.ps1 ✅
Changes:
- Added C# Bridge path variable
- Added C# Bridge process check
- Added C# Bridge startup (Step 2/5 after GeViServer)
- Updated step numbering from 1/4...4/4 to 1/5...5/5
- Added C# Bridge to final summary output
Startup Order:
- GeViServer (port 7700)
- C# Bridge (port 7710) ← NEW
- SDK Bridge (port 50051)
- Python API (port 8000)
- Flutter Web (port 8081)
Usage:
cd C:\DEV\COPILOT\geutebruck-api
.\start-services.ps1
2. stop-services.ps1 ✅
Changes:
- Added C# Bridge stop logic (Step 4/5)
- Updated step numbering from 1/4...4/4 to 1/5...5/5
- Stops services in reverse order of startup
Stop Order:
- Flutter Web
- Python API
- SDK Bridge
- C# Bridge ← NEW
- GeViServer (or keep with -KeepGeViServer flag)
Usage:
# Stop all services
.\stop-services.ps1
# Stop all except GeViServer
.\stop-services.ps1 -KeepGeViServer
3. status-services.ps1 ✅
Changes:
- Added C# Bridge status check
- Added C# Bridge health endpoint test
- Added GeViServer API endpoint test
- Improved output formatting
Status Checks:
- GeViServer (PID + ports 7700-7703)
- C# Bridge (PID + port 7710) ← NEW
- SDK Bridge (PID + port 50051)
- Python API (PID + URLs)
Health Checks:
- C# Bridge: http://localhost:7710/status ← NEW
- Python API: http://localhost:8000/health
- GeViServer API: http://localhost:8000/api/v1/geviserver/status ← NEW
Usage:
.\status-services.ps1
Example Output
start-services.ps1
========================================
Starting Geutebruck API Services
========================================
[1/5] Starting GeViServer...
Waiting for GeViServer to initialize....
[OK] GeViServer started (PID: 2600)
[2/5] Starting C# GeViServer Bridge...
Waiting for C# Bridge to initialize...
[OK] C# Bridge started (PID: 1740)
[3/5] Starting SDK Bridge...
Waiting for SDK Bridge to connect...
[OK] SDK Bridge started (PID: 3452)
[4/5] Starting Python API...
Waiting for API to initialize...
[OK] Python API started (PID: 312)
[5/5] Starting Flutter Web Server...
Waiting for Flutter Web to initialize...
[OK] Flutter Web started (PID: 4123)
========================================
Services Started Successfully!
========================================
GeViServer: Running on ports 7700-7703
C# Bridge: http://localhost:7710 (GeViServer 32-bit adapter)
SDK Bridge: Running on port 50051 (gRPC)
Python API: http://localhost:8000
Swagger UI: http://localhost:8000/docs
GeViServer API: http://localhost:8000/docs#/GeViServer
Flutter Web: http://localhost:8081
status-services.ps1
========================================
Geutebruck API Services Status
========================================
[OK] GeViServer: RUNNING (PID: 2600)
Ports: 7700-7703
[OK] C# Bridge: RUNNING (PID: 1740)
Port: 7710 (GeViServer 32-bit adapter)
[OK] SDK Bridge: RUNNING (PID: 3452)
Port: 50051 (gRPC)
[OK] Python API: RUNNING (PID: 312)
Swagger UI: http://localhost:8000/docs
API: http://localhost:8000/api/v1
========================================
Testing C# Bridge health...
[OK] C# Bridge is responding
Testing Python API health...
[OK] Python API is responding
Testing GeViServer API...
[OK] GeViServer API is responding
Service Architecture
┌─────────────────────────────────────────────────┐
│ Flutter Web (port 8081) │
│ ↓ HTTP │
│ Python API (port 8000) │
│ ├─ Swagger UI: /docs │
│ ├─ Health: /health │
│ └─ GeViServer API: /api/v1/geviserver/* │
│ ↓ HTTP │
│ C# Bridge (port 7710) ← NEW 32-bit adapter │
│ ├─ Status: /status │
│ └─ Connect, Ping, Send Messages, etc. │
│ ↓ P/Invoke │
│ GeViProcAPI.dll (32-bit) │
│ ↓ IPC │
│ GeViServer (ports 7700-7703) │
│ │
│ SDK Bridge (port 50051) │
│ ↓ gRPC │
│ GeViScope SDK │
└─────────────────────────────────────────────────┘
Why C# Bridge Was Added
The C# Bridge was necessary because:
- 32-bit DLL Limitation: GeViProcAPI.dll is compiled as 32-bit
- Python 64-bit: The Python installation is 64-bit
- Incompatibility: 64-bit processes cannot load 32-bit DLLs
- Solution: C# bridge compiled as x86 (32-bit) can load the DLL and expose HTTP endpoints
Testing the Updated Scripts
1. Stop all current services
cd C:\DEV\COPILOT\geutebruck-api
.\stop-services.ps1
2. Start with new scripts
.\start-services.ps1
3. Check status
.\status-services.ps1
4. Test GeViServer API
Open browser: http://localhost:8000/docs#/GeViServer
Troubleshooting
If C# Bridge fails to start
Check DLL dependencies:
cd C:\DEV\COPILOT\geviserver-bridge\GeViServerBridge\bin\Debug\net8.0
dir *.dll | findstr GeVi
Should see:
- GeViProcAPI.dll
- GeViProcAPINET_4_0.dll
If missing, copy DLLs:
copy C:\GEVISOFT\*.dll C:\DEV\COPILOT\geviserver-bridge\GeViServerBridge\bin\Debug\net8.0\
If service hangs on startup
Check timeout values in start-services.ps1:
- GeViServer: 60 seconds
- C# Bridge: 20 seconds
- SDK Bridge: 30 seconds
- Python API: 20 seconds
- Flutter Web: 10 seconds
Next Steps
- Production Deployment: Consider creating Windows Services for auto-startup
- Logging: Add centralized logging for all services
- Monitoring: Set up health check monitoring
- Documentation: Update main README with C# Bridge information
Summary
✅ All Scripts Updated
- start-services.ps1 - Includes C# Bridge
- stop-services.ps1 - Stops C# Bridge
- status-services.ps1 - Monitors C# Bridge
✅ Ready for Use
- Scripts tested and working
- Services start in correct order
- Health checks verify all services
🎉 GeViServer Integration Complete