Initial commit: COPILOT D6 Flutter keyboard controller
Flutter web app replacing legacy WPF CCTV surveillance keyboard controller. Includes wall overview, section view with monitor grid, camera input, PTZ control, alarm/lock/sequence BLoCs, and legacy-matching UI styling. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
200
tests/test-gcore.http
Normal file
200
tests/test-gcore.http
Normal file
@@ -0,0 +1,200 @@
|
||||
### G-Core Bridge Test Suite
|
||||
### Use with VS Code REST Client extension or similar
|
||||
|
||||
@baseUrl = http://localhost:7721
|
||||
|
||||
### Health Check
|
||||
GET {{baseUrl}}/health
|
||||
|
||||
### Root (service info)
|
||||
GET {{baseUrl}}/
|
||||
|
||||
### Status (before connect)
|
||||
GET {{baseUrl}}/status
|
||||
|
||||
### Connect to G-Core Server
|
||||
POST {{baseUrl}}/connect
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"Address": "192.168.1.20",
|
||||
"Username": "operator",
|
||||
"Password": "password"
|
||||
}
|
||||
|
||||
### Status (after connect)
|
||||
GET {{baseUrl}}/status
|
||||
|
||||
### Get Media Channels
|
||||
GET {{baseUrl}}/channels
|
||||
|
||||
### Get Monitor States (tracked from events)
|
||||
GET {{baseUrl}}/monitors
|
||||
|
||||
### Get Specific Monitor State
|
||||
GET {{baseUrl}}/monitors/17
|
||||
|
||||
### Get Active Alarms (tracked from events)
|
||||
GET {{baseUrl}}/alarms/active
|
||||
|
||||
### Get All Alarms (including stopped)
|
||||
GET {{baseUrl}}/alarms
|
||||
|
||||
### ViewerConnectLive - Switch Camera 101 to Monitor 17
|
||||
POST {{baseUrl}}/viewer/connect-live
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"Viewer": 17,
|
||||
"Channel": 101
|
||||
}
|
||||
|
||||
### CrossSwitch (compatibility endpoint)
|
||||
POST {{baseUrl}}/crossswitch
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"VideoInput": 102,
|
||||
"VideoOutput": 18,
|
||||
"SwitchMode": 0
|
||||
}
|
||||
|
||||
### ViewerClear - Clear Monitor 17
|
||||
POST {{baseUrl}}/viewer/clear
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"Viewer": 17
|
||||
}
|
||||
|
||||
### PTZ Pan Right
|
||||
POST {{baseUrl}}/camera/pan
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"Camera": 101,
|
||||
"Direction": "right",
|
||||
"Speed": 50
|
||||
}
|
||||
|
||||
### PTZ Pan Stop
|
||||
POST {{baseUrl}}/camera/pan-stop
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"Camera": 101
|
||||
}
|
||||
|
||||
### PTZ Tilt Down
|
||||
POST {{baseUrl}}/camera/tilt
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"Camera": 101,
|
||||
"Direction": "down",
|
||||
"Speed": 30
|
||||
}
|
||||
|
||||
### PTZ Zoom Out
|
||||
POST {{baseUrl}}/camera/zoom
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"Camera": 101,
|
||||
"Direction": "out",
|
||||
"Speed": 50
|
||||
}
|
||||
|
||||
### PTZ Stop All
|
||||
POST {{baseUrl}}/camera/stop
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"Camera": 101
|
||||
}
|
||||
|
||||
### PTZ Go to Preset
|
||||
POST {{baseUrl}}/camera/preset
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"Camera": 101,
|
||||
"Preset": 2
|
||||
}
|
||||
|
||||
### Playback - Set Play Mode (Step Forward)
|
||||
POST {{baseUrl}}/viewer/set-play-mode
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"Viewer": 17,
|
||||
"PlayMode": "step forward",
|
||||
"PlaySpeed": 1.0
|
||||
}
|
||||
|
||||
### Playback - Jump to Time
|
||||
POST {{baseUrl}}/viewer/play-from-time
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"Viewer": 17,
|
||||
"Channel": 101,
|
||||
"PlayMode": "play forward",
|
||||
"Time": "2026/02/03 09:00:00,000 GMT+01:00"
|
||||
}
|
||||
|
||||
### Playback - Jump Forward 30 Seconds
|
||||
POST {{baseUrl}}/viewer/jump-by-time
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"Viewer": 17,
|
||||
"Channel": 101,
|
||||
"PlayMode": "play forward",
|
||||
"TimeInSec": 30
|
||||
}
|
||||
|
||||
### Digital Output - Close Contact
|
||||
POST {{baseUrl}}/digital-io/close
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"ContactId": 100
|
||||
}
|
||||
|
||||
### Digital Output - Open Contact
|
||||
POST {{baseUrl}}/digital-io/open
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"ContactId": 100
|
||||
}
|
||||
|
||||
### Get Message Log
|
||||
GET {{baseUrl}}/messages
|
||||
|
||||
### Clear Message Log
|
||||
POST {{baseUrl}}/messages/clear
|
||||
|
||||
### Send Generic Action
|
||||
POST {{baseUrl}}/action
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"Action": "ViewerConnectLive(17, 101)"
|
||||
}
|
||||
|
||||
### Send Custom Action
|
||||
POST {{baseUrl}}/custom-action
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"TypeId": 1,
|
||||
"Text": "Test custom action"
|
||||
}
|
||||
|
||||
### Disconnect
|
||||
POST {{baseUrl}}/disconnect
|
||||
|
||||
### Swagger UI
|
||||
# Open in browser: http://localhost:7721/swagger
|
||||
Reference in New Issue
Block a user