PSMdt-iNET Mock

Mock iNET ATMS surface with demo scenario runners. Trigger a scenario below to drive alerts and webhooks against a Klorad Mobility source pointed at this deploy.

Scenario runner

Radar occupancy spike

One radar's occupancy jumps to 0.85 and mean speed drops to 18 km/h for 3 minutes. The classic 'jam forming' shape.

Emits
device.status_changed × 2 (start + expiry)
Matches
threshold rule where field=occupancy, op≥, value=0.7

DMS sign fault

One DMS flips to shortStatus=0x0004, connectable=false, message='SIGN FAULT'. Reads as offline + alarmed downstream.

Emits
device.status_changed × 2 (start + expiry)
Matches
event rule for type=device.status_changed + kind=alarmed

Incident response

Creates an AID-triggered incident and walks its status every 6 seconds: posted → acknowledged → en_route → on_scene → resolved.

Emits
incident.posted + incident.status_changed (×4)
Matches
event rule for type=incident.posted

Traffic flow ticker

Starts the 1 Hz VDS traffic loop across every radar. Stages a scripted slowdown on one radar 15 s in. Feeds live-graph demos.

Emits
vds.tick (once per second, per radar)
Matches
threshold rule where field=speed, op≤, value=30

Incident cascade

Combines Incident + Radar spike + DMS fault with a 4 s stagger. Reproduces the 'something big just happened' cascade.

Emits
incident.posted → device.status_changed × 2
Matches
any of the above rules will fire

VMS inspection world

Provisions a demo world scoped to VMS signs and returns the install URL. Not time-based, so there's nothing to reset.

Emits
no events (world provisioning only)
Matches
n/a

Live event feed

Reconnecting…

Every event that fires — webhooks fan out from here to any registered consumer + the Klorad Mobility webhook endpoint if wired.

Nothing yet. Trigger a scenario above to see events land.

Layer 1 · iNET drop-in

Matches the response shape the Klorad @klorad/connectors/inet-atms connector expects. Point a Mobility source's host at this deploy and sync.

  • GET /atms/{subsystem}-rest/rest/{subsystem}/
  • GET /atms/{subsystem}-rest/rest/{subsystem}/{externalId}
  • GET /atms/dms-rest/rest/dms/{externalId}/status

Subsystems: cctv aid vms dms vsls radar.

Layer 2 · Demo surface

  • GET/POST /api/incidents · PATCH /api/incidents/:id
  • GET/POST /api/worlds · GET /api/worlds/:id/devices
  • GET /api/vds/live
  • GET /api/stream (SSE)
  • GET/POST /api/webhooks · DELETE /api/webhooks/:id
  • GET /api/demo/status · GET /api/demo/overrides
  • POST /api/demo/scenario/{name}