Paradox API
Paradox API
Software Development Kit
Software Development Kit
V2.6
V2.6
(Control Panel Integration)
(Control Panel Integration)
Page 2 of 64
Table of Contents
Table of Contents
1.
1. DOCUMENT DOCUMENT HISTORY HISTORY LOG LOG ... 4... 4
2. 2. PROJECT PROJECT OVERVIEW OVERVIEW ... .. 55 2.1. FEATUREOVERVIEW...5
2.1.1. Paradox API - Driver ... 5
2.1.2. Paradox API – Installation ... 5
2.1.3. Paradox API - Demo Application ... 5
2.1.4. Paradox API – Paradox Video Player ... 6
2.2. APIDEFINITION ...7
2.2.1. Paradox API - Command List ... 7
1. Get Driver Version ... 7
2. Discover Module (Command) ... 7
3. Connect Panel (Command) ... 9
4. Disconnect Panel (Command) ... 10
5. Retrieve Panel Info (Command) ... 11
6. Start IPDOX “Receiver” (Command) ... 12
7. Delete IPDOX Account (Command) ... 13
8. Start Monitoring (Command) ... 14
9. Read Monitoring (Command) ... 14
10. Register Panel (Command) ... 14
11. Control Area (Command) ... 15
12. Area Status (Command)... 15
13. Control Zone (Command) ... 17
14. Zone Status (Command) ... 17
15. Control PGM (Command) ... 18
16. PGM Status (Command) ... 19
17. Control Door (Command) ... 19
18. Door Status (Command) ... 20
19. IP Reporting Status (Command) ... 21
20. System Troubles (Command)... 22
21. Read Panel Time Stamp (Command) ... 25
22. Read Panel Date and Time (Command)... 26
23. Write Panel Date and Time (Command) ... 26
24. Read All Areas (Command) ... 26
25. Read Area (Command) ... 26
26. Read All Zones (Command) ... 29
27. Read Zone (Command) ... 29
28. Read All PGMs (Command) ... 31
29. Read PGM (Command) ... 31
30. Read All Doors (Command) ... 32
31. Read Door (Command) ... 32
32. Write Door (Command) ... 34
33. Read All Schedules (Command) ... 35
34. Read Schedule (Command) ... 35
35. Write Schedule (Command) ... 35
36. Read All Access Level (Command) ... 36
37. Read Access Level (Command) ... 36
38. Write Access Level (Command) ... 37
39. Read Holidays (Command) ... 38
40. Write Holidays (Command) ... 38
41. Read All Users (Command) ... 38
42. Read User (Command) ... 39
43. Write Multiple Users (Command) ... 40
44. Write User (Command)... 40
45. Read IP Reporting (Command) ... 42
Page 3 of 64
47. Read Buffer Events (Command) ... 44
48. Read Buffer Events EX (Command) ... 44
49. Get Site from PMH (Command) ... 44
50. Configure Video Server (Command) ... 45
51. Get Video Alarm Files (Command) ... 46
52. Start Video on Demand (Command) ... 47
53. Start Video on Demand EX (Command) ... 48
54. Stop Video on Demand (Command) ... 49
55. Connection Status Changed (Event) ... 49
56. Progress Changed (Event) ... 50
57. Progress Error (Event) ... 50
58. SMS Request (Event) ... 52
59. Receive Reporting Event (Event) ... 53
60. Account Registration (Event) ... 54
61. Account Update (Event) ... 55
62. Account Link (Event) ... 55
63. Receive Buffer Event (Event) ... 56
64. Receive Live Event (Event) ... 57
65. Monitoring Status Changed (Event) ... 58
66. RX Status Changed (Event) ... 58
67. TX Status Changed (Event) ... 59
68. IP Module Detected (Event) ... 59
69. IPDOX Socket Changed (Event) ... 60
70. Unregister All (Command) ... 60
Page 4 of 64
1. Document History Log
1. Document History Log
DocumentDocument Version Version Date Date Change Change By By DescriptionDescription 1.0 2015-06-30 Jerome Lepage Initial Document
1.0.1 2015-08-10 Jerome Lepage Added all commands 1.0.2 2015-08-20 Jerome Lepage Added all parameters definition 2.0.1 2015-09-08 Jerome Lepage Added EVO control panel 2.0.2 2015-09-21 Jerome Lepage Added Read All Zones, User,
Doors
2.0.3 2015-09-27 Jerome Lepage Added Read All Schedules, Access Levels
2.0.5 2015-09-28 Jerome Lepage Added “Write Multiple Users” command
2.0.6 2015-09-29 David Watherhouse Added status column description 2.1.1 2015-10-06 Jerome Lepage Added Configure Video Server, Get
Video Alarm Image, Video Live Streaming
2.1.2 2015-10-15 Jerome Lepage Added Start VOD EX 2.1.3 2015-10-21 Jerome Lepage Revised doc
2.2.2 2015-10-28 Jerome Lepage Fixed timeout command and index out of bound issues in
ParadoxAPI.dll
2.3.1 2016-01-05 Jerome Lepage Disable monitoring polling to reduce CPU usage (via the MonitoringPollingEnabled property) 2.4.1 2016-01-14 Jerome Lepage Added connected UserNo and
UserPartitionAccess to RetrievePanelInfo command 2.5.1 2016-01-18 Jerome Lepage Fixed read buffer events from
SP4000
2.6.1 2016-02-05 Jerome Lepage Added ReadBufferEventsEx API. Use to retrieve new events only. Compatible with SP4000 and EVO panels
Page 5 of 64
2. Project Overview
2. Project Overview
2.1. Feature Feature OverviewOverview2.1.1. Paradox API - DriverParadox API - Driver Features:
1. Windows “flat” DLL that implements stdcall functions 2. Compatible with all MG and SP Series panels
3. Auto-detect panel via serial, IP or PCS (GPRS) connection 4. Connect to panel via serial, IP or PCS (GPRS) connection 5. Control panel status (Area, Zone and PGM)
6. Monitor panel status (Area, Zone, PGM and Troubles)
7. Read panel programming (Labels, Areas, Zones, PGMs, Schedules, Users and IP Reporting) 8. Write panel programming (Labels, Schedules, Users and IP Reporting programming) 9. Read panel buffer and live events
10. Register panel to IP receiver
11. Receive account registration and event reporting via IP 2.1.2. Paradox APIParadox API – – InstallatioInstallationn
The Paradox API SDK package contains three DLL files, which must be copied to the same directory. Features:
1. ParadoxNetwork.dll handles panel communication 2. IPDOX.dll handles panel registration and reporting 3. ParadoxAPI.dll provides the API interface for integration
Page 6 of 64 Allows the software integrator to review and test the Paradox API integration.
Features:
1. Demo application and source code are included (written in C#) ParadoxApiDemo.exe.
2.1.4. Paradox APIParadox API – – Paradox Video Player Paradox Video Player
Allows the software integrator to execute Apple HTTP live streaming from a m3u8 file *see ParadoxVideoPlayer.exe
Features:
1. Application uses ffmpeg library (decoder only) http://www.DelphiFFmpeg.com 2. Select m3u8 filename (from toolbar/open)
3. Play (start) live streaming 4. Stop live streaming
5. Auto select and start live streaming from shellexecute command
6. *ShellExecute(0, 'open', PChar('ParadoxVideoPlayer.exe'), PChar(Format(''file=%s proxy=%s'', [m3u8FileName, proxyURL])), '', SW_SHOWNORMAL);
Page 7 of 64 2.2. API Definition API Definition
2.2.1. Paradox API - Command ListParadox API - Command List
All commands are accessible from the exported ParadoxAPI.dll API
All commands are synchronized methodssynchronized methods, they return when the action is completed For maximum performance, we recommend creating thread orthread poolthread pool to communicate
with each control panel
1.
1. Get Get Driver Driver VersionVersion
Use to retrieve Paradox API driver version Request (Pascal STDCALL)
function GetDriverVersion(out Version: WideString): HResult; stdcall;
Answer
1. Function call returns HResult (see 2.2.2Result Code List ) 2. Function parameter (Version) returns version # (x.x.x.x)
2.
Page 8 of 64
Use to discover all Paradox’s IP modules connected to a selected network Command broadcasts a UDP packet over the Ethernet
Each Paradox IP module answers command with its definition Request (Pascal STDCALL)
function DiscoverModule(out XMLInfo: WideString): HResult; stdcall;
Answer
1. Function call returns HResult (see 2.2.2Result Code List ) 2. Function parameter (XMLInfo) returns XMLData; see below:
<?xmlversion="1.0"?> <objects>
<objectobjectname="TModuleInfoXML"name="Module1">
<published<methodname> ="MacString"readonly="True"type="UnicodeString"></method> <methodname="NetMaskString"readonly="True"type="UnicodeString"></method> <methodname="DHCPString"readonly="True"type="UnicodeString"></method> <methodname="TypeString"readonly="True"type="UnicodeString"></method> <methodname="IPString"readonly="True"type="UnicodeString"></method> <methodname="SiteNameString"readonly="True"type="UnicodeString"></method> <methodname="SiteIDString"readonly="True"type="UnicodeString"></method> <methodname="VersionString"readonly="True"type="UnicodeString"></method> <methodname="IPPortString"readonly="True"type="UnicodeString"></method> <methodname="WebPortString"readonly="True"type="UnicodeString"></method> <methodname="LanguageString"readonly="True"type="UnicodeString"></method> <methodname="SerialNoString"readonly="True"type="UnicodeString"></method> <methodname="HTTPSPortString"readonly="True"type="UnicodeString"></method> <methodname="DiscoverOnLAN"readonly="True"type="Boolean">False</method> <methodname="UseHTTPSString"readonly="True"type="UnicodeString"></method> <methodname="RegisteredToPMH"readonly="True"type="Boolean">False</method> <methodname="NetworkInterfaceIpAddress"readonly="True"type="UnicodeString"></method> </published>
</object> </objects>
Parameter definition
methodname Definition
"MacString" The MAC address of the detected IP module "NetMaskString" The NETMASK of the detected IP module
"DHCPString" If the detected IP module uses DHCP mode (DHCP enable) "TypeString" Possible Values
"IP100" "IP150" "PCS250" "PCS250G" "IPR512" "HD77"
"IPString" The IP address of the detected IP module
"SiteNameString" The Site Identification (Name) of the detected IP module
"SiteIDString" The Site ID (used to access the module via ParadoxMyHome) of the detected IP module "VersionString" The version (version.revision.build) of the detected IP module
"IPPortString" The IP port # (used to connect to the module via end-user/installer software) of the detected IP module
"WebPortString" The WEB port # (use to connect to the module via the web page) of the detected IP module "LanguageString" The current language of the detected IP module
"SerialNoString" The serial # of the control panel connected to the detected IP module "HTTPSPortString" The HTTPS port # of the detected IP module
Page 9 of 64 "UseHTTPSString" If the detected IP module use HTTPS
"RegisteredToPMH" If the detected IP module is registered to ParadoxMyHome "NetworkInterfaceIp
Address"
The network interface (IP address) where the IP module has been detected
3.
3. Connect Connect Panel Panel (Command)(Command)
Use to connect to a control panel via serial, IP or PCS (GPRS) connection
PCS (GPRS) connection can be established on a private network using the SMS callback
mechanism
Command auto-detect panel type and version *specify panel type to speed up the connection
process
Request (Pascal STDCALL)
function ConnectPanel(const PanelID: Cardinal; XMLSettings: WideString; WaitTimeOut: Cardinal): HResult; stdcall;
1. PanelID parameter identifies the control panel connection. This parameter must be defined by the client and must be unique to the entire system.
2. WaitTimeOut parameter identifies command timeout in second (0=infinite) 3. XMLSettings parameter must contain XML data; see below:
<?xmlversion="1.0"?> <objects>
<objectobjectname="TPanelSettingsXML"name="Settings"> <published>
<methodname="PanelType"readonly="False"type="UnicodeString"></method> <methodname="ComType"readonly="False"type="UnicodeString"></method> <methodname="SiteID"readonly="False"type="UnicodeString"></method> <methodname="SerialNo"readonly="False"type="UnicodeString"></method> <methodname="IPAddress"readonly="False"type="UnicodeString"></method> <methodname="IPPort"readonly="False"type="Integer ">0</method> <methodname="ComPort"readonly="False"type="Integer ">0</method> <methodname="BaudRate"readonly="False"type="Integer ">0</method> <methodname="SMSCallback"readonly="False"type="Boolean">False</method> <methodname="IPPassword"readonly="False"type="UnicodeString"></method> <methodname="UserCode"readonly="False"type="UnicodeString"></method>
<methodname="SystemAlarmLanguage"readonly="False"type="UnicodeString"></method> <methodname="MonitoringPollingEnabled"readonly="False"type="Boolean">True</method> </published>
</object> </objects>
Parameter definition
methodname Definition
"PanelType" Possible Values Description
"" or "Auto Detect" Auto detect panel type "SP4000" SP4000 control panel "SP5500" SP5500 control panel "SP6000" SP6000 control panel "SP7000" SP7000 control panel "SP65" SP65 control panel "MG5000" MG5000 control panel "MG5050" MG5050 control panel "EVO192" EVO192 control panel "EVOHD" EVOHD control panel "ComType" Possible Values Description
"SERIAL" Connect to control panel via serial cable "IP" Connect to control panel via IP module (IP socket)
Page 10 of 64 "DNS" Connect to control panel via IP module (IP socket) using
ParadoxMyHome
"GPRSSTATIC" Connect to control panel via PCS module (GPRS) "GPRSPRIVATE" Connect to control panel via PCS module (GPRS), enable
SMSCallback property to use SMS callback mechanism "SiteID" The SiteID in ParadoxMyHome to use for "DNS" connection
"SerialNo" Future use
"IPAddress" The static IP address to use for "IP" or "GPRSSTATIC" or "GPRSPRIVATE" connection "IPPort" The IP port to use for "IP" or "GPRSSTATIC" or "GPRSPRIVATE" connection "ComPort" The COM port to use for "SERIAL" connection
"BaudRate" Possible Values Description
0 Auto detect baud rate
9600 9600bps
38400 38400bps
57600 57600bps
"SMSCallback" Use SMS callback mechanism for "GPRSPRIVATE" connection. With that feature enabled, the ParadoxAPI.dll opens a socket server and waits for the callback PCS module connection. The connection is established via a SMS message that has to be sent by the client to the PCS module.
The SMS message to send is returned by ParadoxAPI.DLL via theSMS Request callback event.
"IPPassword" The IP password to use for "IP" or "GPRSSTATIC" or "GPRSPRIVATE" connection. The IP password must exist in the IP or GPRS module.
"UserCode" The user code to use for connection to the control panel. The user code must exist and have sufficient rights in the control panel.
"SystemAlarmLanguage" The labels such as (Area, Zone labels) will be formatted into the following language
Possible Values Possible Values
"ENGLISH" "SLOVAK" "FRENCH" "CHINESE" "SPANISH" "SERBIAN" "ITALIAN" "MALAY" "SWEDIS" "SLOVENIAN" "POLISH" "LITHUANIAN" "PORTUGUESE" "FINNISH" "GERMAN" "ESTONIAN" "TURKISH" "BELGIAN" "HUNGARIAN" "LATVIAN" "CZECH" "MACEDONIA" "DUTCH" " ALBANIAN" "CROATIAN" "NORWEGIAN" "GREEK" " ARABICPERSAIN" "HEBREW" " ARABICWESTERN" "RUSSIAN" " ARABICEASTERN" "BULGARIAN" "ROMANIAN"
"MonitoringPollingEnabled" If enabled, the monitoring statuses (such as Area, Zone, PGM and Trouble) are read automatically (every x seconds) from the control panel, and stored within the driver. This operation could be CPU intensive if several control panels are connected to the driver. You can disable the feature to reduce the CPU usage. If disabled, the CMS will have to call the Read Monitoring command every time it needs to update the monitoring status.
Answer1. Function call returns HResult (see 2.2.2 Result Code List )
4.
4. Disconnect Disconnect Panel Panel (Command)(Command)
Page 11 of 64
Request (Pascal STDCALL)
function DisconnectPanel(const PanelID: Cardinal): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to disconnect
Answer
1. Function call returns HResult (see 2.2.2 Result Code List )
5.
5. Retrieve Retrieve Panel Panel Info Info (Command)(Command)
Use to retrieve the control panel definition such as version, area count, zone count Request (Pascal STDCALL)
function RetrievePanelInfo(const PanelID: Cardinal; out XMLInfo: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. Function parameter (XMLInfo) returns XMLData; see below:
<objects>
<objectobjectname="TPanelInfoExXML"name="PanelInfoEx"> <published>
<methodname="Description"readonly="True"type="UnicodeString"></method> <methodname="ProductID"readonly="True"type="Integer ">0</method> <methodname="SerialNo"readonly="True"type="UnicodeString"></method> <methodname="Version"readonly="True"type="Integer ">0</method> <methodname="Revision"readonly="True"type="Integer ">0</method> <methodname="Build"readonly="True"type="Integer ">0</method> <methodname=" AreaCount"readonly="True"type="Integer ">0</method> <methodname="ZoneCount"readonly="True"type="Integer ">0</method> <methodname="PGMCount"readonly="True"type="Integer ">0</method> <methodname="UserCount"readonly="True"type="Integer ">0</method> <methodname="DoorCount"readonly="True"type="Integer ">0</method> <methodname="ReceiverCount"readonly="True"type="Integer ">0</method> <methodname="ScheduleCount"readonly="True"type="Integer ">0</method> <methodname=" AccessLevelCount"readonly="True"type="Integer ">0</method> <methodname="UserNo"readonly="True"type="Integer ">0</method>
<methodname="User PartitionAccess"readonly="True"type=" UnicodeString "></method> </published>
</object> </objects>
Parameter definition
methodname Definition
"Description" The product name of the control panel
"ProductID" Possible values Description
0xAE53 SP4000 0xA41E SP5500 0xA41F SP6000 0xA420 SP7000 0xAE54 SP65 0xA524 MG5000 0xA526 MG5050 0xA123 EVO192 0xA16D EVOHD "SerialNo" The serial # of the connected control panel
"Version" The version # of the connected control panel "Revision" The revision # of the connected control panel "
AreaCount" The quantity of Area in the connected control panel "ZoneCount" The quantity of Zone in the connected control panel
Page 12 of 64 "PGMCount" The quantity of PGM in the connected control panel
"UserCount" The quantity of User in the connected control panel "DoorCount" The quantity of Door in the connected control panel "ReceiverCount" The quantity of IP receiver in the connected control panel "ScheduleCount" The quantity of schedule in the connected control panel "
AccessLevelCount" The quantity of access level in the connected control panel "UserNo" The connected user #
"UserPartitionAccess" The connected user area access (comma-delimited, for example“1,2”)
6. Start
6. StartIPDOX “IPDOX “Receiver Receiver ”” (Command) (Command)
Use to configure and activate the build in IP receiver
Receive account registration and Ademco CID or SIA reporting event
Forward reporting event to an automation software in ADEMCO685, RADIONIX6500 or
SURGARDMLR2DG format via IP or serial link
Account registration is received via the Account Registration callback function Reporting event is received via theReceive Reporting Event callback function Request (Pascal STDCALL)
function ConfigureIPDOX(XMLSettings: WideString): HResult; stdcall;
1. Function parameter (XMLSettings) must contain XMLData; see below:
<?xmlversion="1.0"?> <objects>
<objectobjectname="TIPDOXSettingsXML"name="Settings"> <published>
<methodname="IPPassword"readonly="False"type="UnicodeString"></method> <methodname=" ACCFilePath"readonly="False"type="UnicodeString"></method> <methodname="LogEnabled"readonly="False"type="Boolean">False</method> <methodname="LogLevel"readonly="False"type="Integer ">0</method> <methodname="LogInterval"readonly="False"type="Integer ">0</method> <methodname="LogFileLifeTime"readonly="False"type="Integer ">0</method> <methodname="LogMaxDiskSize"readonly="False"type="Integer ">0</method> <methodname="LogFileDir "readonly="False"type="UnicodeString"></method> <methodname="OutputEnabled"readonly="False"type="Boolean">False</method> <methodname="OutputType"readonly="False"type="UnicodeString"></method> <methodname="OutputCOMPort"readonly="False"type="Integer ">0</method> <methodname="OutputBaudRate"readonly="False"type="Integer ">0</method> <methodname="OutputUDP"readonly="False"type="Boolean">False</method> <methodname="OutputIPPort"readonly="False"type="Integer ">0</method> <methodname="OutputIPAddress"readonly="False"type="UnicodeString"></method> <methodname="OutputProtocolID"readonly="False"type="UnicodeString"></method> <methodname="OutputReceiverNo"readonly="False"type="Integer ">0</method> <methodname="OutputLineNo"readonly="False"type="Integer ">0</method> <methodname="OutputHeaderID"readonly="False"type="Integer ">0</method> <methodname="OutputTrailerID"readonly="False"type="Integer ">0</method> <methodname="OutputAckNack"readonly="False"type="Boolean">False</method> <methodname="OutputWaitForAck"readonly="False"type="Integer ">0</method> <methodname="OutputTestMessage"readonly="False"type="Boolean">False</method> <methodname="OutputTestMsgDelay"readonly="False"type="Integer ">0</method> <methodname="OutputForcePartition"readonly="False"type="Boolean">False</method> <methodname="OutputPartitionNo"readonly="False"type="Integer ">0</method>
<methodname="OutputUseMACAddress"readonly="False"type="Boolean">False</method> <methodname="MonitoringAccountNo"readonly="False"type="UnicodeString"></method> <methodname="WANId"readonly="False"type="Integer ">0</method>
<methodname="WANEnabled"readonly="False"type="Boolean">False</method> <methodname="WANPort"readonly="False"type="Integer ">0</method> <methodname="WANAddress"readonly="False"type="UnicodeString"></method> </published>
Page 13 of 64
</objects>
Parameter definition
methodname Definition
Mandatory Mandatory
"IPPassword" The receiver IP password "
ACCFilePath" The directory to store the .ACC file. The ACC file contains all keys required to communicate with the registered accounts. This file is used by the ParadoxAPI driver for internal storage.
"WANId" ALWAYS PUT 1 (only 1 WAN is supported)ALWAYS PUT 1 (only 1 WAN is supported) "WANEnabled" Enable receiver WAN interface
"WANPort" Set the port # to use to receive IP reporting
"WANAddress" Set the network interface adapter to use to receive IP reporting
"MonitoringAccountNo" Set the account # to use for internal reporting event to send to the automation software
Optional Optional
"OutputEnabled" Convert and send the reporting event to an external automation software
"OutputType" Select the media type to use to send reporting event to the external automation software
Possible values
"SERIAL" "IP"
"OutputCOMPort" Select the port # to use to send reporting event via "Serial" "OutputBaudRate" Select the baud rate to use to send reporting event via "Serial"
"OutputUDP" Use UDP instead of TCP for packet transmission to the automation software "OutputIPPort" Select the port # to use to send reporting event via "IP"
"OutputIPAddress" Select the IP address where to send the reporting event via "IP"
"OutputProtocolID" Select the reporting event format to send to the external automation software
Possible values
" ADEMCO685" "RADIONIX6500" "SURGARDMLR2DG"
"OutputReceiverNo" Set the receiver # to send to the automation software "OutputLineNo" Set the line # to send to the automation software "OutputHeaderID" Set the header ID to send to the automation software "OutputTrailerID" Set the trailer ID to send to the automation software
"OutputAckNack" Enable ACK mechanism between the ParadoxAPI and the automation software "OutputWaitForAck" Set the ACK wait time out in seconds
"OutputTestMessage" Enable test message to automation software "OutputTestMsgDelay" Set test message interval in seconds
"OutputForcePartition" Enable transmit custom partition # (always) to automation software "OutputPartitionNo" Set the custom partition # to transmit
"OutputUseMACAddress" Append account’s MAC address toevery reporting event to send to the automation software
Answer
1. Function call returns HResult (see 2.2.2 Result Code List )
7.
7. Delete Delete IPDOX IPDOX Account Account (Command)(Command)
Use to delete a registered account in the receiver storage file (.ACC file) Request (Pascal STDCALL)
Page 14 of 64
function DeleteIPDOXAccount(MACAddress: WideString): HResult; stdcall;
1. MACAddress parameter identifies the account # to delete
Answer
1. Function call returns HResult (see 2.2.2 Result Code List )
8.
8. Start Start Monitoring Monitoring (Command)(Command)
Use to initialize and retrieve (read) all system status
Command retrieves all system status such as area, zone, pgm and trouble status from the
connected control panel
Client will be notified on status change via theMonitoring Status Changed event callback Request (Pascal STDCALL)
function StartMonitoring(const PanelID: Cardinal): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to start monitoring
Answer
1. Function call returns HResult (see 2.2.2 Result Code List )
9.
9. Read Read Monitoring Monitoring (Command)(Command)
Use to refresh (read) all system status
Command retrieves all system status changes from the connected control panel
Client will also be notified on status change via theMonitoring Status Changed event callback Request (Pascal STDCALL)
function ReadMonitoring(const PanelID: Cardinal; out XMLMonitoring: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve system status
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. Function parameter (XMLMonitoring) returns XMLData; see below:
<?xmlversion="1.0"?> <PanelInfo>
<AreaStatus Area1="Ready,Armed" Area2="Ready,Armed"/>
<ZoneStatusZone1="Closed" "Zone2="Closed"Zone3="Closed"Zone4="Closed"
Zone5="Closed"Zone6="Closed"Zone7="Closed"Zone8="Closed"Zone9="Closed"
Zone10="Closed"Zone11="Closed"Zone12="Closed"Zone13="Closed"Zone14="Closed"
Zone15="Closed"Zone16="Closed"/> …
</PanelInfo>
Parameter definition
1. See Area Status, Zone Status and PGM Statusfunctions
10. Register Panel (Command) 10. Register Panel (Command)
Use to register the connected control panel to the programmed IP receiver, see Write IP
Reporting command for IP receiver settings
Registration status can be retrieved via the Registration Status command
Registration allows client to receive account registration and event reporting from the control panel Client is notified every time an event is reported via the Receive Reporting Event
event callback
Request (Pascal STDCALL)
function RegisterPanel(const PanelID: Cardinal; XMLAction: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to register
Answer
Page 15 of 64 11. Control Area (Command)
11. Control Area (Command)
Use to control (arm, disarm..) areas
Area status can be retrieved via the Area Status command
Client is notified every time an area status changes via the Monitoring Status Changed
event callback
Request (Pascal STDCALL)
function ControlArea(const PanelID: Cardinal; XMLArea: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to control area(s)
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. XMLArea parameter must contain XML data; see below:
<?xmlversion="1.0"?> <objects>
<objectobjectname="TPanelControlXML"name=" Action"> <published>
<methodname="Command"readonly="False"type="UnicodeString"></method> <methodname="Timer "readonly="False"type="Integer ">0</method> <methodname="Items"readonly="False"type="UnicodeString"></method> </published>
</object> </objects>
Parameter definition
methodname Definition
"Command" Possible Values Description
" ARM" Arm selected area(s) "FORCE" Force arm selected area(s) "STAY" Stay arm selected area(s) "SLEEP" Sleep arm selected area(s) "INSTANT" Instant arm selected area(s) "DISARM" Disarm selected area(s) "Timer " Not used
"Items" All area # to affect, comma delimited ex: (1,2,3)
12. Area Status (Command) 12. Area Status (Command)
Use to retrieve (read) all area status Request (Pascal STDCALL)
function AreaStatus(const PanelID: Cardinal; out XMLStatus: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve the area status
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. Function parameter (XMLStatus) returns XMLData; see below:
<?xmlversion="1.0"?> <PanelInfo>
<AreaStatus Area1="Ready,Armed" Area2="Ready,Armed"/> </PanelInfo>
Parameter definition
Page 16 of 64
AreaStatus Area%d All area status comma delimited ex : "Ready,Armed"
Possible Values Description
"Ready" Area is ready to arm " Armed" Area is armed
" Armed Away" Area is armed in Away mode (full armed) " Armed Stay" Area is armed in Stay mode
" Armed No Entry" Area is armed in Instant mode
" Arm with voice module" Area has been armed via the voice module " Armed With Remote" Area has been armed with a remote control " Auto-Arm" Area has auto-armed
" Auto Stay Arm" Area has auto-armed in Stay mode "Sleep Armed" Area has been armed in Sleep mode "Pulse Alarm" Area is in alarm, siren is pulsed "Force Armed" Area is Force armed "In Alarm" Area is in alarm
"Silent Alarm" Area is in alarm, siren is silent " Audible Alarm" Area is in alarm, siren is audible
"24Hr Buzzer " Area is in alarm from 24hr zone, only keypad buzzer is activated
"Fire Alarm" Area is in fire alarm "In Exit Delay" Area is in Exit delay "In Entry Delay" Area is in Entry delay "In Fire Delay" Area is in Fire delay "In Lockout" Area is in lockout "In Intellizone Delay" Area is in Intellizone delay
"Police Code Delay" Area in Police code delay, waiting for a second zone to go into alarm before sending the police code to central monitoring station
"In Trouble" Area has a trouble present
" Alarm In Memory" During previous armed period, an alarm occurred in this area
"Bypassed" Zones are bypassed in this area "In Programming Mode" System is in programming mode "In StayD" Area has StayD activated
"Lockout" Area in lockout, too many invalid codes have been entered
"Zone In Memory" Area has a zone in memory "Follow Become Delay When
Bypassed"
Area has its delay zone bypassed, therefore it is using the Follow zone as a delay2
"Zones Supervision Trouble" Area has a zone supervision trouble "Cancel Alarm Reporting On
Disarming"
Area has canceled reporting due to disarming (user code entered)
"System Recently Closed" An alarm has been triggered during the recent closing delay
"Panic Alarm" A panic alarm has triggered an alarm in this area "Panic Medical Alarm" A medical panic has triggered an alarm in this area "Panic Fire Alarm" A fire panic has triggered an alarm in this area "Police Code Alarm" A second zone alarm was triggered during the
Police Code delay
"Strobe" Area in Strobe alarm, only deactivates at user code entry after alarm
"Burglary Alarm" Area in Burglary alarm "Global Memory" Area has a Global Memory "Global Bypass" Area has a global Bypass "Zone Exit Delay" Area has a zone in exit delay "Exit End" Area’s exit delay has ended "Entry Delay End" Area’s entry delay has ended "Intellizone End" Intellizone delay has ended
Page 17 of 64 "Bell Delay" Siren is activated and timed
"Bell End" Siren has turned off after the bell cutoff time "Tx. Delay" Transmission delay has been activated "Tx. Delay End" Transmission delay has elapsed
"No Exit Delay" Area has been armed, exit delay has been skipped "Remote Path" Entry path (in StayD) has been disable by a remote
control
"Pre-Alarm Delay" A zone with a pre-alarm delay has been activated "Bell Activated" Siren is activated
"In Disarm Delay" Area is in disarm delay
"Zones Low Battery" Area has zones indicating low battery "Zones Fire Loop Trouble" Area has zones in fire loop trouble "Zones Tampered" Area has zones tampered
13. Control Zone (Command) 13. Control Zone (Command)
Use to control (bypass, unbypass) zones
Zone status can be retrieved via the Zone Status command
Client is notified every time a zone status changes via the Monitoring Status Changed
event callback
Request (Pascal STDCALL)
function ControlZone(const PanelID: Cardinal; XMLZone: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to control zone
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. XMLZone parameter must contain XML data; see below:
<?xmlversion="1.0"?> <objects>
<objectobjectname="TPanelControlXML"name=" Action"> <published>
<methodname="Command"readonly="False"type="UnicodeString"></method> <methodname="Timer "readonly="False"type="Integer ">0</method> <methodname="Items"readonly="False"type="UnicodeString"></method> </published>
</object> </objects>
Parameter definition
methodname Definition
"Command" Possible Values Description
"BYPASS" Bypass selected zone(s) "UNBYPASS" Unbypass selected zone(s) "Timer " Not used
"Items" All zone # to affect, comma delimited ex: (1,2,3)
14. Zone Status (Command) 14. Zone Status (Command)
Use to retrieve (read) all zone status Request (Pascal STDCALL)
function ZoneStatus(const PanelID: Cardinal; out XMLStatus: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve the zone status
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. Function parameter (XMLStatus) returns XMLData; see below:
Page 18 of 64
<?xmlversion="1.0"?> <PanelInfo>
<ZoneStatusZone1="Closed"Zone2="Closed"Zone3="Closed"Zone4="Closed"
Zone5="Closed"Zone6="Closed"Zone7="Closed"Zone8="Closed"Zone9="Closed"
Zone10="Closed"Zone11="Closed"Zone12="Closed"Zone13="Closed"Zone14="Closed"
Zone15="Closed"Zone16="Closed"/> </PanelInfo>
Parameter definition
Sectionname Key name Definition
ZoneStatus Zone%d All zone status comma delimited ex : "Opened,In Alarm"
Possible Values Description
"Closed" Zone is closed "Enabled" Zone is programmed "Opened" Zone is opened "Tampered" Zone is tampered "In Alarm" Zone is in alarm
"In Entry Delay" Entry delay zone is triggered and is counting down
"Bypassed" Zone is bypassed
"Intellizone Delay" Intellizone delay has been initiated and the panel is waiting for another Intellizone to trigger for an alarm to be generated
"Supervision Trouble" Zone is in Supervision Trouble (wireless zone not communicating)
"Transmission Delay" Zone is in alarm and waiting for the transmission delay to expire to send reporting into the central monitoring station
"Shutdown" Zone has reached the maximum number of alarms in one armed period and has been shutdown by the panel
"In Fire Delay" Fire zone has triggered and is in Fire Delay " Alarm In Memory" An alarm memory is present on this zone (an
alarm happened in the last arming period)
15.
15. Control PControl PGM GM (Command)(Command)
Use to control (activate, deactivate, etc.) PGMs
PGM status can be retrieved via the PGM Status command
Client is notified every time a PGM status changes via the Monitoring Status Changed
event callback
Request (Pascal STDCALL)
function ControlPGM(const PanelID: Cardinal; XMLPGM: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to control pgm
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. XMLPGM parameter returns XML data; see below:
<?xmlversion="1.0"?> <objects>
<objectobjectname="TPanelControlXML"name=" Action"> <published>
<methodname="Command"readonly="False"type="UnicodeString"></method> <methodname="Timer "readonly="False"type="Integer ">0</method> <methodname="Items"readonly="False"type="UnicodeString"></method> </published>
Page 19 of 64
</object> </objects>
Parameter definition
methodname Definition
"Command" Possible Values Description
"ON" Activate selected PGM(s) "OFF" Deactivate selected PGM(s) "TEST" Test PGM(s), activate for few seconds "Timer " Activation time (duration) in seconds (not yet implementednot yet implemented)
"Items" All PGM # to affect, comma delimited ex: (1,2,3)
16. PGM Status (Command) 16. PGM Status (Command)
Use to retrieve (read) all PGM status Request (Pascal STDCALL)
function PGMStatus(const PanelID: Cardinal; out XMLStatus: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve the PGM status
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. Function parameter (XMLStatus) returns XMLData; see below:
<?xmlversion="1.0"?> <PanelInfo>
<PGMStatusPGM1="On,TimerMSec=100"PGM2="Off "PGM3="Unavailable"
PGM4="Unavailable"/> </PanelInfo>
Parameter definition
Sectionname Key name Definition
PGMStatus PGM%d All PGM status comma delimited ex :"On,TimerMSec=100"
Possible Values Description
"On" PGM is currently in the On position "Off " PGM is currently in the Off position "Tampered" PGM module has detected a tamper "Power Failure" Power failure detected on the PGM module "Low Battery" Low battery on the PGM module "Supervision Trouble" PGM module in supervision trouble "Timed" PGM is activated in timed mode "TimerMSec=%d" (%d =
remaining time in milliseconds)
PGM is activated in timed mode and this value indicates the remaining time before the PGM will deactive
"Slow Pulse Mode" PGM is pulsing slowly (on panel armed status)
"Fast Pulse Mode" PGM is pulsing quickly (on panel alarm status)
"Steady" PGM activated in steady mode "Unavailable" PGM status is unavailable
17. Control Door (Command) 17. Control Door (Command)
Use to control (unlock or lock) doors
Door status can be retrieved via the Door Status command
Page 20 of 64 event callback
Request (Pascal STDCALL)
function ControlDoor(const PanelID: Cardinal; XMLDoor: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to control door
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. XMLDoor parameter returns XML data; see below:
<?xmlversion="1.0"?> <objects>
<objectobjectname="TPanelControlXML"name=" Action"> <published>
<methodname="Command"readonly="False"type="UnicodeString"></method> <methodname="Timer "readonly="False"type="Integer ">0</method> <methodname="Items"readonly="False"type="UnicodeString"></method> </published>
</object> </objects>
Parameter definition
methodname Definition
"Command" Possible Values Description
"Lock" Lock selected door(s)
"Unlock"or “Unlock Steady” Unlock selected door(s) (steady mode) "Unlock Preset Time" Unlock selected door(s) (use preset time) "Unlock Custom Time" Unlock selected door(s) (use custom time) "Timer " Set custom unlock time in seconds
"Items" All door # to affect, comma delimited ex: (1,2,3)
18. Door Status (Command) 18. Door Status (Command)
Use to retrieve (read) all door status Request (Pascal STDCALL)
function DoorStatus(const PanelID: Cardinal; out XMLStatus: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve the door status
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. Function parameter (XMLStatus) returns XMLData; see below:
<?xmlversion="1.0"?> <PanelInfo>
<DoorStatusDoor1="Unlocked, REX"Door2="Locked" /> </PanelInfo>
Parameter definition
Sectionname Key name Definition
DoorStatus Door%d All PGM status comma delimited ex : "Opened, REX"
Possible Values Description
"Disabled" Door is not programmed
"Opened" Door contact is in the Open position "Locked" Door is locked (relay not active) "REX" Request to Exit had been triggered "Left Open Pre-Alarm" Door Left Open Pre-Alarm time has elapsed "Left Open Alarm" Door Left Open Alarm has elapsed "Forced Alarm" Door Forced Alarm has been triggered
Page 21 of 64 "Fire Alarm" Door has received a fire alarm from the panel
and, depending on the programming, may have unlocked
"Unlocked Timed by PC" Door has been Unlocked by the PC in Timed mode, will relock at the end of the period "Unlocked Steady by PC" Door has been Unlocked by the PC in Steady
mode, needs to be relocked manually "Tampered" Tamper detected on the door module " Access Granted" Access Granted has been received
"Unlocked by Schedule" Door has been unlocked by an Unlock Schedule "Unlocked by PC" Door has been unlocked by the PC
"Unlocked on Reader " Door has been unlocked by the reader "Unlocked in Shabbat" Door has been unlocked by the Shabbat mode "Door Armed" Door is armed, therefore locked
"Unlocked Delay Engaged"
Door unlocked delay has been activated
19. IP Reporting Status (Command) 19. IP Reporting Status (Command)
Use to retrieve (read) the IP reporting registration status Request (Pascal STDCALL)
function IPReportingStatus(const PanelID: Cardinal; out XMLStatus: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve the registration status
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. Function parameter (XMLStatus) returns XMLData; see below:
<?xmlversion="1.0"?> <objects>
<objectobjectname="TPanelReportingStatusXML"name="IPReportingStatus"> <published>
<methodname="Registered"readonly="True"type="Boolean">False</method> <methodname="RegistrationStatus"readonly="True"type="UnicodeString"></method> <methodname="RegistrationError "readonly="True"type="UnicodeString"></method> </published>
</object> </objects>
Parameter definition
methodname Definition
"Registered" The control panel is registered to an IP receiver "RegistrationStatus" Possible Values Description
"Unregistered" The control panel is not registered to any receiver "Registered" The control panel is registered to a receiver "Registration In Progress" The control panel is currently in registration process
with a receiver
"Registration Error " There is a registration error (see registration error bellow)
"RegistrationError " Possible Values Description
"No IP Module" There’s no IP module connected to the control panel "DHCP Error " The IP address of the IP module is invalid "No IP Address" The IP address of the IP module is invalid "No IP Port" The IP port of the IP module is invalid
"No IP Account" There’s no IP account # programmed in the control panel
"No Access Point Name" There’s no access point programmed in the control panel
Page 22 of 64 "Cannot Connect" Unable to connect to the receiver
"Invalid Profile" The profile ID programmed in the control panel is invalid
"Invalid Format" The reporting format programmed in the control panel is invalid
" Account in Use" The account # is already registered in the receiver "IP Full" The receiver is full (no more account available)
20. System Troubles (Command) 20. System Troubles (Command)
Use to retrieve (read) all system troubles Request (Pascal STDCALL)
function SystemTroubles(const PanelID: Cardinal; out XMLTroubles: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve the PGM status
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. Function parameter (XMLTroubles) returns XMLData; see below:
<?xmlversion="1.0"?> <PanelInfo>
<PanelTroubleTrouble1="AC Failure"Trouble2="Zone Tampered:1A000001"/> </PanelInfo>
Parameter definition
Sectionname Key name Definition
PanelTrouble Trouble%d All system troubles
Trouble (Name and Format) Parametereter
"Zone Tampered:%s" Separator = : , %s = Module Serial #
"Battery Failure" None "
AC Failure" None
"Wireless Low Battery:%s" Separator = : , %s = Module Serial #
"Fire Loop Trouble:%s" Separator = : , %s = Module Serial #
"Zone Supervision Trouble:%s" Separator = : , %s = Module Serial #
"
Auxiliary Current Limit" None "Bell Current Limit" None "Bell Absent" None "Dialer Trouble" None
"ROM/RAM Error:%s" Separator = : , %s = Module Serial #
"Smoke Detector CleanME:%s" Separator = : , %s = Module Serial #
"IP Unregistered" None "RF Siren Battery Fail" None "RF Siren AC Fail" None
"RF Repeater AC Fail:%s" Separator = : , %s = Module Serial #
"RF Repeater BATT Fail:%s" Separator = : , %s = Module Serial #
"RF Keypad AC Fail:%s" Separator = : , %s = Module Serial #
Page 23 of 64 Serial #
"IP Receiver 1 Fail to comm" None "IP Receiver 2 Fail to comm" None
"PGM Tamper:%d" Separator = : , %d = PGM # "PGM RF Supervision Trouble:%d" Separator = : , %d = PGM # "RF Zone Supervision Trouble:%s" Separator = : , %s = Module
Serial #
"Pulsed Alarm:%d" Separator = : , %d = Area # "Buzzer Alarm:%d" Separator = : , %d = Area # "Silent Alarm:%d" Separator = : , %d = Area # "In Alarm:%d" Separator = : , %d = Area # "RAM Error " None
"Panic Medical:%d" Separator = : , %d = Area # "Zone in Alarm:%d" Separator = : , %d = Zone # "
Alarm In Memory:%d" Separator = : , %d = Area # "TLM Trouble" None
"Clock Trouble" None
"Module TLM Trouble:%s" Separator = : , %s = Module Serial #
"Panel Failed To Communicate" Separator = : , %s = Module Serial #
"Module Tamper:%s" Separator = : , %s = Module Serial #
"Bus Module Communication Fault:%s"
Separator = : , %s = Module Serial #
"Module Failed to communicate:%s" Separator = : , %s = Module Serial #
"Module Printer Fault:%s" Separator = : , %s = Module Serial #
"Module AC Failure:%s" Separator = : , %s = Module Serial #
"Module Battery Failure:%s" Separator = : , %s = Module Serial #
"Module Supply Output Trouble:%s" Separator = : , %s = Module Serial #
"Module Supervision Loss Trouble:%s"
Separator = : , %s = Module Serial #
"Missing Keypad:%s" Separator = : , %s = Module Serial #
"Missing Module:%s" Separator = : , %s = Module Serial #
"Safety Mismatch" None "Global Bus Failure" None
"General communication failure:%s" Separator = : , %s = Module Serial #
"Bus Overload" None "Bus Module Misunderstand" None
"Wireless Missing Module:%s" Separator = : , %s = Module Serial #
"485 Power:%s" Separator = : , %s = Module Serial #
"Bus Failure:%s" Separator = : , %s = Module Serial #
"Module Overheat:%s" Separator = : , %s = Module Serial #
Page 24 of 64 Serial #
"Module Blown Fuse:%s" Separator = : , %s = Module Serial #
"Module RF Jam:%s" Separator = : , %s = Module Serial #
"Module VBus Failure:%s" Separator = : , %s = Module Serial #
"Module Anti-Mask Failure:%s" Separator = : , %s = Module Serial #
"Module X10 Failure:%s" Separator = : , %s = Module Serial #
"Module Overload Failure:%s" Separator = : , %s = Module Serial #
"Module Too Cold:%s" Separator = : , %s = Module Serial #
"Ethernet Link" None "Reporting Link" None "Reporting Report" None "IP Module No Service" None
"Zone Tamper:%d" Separator = : , %d = Zone # "Fire loop trouble" None
"GSM No Service" None "GSM No Service" None "Fail to communicate to pager report" None "Fail to communicate to personnal
channel 1"
None "Fail to communicate to personnal
channel 2"
None "Fail to communicate to personnal
channel 3" None "Fail to communicate to personnal
channel 4"
None "Fail to communicate to personnal
channel 5"
None "Fail to communicate to personnal
channel 6"
None "Fail to communicate to personnal
channel 7" None "Fail to communicate to personnal
channel 8"
None "Fail to communicate CSTN Path 1" None "Fail to communicate CSTN Path 2" None "Fail to communicate CSTN Path 3" None "Fail to communicate CSTN Channel GPRS 1"
None "Fail to communicate CSTN Channel GPRS 2"
None "Fail to communicate CSTN Channel
IP 1" None
"Fail to communicate CSTN Channel IP 2"
None "Fail to communicate CSTN Channel Land 1" None "Fail to communicate CSTN Channel Land 2" None "Fail to communicate CSTN Channel GSM 1" None
Page 25 of 64 "Fail to communicate CSTN Channel
GSM 2"
None "Land Line no service" None "Time lost" None "Console No Battery" None "Console Low Battery" None "Console AC Failure" None "Console Tamper " None "Console AC Overload" None "Global RF Tamper " None "Global RF Power Failure" None "Global RF Low Battery" None "Global RF Supervision Lost" None "RF Interference" None "GSM Missing Module" None "GSM Missing SIM Card 1" None "GSM Missing SIM Card 2" None "GPRS No Service" None "IP Missing Module" None "IP No Service" None "Internal Landline No Service" None "Internal GSM No Service" None "Internal GPRS No Service" None "Internal IP No Service" None
"Transparency Mask Trouble:%s" Separator = : , %s = Module Serial #
"Proximity Mask Trouble:%s" Separator = : , %s = Module Serial #
"Infrared Blind Attempt Mask Trouble:%s"
Separator = : , %s = Module Serial #
"Lens Dirty Warning Trouble:%s" Separator = : , %s = Module Serial #
"IP Receiver Supervision Failure:%s" Separator = : , %s = Module Serial #
"IP Receiver Unregistered:%s" Separator = : , %s = Module Serial #
"Module LAN Failure:%s" Separator = : , %s = Module Serial #
"Module WAN Failure:%s" Separator = : , %s = Module Serial #
21. Read Panel Time Stamp (Command) 21. Read Panel Time Stamp (Command)
Use to read the control panel current time stamp
Compare with local (DB) value to detect programming changes in the control panel Request (Pascal STDCALL)
function ReadTimeStamp(const PanelID: Cardinal; BlockID: Cardinal; out XMLTimeStamp: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve the time stamp 2. BlockID parameter identifies the time stamp to retrieve (0 = global)
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. XMLTimeStamp parameter returns time stamp
Page 26 of 64
methodname Definition
"BlockID" Retrieve time stamp on a specific section in control panel
Possible Values Description
0x00 Global time stamp (all programming)
0x01 Area programming time stamp
0x02 Zone programming time stamp
0x03 PGM programming time stamp
0x04 User programming time stamp
0x05 Door programming time stamp
0x06 Schedule programming time stamp
0x07 Holidays time stamp
0x08 Access Level programming time stamp
0x09 IP Reporting programming time stamp
22.
22. Read Panel Read Panel Date and Date and Time (Command)Time (Command)
Use to retrieve (read) control panel current date and time Request (Pascal STDCALL)
function ReadDateTime(const PanelID: Cardinal; var DateTime: Double): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve the date and time
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. DateTime parameter returns time value in double format
23.
23. Write Panel Write Panel Date and Date and Time (Command)Time (Command)
Use to update (write) control panel current date and time Request (Pascal STDCALL)
function WriteDateTime(const PanelID: Cardinal; DateTime: Double): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to update the date and time
Answer
1. Function call returns HResult (see 2.2.2 Result Code List ) 2. DateTime parameter must contain the new time value in double format
24. Read All Areas (Command) 24. Read All Areas (Command)
Use to retrieve (read) all areas programming Request (Pascal STDCALL)
function ReadAllAreas(const PanelID: Cardinal; out XMLAreas: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
Answer
1. Function call returns HResult (see 2.2.2 Result Code List )
2. Function parameter (XMLAreas) returns XMLData, see TPanelAreaXML
25.
25. Read Read Area Area (Command)(Command)
Use to retrieve (read) area programming Request (STDCALL)
function ReadArea(const PanelID: Cardinal; AreaNo: Cardinal; out XMLArea: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information 2. AreaNo parameter identifies the area # to read programming
Page 27 of 64 1. Function call returns HResult (see 2.2.2 Result Code List )
2. Function parameter (XMLArea) returns XMLData; see below:
<?xmlversion="1.0"?> <objects>
<objectobjectname="TPanelAreaXML"name=" Area1"> <published>
<methodname=" AreaNo"readonly="True"type="Integer ">0</method>
<methodname=" AreaLabel"readonly="False"type="UnicodeString"> Area</method> <methodname=" AreaEnabled"readonly="True"type="Boolean">False</method> <methodname=" AreaExitDelay"readonly="False"type="Integer ">60</method> <methodname=" AreaBellCutOffTimer "readonly="True"type="Integer ">240</method> <methodname=" AreaAutoArmingTime"readonly="False"type="Double">0</method> <methodname=" AreaNoMovementTimer "readonly="False"type="Integer ">0</method> <methodname=" AreaEntryDelay1"readonly="False"type="Integer ">0</method> <methodname=" AreaEntryDelay2"readonly="False"type="Integer ">0</method> <methodname=" AreaSpecialExitDelay"readonly="False"type="Integer ">0</method>
<methodname=" AreaNoMovementScheduleStartTimeA"readonly="False"type="Double">0</method> <methodname=" AreaNoMovementScheduleEndTimeA"readonly="False"type="Double">0</method> <methodname=" AreaNoMovementScheduleDaysA"readonly="False"type="UnicodeString"></method> <methodname=" AreaNoMovementScheduleStartTimeB"readonly="False"type="Double">0</method> <methodname=" AreaNoMovementScheduleEndTimeB"readonly="False"type="Double">0</method> <methodname=" AreaNoMovementScheduleDaysB"readonly="False"type="UnicodeString"></method> <methodname=" AreaArmingReportScheduleStartTimeA"readonly="True"type="Double">0</method> <methodname=" AreaArmingReportScheduleEndTimeA"readonly="True"type="Double">0</method> <methodname=" AreaArmingReportScheduleDaysA"readonly="True"type="UnicodeString"></method> <methodname=" AreaArmingReportScheduleStartTimeB"readonly="True"type="Double">0</method> <methodname=" AreaArmingReportScheduleEndTimeB"readonly="True"type="Double">0</method> <methodname=" AreaArmingReportScheduleDaysB"readonly="True"type="UnicodeString"></method> <methodname=" AreaDisarmingReportScheduleStartTimeA"readonly="True"type="Double">0</method> <methodname=" AreaDisarmingReportScheduleEndTimeA"readonly="True"type="Double">0</method> <methodname=" AreaDisarmingReportScheduleDaysA"readonly="True"type="UnicodeString"></method> <methodname=" AreaDisarmingReportScheduleStartTimeB"readonly="True"type="Double">0</method> <methodname=" AreaDisarmingReportScheduleEndTimeB"readonly="True"type="Double">0</method> <methodname=" AreaDisarmingReportScheduleDaysB"readonly="True"type="UnicodeString"></method> <methodname=" AreaNoExitDelayViaRemote"readonly="True"type="Boolean">False</method> <methodname=" AreaBellSirenEnable"readonly="True"type="Boolean">False</method> <methodname=" AreaSquawkOnAutoArm"readonly="False"type="Boolean">False</method> <methodname=" AreaSquawkOnArm"readonly="False"type="UnicodeString"></method> <methodname=" AreaSquawkOnDelay"readonly="False"type="UnicodeString"></method> <methodname=" AreaRingBackOption"readonly="False"type="UnicodeString"></method> <methodname=" AreaSquawkOnRemoteArm"readonly="False"type="Boolean">False</method> <methodname=" AreaOneTouchRegularArm"readonly="True"type="Boolean">False</method> <methodname=" AreaOneTouchStayArm"readonly="True"type="Boolean">False</method> <methodname=" AreaOneTouchInstantArm"readonly="True"type="Boolean">False</method> <methodname=" AreaOneTouchForceArm"readonly="True"type="Boolean">False</method> <methodname=" AreaOneTouchInstantDisarm"readonly="True"type="Boolean">False</method> <methodname=" AreaBypassProgramming"readonly="False"type="Boolean">False</method> <methodname=" AreaFollowAreas"readonly="True"type="UnicodeString"></method> <methodname=" AreaSwitchToStayIfNoEntry"readonly="True"type="Boolean">False</method> <methodname=" AreaSwitchToForceIfRegularArm"readonly="True"type="Boolean">False</method> <methodname=" AreaSwitchToForceIfStayArm"readonly="True"type="Boolean">False</method> <methodname=" AreaSwitchToEntryDelay2AfterDelay"readonly="True"type="Boolean">False</method> <methodname=" AreaMaxZoneBypassed"readonly="True"type="Integer ">0</method>
<methodname=" AreaAutoArmEnabled"readonly="True"type="Boolean">False</method> <methodname=" AreaPostPoneAutoArm"readonly="True"type="Integer ">0</method> <methodname=" AreaAutoArmingMethod"readonly="True"type="UnicodeString"></method>
<methodname=" AreaNoMovementAutoArmEnabled"readonly="False"type="Boolean">False</method> <methodname=" AreaPanic1"readonly="True"type="UnicodeString"></method>
Page 28 of 64
<methodname=" AreaPanic3"readonly="True"type="UnicodeString"></method>
<methodname=" AreaAutoZoneShutdownCounter "readonly="True"type="Integer ">0</method> <methodname=" AreaRecentClosing"readonly="True"type="Integer ">0</method>
<methodname=" AreaInvalidCodesBeforeLockout"readonly="True"type="Integer ">0</method> <methodname=" AreaKeypadLockoutDuration"readonly="True"type="Integer ">0</method> <methodname=" AreaRecycleAlarmDelay"readonly="True"type="Integer ">0</method> <methodname=" AreaRecycleCount"readonly="True"type="Integer ">0</method> <methodname=" AreaPoliceCodeDelay"readonly="True"type="Integer ">0</method>
<methodname=" AreaPoliceCodeOnZoneClosingOnly"readonly="True"type="Boolean">False</method> </published>
</object> </objects>
Parameter definition
methodname Definition
(MG/SP/EVO panels) (MG/SP/EVO panels)
"
AreaNo" Area # "
AreaLabel" Area label (up to 16 characters) "
AreaEnabled" Area is enabled (active) in the control panel "
AreaExitDelay" Area exit delay in seconds "
AreaBellCutOffTimer " Area bell cut off timer in seconds "
AreaAutoArmingTime" Area auto arming time (date time in double) "
AreaNoMovementTimer " Area no movement timer (value x 15 minutes) "
AreaEntryDelay1" Area entry delay 1
(EVO panel only) (EVO panel only)
"
AreaEntryDelay2" Area entry delay 2 "
AreaSpecialExitDelay" Area special exit delay (while arming from software) “
AreaNoMovementScheduleStartTimeA" Area arm no movement schedule 1, start time "
AreaNoMovementScheduleEndTimeA" Area arm no movement schedule 1, end time "
AreaNoMovementScheduleDaysA" Area arm no movement schedule 1, days (comma delimited, ex:“sun, tue”)
"
AreaNoMovementScheduleStartTimeB" Area arm no movement schedule 2, start time "
AreaNoMovementScheduleEndTimeB" Area arm no movement schedule 2, end time "
AreaNoMovementScheduleDaysB" Area arm no movement schedule 2, days (comma delimited, ex:“sun, tue”)
"
AreaArmingReportScheduleStartTimeA" Area report arming schedule 1, start time "
AreaArmingReportScheduleEndTimeA" Area report arming schedule 1, end time "
AreaArmingReportScheduleDaysA" Area report arming schedule 1, days (comma delimited, ex:“sun, tue”) "
AreaArmingReportScheduleStartTimeB" Area report arming schedule 2, start time "
AreaArmingReportScheduleEndTimeB" Area report arming schedule 2, end time "
AreaArmingReportScheduleDaysB" Area report arming schedule 2, days (comma delimited, ex:“sun, tue”) "
AreaDisarmingReportScheduleStartTimeA
"
Area report disarming schedule 1, start time "
AreaDisarmingReportScheduleEndTimeA" Area report disarming schedule 1, end time "
AreaDisarmingReportScheduleDaysA" Area report disarming schedule 1, days (comma delimited, ex:“sun, tue”) "
AreaDisarmingReportScheduleStartTimeB
"
Area report disarming schedule 2, start time "
AreaDisarmingReportScheduleEndTimeB" Area report disarming schedule 2, end time "
AreaDisarmingReportScheduleDaysB" Area report disarming schedule 2, days (comma delimited, ex:”sun, tue”) "
AreaNoExitDelayViaRemote" Area arm instantly (no exit delay) via remote "
AreaBellSirenEnable" Area bell siren is enabled and will trig upon alarm "
AreaSquawkOnAutoArm" Area squawk on auto arm is enabled "
AreaSquawkOnArm" Area squawk on arm is enabled "
AreaSquawkOnDelay" Area squawk on exit delay is enabled "
AreaRingBackOption" Area ring back option:
Possible Values
"Bell Squawk & Keypad Beep" "Bell Squawk"