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
When the plugin is installed and Canary starts, the plugin configuration settings are saved to the PluginConfiguration.xml file. This file is located in the Witness main application folder. To change the settings this file should be opened in a text editor, such as Notepad, however we would recommend an editor which is XML aware, such as Notepad++.
Once the file is open, locate the BVMS section, as illustrated below:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="utf-8"?>
<Config>
<Plugins>
<Bvms>
<PluginConfig>
<BvmsServerAddress>10.0.6.11</BvmsServerAddress>
<BvmsServerPort>5390</BvmsServerPort>
<User>Admin</User>
<Password></Password>
<InputResetPeriod>60</InputResetPeriod>
<HeartbeatInterval>0</HeartbeatInterval>
</PluginConfig>
</Bvms>
</Plugins>
</Config>
|
Info |
---|
Once you have made changes to the plugin configuration file then you must restart the Canary application / service for the new settings to be applied. No other modules need to be restarted. |
The setting options are as follows:
BvmsServerAddress
This is the address of the BVMS server
BvmsServerPort
This the port used by BVMS (5390 is the default value and is unlikely to need changing)
User
The username used to logon to the BVMS system
Password
The password associated with the above User value
InputResetPeriod
The period (in seconds) after no new alarm updates have been received that will cause the virtual input open command to be sent to BVMS.
Configuring BVMS
- 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 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) | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Page Properties | ||
---|---|---|
| ||
|
...