...
Tip |
---|
The plugin can be selected during setup and will automatically install the files in the correct locations. |
The BVMS Plugin Message Payload
The following values are passed to BVMS every time the Alarm that the camera is responding to changes. The payload has 10 available values but currently only 5 are configured.
Data Index | Value |
---|---|
1 | The id of the camera within BVMS |
2 | The numeric id of the track within Witness |
3 | The alarm description for the alarm being watched by the camera |
4 | The classification of the track |
5 | The speed of the track in m/s |
Configuring the BVMS Plugin
...
- Open the BVMS Config Client
- Add at least one Virtual Input
- Add a client script to capture and process the alarm data from the BVMS plugin
- Right click on the ClientScript node and click New Scriptlet
Replace the Scriptlet with the following code
Panel Code Block language c# theme RDark title Example BVMS ClientScript collapse true using System.Text; public void WorkstationLogon() { System.Threading.Thread.Sleep(3000);//wait till logged in has been processed try { RemoteServerApi RSApi= new RemoteServerApi("localhost:5390","admin","");// connect to the server MyEventReceiver myRec= new MyEventReceiver(Api); //Api is the current Client Api, hand over to the EventReceiver Instance RSApi.EventManager.Register(myRec);//register for all Events } catch (Exception eq) { Api.ApplicationManager.ShowMessage("Error in Logon Script " + eq.ToString()); } Api.ApplicationManager.ShowMessage("logon finished"); } public class MyEventReceiver:EventReceiver { private IClientApi MyApi; static StringBuilder ViString; public MyEventReceiver(IClientApi api) { MyApi=api; ViString= new StringBuilder(); } public override void OnEvent(EventData e) { ViString.Clear(); if (e.Type=="DataInputEvent") //intercept when virtual input data is received { //show the exect data presented via the Virtual Input on the operator station // Here is the Navtech info format ViString.Append("Received Data from Navtech Radar:"); ViString.AppendLine(); ViString.Append("IncidentCamera: "); ViString.Append(e["Data1"]); ViString.AppendLine(); ViString.Append("TargetID: "); ViString.Append(e["Data2"]); ViString.AppendLine(); ViString.Append("Alarm Description: "); ViString.Append(e["Data3"]); ViString.AppendLine(); ViString.Append("Target Classification: "); ViString.Append(e["Data4"]); ViString.AppendLine(); ViString.Append("Target Speed: "); ViString.Append(e["Data5"]); //Uncomment the following line to show the incoming data //MyApi.ApplicationManager.ShowMessage(ViString.ToString()); MyApi.ContentManager.SetGranularity(1,1); Camera c= MyApi.CameraManager.GetCameraByLogicalNumber(int.Parse(e["Data1"])); ImagePane p=new ImagePane(1,int.Parse(e["Data1"])); MyApi.ContentManager.EnterFullscreen(1); MyApi.ContentManager.DisplayCamera(p,c); //show camera full screen on Monitor 1 } } }
Note The preceding This code is for testing purposes only. It will force the the camera stream associated with the incoming Witness alarm data full screen every time the message is received.
- Assign the script to the workstation
- Save the config and activate the configuration
...
Configuring Witness
After a camera has been configured in Witness the following fields need to be edited to align the configuration with BVMS
User ID
This is the BVMS Virtual Input that will be closed when a camera movement is triggered by Witness
External System ID
This is the BVMS camera id that relates to this camera and can be found by opening the BVMS Config Client and opening the Cameras and Recording page
Related articles
Filter by label (Content by label) | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...