Paradox API
Paradox API
Paradox API
Page 2 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
2.2.2. Paradox API - 2.2.2 Result Code List ............................................................................................................................................... 60
Page 3 of 64
1. Document History Log
Page 4 of 64
2. Project Overview
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
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 5 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.
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 6 of 64
2.2. API Definition
<?xml version="1.0"?>
<objects>
<object objectname="TModuleInfoXML" name="Module1">
<published>
<method name="MacString" readonly="True" type="UnicodeString"></method>
<method name="NetMaskString" readonly="True" type="UnicodeString"></method>
<method name="DHCPString" readonly="True" type="UnicodeString"></method>
<method name="TypeString" readonly="True" type="UnicodeString"></method>
<method name="IPString" readonly="True" type="UnicodeString"></method>
<method name="SiteNameString" readonly="True" type="UnicodeString"></method>
<method name="SiteIDString" readonly="True" type="UnicodeString"></method>
<method name="VersionString" readonly="True" type="UnicodeString"></method>
<method name="IPPortString" readonly="True" type="UnicodeString"></method>
<method name="WebPortString" readonly="True" type="UnicodeString"></method>
<method name="LanguageString" readonly="True" type="UnicodeString"></method>
<method name="SerialNoString" readonly="True" type="UnicodeString"></method>
<method name="HTTPSPortString" readonly="True" type="UnicodeString"></method>
<method name="DiscoverOnLAN" readonly="True" type="Boolean">False</method>
<method name="UseHTTPSString" readonly="True" type="UnicodeString"></method>
<method name="RegisteredToPMH" readonly="True" type="Boolean">False</method>
<method name="NetworkInterfaceIpAddress" readonly="True" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameter definition
Page 8 of 64
"UseHTTPSString" If the detected IP module use HTTPS
"RegisteredToPMH" If the detected IP module is registered to ParadoxMyHome
"NetworkInterfaceIp The network interface (IP address) where the IP module has been detected
Address"
<?xml version="1.0"?>
<objects>
<object objectname="TPanelSettingsXML" name="Settings">
<published>
<method name="PanelType" readonly="False" type="UnicodeString"></method>
<method name="ComType" readonly="False" type="UnicodeString"></method>
<method name="SiteID" readonly="False" type="UnicodeString"></method>
<method name="SerialNo" readonly="False" type="UnicodeString"></method>
<method name="IPAddress" readonly="False" type="UnicodeString"></method>
<method name="IPPort" readonly="False" type="Integer">0</method>
<method name="ComPort" readonly="False" type="Integer">0</method>
<method name="BaudRate" readonly="False" type="Integer">0</method>
<method name="SMSCallback" readonly="False" type="Boolean">False</method>
<method name="IPPassword" readonly="False" type="UnicodeString"></method>
<method name="UserCode" readonly="False" type="UnicodeString"></method>
<method name="SystemAlarmLanguage" readonly="False" type="UnicodeString"></method>
<method name="MonitoringPollingEnabled" readonly="False" type="Boolean">True</method>
</published>
</object>
</objects>
Parameter definition
Page 9 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 the SMS 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.
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
Page 10 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)
<objects>
<object objectname="TPanelInfoExXML" name="PanelInfoEx">
<published>
<method name="Description" readonly="True" type="UnicodeString"></method>
<method name="ProductID" readonly="True" type="Integer">0</method>
<method name="SerialNo" readonly="True" type="UnicodeString"></method>
<method name="Version" readonly="True" type="Integer">0</method>
<method name="Revision" readonly="True" type="Integer">0</method>
<method name="Build" readonly="True" type="Integer">0</method>
<method name="AreaCount" readonly="True" type="Integer">0</method>
<method name="ZoneCount" readonly="True" type="Integer">0</method>
<method name="PGMCount" readonly="True" type="Integer">0</method>
<method name="UserCount" readonly="True" type="Integer">0</method>
<method name="DoorCount" readonly="True" type="Integer">0</method>
<method name="ReceiverCount" readonly="True" type="Integer">0</method>
<method name="ScheduleCount" readonly="True" type="Integer">0</method>
<method name="AccessLevelCount" readonly="True" type="Integer">0</method>
<method name="UserNo" readonly="True" type="Integer">0</method>
<method name="UserPartitionAccess" readonly="True" type=" UnicodeString "></method>
</published>
</object>
</objects>
Parameter definition
Page 11 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”)
<?xml version="1.0"?>
<objects>
<object objectname="TIPDOXSettingsXML" name="Settings">
<published>
<method name="IPPassword" readonly="False" type="UnicodeString"></method>
<method name="ACCFilePath" readonly="False" type="UnicodeString"></method>
<method name="LogEnabled" readonly="False" type="Boolean">False</method>
<method name="LogLevel" readonly="False" type="Integer">0</method>
<method name="LogInterval" readonly="False" type="Integer">0</method>
<method name="LogFileLifeTime" readonly="False" type="Integer">0</method>
<method name="LogMaxDiskSize" readonly="False" type="Integer">0</method>
<method name="LogFileDir" readonly="False" type="UnicodeString"></method>
<method name="OutputEnabled" readonly="False" type="Boolean">False</method>
<method name="OutputType" readonly="False" type="UnicodeString"></method>
<method name="OutputCOMPort" readonly="False" type="Integer">0</method>
<method name="OutputBaudRate" readonly="False" type="Integer">0</method>
<method name="OutputUDP" readonly="False" type="Boolean">False</method>
<method name="OutputIPPort" readonly="False" type="Integer">0</method>
<method name="OutputIPAddress" readonly="False" type="UnicodeString"></method>
<method name="OutputProtocolID" readonly="False" type="UnicodeString"></method>
<method name="OutputReceiverNo" readonly="False" type="Integer">0</method>
<method name="OutputLineNo" readonly="False" type="Integer">0</method>
<method name="OutputHeaderID" readonly="False" type="Integer">0</method>
<method name="OutputTrailerID" readonly="False" type="Integer">0</method>
<method name="OutputAckNack" readonly="False" type="Boolean">False</method>
<method name="OutputWaitForAck" readonly="False" type="Integer">0</method>
<method name="OutputTestMessage" readonly="False" type="Boolean">False</method>
<method name="OutputTestMsgDelay" readonly="False" type="Integer">0</method>
<method name="OutputForcePartition" readonly="False" type="Boolean">False</method>
<method name="OutputPartitionNo" readonly="False" type="Integer">0</method>
<method name="OutputUseMACAddress" readonly="False" type="Boolean">False</method>
<method name="MonitoringAccountNo" readonly="False" type="UnicodeString"></method>
<method name="WANId" readonly="False" type="Integer">0</method>
<method name="WANEnabled" readonly="False" type="Boolean">False</method>
<method name="WANPort" readonly="False" type="Integer">0</method>
<method name="WANAddress" readonly="False" type="UnicodeString"></method>
</published>
</object>
Page 12 of 64
</objects>
Parameter definition
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
Page 13 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)
<?xml version="1.0"?>
<PanelInfo>
<AreaStatus Area1="Ready,Armed" Area2="Ready,Armed"/>
<ZoneStatus Zone1="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 Status functions
Page 14 of 64
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:
<?xml version="1.0"?>
<objects>
<object objectname="TPanelControlXML" name="Action">
<published>
<method name="Command" readonly="False" type="UnicodeString"></method>
<method name="Timer" readonly="False" type="Integer">0</method>
<method name="Items" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameter definition
<?xml version="1.0"?>
<PanelInfo>
<AreaStatus Area1="Ready,Armed" Area2="Ready,Armed"/>
</PanelInfo>
Parameter definition
Page 15 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 Area has its delay zone bypassed, therefore it is
Bypassed" using the Follow zone as a delay2
"Zones Supervision Trouble" Area has a zone supervision trouble
"Cancel Alarm Reporting On Area has canceled reporting due to disarming (user
Disarming" 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 16 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
<?xml version="1.0"?>
<objects>
<object objectname="TPanelControlXML" name="Action">
<published>
<method name="Command" readonly="False" type="UnicodeString"></method>
<method name="Timer" readonly="False" type="Integer">0</method>
<method name="Items" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameter definition
Page 17 of 64
<?xml version="1.0"?>
<PanelInfo>
<ZoneStatus Zone1="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
<?xml version="1.0"?>
<objects>
<object objectname="TPanelControlXML" name="Action">
<published>
<method name="Command" readonly="False" type="UnicodeString"></method>
<method name="Timer" readonly="False" type="Integer">0</method>
<method name="Items" readonly="False" type="UnicodeString"></method>
</published>
Page 18 of 64
</object>
</objects>
Parameter definition
<?xml version="1.0"?>
<PanelInfo>
<PGMStatus PGM1="On,TimerMSec=100" PGM2="Off" PGM3="Unavailable"
PGM4="Unavailable"/>
</PanelInfo>
Parameter definition
Page 19 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:
<?xml version="1.0"?>
<objects>
<object objectname="TPanelControlXML" name="Action">
<published>
<method name="Command" readonly="False" type="UnicodeString"></method>
<method name="Timer" readonly="False" type="Integer">0</method>
<method name="Items" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameter definition
<?xml version="1.0"?>
<PanelInfo>
<DoorStatus Door1="Unlocked, REX" Door2="Locked" />
</PanelInfo>
Parameter definition
Page 20 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 Door unlocked delay has been activated
Engaged"
<?xml version="1.0"?>
<objects>
<object objectname="TPanelReportingStatusXML" name="IPReportingStatus">
<published>
<method name="Registered" readonly="True" type="Boolean">False</method>
<method name="RegistrationStatus" readonly="True" type="UnicodeString"></method>
<method name="RegistrationError" readonly="True" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameter definition
Page 21 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)
<?xml version="1.0"?>
<PanelInfo>
<PanelTrouble Trouble1="AC Failure" Trouble2="Zone Tampered:1A000001"/>
</PanelInfo>
Parameter definition
Page 22 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 Separator = : , %s = Module
Fault:%s" 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 Separator = : , %s = Module
Trouble:%s" 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 #
"Module Output Failure:%s" Separator = : , %s = Module
Page 23 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 None
channel 1"
"Fail to communicate to personnal None
channel 2"
"Fail to communicate to personnal None
channel 3"
"Fail to communicate to personnal None
channel 4"
"Fail to communicate to personnal None
channel 5"
"Fail to communicate to personnal None
channel 6"
"Fail to communicate to personnal None
channel 7"
"Fail to communicate to personnal None
channel 8"
"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 None
GPRS 1"
"Fail to communicate CSTN Channel None
GPRS 2"
"Fail to communicate CSTN Channel None
IP 1"
"Fail to communicate CSTN Channel None
IP 2"
"Fail to communicate CSTN Channel None
Land 1"
"Fail to communicate CSTN Channel None
Land 2"
"Fail to communicate CSTN Channel None
GSM 1"
Page 24 of 64
"Fail to communicate CSTN Channel None
GSM 2"
"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 Separator = : , %s = Module
Trouble:%s " 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 #
Page 25 of 64
method name 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
Page 26 of 64
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Function parameter (XMLArea) returns XMLData; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TPanelAreaXML" name="Area1">
<published>
<method name="AreaNo" readonly="True" type="Integer">0</method>
<method name="AreaLabel" readonly="False" type="UnicodeString">Area</method>
<method name="AreaEnabled" readonly="True" type="Boolean">False</method>
<method name="AreaExitDelay" readonly="False" type="Integer">60</method>
<method name="AreaBellCutOffTimer" readonly="True" type="Integer">240</method>
<method name="AreaAutoArmingTime" readonly="False" type="Double">0</method>
<method name="AreaNoMovementTimer" readonly="False" type="Integer">0</method>
<method name="AreaEntryDelay1" readonly="False" type="Integer">0</method>
<method name="AreaEntryDelay2" readonly="False" type="Integer">0</method>
<method name="AreaSpecialExitDelay" readonly="False" type="Integer">0</method>
<method name="AreaNoMovementScheduleStartTimeA" readonly="False" type="Double">0</method>
<method name="AreaNoMovementScheduleEndTimeA" readonly="False" type="Double">0</method>
<method name="AreaNoMovementScheduleDaysA" readonly="False" type="UnicodeString"></method>
<method name="AreaNoMovementScheduleStartTimeB" readonly="False" type="Double">0</method>
<method name="AreaNoMovementScheduleEndTimeB" readonly="False" type="Double">0</method>
<method name="AreaNoMovementScheduleDaysB" readonly="False" type="UnicodeString"></method>
<method name="AreaArmingReportScheduleStartTimeA" readonly="True" type="Double">0</method>
<method name="AreaArmingReportScheduleEndTimeA" readonly="True" type="Double">0</method>
<method name="AreaArmingReportScheduleDaysA" readonly="True" type="UnicodeString"></method>
<method name="AreaArmingReportScheduleStartTimeB" readonly="True" type="Double">0</method>
<method name="AreaArmingReportScheduleEndTimeB" readonly="True" type="Double">0</method>
<method name="AreaArmingReportScheduleDaysB" readonly="True" type="UnicodeString"></method>
<method name="AreaDisarmingReportScheduleStartTimeA" readonly="True" type="Double">0</method>
<method name="AreaDisarmingReportScheduleEndTimeA" readonly="True" type="Double">0</method>
<method name="AreaDisarmingReportScheduleDaysA" readonly="True" type="UnicodeString"></method>
<method name="AreaDisarmingReportScheduleStartTimeB" readonly="True" type="Double">0</method>
<method name="AreaDisarmingReportScheduleEndTimeB" readonly="True" type="Double">0</method>
<method name="AreaDisarmingReportScheduleDaysB" readonly="True" type="UnicodeString"></method>
<method name="AreaNoExitDelayViaRemote" readonly="True" type="Boolean">False</method>
<method name="AreaBellSirenEnable" readonly="True" type="Boolean">False</method>
<method name="AreaSquawkOnAutoArm" readonly="False" type="Boolean">False</method>
<method name="AreaSquawkOnArm" readonly="False" type="UnicodeString"></method>
<method name="AreaSquawkOnDelay" readonly="False" type="UnicodeString"></method>
<method name="AreaRingBackOption" readonly="False" type="UnicodeString"></method>
<method name="AreaSquawkOnRemoteArm" readonly="False" type="Boolean">False</method>
<method name="AreaOneTouchRegularArm" readonly="True" type="Boolean">False</method>
<method name="AreaOneTouchStayArm" readonly="True" type="Boolean">False</method>
<method name="AreaOneTouchInstantArm" readonly="True" type="Boolean">False</method>
<method name="AreaOneTouchForceArm" readonly="True" type="Boolean">False</method>
<method name="AreaOneTouchInstantDisarm" readonly="True" type="Boolean">False</method>
<method name="AreaBypassProgramming" readonly="False" type="Boolean">False</method>
<method name="AreaFollowAreas" readonly="True" type="UnicodeString"></method>
<method name="AreaSwitchToStayIfNoEntry" readonly="True" type="Boolean">False</method>
<method name="AreaSwitchToForceIfRegularArm" readonly="True" type="Boolean">False</method>
<method name="AreaSwitchToForceIfStayArm" readonly="True" type="Boolean">False</method>
<method name="AreaSwitchToEntryDelay2AfterDelay" readonly="True" type="Boolean">False</method>
<method name="AreaMaxZoneBypassed" readonly="True" type="Integer">0</method>
<method name="AreaAutoArmEnabled" readonly="True" type="Boolean">False</method>
<method name="AreaPostPoneAutoArm" readonly="True" type="Integer">0</method>
<method name="AreaAutoArmingMethod" readonly="True" type="UnicodeString"></method>
<method name="AreaNoMovementAutoArmEnabled" readonly="False" type="Boolean">False</method>
<method name="AreaPanic1" readonly="True" type="UnicodeString"></method>
<method name="AreaPanic2" readonly="True" type="UnicodeString"></method>
Page 27 of 64
<method name="AreaPanic3" readonly="True" type="UnicodeString"></method>
<method name="AreaAutoZoneShutdownCounter" readonly="True" type="Integer">0</method>
<method name="AreaRecentClosing" readonly="True" type="Integer">0</method>
<method name="AreaInvalidCodesBeforeLockout" readonly="True" type="Integer">0</method>
<method name="AreaKeypadLockoutDuration" readonly="True" type="Integer">0</method>
<method name="AreaRecycleAlarmDelay" readonly="True" type="Integer">0</method>
<method name="AreaRecycleCount" readonly="True" type="Integer">0</method>
<method name="AreaPoliceCodeDelay" readonly="True" type="Integer">0</method>
<method name="AreaPoliceCodeOnZoneClosingOnly" readonly="True" type="Boolean">False</method>
</published>
</object>
</objects>
Parameter definition
Page 28 of 64
"Keypad Beep"
Page 29 of 64
2. Function parameter (XMLZone) returns XMLData; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TPanelZoneXML" name="Zone1">
<published>
<method name="ZoneNo" readonly="True" type="Integer">0</method>
<method name="ZoneEnabled" readonly="True" type="Boolean">False</method>
<method name="ZoneLabel" readonly="False" type="UnicodeString">Zone</method>
<method name="ZoneSerialNo" readonly="True" type="UnicodeString"></method>
<method name="ZoneInputNo" readonly="True" type="Integer">0</method>
<method name="ZonePartition" readonly="True" type="Integer">0</method>
<method name="ZoneDefinition" readonly="True" type="UnicodeString"></method>
<method name="ZoneAlarmType" readonly="True" type="UnicodeString"></method>
<method name="ZoneStay" readonly="True" type="Boolean">False</method>
<method name="ZoneForce" readonly="True" type="Boolean">False</method>
<method name="ZoneBypass" readonly="True" type="Boolean">False</method>
<method name="ZoneAutoShutdown" readonly="True" type="Boolean">False</method>
<method name="ZoneRFSupervision" readonly="True" type="Boolean">False</method>
<method name="ZoneIntellizone" readonly="True" type="Boolean">False</method>
<method name="ZoneDelayBeforeTransmission" readonly="True" type="Boolean">False</method>
<method name="ZoneTXSerialNo" readonly="True" type="UnicodeString"></method>
<method name="ZoneTamperFollowGlobalSetting" readonly="True" type="Boolean">False</method>
<method name="ZoneTamperSupervision" readonly="True" type="UnicodeString"></method>
<method name="ZoneAntiMaskFollowGlobalSetting" readonly="True" type="Boolean">False</method>
<method name="ZoneAntiMaskSupervision" readonly="True" type="UnicodeString"></method>
<method name="ZoneBuzzerAlarmWhenDisarm" readonly="True" type="Boolean">False</method>
<method name="ZoneBuzzerAlarmReported" readonly="True" type="Boolean">False</method>
</published>
</object>
</objects>
Parameter definition
Page 30 of 64
"Custom Zone Template 3" "ZX8 Input Tamper"
"Custom Zone Template 4"
"ZoneAlarmType" Zone alarm type
Possible Values
"Steady Alarm"
"Pulsed Alarm"
"Silent Alarm"
"Report Only"
"Unknown"
"ZoneStay" Zone stay is enabled
"ZoneForce" Zone force is enabled
"ZoneBypass" Zone bypass is enabled
"ZoneAutoShutdown" Zone auto shutdown is enabled
"ZoneRFSupervision" Zone RF supervision is enabled
"ZoneIntellizone" Zone intellizone is enabled
"ZoneDelayBeforeTransmission" Zone delay before transmission in seconds
(EVO panel only)
"ZoneTXSerialNo Zone transmitter serial #
"ZoneTamperFollowGlobalSetting" Zone tamper follow global panel settings
"ZoneTamperSupervision" Zone tamper supervision is enabled
"ZoneAntiMaskFollowGlobalSetting Zone anti mask follow global panel settings
"
"ZoneAntiMaskSupervision" Zone anti mask supervision is enabled
"ZoneBuzzerAlarmWhenDisarm" Zone generates buzzer alarm on disarm
"ZoneBuzzerAlarmReported" Zone buzzer alarm is reported to central station
<?xml version="1.0"?>
<objects>
<object objectname="TPanelPGMXML" name="PGM1">
<published>
<method name="PGMNo" readonly="True" type="Integer">0</method>
<method name="PGMLabel" readonly="False" type="UnicodeString"></method>
<method name="PGMTimer" readonly="True" type="Integer">0</method>
Page 31 of 64
<method name="PGMSerialNo" readonly="True" type="UnicodeString"></method>
<method name="PGMInputNo" readonly="True" type="Integer">0</method>
<method name="PGMActivationEvent" readonly="True" type="UnicodeString"></method>
<method name="PGMDeactivationEvent" readonly="True" type="UnicodeString"></method>
<method name="PGMActvationMode" readonly="True" type="UnicodeString"></method>
<method name="PGMPulseEvery30Secs" readonly="True" type="Boolean">False</method>
<method name="PGMPulseOnAnyAlarm" readonly="True" type="Boolean">False</method>
<method name="PGMInitialState" readonly="True" type=" UnicodeString "> </method>
</published>
</object>
</objects>
Parameter definition
Page 32 of 64
<?xml version="1.0"?>
<objects>
<object objectname="TPanelDoorXML" name="Door1">
<published>
<method name="DoorNo" readonly="True" type="Integer">0</method>
<method name="DoorLabel" readonly="False" type="UnicodeString"></method>
<method name="DoorEnabled" readonly="True" type="Boolean">False</method>
<method name="DoorSerialNo" readonly="True" type="UnicodeString"></method>
<method name="DoorAreaAssignment" readonly="True" type="UnicodeString"></method>
<method name="DoorAccessEnabled" readonly="True" type="Boolean">False</method>
<method name="DoorAccessOption" readonly="True" type="UnicodeString"></method>
<method name="DoorAccessCodeOnKeypad" readonly="True" type="Boolean">False</method>
<method name="DoorAccessCardAndCode" readonly="True" type="Boolean">False</method>
<method name="DoorAccessArmRestricted" readonly="True" type="Boolean">False</method>
<method name="DoorAccessDisarmRestricted" readonly="True" type="Boolean">False</method>
<method name="DoorBurglaryAlarmOnForced" readonly="True" type="Boolean">False</method>
<method name="DoorUnlockScheduleStartTimeA" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleEndTimeA" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleDaysA" readonly="False" type="UnicodeString"></method>
<method name="DoorUnlockScheduleStartTimeB" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleEndTimeB" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleDaysB" readonly="False" type="UnicodeString"></method>
<method name="DoorSafeModeEnabled" readonly="False" type="Boolean">False</method>
<method name="DoorSameModeCard1" readonly="False" type="UnicodeString"></method>
<method name="DoorSameModeCard2" readonly="False" type="UnicodeString"></method>
<method name="DoorSameModeCard3" readonly="False" type="UnicodeString"></method>
<method name="DoorCardActivatesUnlockedSchedule" readonly="True" type="Boolean">False</method>
<method name="DoorUnlockDoorOnFireAlarm" readonly="True" type="Boolean">False</method>
<method name="DoorUnlockOnRequestForExit" readonly="True" type="Boolean">False</method>
</published>
</object>
</objects>
Parameter definition
Page 33 of 64
“DoorSameModeCard1“ Door same mode card # (1) (format: “000:00000”)
“DoorSameModeCard2“ Door same mode card # (2) (format: “000:00000”)
“DoorSameModeCard3“ Door same mode card # (3) (format: “000:00000”)
“DoorCardActivatesUnlockedSchedule“ Door access via card activates unlock schedule
“DoorUnlockDoorOnFireAlarm“ Door unlocks on fire alarm
“DoorUnlockOnRequestForExit“ Door unlocks on request for exit
<?xml version="1.0"?>
<objects>
<object objectname="TPanelDoorXML" name="Door1">
<published>
<method name="DoorLabel" readonly="False" type="UnicodeString"></method>
<method name="DoorUnlockScheduleStartTimeA" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleEndTimeA" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleDaysA" readonly="False" type="UnicodeString"></method>
<method name="DoorUnlockScheduleStartTimeB" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleEndTimeB" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleDaysB" readonly="False" type="UnicodeString"></method>
<method name="DoorSafeModeEnabled" readonly="False" type="Boolean">False</method>
<method name="DoorSameModeCard1" readonly="False" type="UnicodeString"></method>
<method name="DoorSameModeCard2" readonly="False" type="UnicodeString"></method>
<method name="DoorSameModeCard3" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameters definition
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
Page 34 of 64
33. Read All Schedules (Command)
Use to retrieve (read) all schedules programming
Request (Pascal STDCALL)
function ReadAllSchedules(const PanelID: Cardinal; out XMLSchedules: 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 (XMLSchedules) returns XMLData, see TPanelScheduleXML
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Function parameter (XMLSchedule) returns XMLData; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TPanelScheduleXML" name="Schedule1">
<published>
<method name="ScheduleNo" readonly="True" type="Integer">0</method>
<method name="ScheduleLabel" readonly="False" type="UnicodeString"></method>
<method name="ScheduleBackupNo" readonly="False" type="Integer">0</method>
<method name="ScheduleStartTimeIntervalA" readonly="False" type="Double">0</method>
<method name="ScheduleEndTimeIntervalA" readonly="False" type="Double">0</method>
<method name="ScheduleDaysIntervalA" readonly="False" type="UnicodeString"></method>
<method name="ScheduleStartTimeIntervalB" readonly="False" type="Double">0</method>
<method name="ScheduleEndTimeIntervalB" readonly="False" type="Double">0</method>
<method name="ScheduleDaysIntervalB" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameter definition
Page 35 of 64
Use to add or update (write) schedule programming
Request (Pascal STDCALL)
function WriteSchedule(const PanelID: Cardinal; ScheduleNo: Cardinal; XMLSchedule:
WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
2. ScheduleNo parameter identifies the schedule # to write programming
3. Function parameter (XMLSchedule) must contain XMLData; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TPanelScheduleXML" name="Schedule1">
<published>
<method name="ScheduleLabel" readonly="False" type="UnicodeString"></method>
<method name="ScheduleBackupNo" readonly="False" type="Integer">0</method>
<method name="ScheduleStartTimeIntervalA" readonly="False" type="Double">0</method>
<method name="ScheduleEndTimeIntervalA" readonly="False" type="Double">0</method>
<method name="ScheduleDaysIntervalA" readonly="False" type="UnicodeString"></method>
<method name="ScheduleStartTimeIntervalB" readonly="False" type="Double">0</method>
<method name="ScheduleEndTimeIntervalB" readonly="False" type="Double">0</method>
<method name="ScheduleDaysIntervalB" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameters definition
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
Page 36 of 64
function ReadAccessLevel(const PanelID: Cardinal; AccessLevelNo: Cardinal; out
XMLAccessLevel: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
2. AccessLevelNo parameter identifies the access level # to read programming
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Function parameter (XMLAccessLevel) returns XMLData; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TPanelAccessLevelXML" name="AccessLevel1">
<published>
<method name="AccessLevelNo" readonly="True" type="Integer">0</method>
<method name="AccessLevelLabel" readonly="False" type="UnicodeString"></method>
<method name="AccessLevelDoors" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameter definition
<?xml version="1.0"?>
<objects>
<object objectname="TPanelAccessLevelXML" name="AccessLevel1">
<published>
<method name="AccessLevelLabel" readonly="False" type="UnicodeString"></method>
<method name="AccessLevelDoors" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameters definition
Page 37 of 64
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
<?xml version="1.0"?>
<PanelInfo>
<PanelHolidays Holidays="01/10, 05/12"/>
</PanelInfo>
Parameter definition
<?xml version="1.0"?>
<PanelInfo>
<PanelHolidays Holidays="01/10, 05/12" />
</PanelInfo>
Parameters definition
Page 38 of 64
42. Read User (Command)
Use to retrieve (read) user programming
Only the system master or the master user can read user programming
Request (Pascal STDCALL)
function ReadUser(const PanelID: Cardinal; UserNo: Cardinal; out XMLUser: WideString):
HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
2. UserNo parameter identifies the user # to read programming
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Function parameter (XMLUser) returns XMLData; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TPanelUserXML" name="User1">
<published>
<method name="UserNo" readonly="True" type="Integer">0</method>
<method name="UserName" readonly="False" type="UnicodeString"></method>
<method name="UserUsed" readonly="False" type="Boolean">False</method>
<method name="UserCode" readonly="False" type="UnicodeString"></method>
<method name="UserCard" readonly="False" type="UnicodeString"></method>
<method name="UserRemoteSerialNo" readonly="False" type="UnicodeString"></method>
<method name="UserPartitionAccess" readonly="False" type="UnicodeString"></method>
<method name="UserCanBypass" readonly="False" type="Boolean">False</method>
<method name="UserCanStaySleepArm" readonly="False" type="Boolean">False</method>
<method name="UserCanForceArm" readonly="False" type="Boolean">False</method>
<method name="UserCanArmOnly" readonly="False" type="Boolean">False</method>
<method name="UserCanActivationPGMOnly" readonly="False" type="Boolean">False</method>
<method name="UserCanDuress" readonly="False" type="Boolean">False</method>
<method name="UserType" readonly="False" type="UnicodeString"></method>
<method name="UserAccessControlEnabled" readonly="False" type="Boolean">False</method>
<method name="UserAccessLevelNo" readonly="False" type="UnicodeString"></method>
<method name="UserAccessScheduleNo" readonly="False" type="UnicodeString"></method>
<method name="UserExtendedUnlockTime" readonly="False" type="Boolean">False</method>
<method name="UserAddScheduleTolerance" readonly="False" type="Boolean">False</method>
<method name="UserCodeFollowsSchedule" readonly="False" type="Boolean">False</method>
<method name="UserArmWithCard" readonly="False" type="UnicodeString"></method>
<method name="UserCardDisarmOnAccess" readonly="False" type="Boolean">False</method>
<method name="UserCardAndPINDisarm" readonly="False" type="Boolean">False</method>
<method name="UserCodeLength" readonly="False" type="UnicodeString">4 Digits</method>
</published>
</object>
</objects>
Parameter definition
Page 39 of 64
"UserPartitionAccess" User area access (comma delimited, ex: “1,2”)
"UserCanBypass" User can bypass is enabled
"UserCanStaySleepArm" User can stay / sleep arm is enabled
"UserCanForceArm" User can force arm is enabled
"UserCanArmOnly" User can arm only (no disarm) is enabled
"UserCanActivationPGMOnly User can activate PGM only (no deactivate) is enabled
"
"UserCanDuress" User can duress is enabled
(EVO panel only)
"UserType" User type:
Possible Values
"Regular"
"Master"
"Full Master"
"UserAccessControlEnabled" User access control is enabled
"UserAccessLevelNo" User access level assignment (see Access Level command)
"UserAccessScheduleNo" User access schedule assignment (see Schedule command)
"UserExtendedUnlockTime" User extended unlock period is enabled
"UserAddScheduleTolerance" User extended schedule tolerance is enabled
"UserCodeFollowsSchedule" User code follows schedule
"UserArmWithCard" User can arm with card
"UserCardDisarmOnAccess" User can disarm system on card access
"UserCardAndPINDisarm" User must enter a valid card and PIN to disarm the system
"UserCodeLength" User code length:
Possible Values
"4 Digits"
"6 Digits"
"Flexible"
<?xml version="1.0"?>
<objects>
<object objectname="TPanelUserXML" name="User1">
<published>
Page 40 of 64
<method name="UserName" readonly="False" type="UnicodeString"></method>
<method name="UserUsed" readonly="False" type="Boolean">False</method>
<method name="UserCode" readonly="False" type="UnicodeString"></method>
<method name="UserCard" readonly="False" type="UnicodeString"></method>
<method name="UserRemoteSerialNo" readonly="False" type="UnicodeString"></method>
<method name="UserPartitionAccess" readonly="False" type="UnicodeString"></method>
<method name="UserCanBypass" readonly="False" type="Boolean">False</method>
<method name="UserCanStaySleepArm" readonly="False" type="Boolean">False</method>
<method name="UserCanForceArm" readonly="False" type="Boolean">False</method>
<method name="UserCanArmOnly" readonly="False" type="Boolean">False</method>
<method name="UserCanActivationPGMOnly" readonly="False" type="Boolean">False</method>
<method name="UserCanDuress" readonly="False" type="Boolean">False</method>
<method name="UserType" readonly="False" type="UnicodeString"></method>
<method name="UserAccessControlEnabled" readonly="False" type="Boolean">False</method>
<method name="UserAccessLevelNo" readonly="False" type="UnicodeString"></method>
<method name="UserAccessScheduleNo" readonly="False" type="UnicodeString"></method>
<method name="UserExtendedUnlockTime" readonly="False" type="Boolean">False</method>
<method name="UserAddScheduleTolerance" readonly="False" type="Boolean">False</method>
<method name="UserCodeFollowsSchedule" readonly="False" type="Boolean">False</method>
<method name="UserArmWithCard" readonly="False" type="UnicodeString"></method>
<method name="UserCardDisarmOnAccess" readonly="False" type="Boolean">False</method>
<method name="UserCardAndPINDisarm" readonly="False" type="Boolean">False</method>
<method name="UserCodeLength" readonly="False" type="UnicodeString">4 Digits</method>
</published>
</object>
</objects
Parameters definition
Page 41 of 64
"UserCardDisarmOnAccess" User can disarm system on card access
"UserCardAndPINDisarm" User must enter a valid card and PIN to disarm the system
"UserCodeLength" User code length:
Possible Values
"4 Digits"
"6 Digits"
"Flexible"
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
<?xml version="1.0"?>
<objects>
<object objectname="TPanelIPReportingXML" name="IPReporting">
<published>
<method name="ReceiverNo" readonly="True" type="Integer">0</method>
<method name="ReportingIPEnabled" readonly="True" type="Boolean">False</method>
<method name="ReceiverIPPassword" readonly="False" type="UnicodeString"></method>
<method name="ReceiverIPProfile" readonly="False" type="Integer">0</method>
<method name="Area1AccountNo" readonly="False" type="UnicodeString"></method>
<method name="Area2AccountNo" readonly="False" type="UnicodeString"></method>
<method name="WAN1IPAddress" readonly="False" type="UnicodeString"></method>
<method name="WAN1IPPort" readonly="False" type="Integer">0</method>
<method name="WAN2IPAddress" readonly="False" type="UnicodeString"></method>
<method name="WAN2IPPort" readonly="False" type="Integer">0</method>
<method name="ParallelReporting" readonly="False" type="Boolean">False</method>
<method name="ServiceFailureOptions" readonly="False" type="UnicodeString"></method>
<method name="GPRSAccessPointName" readonly="False" type="UnicodeString"></method>
<method name="GPRSUserName" readonly="False" type="UnicodeString"></method>
<method name="GPRSPassword" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameter definition
Page 42 of 64
"WAN2IPAddress" WAN2 IP address of the receiver
"WAN2IPPort" WAN2 IP port of the receiver
"ParallelReporting" Parallel reporting is enabled
"ServiceFailureOptions" Service failure options
Possible Values
"Disabled"
"Trouble Only When Audible Alarm"
"Disarmed = Trouble / Armed = Audible Alarm"
"Silent Alarm Becomes Audible Alarm"
"GPRSAccessPointName" ACCESS point name that the PCS module must use to connect to a GPRS network
"GPRSUserName" User name that the PCS module must use to connect to a GPRS network
"GPRSPassword" Password that the PCS module must use to connect to a GPRS network
<?xml version="1.0"?>
<objects>
<object objectname="TPanelIPReportingXML" name="IPReporting">
<published>
<method name="ReceiverIPPassword" readonly="False" type="UnicodeString"></method>
<method name="ReceiverIPProfile" readonly="False" type="Integer">0</method>
<method name="Area1AccountNo" readonly="False" type="UnicodeString"></method>
<method name="Area2AccountNo" readonly="False" type="UnicodeString"></method>
<method name="WAN1IPAddress" readonly="False" type="UnicodeString"></method>
<method name="WAN1IPPort" readonly="False" type="Integer">0</method>
<method name="WAN2IPAddress" readonly="False" type="UnicodeString"></method>
<method name="WAN2IPPort" readonly="False" type="Integer">0</method>
<method name="ParallelReporting" readonly="False" type="Boolean">False</method>
<method name="ServiceFailureOptions" readonly="False" type="UnicodeString"></method>
<method name="GPRSAccessPointName" readonly="False" type="UnicodeString"></method>
<method name="GPRSUserName" readonly="False" type="UnicodeString"></method>
<method name="GPRSPassword" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameter definition
Page 43 of 64
"ServiceFailureOptions" Service failure options
Possible Values
"Disabled"
"Trouble Only When Audible Alarm"
"Disarmed = Trouble / Armed = Audible Alarm"
"Silent Alarm Becomes Audible Alarm"
"GPRSAccessPointName" ACCESS point name that the PCS module must use to connect to a GPRS network
"GPRSUserName" User name that the PCS module must use to connect to a GPRS network
"GPRSPassword" Password that the PCS module must use to connect to a GPRS network
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
Page 44 of 64
<?xml version="1.0"?>
<objects>
<object objectname="TSiteInfoXML" name="Item1">
<published>
<method name="SerialNo" readonly="True" type=" UnicodeString"></method>
<method name="ItemType" readonly="True" type=" UnicodeString "></method>
<method name="IPAddress" readonly="True" type="UnicodeString"></method>
<method name="HTTPPort" readonly="True" type=" Integer ">0</method>
<method name="HTTPSPort" readonly="True" type=" Integer ">0</method>
<method name="WebPort" readonly="True" type=" Integer ">0</method>
</published>
</object>
<object objectname="TSiteInfoXML" name="Item2">
<published>
<method name="SerialNo" readonly="True" type=" UnicodeString"></method>
<method name="ItemType" readonly="True" type=" UnicodeString "></method>
<method name="IPAddress" readonly="True" type="UnicodeString"></method>
<method name="HTTPPort" readonly="True" type=" Integer ">0</method>
<method name="HTTPSPort" readonly="True" type=" Integer ">0</method>
<method name="WebPort" readonly="True" type=" Integer ">0</method>
</published>
</object>
…
</objects>
Parameter definition
Parameter definition
method name Definition
"VideoFileDir" The directory to store the video files received from HD77 module. The files are uploaded
Page 45 of 64
from HD77 and stored to the selected local folder automatically upon video notification
event reception.
"VideoFileLifeTime" The maximum lifetime (in days) of an uploaded video file. The SDK will automatically
delete the file when time expires. This feature minimizes space usage on your local drive.
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
<?xml version="1.0"?>
<objects>
<object objectname="TVideoFileXML" name="File1">
<published>
<method name="FileID" readonly="True" type="Integer">0</method>
<method name="FileType" readonly="True" type="UnicodeString"></method>
<method name="FileName" readonly="True" type="UnicodeString"></method>
<method name="FilePath" readonly="True" type=" UnicodeString"></method>
</published>
</object>
<object objectname="TVideoFileXML" name=" File2">
<published>
<method name="FileID" readonly="True" type="Integer">0</method>
<method name="FileType" readonly="True" type="UnicodeString"></method>
<method name="FileName" readonly="True" type="UnicodeString"></method>
<method name="FilePath" readonly="True" type=" UnicodeString"></method>
</published>
</object>
…
</objects>
Parameter definition
Page 46 of 64
52. Start Video on Demand (Command)
Use to start video live streaming from a HD77 module following a video notification event
HD77 module uses Apple HTTP live streaming protocol
API returns a m3u8 file, which must be used to play live streaming from a standard video
player (m3u8 capable) such as VLC
Live streaming can also be played with the provided Paradox Video Player (see
ParadoxVideoPlayer.exe)
Request (Pascal STDCALL)
function StartVideoOnDemand(const IPAddress: WideString; IPPort: Cardinal; SessionKey:
WideString; out XMLVideoFile: WideString): HResult; stdcall;
1. IPAddress parameter identifies the IP address of the Camera to start VOD
a. The IP address is received in account registration and polling events
(see Account Registration , Account Link "LastIPAddress")
*The video notification event “MACAddress” can be used to retrieve the account
and LastIPAddress
b. The IP address can also be retrieved from ParadoxMyHome via the
GetSiteFromPMH API
2. IPPort parameter identifies the IP port of the Camera to use to play VOD
a. The IP port # is received in reporting event upon video notification
(see Receive Reporting Event "VODIPPort")
b. The IP port # can also be retrieved from ParadoxMyHome via the
GetSiteFromPMH API
3. SessionKey parameter identifies a valid session # to use to play live streaming
a. The session key is received in reporting event upon video notification
(see Receive Reporting Event "VODSessionKey")
b. If the session key is unavailable or unknown, you can use StartVideonDemandEx
API
Answer
1. Function call returns HResult (see 2.2.2 Result Code List Video on demand)
2. Function parameter (XMLVideoFile) returns XMLData; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TVideoFileXML" name="File1">
<published>
<method name="FileID" readonly="True" type="Integer">0</method>
<method name="FileType" readonly="True" type="UnicodeString"></method>
<method name="FileName" readonly="True" type="UnicodeString"></method>
<method name="FilePath" readonly="True" type=" UnicodeString"></method>
<method name="SessionKey" readonly="True" type=" UnicodeString"></method>
</published>
</objects>
Parameter definition
Page 47 of 64
53. Start Video on Demand EX (Command)
Use to start a video live streaming session from a HD77 module (at any time)
HD77 module uses Apple HTTP live streaming protocol
API returns a m3u8 file, which must be used to play live streaming from a standard video player
(m3u8 capable) such as VLC
Live streaming can be played with the provided Paradox Video Player (see
ParadoxVideoPlayer.exe)
Request (Pascal STDCALL)
function StartVideoOnDemandEx(const PanelID: Cardinal; XMLVODSettings: WideString; out
XMLVideoFile: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel of the Camera to start VOD
2. Function parameter (XMLVODSettings) must contain XMLData; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TVODSettingsXML" name="Settings">
<published>
<method name="IPAddress" readonly="False" type="UnicodeString"></method>
<method name="IPPort" readonly="False" type="Integer">0</method>
<method name="ServerPassword" readonly="False" type="UnicodeString"></method>
<method name="UserName" readonly="False" type="UnicodeString"></method>
<method name="VideoFormat" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameters definition
Answer
1. Function call returns HResult (see 2.2.2 Result Code List Video on demand)
2. Function parameter (XMLVideoFile) returns XMLData; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TVideoFileXML" name="File1">
<published>
<method name="FileID" readonly="True" type="Integer">0</method>
<method name="FileType" readonly="True" type="UnicodeString"></method>
<method name="FileName" readonly="True" type="UnicodeString"></method>
<method name="FilePath" readonly="True" type=" UnicodeString"></method>
<method name="SessionKey" readonly="True" type=" UnicodeString"></method
</published>
</objects>
Page 48 of 64
Parameter definition
Parameter definition
TOnConnectionStatusChangedCallback = procedure(const PanelID: Cardinal; Status: WideString);
stdcall;
Parameter Definition
PanelID Identify the connected control panel
Status Possible Values Description
"PANELDETECTED" The account has detected the control panel
type
"CONNECTING" The account is connecting to the detected
control panel
"CONNECTED" The account is connected to the detected
control panel
"DISCONNECTING" The account is disconnecting from the
control panel
"DISCONNECTED" The account is disconnected
Page 49 of 64
56. Progress Changed (Event)
Register to receive notification on task progress changed
Notification is done via the registered callback function
Request (Pascal STDCALL)
procedure RegisterProgressChangedCallback(Callback: TOnProgressChangedCallback); stdcall;
1. Callback function; see Parameter definition below
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
Parameter definition
TOnProgressChangedCallback = procedure(const PanelID: Cardinal; TaskID: Cardinal;
Description: WideString; Percent: Cardinal); stdcall;
Parameter Definition
PanelID Identify the connected control panel
TaskID Possible Values Description
0x127 Auto detecting panel
0x12A Opening socket (Server Mode)
0x101 Querying ParadoxMyHome
0x12B Handle incoming connection
0x102 Opening Socket
0x104 Connecting to Panel
0x106 Connecting Serial
0x107 Disconnecting Serial
0x10A Login Panel
0x10B Logout Panel
0x10D Identifying Panel
0x118 Loading Block Counters
0x119
0x12E Receiving bus modules’ status
0x120
0x11E Initiating panel connection
0x121 Receiving modules’ information
0x132 Waiting for a call
0x11F Installer login
0x12D Connection Lost
Description The task description in English
Percent The progression of the task in percent
Parameter definition
TOnProgressErrorCallback = procedure(const PanelID: Cardinal; TaskID: Cardinal; ErrorCode:
Integer; ErrorMsg: WideString); stdcall;
Parameter Definition
PanelID Identify the connected control panel
Page 50 of 64
TaskID Possible Values Description
0x127 Auto detecting panel
0x12A Opening socket (Server Mode)
0x101 Querying ParadoxMyHome
0x12B Handle incoming connection
0x102 Opening Socket
0x104 Connecting to Panel
0x106 Connecting Serial
0x107 Disconnecting Serial
0x10A Login Panel
0x10B Logout Panel
0x10D Identifying Panel
0x118 Loading Block Counters
0x119
0x12E Receiving bus modules status
0x120
0x11E Initiating panel connection
0x121 Receiving modules information
0x132 Waiting for a call
0x11F Installer login
0x12D Connection Lost
ErrorCode Possible Values Description
E_PN_RESULT_PID_BASE =
0x82000000
E_PID0000_RESULT_FAILURE =
E_PN_RESULT_PID_BASE +
0x00000000
E_PID0000_RESULT_FAILURE + 0x04 Invalid Command
E_PID0000_RESULT_FAILURE + 0x05 Invalid SRC
E_PID0000_RESULT_FAILURE + 0x07 Connection Dropped
E_PID0000_RESULT_FAILURE + 0x06 Destination Unreachable
E_PN_RESULT_PID_BASE +
0x00000100
E_PID0001_RESULT_FAILURE + 0x01 Invalid Session (expired)
E_PID0001_RESULT_FAILURE + 0x02 Invalid Command
E_PID0001_RESULT_FAILURE + 0x03 Invalid Login Information or IP Password
E_PID0001_RESULT_FAILURE + 0x04
E_PID0001_RESULT_FAILURE + 0x05 User Already Connected
E_PID0001_RESULT_FAILURE + 0x06 The System is locked
E_PID0001_RESULT_FAILURE + 0x07 Maximum System connections attained
E_PID0001_RESULT_FAILURE + 0x08 PC Access Disabled
E_PID0001_RESULT_FAILURE + 0x09 Connected on Same PC
E_PID0001_RESULT_FAILURE + 0x0A Unsupported Encryption Type
E_PID0001_RESULT_FAILURE + 0x0B Compatibility ID Incompatible
E_PID0007_RESULT_FAILURE =
E_PN_RESULT_PID_BASE +
0x00000700
E_PID0007_RESULT_FAILURE + 0x08 Access Denied to the System
E_PID0008_RESULT_FAILURE =
E_PN_RESULT_PID_BASE +
0x00000800
E_PID0008_RESULT_FAILURE + $01 Connection Time Out
E_PID0008_RESULT_FAILURE + $03 Invalid Serial #
E_IP100_RESULT_FAILURE =
0x83000000
E_IP100_RESULT_FAILURE + 0x06 Command Timeout
E_IP100_RESULT_FAILURE + 0x02 Web page already in use
E_IP100_RESULT_FAILURE + 0x03 Invalid Login Information or IP Password
Page 51 of 64
E_IP100_RESULT_FAILURE + 0x04
E_IP100_RESULT_FAILURE + 0x05 Connection in use by another user
E_IP100_RESULT_FAILURE + 0x0B Packet Wrong Command
E_IP100_RESULT_FAILURE + 0x0C Panel mismatch
E_IP100_RESULT_FAILURE + 0x15 Unsupported Encryption
E_PN_RESULT_CODE_BASE =
0x8100000
E_PN_RESULT_CODE_BASE + 0x21 Command Failed (Too many retries)
E_PN_RESULT_DNS_BASE + 0x01 Invalid Site
E_PN_RESULT_DNS_BASE + 0x02 Invalid Password
E_PID0004_ERROR =
E_PN_RESULT_PID_BASE +
0x00000400
E_PID0004_ERROR + 0x04 Wrong Panel ID.; Authentication failed
E_PID0004_ERROR + 0x03 Wrong PC Password.; Authentication failed
E_PID0004_ERROR + 0x01 Command error
E_PID0004_ERROR + 0x02 Wrong command
E_PID0004_ERROR + 0x05 Wrong User Code.; Authentication failed
E_PID0004_ERROR + 0x06 Cannot connect.; Panel reporting
E_PID0004_ERROR + 0x0A Partition in locked out
E_PID0004_ERROR + 0x0B Panel will disconnected
E_PID0004_ERROR + 0x0C Panel not connected
E_PID0004_ERROR + 0x0D Connection already in use
E_PID0004_ERROR + 0x18 Invalid monitoring action
E_PID0004_ERROR + 0x20 Panel not supported
E_PN_RESULT_CHANNEL_BASE =
0x85000000
E_PN_RESULT_CHANNEL_SOCKET =
E_PN_RESULT_CHANNEL_BASE +
0x00000200
E_PN_RESULT_CHANNEL_SOCKET + Network problems are preventing connection
0x02 to the panel
E_PN_RESULT_CHANNEL_BASE + Connection failed, please try again
0x01
E_PN_RESULT_CHANNEL_BASE + Connection timeout
0x06
E_PN_RESULT_CHANNEL_SOCKET + Invalid IP address
0x01
ErrorMsg The error description in English
Parameter definition
TOnSMSRequestCallback = procedure(const PanelID: Cardinal; SMS: WideString); stdcall;
Parameter Definition
PanelID Identify the connected control panel
SMS The SMS message to send to the PCS module via your SMS device (phone, web page)
Page 52 of 64
59. Receive Reporting Event (Event)
Register to receive reporting events from registered accounts
Notification is done via the registered callback function
Request (Pascal STDCALL)
procedure RegisterReceiveReportingEventCallback(Callback:
TOnReceiveReportingEventCallback); stdcall;
1. Callback function; see Parameter definition below
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Callback parameter returns XML; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TPanelReportingEventXML" name="PanelReportingEvent">
<published>
<method name="EventID" readonly="True" type="Integer">0</method>
<method name="EventAccountNo" readonly="True" type="UnicodeString"></method>
<method name="EventDateTime" readonly="True" type="Double">0</method>
<method name="EventProtocolID" readonly="True" type="UnicodeString"></method>
<method name="EventCode" readonly="True" type="UnicodeString"></method>
<method name="EventDescription" readonly="True" type="UnicodeString"></method>
<method name="EventAreaDoorNo" readonly="True" type="UnicodeString"></method>
<method name="EventZoneUserNo" readonly="True" type="UnicodeString"></method>
<method name="EventMACAddress" readonly="True" type="UnicodeString"></method>
<method name="EventStatus" readonly="True" type="UnicodeString"></method>
<method name="VODIPPort" readonly="True" type=" Integer">0</method>
<method name="VODSessionKey" readonly="True" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameter definition
TOnReceiveReportingEventCallback = procedure(XMLEvent: WideString); stdcall;
Parameter Definition
XMLEvent method name Definition
"EventID" Unique event identifier
"EventAccountNo" Account # associated to the event
"EventDateTime" Event reported date and time
"EventProtocolID" Event reported protocol ID
"EventCode" Event code
"EventDescription" Event description in English
"EventAreaDoorNo" Event area or door #
"EventZoneUserNo" Event zone or user #
"EventMACAddress" MAC address of the reporting account (see Account
Registration "MACAddress"
"EventStatus" Event status
"VODIPPort" IP port to use for video on demand (see:
StartVideoOnDemand)
"VODSessionKey" Session key to use for video on demand (see:
StartVideoOnDemand)
Page 53 of 64
associated with that HD77 is defined in "EventZoneUserNo"
<?xml version="1.0"?>
<objects>
<object objectname="TPanelReportingAccountXML" name="PanelReportingAccount">
<published>
<method name="AccountNo" readonly="True" type="UnicodeString"></method>
<method name="AccountStatus" readonly="True" type="UnicodeString"></method>
<method name="MACAddress" readonly="True" type="UnicodeString"></method>
<method name="ProfileID" readonly="True" type="Integer">0</method>
<method name="ProtocolID" readonly="True" type="UnicodeString"></method>
<method name="PanelType" readonly="True" type="UnicodeString"></method>
<method name="PanelSerialNo" readonly="True" type="UnicodeString"></method>
<method name="PanelVersion" readonly="True" type="UnicodeString"></method>
<method name="ModuleType" readonly="True" type="UnicodeString"></method>
<method name="ModuleSerialNo" readonly="True" type="UnicodeString"></method>
<method name="ModuleVersion" readonly="True" type="UnicodeString"></method>
<method name="RegistrationDate" readonly="True" type="Double">0</method>
<method name="LastIPAddress" readonly="True" type="UnicodeString"></method>
<method name="LastPollingTime" readonly="True" type="Double">0</method>
</published>
</object>
</objects>
Parameter definition
TOnAccountRegistrationCallback = procedure(XMLAccount: WideString); stdcall;
Parameter Definition
XMLAccount method name Definition
"AccountNo" Account #
"AccountStatus" Account status
Possible Values Description
"Unknown" Unknown status
"Active" Account is active
"Not Responding" Account did not poll
"Deleted" Account as been deleted
"Updating" Account is currently in update mode
"Profile Error" The account profile ID is invalid
"MACAddress" MAC address of the registered module
"ProfileID" Account profile ID
"ProtocolID" Account protocol ID
Possible Values
"ADEMCO CID"
"SIA"
"UNKNOWN"
Page 54 of 64
"PanelType" Registered panel type
"PanelSerialNo" Registered panel serial #
"PanelVersion" Registered panel version
"ModuleType" Registered module type
Possible Values
"IP100"
"IP150"
"PCS250"
"HD77"
"ModuleSerialNo" Registered module serial #
"ModuleVersion" Registered module version
"RegistrationDate" Registration date and time
"LastIPAddress" Last IP address of the registered module
"LastPollingTime" Last polling time of the registered module
<?xml version="1.0"?>
<objects>
<object objectname="TPanelReportingAccountXML" name="PanelReportingAccount">
<published>
<method name="AccountNo" readonly="True" type="UnicodeString"></method>
<method name="AccountStatus" readonly="True" type="UnicodeString"></method>
<method name="MACAddress" readonly="True" type="UnicodeString"></method>
<method name="ProfileID" readonly="True" type="Integer">0</method>
<method name="ProtocolID" readonly="True" type="UnicodeString"></method>
<method name="PanelType" readonly="True" type="UnicodeString"></method>
<method name="PanelSerialNo" readonly="True" type="UnicodeString"></method>
<method name="PanelVersion" readonly="True" type="UnicodeString"></method>
<method name="ModuleType" readonly="True" type="UnicodeString"></method>
<method name="ModuleSerialNo" readonly="True" type="UnicodeString"></method>
<method name="ModuleVersion" readonly="True" type="UnicodeString"></method>
<method name="RegistrationDate" readonly="True" type="Double">0</method>
<method name="LastIPAddress" readonly="True" type="UnicodeString"></method>
<method name="LastPollingTime" readonly="True" type="Double">0</method>
</published>
</object>
</objects>
Parameter definition
TOnAccountUpdateCallback = procedure(XMLAccount: WideString); stdcall;
1. Use the same parameter definition as Account Registration event callback
Page 55 of 64
procedure RegisterAccountLinkCallback(Callback: TOnAccountLinkCallback); stdcall;
1. Callback function; see Parameter definition below
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Callback parameter returns XML; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TPanelReportingAccountXML" name="PanelReportingAccount">
<published>
<method name="AccountNo" readonly="True" type="UnicodeString"></method>
<method name="AccountStatus" readonly="True" type="UnicodeString"></method>
<method name="MACAddress" readonly="True" type="UnicodeString"></method>
<method name="ProfileID" readonly="True" type="Integer">0</method>
<method name="ProtocolID" readonly="True" type="UnicodeString"></method>
<method name="PanelType" readonly="True" type="UnicodeString"></method>
<method name="PanelSerialNo" readonly="True" type="UnicodeString"></method>
<method name="PanelVersion" readonly="True" type="UnicodeString"></method>
<method name="ModuleType" readonly="True" type="UnicodeString"></method>
<method name="ModuleSerialNo" readonly="True" type="UnicodeString"></method>
<method name="ModuleVersion" readonly="True" type="UnicodeString"></method>
<method name="RegistrationDate" readonly="True" type="Double">0</method>
<method name="LastIPAddress" readonly="True" type="UnicodeString"></method>
<method name="LastPollingTime" readonly="True" type="Double">0</method>
</published>
</object>
</objects>
Parameter definition
TOnAccountLinkCallback = procedure(XMLAccount: WideString); stdcall;
1. Use the same parameter definition as Account Registration event callback
Page 56 of 64
</published>
</object>
</objects>
Parameter definition
TOnBufferEventReceivedCallback = procedure(const PanelID: Cardinal; XMLEvents: WideString);
stdcall;
Parameter Definition
PanelID Identifies the connected control panel
XMLEvents method name Definition
"DateTime" Date and time where the event has been received
"SequenceNo" Sequence # (prevent duplication if same # received within 1 minute)
integer value
"EventDateTime" Date and time where the event has been generated
"EventLabel" Event label in selected language (set SystemAlarmLanguage)
"EventType" Event type
Possible Values Description
“System” Any System related event (ex.: Panel Low
Battery)
“Alarm” Any event related to an Alarm
“Trouble” Any event related to a Trouble
“Access” Any event related to Access control
“Arming_Disarming” Any event related to Arming_Disarming
“Operator” Any event related to an Operator
“Partition” Any event related to a Partition
“Zone” Any event related to a Zone
“User” Any event related to a User
“Door” Any event related to a Door
“Module” Any event related to a Module
“Serial” Any event related to a Serial device
“Keyswitch” Any event related to a Keyswitch
“Utility Key” When any Utility Key event is generated
“Card” Any event related to a Card is generated
“Schedule” Any event related to a Schedule
“PGM” Any event related to a PGM
“AUX” Any event related to the AUX
“Installer” Any event related to the Installer
“Remote” Any event related to Remote access
“Phone” Any event related to the telephone line
“Level” Any event related to voltage Levels
“Time” Any event related to Timers/delays
“Dialer” Any event related to the Dialer
“IP” Any event related to IP
“GPRS” Any event related to GPRS
“Voice” Any event related to Voice
“Panic” Any event related to Panics
"EventSerialNo" Event serial #
"EventDescription" Event description in English
"EventAdditionalInfo" Event additional info in English
"EventUserLabel" Event user label
"EventSequenceNo" Sequence # (prevent duplication if same # received within 1 minute)
string value
Page 57 of 64
Notification is done via the registered callback function
Request (Pascal STDCALL)
procedure RegisterReceiveLiveEventCallback(Callback: TOnLiveEventReceivedCallback); stdcall;
1. Callback function; see Parameter definition below
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Callback parameter returns XML; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TPanelEventXML" name="PanelEvent">
<published>
<method name="DateTime" readonly="True" type="Double">0</method>
<method name="SequenceNo" readonly="True" type="Int64">0</method>
<method name="EventDateTime" readonly="True" type="UnicodeString"></method>
<method name="EventLabel" readonly="True" type="UnicodeString"></method>
<method name="EventType" readonly="True" type="UnicodeString"></method>
<method name="EventSerialNo" readonly="True" type="UnicodeString"></method>
<method name="EventDescription" readonly="True" type="UnicodeString"></method>
<method name="EventAdditionalInfo" readonly="True" type="UnicodeString"></method>
<method name="EventUserLabel" readonly="True" type="UnicodeString"></method>
<method name="EventSequenceNo" readonly="True" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameter definition
TOnLiveEventReceivedCallback = procedure(const PanelID: Cardinal; XMLEvents: WideString);
stdcall;
1. Use the same parameter definition as Receive Buffer Event
<?xml version="1.0"?>
<PanelInfo>
<AreaStatus Area1="Ready,Armed" Area2="Ready,Armed"/>
</PanelInfo>
Parameter definition
TOnMonitoringStatusChangedCallback = procedure(const PanelID: Cardinal; XMLStatus:
WideString); stdcall;
1. See Area Status, Zone Status and PGM Status functions
Page 58 of 64
Notification is done via the registered callback function
Request (Pascal STDCALL)
procedure RegisterRxStatusChangedCallback(Callback: TOnDataExchangedCallback); stdcall;
1. Callback function; see Parameter definition below
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
Parameter definition
TOnDataExchangedCallback = procedure(const PanelID: Cardinal; ByteCount: Integer); stdcall;
Parameter Definition
PanelID Identifies the connected control panel
ByteCount Quantity of bytes received from the control panel
Parameter definition
TOnDataExchangedCallback = procedure(const PanelID: Cardinal; ByteCount: Integer); stdcall;
Parameter Definition
PanelID Identifies the connected control panel
ByteCount Quantity of bytes sent to the control panel
<?xml version="1.0"?>
<objects>
<object objectname="TModuleInfoXML" name="Module1">
<published>
<method name="MacString" readonly="True" type="UnicodeString"></method>
<method name="NetMaskString" readonly="True" type="UnicodeString"></method>
<method name="DHCPString" readonly="True" type="UnicodeString"></method>
<method name="TypeString" readonly="True" type="UnicodeString"></method>
<method name="IPString" readonly="True" type="UnicodeString"></method>
<method name="SiteNameString" readonly="True" type="UnicodeString"></method>
Page 59 of 64
<method name="SiteIDString" readonly="True" type="UnicodeString"></method>
<method name="VersionString" readonly="True" type="UnicodeString"></method>
<method name="IPPortString" readonly="True" type="UnicodeString"></method>
<method name="WebPortString" readonly="True" type="UnicodeString"></method>
<method name="LanguageString" readonly="True" type="UnicodeString"></method>
<method name="SerialNoString" readonly="True" type="UnicodeString"></method>
<method name="HTTPSPortString" readonly="True" type="UnicodeString"></method>
<method name="DiscoverOnLAN" readonly="True" type="Boolean">False</method>
<method name="UseHTTPSString" readonly="True" type="UnicodeString"></method>
<method name="RegisteredToPMH" readonly="True" type="Boolean">False</method>
<method name="NetworkInterfaceIpAddress" readonly="True" type="UnicodeString"></method>
</published>
</object>
</objects>
Parameter definition
TOnIPModuleDetectedCallback = procedure(XMLModule: WideString); stdcall;
Parameter Definition
XMLModule See Discover Module command
Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
Parameter definition
TOnIPDOXSocketChangedCallback = procedure(const Port: Cardinal; Status: Cardinal;
Description: WideString); stdcall;
Parameter Definition
Port The IP port # that changed
Status Possible Values Description
0x00 Socket Close
0x01 Socket Open
0x02 Socket Error
Description The error description in English
Page 60 of 64
S_PN_RESULT_PID_BASE 0x02000000 Stack Successful
Page 61 of 64
E_PID002A_INVALID_RECEIVER_NO E_PID002A_RESULT_FAILURE + 0x36 The receiver # does not exist
Page 62 of 64
Failed to connect; Control panel
E_PID0004_ERROR_PANELWILLDISC cannot connect for the moment
ONNECT E_PID0004_ERROR + 0x0B (please try later)
E_PID0004_ERROR_PANELNOTCONN Unable to execute command;
ECTED E_PID0004_ERROR + 0x0C Control panel is not connected
E_PID0004_ERROR_PANELALREADY Failed to connect; Control panel
CONNECTED E_PID0004_ERROR + 0x0D is already connected
Failed to connect; Another
E_PID0004_ERROR_SOFTWAREOVER software is currently connected
MODEM E_PID0004_ERROR + 0x0E over the phone (please try later)
Video on demand
E_VIDEO_ RESULT_SUCCESS S_PID002A_RESULT_SUCCESS Video Successful
Page 63 of 64
0x40004
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Item download failed, request
ERROR_DOWNLOAD_REQUEST_MALFORMED 0x60000 malformed
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Item download failed,invalid
ERROR_DOWNLOAD_INVALID_SESSION_KEY 0x60001 session key
E_VIDEO_ ERROR_DOWNLOAD_ E_VIDEO_ RESULT_FAILURE + Item download failed, insufficient
INSUFFICIENT_USER_RIGHTS 0x60002 user rights
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Item download failed, invalid item
ERROR_DOWNLOAD_INVALID_ITEM_ID 0x60003 id
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Item download failed, item is not
ERROR_DOWNLOAD_UNAVAILABLE 0x60004 downloadable
E_VIDEO_ ERROR_PLAY_ E_VIDEO_ RESULT_FAILURE + Item play failed, request
REQUEST_MALFORMED 0x70000 malformed
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Item play failed,invalid session
ERROR_PLAY_INVALID_SESSION_KEY 0x70001 key
E_VIDEO_ ERROR_PLAY_ E_VIDEO_ RESULT_FAILURE + Item play failed, insufficient user
INSUFFICIENT_USER_RIGHTS 0x70002 rights
E_VIDEO_ RESULT_FAILURE + Item play failed, invalid item id
E_VIDEO_ ERROR_PLAY_INVALID_ITEM_ID 0x70003
E_VIDEO_ RESULT_FAILURE + Item play failed, invalid action id
E_VIDEO_ ERROR_PLAY_INVALID_ACTION_ID 0x70004
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Item play failed, authentication
ERROR_PLAY_AUTHENTIFICATION_FAILED 0x70008 failed
E_VIDEO_ RESULT_FAILURE + Item play failed, file not found
E_VIDEO_ ERROR_PLAY_FILE_NOT_FOUND 0x70009
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Logout failed, request malformed
ERROR_LOGOUT_REQUEST_MALFORMED 0x120000
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Logout failed, invalid session key
ERROR_LOGOUT_INVALID_SESSION_KEY 0x120001
E_VIDEO_ ERROR_LOGOUT_ E_VIDEO_ RESULT_FAILURE + System logout failed, CP link is
CONTROLPANEL_DOWN 0x120002 down, Server logout succeeded
E_VIDEO_ RESULT_FAILURE + The IP address of the selected
E_VIDEO_ ERROR_INVALID_IP_ADDRESS 0xFF001 module is invalid
E_VIDEO_ Login timeout, no valid answer
ERROR_LOGIN_TIMEOUT_NO_ANSWER_FRO E_VIDEO_ RESULT_FAILURE + received from module
M_MODULE 0xFF006
E_VIDEO_ Login error, data received from
ERROR_LOGIN_INVALID_DATA_FROM_MODU E_VIDEO_ RESULT_FAILURE + module is invalid
LE 0xFF007
E_VIDEO_ Logout timeout, no valid answer
ERROR_LOGOUT_TIMEOUT_NO_ANSWER_FR E_VIDEO_ RESULT_FAILURE + received from module
OM_MODULE 0xFF008
E_VIDEO_ Logout error, data received from
ERROR_LOGOUT_INVALID_DATA_FROM_MOD E_VIDEO_ RESULT_FAILURE + module is invalid
ULE 0xFF009
Page 64 of 64