You are on page 1of 34

MOTOROLA SOLUTIONS

COMPASS DECISION
MANAGEMENT
SYSTEM™
VERSION 2.2.0.X

COMPASS DRIVER SDK


USER GUIDE
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

THIS MANUAL WAS CREATED ON FRIDAY, OCTOBER 15, 2021.


DOCUMENT ID: IU-AG-MAN030-1-DRAFT1
COPYRIGHT, TRADEMARKS, AND DISCLAIMERS
COPYRIGHT © MOTOROLA SOLUTIONS - COMPASS DECISION MANAGEMENT SYSTEM™ VIDEO SECURITY & SOLUTIONS.
TRADEMARKS
Compass Decision Management System is a registered trademark of Motorola Solutions. Microsoft and
Windows are registered trademarks of Microsoft Corporation. App Store is a service mark of Apple Inc.
Android is a trademark of Google Inc. All other trademarks mentioned in this document are trademarks of
their respective owners.
DISCLAIMER
This text is intended for general information purposes only, and due care has been taken in its preparation.
Any risk arising from the use of this information rests with the recipient, and nothing herein should be
construed as constituting any kind of warranty. Motorola Solutions reserves the right to make adjustments
without prior notification. All names of people and organizations used in the examples in this text are
fictitious. Any resemblance to any actual organization or person, living or dead, is purely coincidental and
unintended. This product may make use of third-party software for which specific terms and conditions
may apply.

USER GUIDE
PAGE 2
V1-DRAFT1
TABLE OF CONTENTS

Copyright, trademarks, and disclaimers 2


Trademarks 2
Disclaimer 2

1 ABOUT THIS GUIDE 5


Safety notices 5

2 OVERVIEW 7
Architecture basic description 7
Architecture components 7
Video delivery architecture 9
Driver API Architecture Diagram 9
APIs 9
Integration types 10
Access control system 11
Fire panel 12
Intrusion panel 13
Video system 14

3 SUPPORTING COMPASS DRIVER SDK DOCUMENTS 17

4 SETTING UP A DEVELOPMENT ENVIRONMENT 18


Before you begin 18
Install the Compass Driver SDK 18
Import Compass Driver SDK samples into IntelliJ IDEA 18
Driver development 19
Defining properties 20
Physical Device Vs Global Device 20
Logical devices 21
Live and recorded video 24
Recorded video synchronization 24
Alarm generation 26

5 TROUBLESHOOTING 28
Communication test 28
Driver in debug mode 29
Other tools 30
VLC 31
Wireshark 31
Onvif Device Manager 31
FFMPEG 31

USER GUIDE
PAGE 3
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

5 GLOSSARY 32

USER GUIDE
PAGE 4
V1-DRAFT1
1 ABOUT THIS GUIDE

The Software development kit (SDK) is used by software developers when developing new applications.
Compass Driver SDK helps to make new integrations better and faster.
Motorola Solutions Compass Decision Management System™ is an integrated software solution for
security companies. Security companies can increase revenue by selling innovative services, can
decrease operational costs, and can centralize security operations.
To help you develop the new integration, Compass recommends that you read Programming Best
Practices.
Compass Driver SDK contains all necessary components for new integrations. These new integrations can
be from one or more of the following categories:
• Access Control
• Fire Panel
• Intrusion Panel
• Video System.
For each integration a sample is available to help you. Contact your Compass reseller for more information.
Additionally, you must develop a test document and an integration guide.
For additional supporting documents.
This guide serves as a point of reference for software developers and partners that will integrate new
subsystems. This guide helps you to obtain and install the software.

SAFETY NOTICES
This guide uses the following formats for safety notices:

Indicates a hazardous situation which, if not avoided, could result in death or serious injury.

Indicates a hazardous situation which, if not avoided, could result in moderate injury, damage the
product, or lead to loss of data.

Indicates a hazardous situation which, if not avoided, may seriously impair operations.

Additional information relating to the current section.

USER GUIDE
PAGE 5
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

USER GUIDE
PAGE 6
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

2 OVERVIEW

Motorola Solutions Compass Decision Management System™ is a web application that manages security
systems from different vendors in a unified platform, with step-by-step procedures and auditing tools.
Compass increases organizational productivity by implementing procedures, and giving operators control
over devices, on-site guards and vehicles, from a single platform. Compass saves your data to make
auditing, reporting, and analysis easier.

FIGURE 1: COMPASS OVERVIEW

ARCHITECTURE BASIC DESCRIPTION


The architecture of Compass consists of the following:
• General architecture.
• Video delivery architecture.
• Application programming interfaces (APIs).

ARCHITECTURE COMPONENTS
The Compass architecture components are processes that run simultaneously. The components
communicate with one another whilst others oversee activities and distribute workloads. Compass 's
general architecture is given in .
Compass architecture
COMPONENT DESCRIPTION

The business logic that hosts Compass's web client


application, and handles non-video stream requests.Backend
Backend runs on a Tomcat 7 web server.
The Backend component is responsible for the following:
Storing data to the database.

USER GUIDE
PAGE 7
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

COMPONENT DESCRIPTION

Reading data from the database.


Acting as an interface between the front-end and the system.
Handling all user requests.

The watchdog component that monitors all other components


of Compass, and the Agents.
Compass Manager starts automatically as soon as the
Compass server starts running, and launches all other
Compass components.
Compass
Compass Manager constantly monitors all the active
Manager
processes and restarts processes that are unresponsive.
In case of agents, Compass Manager works as a load
balancer, assigning new tasks to Agents with the lowest load.
Compass Manager launches or ends Agent processes, making
a load distrubution, with each driver request.

The component responsible for communication with


Compass's subsystems.
Agent The agent process acts as an interface between Compass and
subsystems, like: cameras, Input/output (I/O), sensors,
detectors, access controls, GPS devices.

The component responsible for fetching video directly


from the camera(s) and delivering to the streamer. This
VideoAdapter process has a limited life and only runs while the video
is being viewed, this allows the video to be delivered to
the client without recompression.

The component responsible for delivering the video stream to


Streamer
the web client.

LicenseServer The HTTP service wrapper for the licensing tool.

The gateway solution between agents and Backend


ServicesAdapter responsible for encryption and authentication.
Allows for communication between incompatible API versions.

The full text storage and search engine for data regarding
alarms and events.
ElasticSearch
Data from ElasticSearch is used to generate reports' charts
with Kibana.

The data visualization tool used to generate reports' charts.


Kibana
Kibana uses data from ElasticSearch.

Compass
Database The database for all Compass information.
(Compass DB)

Compass The component responsible for delivering HTML5 videos from


Streamer the agent to the front-end.

USER GUIDE
PAGE 8
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

VIDEO DELIVERY ARCHITECTURE


Compass's video architecture is designed to support the browser's HTML5 video capabilities, and to
optimize video delivery.
Compass's video architecture includes the following features:
• Low latency: For Indigo Vision IP cameras, the glass-to-glass video latency is below 500
ms.
• No recompression: The video is not recompressed. The system repacks the frames in
MP4.
• Reliability: The unmanaged code needed for repacking the frames is used in a process
responsible for only one stream.
• Encryption: The video transmitted between Compass components is encrypted.
When a new video stream is requested the system launches the VideoAdapter (VA) component. When the
video stream ends, the system terminates the active VA process.
The VA process terminates automatically when streaming a video is not possible, for example, when
getting video from the source fails, or sending video to the streamer fails.:
The VideoAdapter Manager manages the VA processes. When a new video stream using VA starts, the
VideoAdapter Manager launches a new Va.exe process, and writes parameters to the STDIO header.
For each entry, VideoAdapter Manager is constantly reading data from the STDIN input stream, receiving
log messages from Va.exe, and keepalive messages.
If the VideoAdapter Manager does not receive a keepalive message within the expected time, the VA
process is removed from the manager, and is no longer monitored.

DRIVER API ARCHITECTURE DIAGRAM

APIS
To connect the Compass platform with other applications and expand the scope of services provided to
the clients, a set of APIs is available.
The currently available APIs are given in Table 1.

TABLE 1COMPASS APIS

API DESCRIPTION

A set of protocols for configuration of Compass.


The API allows to manage sites, devices, and contacts without
Configuration the need to use the Configuration interface.
Services API Instead of a one-by-one configuration in the Configuration
interface, clients can use the API to quickly configure similar
sites, contacts, or devices, with the use of programming.

An API that allows clients to select which alarms are generated


Alarm Receiver
by Compass, and which information is included in each of those
API
alarms.

To learn more about Compass APIs, contact Compass support.

USER GUIDE
PAGE 9
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

FIGURE 2: DRIVER API ARCHITECTURE DIAGRAM

INTEGRATION TYPES
Compass includes the following integrations:
• Access Control System, refer to See "Access control system" on page 11
• Fire PanelSee "Fire panel" on page 12
• Intrusion PanelSee "Intrusion panel" on page 13
• Video SystemSee "Video system" on page 14.

USER GUIDE
PAGE 10
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

ACCESS CONTROL SYSTEM


Access control systems are electronic systems that are designed to control through a network. Access
control systems recognize, authenticate, and authorize the entry of a person into premises, thus giving on-
site protection and ensuring security within the system.

FIGURE 3: ACCESS CONTROL CLASS DIAGRAM

An example of the access control testing document template is available at [PLACEHOLDER]. For more
information, refer to the Access Control System Testing Document spreadsheet.

Use cases
The access control system use cases are given in Table 2.

TABLE 2 ACCESS CONTROL SYSTEM USE CASES

OPERATION DESCRIPTION

Get users Retrieve the list of users configured in the access control system

Get roles Retrieve the list of roles configured in the access control system

Get access groups Retrieve groups of users

Get AC zones Retrieve the list of zones configured in the access control system

Get AC zone user


Retrieve the list of users with access in the specified zone
accesses

Add user to zone Grant zone access

Remove user from zone Remove zone access

Clear anti passback Clear anti-passback to an identity

Clear anti passback for


Clear anti-passback to all identities
all

Search AC User Search for a user

Get AC User photo Retrieve user photo

Search AC User with


Search for a user with photo
photo

USER GUIDE
PAGE 11
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

OPERATION DESCRIPTION

AC Lock access point Lock access point

AC Unlock access point Unlock access point

AC Reset access point Reset access point

Grant access Grant access to a specific access point

Send commands to the subsystem when a client interacts with output logical
Send output commands
devices in Compass

Get inputs and outputs


Returns I/O states to display in Compass
states

Receive technical
Receive technical alarms
alarms

Receive system alarms Receive system alarms

Clear the alarm in


Acknowledge an alarm automatically or when it is cleared in Compass
subsystem

FIRE PANEL
A fire panel is a safety appliance typically required by commercial buildings to generate a number of tasks
intended to save lives and minimize property damage. Compass recommends that you are familiar with
what a typical fire panel does, which buildings must have one, and the features to look for in a fire panel.

FIGURE 4: FIRE CLASS DIAGRAM

An example of the fire panel testing document template is available at [PLACEHOLDER]. For more
information, refer to the Fire Panel Testing Document spreadsheet.

Use cases
The fire panel use cases are given in Table 3.

TABLE 3 FIRE PANEL USE CASES

OPERATION DESCRIPTION

Arm/disarm panels Arm or disarm a specific panel

USER GUIDE
PAGE 12
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

OPERATION DESCRIPTION

Panel acknowledge Acknowledge the detector alarm

Reset panel Reset a specific panel in central

Activate/Deactivate siren Activate/deactivate a siren

Activate/Deactivate panel Activate/deactivate a panel

Inhibit/uninhibit detectors Inhibit/uninhibit detectors

Receive technical alarms Receive technical alarms

Receive alarms from system Receive system alarms

Clear the alarm in subsystem Acknowledge an alarm automatically or when it is cleared in Compass

INTRUSION PANEL
Intrusion panel alarm systems are designed to detect unauthorized entry into a building or outdoor area.
An intrusion alarm system is intended to:
• Warn of an intrusion
• Deter intruders
• Notify the appropriate authorities.

FIGURE 5: INTRUSION PANEL CLASS DIAGRAM

An example of the intrusion panel testing document template is available at [PLACEHOLDER]. For more
information, refer to the Intrusion Panel Testing Document spreadsheet.

Use cases
The intrusion panel system use cases are given in Table 4.

TABLE 4 INTRUSION PANEL SYSTEM USE CASES

OPERATION DESCRIPTION

Live video and post-


Allows Compass to get live video
alarm

Get snapshot from


Returns a snapshot from livestream
live video

USER GUIDE
PAGE 13
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

OPERATION DESCRIPTION

Recorded video and


Compass will be able to get recorded video
pre-alarm

Get snapshot from


Returns a snapshot from recorded stream
recorded video

Get streaming
Get quality/stream profiles for a specific camera
profiles

PTZ commands Move a camera sending PTZ commands

Get preset list Returns a list with camera presets

Goto preset Move a camera to a specific preset

Save preset Saves current camera position for a specific preset

Delete preset Deletes a preset

Goto home Move a camera to home position

Playback control Streams with playback

Get next frame Returns next frame of video (Not using video adapter)

Get previous frame Returns previous frame of video (Not using video adapter)

Requests the driver to change the playback direction (respecting the frame
Set play direction
rate) on an ongoing stream

Requests the driver to jump n seconds forward or backward on an ongoing


Jump seconds
stream

Resume livestream Requests the driver to stream live video on an ongoing stream

Send output Send commands to subsystem when client interacts with outputs logical
commands devices in Compass

Get inputs and


Returns inputs and outputs states to show in Compass
outputs status

Bookmarks Create a bookmark to be viewed in the future

VideoWall Creates a video wall that will be used in Compass

Protect one
Protect an evidence to don’t be deleted by the subsystem
evidence

VIDEO SYSTEM
A video surveillance system/CCTV comprises a system of cameras, monitors and/or display units, and
recorders. Cameras can be analog or digital, and can be applied to interior and exterior areas of a
property.

USER GUIDE
PAGE 14
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

FIGURE 6: VIDEO SYSTEM CLASS DIAGRAM

An example of the video system testing document template is available at [PLACEHOLDER]. For more
information, refer to the Video System Testing Document spreadsheet.

Use cases
TABLE 5 VIDEO SYSTEM USE CASES

OPERATION DESCRIPTION

Live video and post-alarm Compass will be able to get live video

Get snapshot from live


Returns a snapshot from livestream
video

Recorded video and pre-


Compass will be able to get recorded video
alarm

Get snapshot from


Returns a snapshot from recorded stream
recorded video

Get streaming profiles Get quality/stream profiles for a specific camera

PTZ commands Move a camera sending PTZ commands

Get preset list Returns a list with camera presets

Goto preset Move a camera to a specific preset

Save preset Saves current camera position for a specific preset

Delete preset Deletes a preset

Goto home Move a camera to home position

Playback control Streams with playback

Get next frame Returns next frame of video (Not using video adapter)

Get previous frame Returns previous frame of video (Not using video adapter)

Requests the driver to change the playback direction (respecting the frame rate)
Set play direction
on an ongoing stream

Jump seconds Requests the driver to jump n seconds forward or backward on an ongoing stream

USER GUIDE
PAGE 15
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

OPERATION DESCRIPTION

Resume livestream Requests the driver to stream live video on an ongoing stream

Send commands to subsystem when client interacts with outputs logical devices
Send output commands
in Compass

Get inputs and outputs


Returns inputs and outputs states to show in Compass
status

Bookmarks Create a bookmark to be viewed in the future

VideoWall Creates a video wall that will be used in Compass

Protect one evidence Protect an evidence to don’t be deleted by the subsystem

USER GUIDE
PAGE 16
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

3 SUPPORTING COMPASS DRIVER SDK


DOCUMENTS

The documentation given in Table 6 is intended to help you to create Compass SDK driver documentation.

The below documents are available separately, and at the end of this documen.

TABLE 6 SUPPORTING DOCUMENTS

FILE DESCRIPTION

Criteria list to accept a new driver to Motorola Solutions Compass Decision


Quality Checklist
Management System™

Programming Best Document explains some good development practices that will help you with new
Practices integrations

Dependencies Dependencies list that must be used in new integrations

Integrations Quick Start


Final document that will be delivered to clients
Guide

Describe the integration requisites, which operations can be supported by the


Integration Specification
SDK/API

Testing documents Testing documents templates for each integration type


templates

USER GUIDE
PAGE 17
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

4 SETTING UP A DEVELOPMENT
ENVIRONMENT

This section describes how to set up a new driver development environment.

BEFORE YOU BEGIN


Before you begin, make sure you have completed the requirements given in Table 7.

TABLE 7 PRE-INSTALLATION CHECKLIST

REQUIREMENT ✓

Windows 10 (64 bit) or later. c

IntelliJ IDEA, click here to download. c

Amazon Correto Java JDK version 8, click here to download. c


Downloaded the Compass Driver SDK c

INSTALL THE COMPASS DRIVER SDK


To install the Compass Driver SDK, do as follows:
1. Execute the .exe file.
2. Accept the license agreement, and click Next.
3. Click Browse... to select the installation folder.
4. Click Next.
5. Review the SDK version and installation folder, and click Install.
6. Click Finish to close the Setup dialog.

IMPORT COMPASS DRIVER SDK SAMPLES INTO INTELLIJ IDEA


After driver installation, open the Installation folder. The installation folder contains the following sub-
folders:

TABLE 8COMPASS DRIVER SDK SUB-FOLDERS

FOLDER Description

Contains all necessary documentation for new integrations, including dependencies


Documentation
lists, best practices, and test documents.

USER GUIDE
PAGE 18
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

FOLDER Description

Driver-
AccessControlSample

Driver-IntrusionSample Contains samples to explain and illustrate each integration type.


Driver-FireSample

Driver-VideoSample

maven-repository Necessary to compile the integration and samples.

You must map the Maven repository of each project to the maven-repository folder.

To import a sample for IntelliJ IDEA, do as follows:


1. Click File > Open, and select your project.
2. Click OK to confirm the project you wish to open.
3. From the Open Project dialog, select where you want to open the project. Refer to Figure 7.
4. From the Maven tab, select Maven Settings. Refer to Figure 8.
5. Change the Local repository to the maven-repository folder in the Compass Driver SDK
installation folder.
6. Click OK.

FIGURE 7: OPEN PROJECT DIALOG

FIGURE 8: MAVEN TAB

DRIVER DEVELOPMENT
The development of a driver is a structured process. To ensure that all requirements of the end customer
are met, you must follow some rules.
The most important aspects in the development of a driver are its management and maintenance, the
inclusion of the manufacturer's SDKs and/or APIs, and, consequently, the drivers must follow these
evolutions.

USER GUIDE
PAGE 19
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

In the Motorola Solutions Compass Decision Management System™, a driver is a component that can be
run inside the server, or in a remote server. In a remote server, the driver must be able to communicate
with the services adapter.
The following steps must be defined when implementing a driver:
1. Creation of an integration guide. The integration guide validates and describes all driver
supported functionalities.
2. Creation of a test book. This document creates a test base to ensure that all customer-
requested features are functional and correctly implemented.
3. Driver development. The development of a driver must fully follow all specifications
described in the integration guide.

DEFINING PROPERTIES
The ConnectionProperties file defines which items are required for a correct connection, including IP
address, port number, and username and password. This class implements the interface
ConnectionProperties.

PHYSICAL DEVICE VS GLOBAL DEVICE


Global devices are used in more than one site, and manage alarms from several sites. To use a device with
several sites in Compass, you only need to configure the connectivity data of this device once. An example
of a global device is a receiver of alarms from several sites.
In the Compass hierarchy, global devices are on the level above sites.
A physical device represents an actual device connected to Compass, and is associated with that device's
brand name and model. Physical devices are not graphically represented.
Each physical device has a set of logical devices representing the functions of the physical device.

Physical device creation


The most important class of the driver is the <DN>PhysicalDeviceMapping. This class implements the
interfaces that connect Compass to the device.
The init method is utilized and called up each time Compass saves a physical device.

Global device creation


The most important class of the driver is the <DN>GlobalDeviceMapping. This class implements the
interfaces that connect Compass to the device.
The init method is utilized and called up each time the driver starts or a global device is created.

USER GUIDE
PAGE 20
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

LOGICAL DEVICES
The logical device types that can be created are given in Table 9.

TABLE 9 LOGICAL DEVICE TYPES

DEVICE TYPE DESCRIPTION

AccessPointDraft Grants access to a specific door, user information, and alarm association.

Alarms can be generic, intrusion, or fire. This device type has an associated state
AlarmDetectorDraft
and an Inhibit or Disable action.

AlarmSensorDraft State and alarm association.

CameraDraft Live or recorded video, snapshots, and Pan, tilt and zoom (PTZ) control

InputDraft State and alarm association.

OutputDraft Shows the status of device outputs and allows commands to be sent to the output.

PanelAcknowledgeDraft State association, sends alarm acknowledgments and alarm reception.

PanelArmDraft State association, sending arm or disarm actions, and alarm reception.

PanelResetDraft State association, sends reset action, and alarm reception.

PhoneDraft Logical phone

Multiple logical devices can be aggregated into a single object (Multifunctional icon (MFI)) through
the LogicalClusterDraft logical device type.

Logical devices states


The logical device states are given in the following tables.

TABLE 10ALARM SENSOR STATE

STATE COLOR ICON

Standby Green

Alarm Red

Sabotage Orange

Disconnected Black

Disable Gray

Unsupported Blue

USER GUIDE
PAGE 21
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

TABLE 11ALARM DETECTOR STATE (INTRUSION/FIRE/GENERIC)

STATE COLOR ICON

Sabotage Red

Violation Open Red

Alarm Red

Alarm Memory Purple

Malfunction Cream

Breakdown Pink

Violation Yellow

Masked Black

Disconnected Black

Disable Gray

Unsupported Blue

Inhibited Red

Not Inhibited Green

TABLE 12DIGITAL PORT STATE (I/O)

STATE COLOR ICON

Active (IOState.ON) Green

Inactive (IOState.OFF) Red

Unsupported Blue

Offline (NULL) Gray

USER GUIDE
PAGE 22
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

TABLE 13CAMERA STATE

STATE COLOR ICON

With connection Blue

Offline (NULL) Gray

TABLE 14PANEL RESET STATE

STATE COLOR ICON

Active alarm Green

Clear Red

Unsupported Blue

Offline (NULL) Gray

TABLE 15PANEL ACKNOWLEDGE STATE

STATE COLOR ICON

Audible Green

Silenced Red

Unsupported Blue

Offline (NULL) Gray

TABLE 16PANEL ARM STATE

STATE COLOR ICON

Armed Green

Disarmed Red

Unsupported Blue

Offline (NULL) Gray

USER GUIDE
PAGE 23
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

TABLE 17ACCESS CONTROL STATE

STATE COLOR ICON

With connection Blue

Offline (NULL) Gray

Logical device creation


The creation of logical devices in Compass is through the HasDevice class which is already implicit in the
classes previously described.

LIVE AND RECORDED VIDEO


One of the primary goals of Compass is to provide live and/or recorded video that is simple and robust
enough to show video with the expected quality and latency. The following interfaces must be
implemented:
• StreamsLiveVideo
• StreamsRecordedVideo.

The Compass architecture allows you to send video to the client without transcoding through the
video adapter.

The StreamsLiveVideo and StreamsRecordedVideo interfaces extend from the StreamsVideo interface.
This interface has the getVAINfo method which is expected to return one of the classes given in Table 18.

TABLE 18 STREAMSVIDEO INTERFACE CLASSES

CLASS DESCRIPTION

The video is not re-compressed. Frames are only repacked in MP4 and only H264 is
DirectVAInfo
supported.

ProxyVAInfo The available functions of DirectVAInfo are used to deliver H264 video.

RecompVAInfo Uses FFmpeg to transcode video. To download FFmpeg, click here.

RECORDED VIDEO SYNCHRONIZATION


If the Network video recorder (NVR) has a different time, it is necessary to synchronize the clocks with the
following interfaces:
• NvrSettings
• Quality Profles.
On the logical device, the camera accesses video streams configured on the device through the following
interfaces:
• HasQualityProfiles
• Live and Recorded snapshots.
Live and/or recorded video snapshots are obtained by implementing the following interfaces:

USER GUIDE
PAGE 24
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

• LieSnapshot
• RecSnapshot.
The PTZ control allows you to control the camera position by implementing the HasPtzCapabilities
interface.
To operate access points, you must implement the following interfaces:
• OperateAccessPoints
• OperateAccessPointsManagement.
To operate the acknowledge panel, you must implement the following interfaces:
• PanelsAcknowledgeStateUpdateListener
• OperatePanelsAcknowledge.
To operate the arm panel, you must implement the following interfaces:
• ArmPanelStateUpdatelistener
• OperateArmPanels.
To operate detectors, you must implement the following interfaces:
• OperateAlarmDetectors
• DetectorsStateUpdateListener.
To operate inputs, you must implement the following interfaces:
• ReadsInputs
• InputStateUpdateListener.
To operate outputs, you must implement the following interfaces:
• OperatesOutputs
• OutputStateUpdateListener.
To operate reset panel, you must implement the following interfaces:
• ResetPanelStateUpdateListener
• OperateResetPanels.

USER GUIDE
PAGE 25
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

ALARM GENERATION

FIGURE 9: ALARM GENERATION DIAGRAM

Alarm generation requires particular attention because it depends on multiple classes, most of which are
slightly obscure because the agent's library takes over.
The events from the API must be translated to an event that is recognized by Compass through the
following classes:
• The class that inherits RawEventData keeps the event from the API
• The class that implements ProcessEventData reflects the Compass alarm event.

@Override methods must be fulfilled. Pay special attention to these methods.

The EventReceiver constructor works with the following objects:

USER GUIDE
PAGE 26
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

• ProcessEvenData
• RawEventData
• EventSourceKey
• DynamicEventTypeMappingKey.
The EventSourceKey interface has constants used to get properties from the device, for example, ID.

ID is a 'must-have' constant. Avigilon Access Control Center devices also have a STATES property
that maps the device and device type.

The DynamicEventTypeMappingKey interface implements the dynamic alarm mapping available for each
physical device. This key is necessary for Compass to know which site or physical device an event
belongs to.
Outwith the above four classes, the EventReceiver constructor also receives four classes that are
responsible for processing the remaining classes.
EventsCallBack. The GeneratesEvents interface can be inherited by the <DN>PhysicalDeviceMapping and
has a registerEventsCallback method that returns an EventsCallback.

An EventsCallback field can hold the parameter and pass to the EventReceiver.

An EventTranslator inherited class translates the RawEventData object to a ProcessEventData object.


An EventSourceManager inherited class uses the EventSourceKey constants and the
ProcessedEventData to determine the device and device type, returning an EventSourceKey object.

The EventSourceManager class is responsible for deciding if a device if TECHNICAL or FALLBACK.

An EventTypeMappingManager inherited class maps the alarm code, and the static and dynamic alarm
mapping from ProcessedEventData and DynamicEventTypeMapping key to be used by the EventReceiver.
Use the above classes to fill in the init method of the <DN>PhysicalDeviceMapping by creating an
EventReceiver and registering the logical devices repository. A SchedulerThreadExecutor can ask the
devices if anything happens and can launch the EventReceiver processEvent method.

USER GUIDE
PAGE 27
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

5 TROUBLESHOOTING

When you use Motorola Solutions Compass Decision Management System™, it can be necessary to carry
out troubleshooting.

COMMUNICATION TEST
To test communication between Compass and the subsystem server, you must ping the server and test
your telnet connection.
To perform a communication test, do as follows:
1. Enter the command ping <subsystem server ip>.
The expected result is shown in Figure 10.
2. Enter the command telnet <subsystem server ip> <subsystem server
port>.
The expected result is shown in Figure 11.
To test communication between Compass and the server, you must ping the server and test your telnet
connection.
To perform a communication test, do as follows:
1. Enter the command ping <sur_gard_ip>.
The expected result is shown in Figure 10.
2. Enter the command telnet <sur_gard_ip> <tpc_port>.
The expected result is shown in Figure 11.

USER GUIDE
PAGE 28
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

FIGURE 10: PING TEST

FIGURE 11: TELNET TEST

DRIVER IN DEBUG MODE


After compiling or packaging your driver, you will be required to extract the zip files and edit the
startup.bat.
1. Start the driver.
The driver should be in debug mode.
2. Configure pom.xml to build the zip. Refer to .
3. Select Maven > Lifecycle > package.
4. Open the zip file in the explorer.
5. Select the zip file and move to a folder outside of the target.
6. Extract the files.
7. Open the startup.bat file and do as follows, refer to Figure 12:

Remove rem.
Update the address parameters.

USER GUIDE
PAGE 29
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

Driver in debug mode

FIGURE 12: EDIT STARTUP.BAT FILE

OTHER TOOLS
Compass Driver SDK uses various tools to integrate with Motorola Solutions Compass Decision
Management System™.
Processexp
Proccessexp is available in the Compass tools folder. The primary function is to list all system processes.
Baretail
The primary function of Baretail is to show driver logs. To determine the driver, do as follows:

USER GUIDE
PAGE 30
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

1. From Compass, select Configuration.


2. Select System Status.
3. Select Agents.
4. Expand the agents to find which driver is used by your device.

VLC
VLC media player is a free and open- source, portable, cross- platform media player software and
streaming media server developed by the VideoLAN project.
VLC is available for desktop operating systems and mobile platforms, including Android, iOS and iPadOS.
Click here to download.
To enable the VLC media player, copy the RTSP link from the driver log and paste it in the VLC. Try to
reproduce this link.

WIRESHARK
Wireshark is a free, open-source packet analyzer used for:
• Network troubleshooting
• Analysis
• Software and communication protocol development
• Education.

ONVIF DEVICE MANAGER


ONVIF Device Manager is a Network video client (NVC) to manage Network video transmitters (NVT),
Network video storage (NVS), and Network video analytics (NVA) devices.

FFMPEG
FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream,
filter and play pretty much anything that humans and machines have created. It supports the most obscure
ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the
community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing
infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide
variety of build environments, machine architectures, and configurations. Download here.
Common commands are as follows:
• ffmpeg -i <source_video> <output_video>.mp4: Saves a video from a link
to file
• ffplay -i <source_video>: Reproduces a video
• ffplay -i -vcodec h264 <source_video>: Specifies video codec to h264
• ffplay -i -probesize 500000 <source_video>: Specifies video probesize.

USER GUIDE
PAGE 31
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

5 GLOSSARY ALARM PRIORITY


Alarm priority is expressed visu-
ally by each alarm's icon. An icon
changes color according to its pri-
A ority level

ALARM TRIGGER
ALARM The device that detects and gen-
An occurrence originating in a erates an alarm. An alarm beha-
device, system, or operator that vior corresponds to each alarm
must be verified together with trigger
actions that must be take accord-
ing to a specified schedule. Com- ALARM TYPE
pass alarms are defined for each A method of organizing and cat-
site and are organized by cat- egorizing alarms. Each alarm type
egories. has a nam, priority, and asso-
ciated Operator Guide
ALARM BEHAVIOR
Alarm behavior in Compass con- AUDIT TRAIL
sists of a priority, an alarm type, A log of all actions performed by
and an Operator Guide. One the operator and the system
alarm behavior is configured for
each alarm trigger.
G
ALARM CLUSTER
A group of alarms associated by GLOBAL CONTACTS
site or by device Contacts that can be imported
into multiple sites sim-
ALARM HANDLING ultaneously. When a global con-
To handle an alarm, the situation tact is edited, changes are
must be verified, preferably with replicated in all sites where the
video, and the Operator Guide contact is included
actions followed
GLOBAL DEVICES
ALARM PANEL Used to manage alarms from
The alarm panel is a sidebar on more than one site
the left-side of the screen where
each block is an alarm or an GUARD TOUR
alarm cluster. The alarm panel is A virtual visit to a sequence of
visible in the operation interface checkpoints. Each checkpoint is
only.

USER GUIDE
PAGE 32
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

defined by one or moe cameras MULTIFUNCTIONAL ICON


and an Operator Guide A flexible method of combining
related loigical devices that
L many not belong to the same
physical device
LINKED CAMERAS
Cameras associated to other O
devices that can trigger alarms
but do not capture video. When OPERATOR GUIDE
such a device triggers an A set of step-by-step instruc-
alarm, Compass uses cameras tions with a dynamic workflow
or groups of cameras linked to to guide the operator during
the device to document the the handling of an alarm
alarm

LIVE SITE
P
Allows Compass to access and
interface with sites
PHYSICAL DEVICES
Representations of devices con-
LOCAL CONTACTS nected to Compass that are
Contacts created for a single associated to a brand name
site and model. Each physical
device has a set of logical
LOGICAL DEVICE devices that correspond to its
Corresponds to the features function(s)
offered by a product's specific
device PRE-ALARM
A video clip requested by Com-
M pass that documents the
seconds before and after an
alarm trigger. Pre-alarm video
MOSAIC
is only available if and when
Groups of cameras created by
the video source has a record-
the operator. Video from these
ing system
cameras displays in tiles
arranged in a mosaic pattern
permitting live monitoring R
through multiple cameras in
multiple sites REPORTS
A descriotion of the alarms that
occurred and their handling.

USER GUIDE
PAGE 33
V1-DRAFT1
MOTOROLA SOLUTIONS COMPASS DECISION MANAGEMENT SYSTEM™

Reports can be produced auto-


matically or on-demand

S
SITE
An entity with a static or mobile
geographical location, with floor
plans, contacts, devices, and
alarms

SITE CLUSTER
A group of sites that are visually
grouped on the map

T
TAG
Assists in efficiently building
global Operator Guides

W
WORKSPACE
An individual area used by each
operator to find pending tasks,
live sites, and mosaics

WORKSTATION
A computer with a phone
extenion and a USB joystick

USER GUIDE
PAGE 34
V1-DRAFT1

You might also like