0% found this document useful (0 votes)
114 views27 pages

SecurOS IIDK Programming Guide 11.7

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
114 views27 pages

SecurOS IIDK Programming Guide 11.7

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

Version 11

IIDK Manual
IIDK Manual (Manual - EN, build 120 on 28.09.2023).

© Copyright Intelligent Security Systems, 2023.

SecurOS® ("SecurOS") and all respective logos are trademarks of ISS Corp, in the U.S. and/or other countries.

Intelligent Security Systems reserves the right to make changes to both this Manual and to the products it describes. System
specifications are subject to change without notice. Nothing contained within this Manual is intended as any offer, warranty, promise
or contractual condition, and must not be taken as such.

No part of this publication may be reproduced, transmitted, transcribed, stored in a retrieval system or translated into any human or
computer language in any form by any means without the express written permission of the copyright holder. Unauthorized copying
of this publication may not only infringe copyright but also reduce the ability of Intelligent Security Systems to provide accurate and
up-to-date information to both users and operators.
IIDK 3 Manual
Contents

Contents
1 Preface 4
1.1 Scope
........................................................................... 4
1.2 Target
. . . Audience
........................................................................ 4
1.3 Using
. . .This
. . . .Manual
.................................................................... 4
1.4 Getting
. . . .Technical
. . . . . . . . .Support
.............................................................. 4
1.5 SecurOS
. . . . . Editions
. . . . . . . .Naming
. . . . . . .Convention
....................................................... 5
1.6 Design
. . . .Convention
....................................................................... 6
1.7 Design
. . . .Elements
....................................................................... 6

2 General Features 7
2.1 IIDK. Package
. . . . . . . .Structure
.................................................................. 8

3 IIDK API Functions 9


3.1 Establishing
. . . . . . . . Connection
. . . . . . . . . . .with
. . . .SecurOS
.................................................... 9
3.2 Closing
. . . . . Connection
. . . . . . . . . . .with
. . . .SecurOS
....................................................... 10
3.3 Receiving
. . . . . . . Messages
.................................................................... 11
3.3.1 Callback
. . .Function
.................................................................................. 12
3.3.2 GetMsg. .Function
................................................................................... 13
3.4 Service
. . . . .Events
...................................................................... 13
3.5 Sending
. . . . . .Commands
..................................................................... 14
3.6 Sending
. . . . . .Events
..................................................................... 15

4 SecurOS Object Management 17


4.1 Main
. . .Functions
........................................................................ 17
4.2 Receiving
. . . . . . . Object
. . . . . . Parameters
.............................................................. 18
4.3 Receiving
. . . . . . . Object
. . . . . . State
.............................................................. 20

5 Developing .Net Applications 22

6 Technical Support Information 25

Index 27

www.issivs.com
IIDK 4 Manual
Preface

1 Preface
This section contains general information about the document, the means of its design and use, as well
as how to get additional technical support for the product.

1.1 Scope
Current manual provides general information about programming SecurOS security system, describes
the process of Modules and hardware integrations, gives some integrations examples.

1.2 Target Audience


We have designed this guide particularly for SecurOS programmers. It is assumed the user has
advanced computer skills including skills on Microsoft Windows Operating System, has practical
experience with TCP/IP networking, serial (COM) ports and general CCTV knowledge and overview.

1.3 Using This Manual


This document is organized in such a way that the user can use both its printed and electronic versions.
In the latter case one can use Adobe Reader's Bookmarks feature as well as cross-reference hyperlinks to
navigate through content. In several topics this manual refers to other SecurOS manuals, which can be
found as separate files on the SecurOS installation CD or downloaded from our website
(www.issivs.com).

To get online help (Microsoft HTML Help) just press the F1 key when running SecurOS. In
administration mode You can get context help for a given object/utility by pressing the F1 key when its
settings window/utility window is open. In operator mode, use the F1 key to open a description of the
active window of the current operator interface or utility.

1.4 Getting Technical Support

If you have any questions after reading this manual, please address them to your system administrator
or supervisor.

For any further information you can contact the Intelligent Security Systems Technical Support Team:

Note. For all technical support requests, please open a ticket from the ISS Partner Portal:
https://support.issivs.com. You will need to create an account if you don’t already have one.

www.issivs.com
IIDK 5 Manual
Preface

· in USA:
Phone: +1 732 855 1111
· in Canada:
Phone: +1 778 929 8565
· in Mexico:
Phone: +52 55 9001 5252
· in Colombia:
Phone: +57 320 303 2849
· in Brazil:
Phone: +55 85 9668 2530
· in Central America and Caribbean:
Phone: +502 5517 8395
· in Argentina/ Paraguay/ Uruguay:
Phone: +54 911 5039 6440
· in Peru/ Bolivia/ Chile:
Phone: +56 9 3261 9893
· in Ecuador:
Phone: +57 312 255 2932
· in Venezuela:
Phone: +57 321 722 0425
· in Europe:
Phone: +380 44 299 0810
· in Dubai:
Phone: +971 4 874 7100
· in Qatar:
Phone: +974 6 677 8309
· in Saudi Arabia:
Phone: +966 54 109 9699

To solve problems faster, we recommend preparing the service information described in the Technical
Support Information Section before addressing the Technical Support Team.

1.5 SecurOS Editions Naming Convention


This document represents a common manual for several editions of the "SecurOS integrated video
management platform" that differ in functional capabilities:

· SecurOS® Monitoring & Control Center;


· SecurOS® Datacenter;
· SecurOS® Enterprise;
· SecurOS® Premium;
· SecurOS® Prof essional.

www.issivs.com
IIDK 6 Manual
Preface

For product designation regardless of its edition the SecurOS general term is used in the framework of
the given document.

Sections that describe the functionality available for some editions are marked by a special footnote as
in the example below:

The functionality is available in the following editions: SecurOS Monitoring & Control Center,
SecurOS Datacenter, SecurOS Enterprise, SecurOS Premium, SecurOS Prof essional.

1.6 Design Convention


For representation of various terms and titles the following fonts and formatting tools are used in this
document.

Font Description

Used in writing workstation names, utilities or screens, windows


bold type and dialog boxes as well as the names of their elements (GUI
elements).

italic type Used to mark out the SecurOS objects.

bold italic type Used to mark out the elements of homogeneous lists.

Used to mark out macro text and programming code, file names and
monospace their paths. Also it is used to specify the necessary options, to mark
out values specified by the user from the keyboard (manually).

Used to mark out the cross-references within the document and


green
links to the external available ones.

1.7 Design Elements


Warning! Serves to alert the user to information which is necessary for the correct perception of the text set
out below. Typically, this information has a warning character.

Note. Note text in topic body.

Additional Information
Used to display additional information. These type of elements contain, for example, the description of options for
executing a task or reference to additional literature.

www.issivs.com
IIDK 7 Manual
General Features

2 General Features
The functionality is available in the following editions: SecurOS Enterprise, SecurOS Premium.

IIDK — ISS Integration Development Kit — is a library, that allows to develop an applications,
interacting with SecurOS by means of messaging.

With the help of messages one can do the following:


1. Control SecurOSobjects using commands. Turn camera record on, close relay, display an image
from certain cameras on particular operator workstation etc.
2. Receive events from the SecurOS objects. Get recognized vehicles license plates, learn when
camera is disconnected, learn about changing the active camera on Media Client or Map etc.
3. Notify SecurOS about what happened within the integrated system. Further these events can be
saved into the SecurOS log or processed by built-in automation tools (macros, VB/JScript). For
example, in case of integration with fire alarm system one can notify SecurOS what sensor went off.
Further, depending on the objectives and goals on the specific site, system integrator prepare scripts,
specifying actions, that have to be performed when specified events occur. For example, turn a
camera to the required direction, turn camera record on, switch a relay with bell on etc.

Commands sent to the SecurOS objects and events received from the SecurOS objects, are described in
SecurOS Programming Guide. Events generated by the objects of the Video Analytics Modules
(SecurOS LPR, SecurOS Cargo etc.) are described in appropriate Module Manuals.

IIDK API represents a dll containing a set of __stdcall functions. This means that integration
software can be developed in any programming language, which allows to call Windows API functions
directly. A header file and import library are supplied to provide developing in C++. A special
wrapping is supplied to provide developing in .Net platform languages.

To allow connection with SecurOS from specified computer, it is necessary to register this computer in
the SecurOS system configuration, then create a IIDK Interf ace child object. Right away an IIDK Interf ace
object is created, it is marked in the SecurOS Object Tree with the red cross, that means no current
connection with this interface (see SecurOS Administration Guide).

Once the application starts and loads iidk.dll, it must call the ConnectEx function, where id of the
IIDK Interf ace object that has to be connected to is specified. After connection is established, one can
control SecurOS objects sending them commands using the SendDoReact function. To notify SecurOS
about events use the SendMsg function. To configure objects and receive information about objects use
the CORE||UPDATE_OBJECT, CORE||GET_CONFIG, CORE||GET_STATE functions. To receive events
from SecurOS can be either asynchronously, via callback function, specified when establishing a
connection, or synchronously, using the GetMsg function. Upon completion of works it should be close
connection with the IIDK Interf ace object using the Disconnect function.

Warning! The same IIDK Interf ace object can not be connected several times simultaneously.

www.issivs.com
IIDK 8 Manual
General Features

2.1 IIDK Package Structure

IIDK package consist of the following files:

For all programming languages

· iidk.dll — SecurOS integration functions library;


· ddi.exe — (see SecurOS Administration Guide).

Note. Components are installed by the SecurOS InstallShield Wizard.

Warning! iidk.dll library is compatible only with 32-bit applications.

For C++ developers

· iidk.h — the header file with the declarations of the functions to be imported;
· iidk.lib — import library for the Microsoft Visual С++ 2012;
· iidk_vc80.lib — import library for the Microsoft Visual С++ 2005;.

Note. Components are available separately on request.

To get a list of all exported functions (import library) of the iidk.dll for other compilers use the
compiler built-in utilities. For example, for Visual Studio these are the dumpbin.exe and lib.exe
utilities.

For .Net developers

· ISS.SecurOS.idk.dll — a build with wrapping over the iidk.dll (see Developing .Net
Applications).

Note. Component is installed by the SecurOS InstallShield Wizard.

Warning! Application should support .Net Framework 4.5 or higher.

www.issivs.com
IIDK 9 Manual
IIDK API Functions

3 IIDK API Functions


3.1 Establishing Connection with SecurOS

Connection between an application and the SecurOS security system via TCP/IP is established with the
help of IIDK Interf ace object.

Warning! Connecting to the SecurOS is performed only on that computer, where IIDK Interf ace object is
created in the SecurOS Object Tree.

To connect to the SecurOS server the ConnectEx function is used.

Syntax
int __stdcall ConnectEx(const char* address, const char* port,
const char* id, iidk_callback_ex* lpfunc, unsigned long user_param,
int connect_type, unsigned long connect_attempts)

Parameters

· address

Server address to connect to — any computer where SecurOS core is running. It is allowed to use
both server IP address and server DNS/WINS name within local TCP/IP network. On the local
server connection it is allowed to specify 127.0.0.1.

· port

TCP/IP port number that is used to establish conection with SecurOS core. Use the 1030 value to
establish connection via IIDK Interf ace.

Note. Physical port number value is 21030, 1030 value is used only when connecting via IIDK Interf ace
object.

· id

Identifier of the IIDK Interf ace object, you are connecting to.

· lpfunc

Callback function to receive messages from the SecurOS core (see Callback Function). If set to 0, the
GetMsg function has to be used to receive a messages (see Receiving Messages).

· user_param

www.issivs.com
IIDK 10 Manual
IIDK API Functions

The parameter, passed to the callback function.

· connect_type

SecurOS core connection type. Possible values:

· 0 — synchronous connection. When connection released, then reconnection is performed by


recurrent call to a function.
· 1 — asynchronous connection. When connection released, then reconnection is performed
automatically.

· connect_attempts

Number of connection attempts. If set to 0, number of attempts is not limited. Has no sense for the
synchronous connection. For asynchronous connection it is recommended to use value of 0.

Returned value
Synchronous connection:
· 1 — connection established;
· 0 — connection failed.

Asynchronous connection:
· 1 — connection is being established;
· 0 — connection failed.

Listing 1. ConnectEx function example

CString port = "1030";


CString ip = "127.0.0.1";
CString id = "2";
int IsConnected = ConnectEx(ip, port, id, myfunc, 0, 1, 0);
if (!IsConnected) { // connection failed
AfxMessageBox("Connection failed");
}

3.2 Closing Connection with SecurOS

To close connection with SecurOS server the Disconnect function is used.

Syntax
void __stdcall Disconnect(const char* id)

Parameters

· id

IIDK Interf ace object ID, passed in the ConnectEx function.

www.issivs.com
IIDK 11 Manual
IIDK API Functions

Note. When connection is lost from network (with no call of the Disconnect function), then IIDK Interf ace
object sends application the DISCONNECTED event.

3.3 Receiving Messages

Any messages from the SecurOS core an application receives as a commands. Depending on the
SecurOS's message type, each received command can be interpreted as:

· Command — a message, that is addressed directly to the application;


· Event — a message from SecurOS objects, notifying application about changing their states.

Commands
Commands are received by application in the following form:

ACTIVEX|id|action|param1<val1>,param2<val2>,. . ., where:

· ACTIVEX — type of the IIDK Interf ace object, specified within SecurOS. Type is the constant value.
· id — identifier of the IIDK Interf ace object, to which the command was sent. Your application will
receive commands that were sent only to those IIDK Interf ace objects, to which it is connected.
· action — a command itself.
· param1<val1>,param2<val2>,. . . — command parameters and their values. List of
parameters can include core service parameters, which were missing in the command at the
command sending time (for example, slave_id, time, date etc.).

Except parameter list, commands are passed to the application in theirs initial form, generated by
SecurOS.

Command example:

ACTIVEX|1|SETUP|int_obj_id<1>,flags<>,ignore_rights<1>,parent_id<V-GLAVNOV>,
objname<IIDK Interface 1>,name<IIDK Interface 1>

Such a command is sent to application by SecurOS core at each core connection.

Events
Events are passed to the application in a form of a command to process events. Command to process an
event is as follows:

ACTIVEX|id|EVENT|objtype<objtype>,objid<objid>,objaction<action>,
param1<val1>,param2<val2>,. . .

· ACTIVEX — type of the IIDK Interf ace object, specified within SecurOS. Type is the constant value.
· id — identifier of the IIDK Interf ace object, to which the command was sent. Your application will
receive commands that were sent only to those IIDK Interf ace objects, to which it is connected.
· EVENT — is a sign, that received message represents a command to process an <objaction> event.
· objtype — type of the object, which sent an event.

www.issivs.com
IIDK 12 Manual
IIDK API Functions

· objid — identifier of the object, which sent an event.


· objaction — type of the sent event.
· param1<val1>,param2<val2>,. . . — event parameters and their values. List of parameters
can include core service parameters, which were missing in the command at the command sending
time (for example, slave_id, time, date etc.).

As opposed to commands, an events pass in application in a modified form. For example, the SecurOS
event notifying about camera with identifier id=1 defocus:

CAM|1|DEFOCUSED

will pass in application in the following form:

ACTIVEX|1|EVENT|int_obj_id<1>,slave_id<V-GLAVNOV>,objaction<DEFOCUSED>,
action<DEFOCUSED>,core_global<1>,objtype<CAM>,objid<1>,owner<V-GLAVNOV>,
time<09:09:03.419>,date<14-10-14>

An application can process commands, as well as ignore them. An application have no mandatory
commands to process.

3.3.1 Callback Function

Function is used to receive a messages generated by SecurOS core. Is declared inside application and
specified by the ConnectEx call (see Establishing Connection with SecurOS).

Syntax
void __stdcall Callback(const char* msg, char* slave_id,
unsigned long user_param)

Parameters

· msg

A message, received from the SecurOS.

· slave_id

IIDK Interf ace object identifier, passed in ConnectEx.

· user_param

Parameter, specified in ConnectEx.

Listing 2. Callback function example

void __stdcall myfunc(const char* msg, char* slave_id,


unsigned long user_param) {
printf("\r\nReceived:%s from %s, user param %d\r\n",
msg, slave_id, user_param);

www.issivs.com
IIDK 13 Manual
IIDK API Functions

3.3.2 GetMsg Function

If callback function was not specified when establishing connection with ConnectEx, then the GetMsg
function must be used to receive an Events.

Syntax
int __stdcall GetMsg(char* msg, unsigned long& cb)

Parameters

· msg

Message body.

· cb

Message buffer size (input and output parameter).

Returned value

· 1, if message was received;


· 0, if message was not received.

3.4 Service Events

A SETUP type event is sent to the application each time when connection with the SecurOS core is
established:

ACTIVEX|1|SETUP|int_obj_id<1>,flags<>,ignore_rights<1>,parent_id<V-GLAVNOV>,
objname<IIDK Interface 1>,name<IIDK Interface 1>

An OBJECT_CREATED type event is sent to the application when SecurOS object is created:

ACTIVEX|1|OBJECT_CREATED|int_obj_id<1>,objtype<INTERCOM>,objid<1>

with the following parameters:

· objtype

Type of the created object.

· objid

Identifier of the created object.

If a set of the SecurOS object parameters is changed, then application will receive a CONFIG_CHANGED
event generated by changed object:

ACTIVEX|1|EVENT|int_obj_id<1>,objaction<CONFIG_CHANGED>,action<CONFIG_CHANGED>,
disabled<0>,objtype<CAM>,objid<100>,time<11:14:10.902>,date<03-10-14>

www.issivs.com
IIDK 14 Manual
IIDK API Functions

with the following parameters:

· objtype

Type of the changed object.

· objid

Identifier of the changed object.

An OBJECT_DELETED type event is sent to the application when SecurOS object is deleted:

ACTIVEX|1|OBJECT_DELETED|int_obj_id<1>,parent<S-PROKHOROV>,objtype<INTERCOM>,
objid<1>

· parent

Identifier of the object parent to the deleted object.

· objtype

Type of the deleted object.

· objid

Identifier of the deleted object.

3.5 Sending Commands

To send commands to the SecurOS object the SendDoReact function is used.

Syntax
int __stdcall SendDoReact(const char* id, const char* msg)

Parameters

· id

IIDK Interf ace object identifier, passed in ConnectEx.

· msg

Message body, for example:

"CAM|1|REC_ROLLBACK|rollback_time_abs<15:00:00.000>,start_rec<1>"

Returned value

www.issivs.com
IIDK 15 Manual
IIDK API Functions

· 1, if command was sent;


· 0, if command was not sent.

Note. SecurOS object control commands are described in SecurOS Programming Guide.

Listing 3. Example of the camera record control command


CString port = "1030";
CString ip = "127.0.0.1";
CString id = "2";
int IsConnect = ConnectEx(ip, port, id, myfunc, 0, 0, 0);
if (!IsConnect) { // connection failed
AfxMessageBox("Error");
return;
}
// Start record with pre-recording on Camera 1
int res = SendDoReact(id, "CAM|1|REC_ROLLBACK|start_rec<1>");
// Record during 2000 milliseconds
Sleep(2000);
// Stop record
int res = SendDoReact(id, "CAM|1|REC_STOP");
if (!res) {
AfxMessageBox(‘‘Error’’);
}
Disconnect(id);

3.6 Sending Events

To send SecurOS an events, notifying that state of the external system object is changed, the SendMsg
function is used.

Syntax
int __stdcall SendMsg(const char* id, const char* msg)

Parameters

· id

IIDK Interf ace object identifier, passed in ConnectEx.

· msg

Message body, for example:

"CARDREADER|25|READ|card<123456789>"

Returned value

· 1, if message was sent;


· 0, if command was not sent.

www.issivs.com
IIDK 16 Manual
IIDK API Functions

Listing 4. Example of the sent message

CString port = "1030";


CString ip = "127.0.0.1";
CString id = "2";
int IsConnect = ConnectEx(ip, port, id, myfunc, 0, 0, 0);
if (!IsConnect) { // connection failed
AfxMessageBox("Error");
return;
}
// Card reader
// with identifier 25
// read 123456789 code
int res = SendMsg(id, "CARDREADER|25|READ|card<123456789>");
if (!res) {
AfxMessageBox(<<Error>>);
}
Disconnect(id);

After message is sent, it can be added into the SecurOS Event Viewer and processed with the help of
SecurOS scripts or VB/ JScript Module.

Warning! In order that an event should be added into the Event Viewer, it must be created (described) in the
ddi-file with the help of ISS Object Types Database Editor system utility (ddi.exe).

www.issivs.com
IIDK 17 Manual
SecurOS Object Management

4 SecurOS Object Management


Below are represented the examples of various IIDK commands for working with objects. Control
commands are sent to the SecurOS core in form of events, not commands. SendMsg function is used to
send an events to the core.

4.1 Main Functions

The main functions include creating, editing object parameters and deleting SecurOS object:

Table 1. Main SecurOS object control functions

Event Function

CORE||UPDATE_OBJECT Create new object/Edit object parameters

CORE||DELETE_OBJECT Delete object

Syntax
CORE||UPDATE_OBJECT|objtype<OBJ_TYPE>,objid<OBJ_ID>,parent_id<PARENT_ID>,
name<OBJ_NAME>,param0<value0>, . . .,paramN<valueN>

Parameters

· objtype

SecurOS object type.

· objid

SecurOS object identifier.

· parent_id

SecurOS parent object identifier.

· name

SecurOS object name. Optional when changing existing object.

· param0<value0>, . . .,paramN<valueN>

www.issivs.com
IIDK 18 Manual
SecurOS Object Management

Parameters of the object of the given type. For object that has a OBJ_TYPE type are described in
dbi-file (for example, securos.dbi). If some of the object parameters are not specified, then
default values are used when object is created and, when object is updated, its current values are not
changed.

Listing 5. Video Capture Device object creation example

CString port = "1030";


CString ip = "127.0.0.1";
CString id = "2";
int IsConnect = ConnectEx(ip, port, id, myfunc, 0, 0, 0);
if (!IsConnect) { // connection failed
AfxMessageBox("Error");
return;
}
// For the parent <V-GLAVNOV> computer
// create Video Capture Device object with
// <Generic RTSP> object type,
// object identifier 100
// and <Grabber RTSP 1> object name.
// Device model - <ISS>.
// Device IP address - <172.16.1.7/live?id=5>
CString msg = "CORE||UPDATE_OBJECT|objtype<GRABBER>,objid<100>,
parent_id<V-GLAVNOV>,name<Grabber RTSP 1>,type<Generic RTSP>,
model<ISS>,ip<172.16.1.7/live?id=5>";
int res = SendMsg(id, msg);

if (!res) {
AfxMessageBox(<<Error>>);
}
Disconnect(id);

Listing 6. Video Capture Device object removal example

// delete Video Capture Device object


// with identifier 12
// and all child objects
CString msg = "CORE||DELETE_OBJECT|objtype<GRABBER>,objid<12>"

4.2 Receiving Object Parameters

To get current object parameters the CORE||GET_CONFIG function is used.

Syntax
CORE||GET_CONFIG|objtype<OBJ_TYPE>,objid<id>,receiver_id<id>

Parameters

· objtype

SecurOS object type.

www.issivs.com
IIDK 19 Manual
SecurOS Object Management

· objid

Identifier of the object with specified objtype type.

· receiver_id

IIDK Interf ace object identifier.

Returned value
A string in a following form:

ACTIVEX|receiver_id|OBJECT_CONFIG|parameter1<value>,parameter2<value>,..., where:

· ACTIVEX

OBJ_TYPE of the IIDK Interf ace object.

· receiver_id

IIDK Interf ace object identifier.

· parameter1<value>,parameter2<value>,. . .

Object parameters.

Note. If objid parameter is not specified, then function return configuration of all objects of the specified
type.

For example, if you send the following state request for the camera (id=1) via IIDK Interf ace
(receiver_id=7):

CORE||GET_CONFIG|objtype<CAM>,objid<1>,receiver_id<7>

the following string will be returned:

ACTIVEX|7|OBJECT_CONFIG|mask0<>,arch_days<>,blind_level<0>,mask1<>,
codec<default.xml>,flags<>,rec_fps<>,mask2<>,password_crc<0>,compression<2>,
deinterlace<0>,mask3<>,hue<127>,sat_u<5>,mask4<>,hot_rec_fps<>,telemetry_id<>,
region_id<>,md_size<5>,contrast<64>,resolution<0>,audio_type<>,
pre_rec_time<>,agc<1>,config_id<>,alarm_rec<1>,bright<128>,audio_id<>,
hot_rec_time<>,mux<0>,parent_id<1>,objtype<CAM>,blinding<0>,arch_max_days<>,
bc_auto<1>,__slave_id<VideoServer>,objid<1>,recorded<1>,blind_size<0>,
post_rec_time<>,name<Cam1>,objname<Cam1>,priority<0>,color<0>,
_justCreated<0>,hot_alarms_config<0>,md_contrast<8>

However, if the following request is sent:

CORE||GET_CONFIG|objtype<CAM>,receiver_id<7>

the similar strings for all system cameras are returned.

www.issivs.com
IIDK 20 Manual
SecurOS Object Management

4.3 Receiving Object State

To get current object state the CORE||GET_STATE function is used.

Syntax
CORE||GET_STATE|objtype<OBJ_TYPE>,objid<id>,receiver_id<id>

Parameters

· objtype

SecurOS object type.

Warning! objid parameter is mandatory.

· objid

Identifier of the object with specified objtype type.

· receiver_id

IIDK Interf ace object identifier.

Returned value
A string in a following form:

ACTIVEX|receiver_id|OBJECT_STATE|parameter1<value>,parameter2<value>
,...,state<object_state>, where

· ACTIVEX

OBJ_TYPE of the IIDK Interf ace object.

· receiver_id

IIDK Interf ace object identifier.

· parameter1<value>,parameter2<value>

Object parameters.

· state

Object state.

Note. Possible values of the state parameter are specified in the [STATE] section of the DDI-file
(securos_*.ddi).

www.issivs.com
IIDK 21 Manual
SecurOS Object Management

For example, if you send the following state request for the camera (id=1) via IIDK Interf ace
(receiver_id=7):

CORE||GET_STATE|objtype<CAM>,objid<1>,receiver_id<7>

the following string will be returned:

ACTIVEX|7|OBJECT_STATE|objtype<CAM>,__slave_id<computer_name.7>,
objid<1>,state<DISARMED_DETACH>

www.issivs.com
IIDK 22 Manual
Developing .Net Applications

5 Developing .Net Applications


To provide IIDK use in .Net languages a special wrapping, included in ISS.SecurOS.idk.dll build,
located in SecurOS installation folder, is developed. The build consists of 3 classes, declared in
SecurOSIIDK namespace.

SecurosIIDK.Messages class is intended to parse message text and execute inverse operations. Class
properties and methods are represented on Figure 1.

Figure 1. SecurosIIDK.Message Class


Properties and Methods

SecurosIIDK.Wrapper class represents library of the static IIDK functions, described earlier. Class
methods are represented on Figure 2.

Figure 2. SecurosIIDK.Wrapper Class Properties and Methods

SecurosIIDK.IidkManager represents a single connection with IIDK Interf ace object in SecurOS and
can be used instead of SecurosIIDK.Wrapper class. Class properties and methods are represented on
Figure 3.

www.issivs.com
IIDK 23 Manual
Developing .Net Applications

Figure 3. SecurosIIDK.IidkManager Class Properties


and Methods

Disconnect, SendMessage and SendDoReact methods throw System.Exception exception if


they are called when no connection with SecurOS core is established.

Below is an example of SecurosIIDK.IidkManager and SecurosIIDK.Message classes usage in


С#.

Listing 7.

public class MainFrame


{
[STAThread]
static void Main()
{
// Initialize iidk object and message dispatchers
SecurosIIDK.IidkManager idkManager = new SecurosIIDK.IidkManager();
idkManager.OnSecurOSMessage += new SecurosIIDK.
MessagesListener(MainFrame.ProcessMessage);
idkManager.OnConnectionStateChanged += new SecurosIIDK.
ConnectionStateListener(MainFrame.ConnectionStateChanged);
// Connect to SecurOS
idkManager.ConnectEx("127.0.0.1", "1030", "1", 0, false);
// Send an event to the SecurOS
idkManager.SendMessage("IIDK_DOTNET_DEMO|1|TEST|prm1<1>,prm2<2>");
// Send a command to SecurOS
idkManager.SendDoReact("CAM|1|REC|priotiry<1>");
// Send the same command but by using Message class
SecurosIIDK.Message msg = new SecurosIIDK.Message("CAM", "1", "REC");
msg.Params.SetAs("priority", "1");
idkManager.SendDoReact(msg.ToString());
// Disconnect from SecurOS
Sleep(1000);
idkManager.Disconnect();
}
static private void ProcessMessage(SecurosIIDK.Message msg)
{ // Write whole message to the console
Console.WriteLine("--" + msg.ToString());
// Write some parts of message to the console
Console.WriteLine(
"-- Src type: {0}, Src Id: {1}, Action: {2}, time: {3}",
msg.Type,
msg.Id,
msg.Action,
msg.Params.GetAs<string>("time"));
}

www.issivs.com
IIDK 24 Manual
Developing .Net Applications

static private void ConnectionStateChanged(bool connected)


{
if (connected)
Console.WriteLine("-- Connected");
else
Console.WriteLine("-- Disconnected");
}
}

www.issivs.com
IIDK 25 Manual
Technical Support Information

6 Technical Support Information


Current section contains service information that is necessary on addressing to Intelligent Security
Systems Technical Support.

Note. Collected data have to be send to the Intelligent Security Systems Technical Support Team (see Getting
Technical Support).

To ensure quick technical support, prepare the following technical information:

Warning! Data in items marked by "*'' are necessary to report.

1. (*) User (customer) name to address to.


2. (*) Organization name.
3. (*) User (or organization) contacts: phone, e-mail.
4. Name of a personal Intelligent Security Systems manager (on Intelligent Security Systems authorized
partner case). Otherwise, give the following data:
· Company where the hardware and software components were purchased.
· Actions proposed to solve the problems announced by a partner from whom the product was
purchased.
5. (*) Problem description.
6. (*) Actions results in the problem.
7. List of changes which result to the problem in case of applying after some changes in system
settings/configuration.
8. System and diagnostic information on computer and SecurOS system configuration obtained from
the SystemInfo utility (see SecurOS Administration Guide for detailed information about utility).
If it is impossible to run the utility provide the following information:
· (*) Guardant keys identifiers and Dallas code;

Note. Equipment Dallas code can be found by the Hardware Report Utility (see SecurOS Administration
Guide for detailed information about utility).

· (*) name and version of the installed Intelligent Security Systems company software.
· total number of video servers and monitoring (operator) workstations in the system;
· operating system (name and service pack version).
9. Another useful information, if possible. For example:
· computer equipment configuration.
· central processors load.
· main and virtual memory used volumes.
· network load.

www.issivs.com
IIDK 26 Manual
Technical Support Information

· network and network neighborhood configuration.

www.issivs.com
IIDK 27 Manual
Index

Index
C
Callback function, 12
ConnectEx, function, 9
CORE||DELETE_OBJECT, function, 17
CORE||GET_CONFIG, function, 18
CORE||GET_STATE, function, 20
CORE||UPDATE_OBJECT, function, 17

D
Disconnect, function, 10

E
EVENT, service event, 13

G
GetMsg, function, 13

I
IIDK components, 8

O
OBJECT_CREATED, service event, 13
OBJECT_DELETED, service event, 14

S
SecurosIIDK.IidkManager, class, 22
SecurosIIDK.Messages, class, 22
SecurosIIDK.Wrapper, class, 22
SendDoReact, function, 14
SendMsg, function, 15
Service Events, 13
SETUP, service event, 13

T
technical support,
how to get, 4
how to prepare service information, 25

www.issivs.com

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy